This page is a draft. It describes Burroughs as of its latest release and may change.
Where it disagrees with the engine's own documentation or CHANGELOG, those win.
This series was drafted on 2026-10-26, and extended to v0.12.0 on 2026-10-29, from the repository's own records: the git history, CHANGELOG.md, the decision docs, the law corpus, and the GitHub issues. Figures are quoted from those sources. Where a source was not checked, the text says so or leaves the claim out.
The B5000 favored ALGOL. Burroughs favors Go.
Burroughs (burroughs.run) is a WebAssembly runtime written in pure Go, with no cgo and no dependencies outside the standard library. Its design is built around one guest language, Go. It runs any spec-conforming module correctly, and where a design tradeoff exists, Go wins. The name comes from the Burroughs Large Systems (the B5000, 1961), which were stack machines designed so that one high-level language would run best on them. Wasm is a stack machine too.
These posts cover how it was built, from an empty repository on 2026-07-30 to v0.12.0 on 2026-10-28: the engine, and also the unusual process wrapped around it. Three actors appear throughout:
Scott (Scott Friedman), the owner, who makes the decisions.
chat-Claude, who wrote the host contract and reviews the architecture, reached through Scott. When it issues rulings it is often called "the chair".
CC (Claude Code), the implementation agent, which writes the code and the reports.
Dates are the dated blocks in CHANGELOG.md. Three git tags carry a date one day earlier than their block: v0.7.0 (tagged 2026-10-08), v0.8.0 (tagged 2026-10-17) and v0.12.0 (tagged 2026-10-27).
Release
Date
Headline
v0.0.1
2026-07-30
Genesis: the contract, a section-level decoder, the dispatch measurements
v0.3.0
2026-08-11
gate:simd flips on, the first change to default behaviour
v0.4.0
2026-08-28
The MVP core suite is green and v0's twelve closure conditions are discharged
v0.5.0
2026-09-07
The v1 thread mechanisms land behind an off gate
v0.6.0
2026-09-18
The component model and the async ABI are on by default; WASI 0.3 guests run
v0.7.0
2026-10-09
Component values cross the public API in both directions
v0.8.0
2026-10-18
gate:cm-threads (component-model threads, phase 1) is on
v0.9.0
2026-10-21
A trap locks a component instance; Stop reaches threads inside long instructions
v0.10.0
2026-10-25
gate:threads flips on: core Wasm threads are admitted by default
v0.11.0
2026-10-26
The litmus battery reaches 19 of 19, and the v0.10.0 threads claim is corrected
v0.12.0
2026-10-28
A WASI preview-1 guest starts its own threads through the public paths; four Wasm 3.0 proposals are on by default
There is no v0.1.0 or v0.2.0. Post 2 explains why.
A dated record, written 2026-10-29. It is not updated as the project moves; the docs track the current release.
Drafted 2026-10-29 from the v0.12.0 tag, its CHANGELOG.md block, and the contract at that tag. Issue states are as read on that day and will move. Corrections welcome.
Post 10 described v0.12.0 as the next milestone, built around #1122 and Scott's goal: "Go->Wasm->Burroughs runs a Go program in all its glory on an engine that can." It shipped on 2026-10-28, the date of its CHANGELOG.md block (the tag itself is dated 2026-10-27 in Pacific time). The tag message names both halves: "guest-started threads, and four Wasm 3.0 proposals on by default."
In v0, every green had an outside judge. The upstream spec suite was written by people who had never heard of Burroughs, and it could disagree with the engine. That is contract §0's neutrality guarantee.
A dated record, written 2026-10-26. It is not updated as the project moves; the docs track the current release.
Drafted 2026-10-26 from the repository's records. Corrections welcome.
Concurrent code produces a particular kind of evidence: one red run in a few hundred, which doesn't come back when you re-run it. The cheap response is to push again and read the green as a refutation. Burroughs has a law against that ("A re-run green doesn't refute a fail — explaining the fail does"), and in the last week of October three investigations showed why.
For most of the threads phase, gate:threads sat behind a condition Scott had set, which the brief quoted word for word: the default flips when #586 is resolved and the §4 battery covers what the default would then promise. The brief adds that "is a condition, not a deferral — the difference being that a reader can check whether it holds."
A dated record, written 2026-10-29. It is not updated as the project moves; the docs track the current release.
Drafted 2026-10-26 from the repository's records, and revised 2026-10-29 after v0.12.0 shipped: its section is cut down to a pointer to post 11, and the sentences v0.12.0 overtook are changed. Issue states are as read on the day each says and will move. Corrections welcome.
When this post was drafted, the next milestone was v0.12.0 guest-started threads, built around #1122 and Scott's goal that "Go->Wasm->Burroughs runs a Go program in all its glory on an engine that can." It shipped on 2026-10-28, and post 11 covers what it delivered and what it did not.
v0.4.0 (2026-08-28) closed v0, and its release note said firmly: "it is not v1. … v0 closing means v0's conditions are discharged, not that the next phase has begun." That was true when written: none of the §§2–5 threads work had started. Two days later it had.
A dated record, written 2026-10-26. It is not updated as the project moves; the docs track the current release.
Drafted 2026-10-26 from the repository's records. Corrections welcome.
Post 3 described the governance machinery at its best. This one is about its tendency to grow. Every grave produced a law, every law could fail, and every way a law could fail looked like it needed a control. Left alone, a process built on "check the checker" will happily spend its time checking.
A dated record, written 2026-10-26. It is not updated as the project moves; the docs track the current release.
Drafted 2026-10-26 from the repository's records. Corrections welcome.
Most of Burroughs' record is not code. On 2026-10-26 the tree held 106 decision records, eleven "law" families of about 5,600 lines, and a changelog of about 19,500 lines. The tracker held 168 issues labelled type:grave, plus 4 PRs carrying the same label. This post is about why an engine project produced that much text. Some of it is very good practice. Some of it, as the next post shows, got out of hand.