Shell environment variables used by Perl 6
What variables you can declare to alter its behavior.
The behavior of the interpreter can be tweaked by a (growing) number of environment variables; this section attempts to document all those currently in use. All these variables correspond to the Rakudo, and they are interpreter specific in all cases, except where some use conventional names such as
The underlying virtual machine is also sensitive to a series of environment variables, they are listed in this wiki page
PERL6LIBAppends a comma-delimited list of paths to
RAKUDOLIBis evaluated first.
RAKUDO_MODULE_DEBUGCauses the module loader to print debugging information to standard error.
PERL6_EXCEPTIONS_HANDLERIf 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. NOTE: this env var was added in 6.d language. Early implementation is available in Rakudo compiler as of version 2018.08, and before that it was available as
If true, suppresses deprecation warnings triggered by the
is DEPRECATED trait.
If true, deprecation warnings become thrown exceptions.
Displays source code in stack frames surrounded by the specified number of lines of context.
Controls whether .setting files are included in backtraces.
When this is set, Rakudo will look for the standard repositories (perl, vendor, site) in the specified directory. This is intended as an escape hatch for build-time bootstrapping issues, where Rakudo may be built as an unprivileged user without write access to the runtime paths in NQP's config.
RAKUDO_PRECOMP_WITH: These are internal variables for passing serialized state to precompilation jobs in child processes. Please do not set them manually.
RAKUDO_LOG_PRECOMPIf set to 1, diagnostic information about the precompilation process is emitted.
RAKUDO_LINE_EDITORThis 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_DISABLE_MULTILINESet to 1, will disable multiline input for the REPL
RAKUDO_HISTThis specifies the location of the history file used by the line editor; the default is
RAKUDO_DEFAULT_READ_ELEMSDefaults to 65536; the default number of characters to read on an IO::Handle.
RAKUDO_ERROR_COLORControls whether to emit ANSI codes for error highlighting. Defaults to true if unset, except on Win32.
Override the default maximum number of threads used by a thread pool.
IO::Spec::Unix.tmpdir method will return
$TMPDIR if it points to a directory with full access permissions for the current user, with a fallback default of
IO::Spec::Win32 use more Win32-appropriate lists which also include the
%TMP% environment variables.
$PATHas a shell would; i.e. as a colon-separated list.
IO::Spec::Cygwininherits this from
IO::Spec::Win32.pathwill read the first defined of either
%Path%as a semicolon-delimited list.
RAKUDO_SNAPPERaffects the period in which the telemetry snapper activates.
Initial version written by the Rakudo contributors, see the CREDITS file.
The initial version of this manual page was written by Reini Urban, Moritz Lenz and the Rakudo contributors.