Pace

How Raku++ got here: the turns in its architecture, its speed and its coverage, from the first commit on 2 July 2026 to every file of Roast, in fifteen chapters.

2 Jul 2026the first commit: an interpreter and a compiler to C++
41tagged releases in thirteen weeks
185 → 1,424Roast files passing completely
16 of 17benchmark kernels where compiled Raku++ beats Rakudo
The whole climb. Share of Roast files in which every test passes (blue), and of all declared tests (green), from the first commit to now. Chapter 13 explains the dips.

Raku++ is an independent implementation of Raku, written from nothing in C++. These chapters tell how it got to where it is. They cover the decisions that shaped its architecture, where its speed came from and where it was lost, and how its correctness was counted, including the times the count was wrong. Every date and figure comes from the release notes, plans and measurements committed in the repository.

The chapters can be read in any order. They run roughly in the order each story starts, and most of them overlap.

The chapters

  1. 1An engine on day one2–11 JulyThe first commit was already a lexer, a parser, a tree-walker, a regex engine and a compiler to C++, measured against Roast from the first day.
  2. 2A regex engine of its ownJuly – SeptemberMatch-time interpolation for YAMLish, true longest-token matching, JSON::Fast made native, and a YAML file parsed faster than the reference compiler.
  3. 3Exact numbers, whole graphemesJuly – SeptemberUnicode 17 and all 8,271 collation tests, exact Rats that spill to Num, the Mandelbrot from 6.83 s to 0.32 s, and big integers that stopped allocating.
  4. 4Four ways to run a programJuly – SeptemberInterpret, bundle, embed the tree, or compile to C++: correct by parity with the interpreter, slim binaries, and loops that compile while they run.
  5. 5Raku in a browser tab14 July – 17 SeptemberThe same engine as WebAssembly behind every editor on this site, and later a second route: Raku compiled to JavaScript.
  6. 6Other people's codeJuly – SeptemberTwo real programs, 3,068 course snippets, 10,428 Weekly Challenge solutions, the documentation, and the whole module ecosystem, each diffed against Rakudo.
  7. 7Slow programs, and what they pointed at11 July – 1 AugustControl flow that threw C++ exceptions, array reads that copied, decisions made once per node, and a campaign ranked by the profile.
  8. 8Parallel by default7 July – 28 SeptemberThe global lock came out in v3.0.0, after a memory model, ThreadSanitizer, a stress matrix and a livelock found in five minutes.
  9. 9Honest instruments9 August – 29 SeptemberSeven gates passed over a wrong hash; every gate then had to prove it could fail, and the battery turned out to be comparing Raku++ with itself.
  10. 10Smaller values, real frames9 August – 30 SeptemberWhat reading Perl 5 taught: a value from 344 bytes to 128, variables as slots, the cost of a result, and a lever per plan.
  11. 11Raku that travels24 July – 17 SeptemberA module installer, binaries that carry their modules or refuse to build, a C API with six languages on it, and Windows as a platform.
  12. 12RakuAST and slangs31 July – 17 SeptemberRakuAST as a view that costs the ordinary path nothing, Raku in fourteen natural languages, a formatter, and slangs that run for real.
  13. 13Roast, from 185 files to 1,4242 July – 30 SeptemberThe climb, the times it went down for the right reason, and the nine days from 803 files to every one of them.
  14. 14Against the reference compiler13 July – 30 SeptemberEvery release re-run on one machine, kernel by kernel, beside the Rakudo of its day.
  15. 15The tree-walker, 20% faster in a day30 SeptemberThirteen commits after v5.1.0: the gap to compiled code cut by a third to a half, and 100% of Roast kept after every one.