什么是 nqp、nqp-m、rakudo-debug、rakudo-debug-m、rakudo-gdb-m、rakudo-m、rakudo-valgrind-m?

What are nqp, nqp-m, rakudo-debug, rakudo-debug-m, rakudo-gdb-m, rakudo-m, rakudo-valgrind-m?

当我从源安装 rakudo 时:

$ git clone git@github.com:rakudo/rakudo.git
$ cd rakudo
$ perl Configure.pl --gen-moar --gen-nqp --backends=moar
$ make
$ make install

它在./install/bin中生成以下文件:

$ ls -1 install/bin
moar
nqp
nqp-m
perl6
perl6-debug
perl6-debug-m
perl6-gdb-m
perl6-lldb-m
perl6-m
perl6-valgrind-m
raku
raku-debug
rakudo
rakudo-debug
rakudo-debug-m
rakudo-gdb-m
rakudo-lldb-m
rakudo-m
rakudo-valgrind-m

我知道 rakurakudoperl6 是用于 运行 一个 .raku 脚本的命令,但其他命令是什么命令以及如何使用它们?

  • moar 是虚拟机(没有字节码文件不是很有用)
  • nqp 用于 NQP(不完全是 Perl6)。这是 Raku 的一小部分,可以更快/更容易优化。 (例如没有 = 操作)
    它是 Rakudo 的 bootstrap 编译器。

其他人如rakudo-m

  • *-m 表示 MoarVM
  • *-j 表示在 JVM 上(此处未安装)
  • *-js 表示 JavaScript(此处未安装)

  • *-debug表示,使用带有调试信息的版本
  • *-gdb表示使用带有GNU Debugger信息的版本
  • *-lldb表示使用带LLDB调试信息的版本
  • *-valgrind表示使用Valgrind检测框架(查找内存泄漏)

那么 rakudo-valgrind-m 意味着在 MoarVM[=62= 上使用 Rakudo 编译器和 Valgrind 工具].

我唯一会使用的是 rakudo-mrakudo-jrakudo-js,而且只有当我安装的不仅仅是 MoarVM 版本时才会这样。

其余的主要是给那些自己从事 Rakudo/NQP/MoarVM 项目的人。