Skip to main content
Every version of CTRLRun was a specification before it was code: what it must do, the acceptance tests it is judged by, the public names it freezes, and what is deliberately out of scope. All six are still binding in full, and nothing in a later one relaxes an earlier one. They are written for somebody implementing against the kernel, and they are long: a hundred and eleven thousand words between them. So they live in the repository rather than on this site, where the pages are written for somebody using it. Read a concept page first; open a specification when you need the contract.

How to read one

Each is a delta. Start at the version that introduced what you care about, and read the sections it names in the earlier ones: the acceptance tests are numbered continuously (T1 onward), the public names are frozen in a numbered section per version, and a rule that moved says where it moved from. Two conventions worth knowing before you open one. MUST, MUST NOT and SHOULD are used in the RFC 2119 sense. And every specification carries a section on what building that version settled, including the defects an independent review found and what was done about each: those sections are the honest part, and they are where a reader learns what the document got wrong before it was right.

What is on this site instead

Next