dev env vars

MasterDuke17 edited this page Aug 19, 2017 · 7 revisions

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).

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.