Как сбросить байт-код MoarVM

Интересно, как я могу отладить байт-код Moarvm. Есть ли документ, который описывает, например, как преобразовать raku в moarvm и как сбросить сгенерированный байт-код. Если я попытаюсь запустить:

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

Где-то я читал о переключателе --dump, но он не кажется доступным. Я произвольно компилирую rakudo / nqp / moarvm из github.


person Konrad Eisele    schedule 24.07.2020    source источник


Ответы (1)


Аргумент target для компилятора rakudo требует --output=filename для некоторых значений. Однако parse, ast и optimize будут успешно выводить на консоль.

Двоичный файл moar - это то, что имеет флаг --dump, но я бы, возможно, предложил использовать вывод отладки из подсистемы spesh в moarvm, которая является динамическим специализатором байт-кода и jit.

Вы можете получить это, установив в переменной среды MVM_SPESH_LOG имя файла. Если рассматриваемый код запускается недостаточно часто, чтобы появиться в журнале spesh, вы можете установить MVM_SPESH_NODELAY, чтобы moar считал подпрограммы горячими намного раньше. Оптимизатору будет меньше информации для работы, но если вы увидели только результат компиляции, все должно быть в порядке.

person timotimo    schedule 27.07.2020