如何转储 MoarVM 字节码

How to dump MoarVM bytecode

我想知道如何调试 Moarvm 字节码。是否有文件描述例如 如何将 raku 转换为 moarvm 以及如何转储生成的字节码。如果我尝试 运行:

rakudo-m --target=mbc c.p6 
===SORRY!===
Cannot dump this object; no dump method

我在某处读到有关“--dump”开关的信息,但它似乎不可用。我从 github.

自定义编译 rakudo/nqp/moarvm

rakudo 编译器的 target 参数需要一些值的 --output=filename。不过,parseastoptimize 都会愉快地输出到控制台。

moar 二进制文件具有 --dump 标志,但我可能建议使用 moarvm 的 spesh 子系统的调试输出,它是动态字节码专家和 jit。

您可以通过将环境变量 MVM_SPESH_LOG 设置为文件名来获取它。如果有问题的代码 运行 不够经常出现在 spesh 日志 中,您可以设置 MVM_SPESH_NODELAY 这样 moar 将考虑例程“热”早得多。优化器可以使用的信息会更少,但如果你只是在看到编译结果之后,应该没问题。