Как сбросить байт-код 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
двоичный - это то, что имеет --dump
flag, но я бы, возможно, предложил использовать выходные данные отладки подсистемы spesh в moarvm, которая является динамическим специализатором байт-кода и jit.
Вы можете получить это, установив переменную окружения MVM_SPESH_LOG
к имени файла. Если рассматриваемый код запускается недостаточно часто, чтобы появиться в журнале spesh, вы можете установитьMVM_SPESH_NODELAY
так moar
гораздо раньше буду считать рутины "горячими". Оптимизатору будет меньше информации для работы, но если вы увидели только результат компиляции, все должно быть в порядке.