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__
以消除两者的歧义。