Chapter 1 · 2–11 July

An engine on day one

The repository's first commit landed on 2 July 2026. It was already a working engine and already a compiler: a hand-written lexer, a recursive-descent parser, a tree-walking evaluator, a regex engine, exact big integers, generated Unicode tables, and a code generator that turned Raku into C++. On that day it passed 185 of Roast's 1,464 files completely.

49files in the first commit, 46,964 lines, a week of work behind it
185Roast files passing completely on 2 July (13%)
300when v0.1.0 was tagged on 10 July
0lines of the C++ typed by a person, then or since
The turnThe definition of correct was settled before any of the code was: Roast, the executable specification, plus the prose of docs.raku.org. Rakudo was the reference for how Raku behaves, never a source to copy. The first README already carried the motto: any compiler that can run Roast can officially be called a Raku compiler.

What was there

The first commit's architecture note describes the pieces as they still are:

That first build already passed some of every area: 40 of the Unicode files in full, 95% of their assertions, and 13 of the regex files.

A harness that runs on what it measures

The Roast harness, tools/run-roast.raku, is in the first commit too. It is written in Raku and run by rakupp itself, so the tool that measures the compiler runs on the compiler. Getting it to work needed process spawning with timeouts, directory listing and argument handling, which then paid off across the rest of the suite.

The first ten days

A principle noticed after the fact

"Rakudo is the reference, not the source" was not declared on the first day. It was simply what happened: there was never a need to open Rakudo's code, so nobody did. Only later was it written down as a rule. On 22 August, with the engine past 90% of Roast's tests, the project began studying other implementations at the design level: Perl 5, Rakudo and MoarVM among nine. Since then the rule has been to read designs and never port code, to take the semantics and implement them another way. Roast is still the only definition of correct.

Who wrote it

The whole of Raku++ was written without its author typing a line of its C++. The author described what was wanted, ran the tests and pointed at what was broken; an AI model wrote the code. The role is director and reviewer rather than typist, and the project is the argument that the role works.

The loop

The method has not changed since the first week, and every later chapter is this loop run on a different source of failures:

Find the failing thing, in Roast, in a real program, in the docs or in a corpus. Work out what Raku actually means. Make the smallest change that is right, not just one that turns a test green. Run the whole suite and diff the set of passing files. Keep the fixes that are correct even when the count dips. Write down what was not obvious.