Raku FAQ
Short, task-shaped answers to questions people actually ask — how do I, why does this print twice, does Rakudo do the same.
Running external commands
Running external commands: run vs shell, capturing output, feeding input, exit codes.
Buffering: why output does not appear when you expect it
Why output does not appear when you expect it: out-buffer and flush, the three places output can sit, and the child's own buffer you cannot set from outside.
Background processes and Proc::Async
Proc::Async: fire-and-forget processes that outlive the program, bind-stdin pipelines, kill — and where Raku's own docs stand on the survival.
Containers, itemisation, and why my list has one element
Why does my list have one element? Itemisation, $(…) vs […], and passing lists to routines.
Installing and finding modules
Getting a module and being able to use it: rakupp install, zef, and where both engines look.
Turning a program into a binary
Turning a program into a binary: --exe vs --aot vs --bundle, and what -O buys.
My program is slow
My program is slow: what compiling does and does not speed up, with measured numbers.
The garbage collector
There isn't one: what reference counting buys, what a cycle costs, and when DESTROY actually runs.
When something goes wrong
When something goes wrong: what a die tells you, --lint, --ast, --cpp, and telling your bug from ours.
Where Raku++ and Rakudo differ
Where Raku++ and Rakudo differ, in both directions, and the few you will actually meet.
What Raku 6.e adds to 6.d
What the 6.e language revision adds to 6.d, and what use v6.e.PREVIEW actually turns on.
Hand-written vs. written by hand
Is "hand-written" honest for an AI-built project? The term of art it invokes, and the authorship answer behind it.
Three ways to build a Raku
Three Rakus in active development — Rakudo, Raku++ and mutsu — and the engineering decisions that separate them.
Why -O is not the default
Why the optimising code generator is opt-in: what a default owes every program, and where -O loses.