NAME§
raku - Rakudo Raku Compiler
SYNOPSIS§
raku [switches] [--] [programfile] [arguments]
DESCRIPTION§
With no arguments, it enters a REPL. With a [programfile]
or the -e
option, compiles the given program and by default also executes the compiled code.
- read program source from STDIN or start REPL if a TTY -c check syntax only (runs BEGIN and CHECK blocks) --doc extract documentation and print it as text -e program one line of program, strict is enabled by default -h, --help display this help text -n run program once for each line of input -p same as -n, but also print $_ at the end of lines -I path adds the path to the module search path -M module loads the module prior to running the program --target=stage specify compilation stage to emit --optimize=level use the given level of optimization (0..3) --rakudo-home=path Override the path of the Rakudo runtime files -o, --output=name specify name of output file -v, --version display version information -V print configuration summary --stagestats display time spent in the compilation stages --ll-exception display a low level backtrace on errors --doc=module use Pod::To::[module] to render inline documentation --repl-mode=interactive|non-interactive when running without "-e" or filename arguments, a REPL is started. By default, if STDIN is a TTY, "interactive" REPL is started that shows extra messages and prompts, otherwise a "non-interactive" mode is used where STDIN is read entirely and evaluated as if it were a program, without any extra output (in fact, no REPL machinery is even loaded). This option allows to bypass TTY detection and force one of the REPL modes. --profile[=name] write profile information to a file Extension controls format: .json outputs in JSON .sql outputs in SQL any other extension outputs in HTML --profile-compile[=name] write compile-time profile information to a file Extension controls format: .json outputs in JSON .sql outputs in SQL any other extension outputs in HTML --profile-kind[=name] choose the type of profile to generate instrumented - performance measurements (default) heap - record heap snapshots after every garbage collector run --profile-filename=name provide a different filename for profile. Extension controls format: .json outputs in JSON .sql outputs in SQL any other extension outputs in HTML This option will go away in a future Rakudo release --profile-stage=stage write profile information for the given compilation stage to a file. Use --profile-compile to set name and format --full-cleanup try to free all memory and exit cleanly --debug-port=port listen for incoming debugger connections --debug-suspend pause execution at the entry point --tracing output a line to stderr on every interpreter instr (only if enabled in MoarVM)
Note that only Boolean single-letter options may be bundled.
The supported values (stages) for --target
are:
Target Backend Description ====== ======= =========== parse all a representation of the parse tree ast all an abstract syntax tree (before optimizations) optimize all an abstract syntax tree (after optimizations) mbc MoarVM MoarVM byte code jar JVM JVM archive
For --profile-filename
, specifying a name ending in .json
will write a raw JSON profile dump. The default if this is omitted is profile-[timestamp].html
.
Please check out the document on environment variables to check for different ways to change the behavior of the different layers of Raku.