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

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

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

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

1 ответ

Решение

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

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

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

Другие вопросы по тегам