dev env vars
Rakudo
The following environment variables can impact Rakudo's behavior:
RAKUDO_DEFAULT_READ_ELEMS
Defaults to 65536; the default number of characters to read on an IO::Handle
RAKUDO_DISABLE_MULTILINE
Set to 1, will disable multiline input for the REPL
RAKUDO_EXCEPTIONS_HANDLER
If present, the print_exception routine will use a class of that name to process the exception for output. Rakudo currently ships with Exceptions::JSON (invoked by setting this variable to "JSON"), to override the default output.
RAKUDO_HIST
This specifies the location of the history file used by the line editor; the
default is ~/.perl6/rakudo-history.
RAKUDO_LINE_EDITOR
This specifies the preferred line editor to use; valid values are Readline,
Linenoise, and none. A value of none is useful if you want to avoid
the recommendation message upon REPL startup.
RAKUDO_LOG_PRECOMP
If set to 1, diagnostic information about the precompilation process is emitted.
MoarVM
If you're using the MoarVM backend for Rakudo, the following variables also have an impact:
MVM_SPESH_DISABLE
Disables all dynamic optimization
MVM_SPESH_BLOCKING
Make threads pause while dynamic optimization work is performed; this effectively makes the optimization work take place synchronously rather than in the background, which means bugs will manifest themselves more predictably.
MVM_SPESH_NODELAY
Run dynamic optimization even for cold frames. Useful in conjunction with MVM_SPESH_BLOCKING for stress-testing the dynamic optimizer.
MVM_SPESH_INLINE_DISABLE
Disables inlining
MVM_SPESH_OSR_DISABLE
Disables on-stack replacement
MVM_JIT_DISABLE
Disables JITting to machine code
MVM_SPESH_LOG
Specifies a dynamic optimizer log file
MVM_JIT_LOG
Specifies a JIT-compiler log file
MVM_JIT_BYTECODE_DIR
Specifies a directory for JIT bytecode dumps
MVM_CROSS_THREAD_WRITE_LOG
Log unprotected cross-thread object writes to stderr
MVM_COVERAGE_LOG
Specifies a line coverage log file
MVM_COVERAGE_CONTROL
When set to 1, line coverage is not de-duplicated, and it must be started with a call to nqp::coveragecontrol(1).
When set to 2, line coverage is not de-duplicated, but starts without requiring a call to nqp::coveragecontrol(1).
Line coverage can be stopped/restarted with calls to nqp::coveragecontrol(0|1).