MoarVM(運行時虛擬機器上的元模型的縮寫)是為 6model 物件系統建構的運行時。它主要旨在運行 NQP 和 Rakudo,但應該能夠作為使用 NQP 編譯器工具鏈建立的任何編譯器的後端。
從 MoarVM 網站下載它或從 GitHub 克隆它:
git clone https://github.com/MoarVM/MoarVM.git
如果您使用自動產生的發布 tarball 或 zip 文件,請注意它們不包含成功建立 MoarVM 所需的第三方函式庫。
建置和安裝虛擬機器本身只需要:
perl Configure.pl
make install
(或 Windows 上的nmake
/ gmake
)。目前,已知可以在 Windows 上使用 MSVC 和 gcc 進行構建,以及在 Linux 和 MacOS X 上使用gcc
和clang
進行構建。
鍵入perl Configure.pl --help
以查看配置時選項,以及 make-time 選項/目標的一些描述。
安裝 MoarVM 後,您可以複製 NQP 儲存庫或取得來源 tarball 並使用其中的 Configure.pl 腳本,如下所示:
perl Configure.pl --backend=moar --prefix=where_your_moarvm_install_lives
或者,如果您提供--gen-moar
標誌,NQP 中的相同Configure.pl 腳本能夠自行複製、建置和安裝MoarVM 的副本。
請記住,這將是
/bin
、/lib
以及將安裝moar
可執行檔和其他檔案的其他目錄的前綴,因此如果您希望將moar
複製到,則必須使用/usr
/usr/bin
。
當將 rakudo 儲存庫中的Configure.pl
腳本指向安裝了nqp-m
--prefix
時,它將自動偵測並配置 MoarVM 後端。或者,例如,可以使用--backend=moar,jvm
強制其建置 MoarVM 和 JVM 後端。就像在 NQP Configure.pl
腳本中一樣,您可以選擇提供--gen-moar
標誌,該標誌將為您完成所有工作,包括創建nqp-m
。
MoarVM 目前正在開發中。它可以運行所有 NQP 測試套件、所有 Rakudo 健全性測試,並且比任何其他 Rakudo 後端通過更多的規格測試。
與 NQP 的 JVM 或 JS 後端不同,MoarVM 儲存庫未整合到 NQP 來源儲存庫中,而是可以透過在 NQP 儲存庫中執行Configure.pl --gen-moar
設定腳本來拉入。
MoarVM 提供的一些關鍵功能包括:
接受拉取請求的貢獻。提交位被授予那些貢獻高品質工作的人。如果您有興趣做出貢獻,請訪問 libera.chat 上的#moarvm
頻道。
有關 MoarVM 儲存庫中原始程式碼許可證的信息,請參閱根目錄中的 LICENSE 檔案。
如果 MoarVM 建置失敗,且錯誤如下所示:
ld:找不到架構 x86_64 的符號
您可能有不相容的建置和 bin 實用程式組合。
雖然在 macOS 中從第三方儲存庫安裝工具鏈很常見,但它們並不全部相容。如果您遇到此問題,請嘗試以下步驟。
brew unlink binutils
如果您想使用 GNU 工具鏈,並且收到一條錯誤訊息告訴您查看此文件,只需提供--toolchain=gnu
標誌,此包將使用 GNU 工具鏈進行配置和構建。
請注意:如果您混合使用 Xcode 和非 Xcode 工具,您可能會遇到麻煩。因此,此配置不受支援。
gcc
與clang
需要不同的程式碼請注意,兩個編譯器都定義了宏__GNUC__
,因此需要先測試宏__clang__
以消除兩者的歧義。