Jitter 正式成為 GNU 項目的一部分

日前,該項目發布消息稱 Jitter 正式成為 GNU Project 旗下的一個項目 現在正在使用 GNU 基礎設施並根據項目要求以 GNU Jitter 的名義開發它。

對於那些不熟悉 Jitter 的人,你應該知道它是a 是一種允許生成可移植且速度非常快的虛擬機的實現 用於任意設計的編程語言,其代碼執行性能明顯領先於解釋器,接近本機編譯代碼。

Jitter 是高度可移植的,一個正確的 VM 將在任何只有編譯器和標準 C 庫的平台上表現出完全相同的行為; 但是,在帶有 GCC 的 ELF 系統上使用受支持的架構之一(當前:M68k、MIPS、PowerPC、RISC-V、SPARC、x86_64;第二級:Aarch64、Alpha、ARM、S390x)性能會更好。 當然,Jitter 是 GNU 項目的一部分,主要是為在 GNU 系統上使用而設計的。

吉特r 將支持指令的高級規範作為輸入 通過虛擬機, 並在輸出中形成一個隨時可用的虛擬機實現 執行給定的指令。

規範中每條指令的邏輯 使用 C 代碼指定。 其他功能包括支持在 C 中難以實現且在動態編程語言中固有的條件分支操作,例如標記值檢查和溢出檢查。

Jitter 運行時還具有對僅使用 C 難以實現的條件分支操作的有效支持,例如動態類型語言所需的值標籤檢查和帶有溢出檢查的算術。 VM 代碼訪問過程調用和返回操作,在大多數情況下依賴於高效的硬件機制。

生成的虛擬機在 C 中格式化,插入次數很少 彙編程序。 提供了配置以啟用各種優化和選擇交付機制,從而可以輕鬆地將虛擬機遷移到不同的平台。

它支持使用寄存器、堆棧和連接執行架構,以及在 CPU 硬件寄存器中鏡像虛擬機數據結構和連接垃圾收集器的能力。

生成的代碼包括一個簡單的 C API,用於在虛擬機中動態替換和執行代碼,以及一個控制器程序,用於從虛擬機中的文本文件中單獨執行代碼。

生成的 C 代碼經過嚴格調整,可以配置為使用不同複雜程度的不同分發技術運行; 最有效的調度技術依賴於 Jitter 提供的一些特定於體系結構的程序集支持,而不是特定於 VM 的程序集支持; 所有調度模型,但一種也是基於 GNU C 擴展的。

最後,對於那些有興趣了解更多信息的人,他們應該知道原始 Jitter 代碼是用 C 編寫的,並且在 GPLv3 許可下可用。 您可以在 以下鏈接。

如何獲得抖動?

對於那些對能夠測試 Jitter 感興趣的人,他們可以通過打開終端並在其中鍵入以下命令來獲取源代碼:

git clone http://git.ageinghacker.net/jitter

完成後,現在我們繼續進入包含代碼的文件夾,我們將執行啟動腳本,該腳本用於生成配置和構建 Jitter 所需的文件,包括配置腳本。 我們這樣做:

cd jitter && ./bootstrap

值得一提的是,Jitter在配置和構建方面遵循GNU約定,支持從源目錄構建; 事實上,它支持交叉編譯,甚至可以通過模擬器在交叉編譯中運行測試套件。

./configure && make

最後,要執行,只需鍵入:

make check


在 Google 中將其新增為首選來源