crier — the project dispatch·from the bare metal up·42 repositories
Modus‑Lisp
A personal computer written from scratch in Common Lisp — a kernel
that boots on bare hardware, and above it a desktop, a browser, a text rasterizer, a TLS stack
and forty other libraries, each written as though the operating system underneath might not be
there. On the machine this is aimed at, it isn't.
the weekly
This Week in Modus
What moved, across every repository in the workspace, and why it was hard. Every claim
comes out of the commit log, and where one reaches outside it the method note at the foot of
the issue says so — along with what was measured and what was left out. Numbering
runs from the project's first working week, so
№ 1 is in March 2025 and the count is the number of weeks that have had commits in
them. Every week of the project has an issue.
The compiler leaves no fingerprint of the machine that ran it. A 32-bit
image builds a 64-bit one that is bit-identical to the 64-bit build's, checked by five
SHA-256 comparisons across three architectures —
№ 4. The whole self-hosting loop runs with no host
Lisp in it at all — № 20.
Nothing is graded by the thing that wrote it. The Common Lisp is measured
against a conformance suite written by somebody with no stake in it, through a harness rebuilt
after it was caught losing 17,587 tests in silence
(№ 6). Fonts are checked against
ttx and HarfBuzz, the Bitcoin engine against Bitcoin Core's own compiled library
at zero divergence (№ 15), the video encoder
against libvpx, the SVG renderer against Chromium. New libraries build the oracle before they
build the feature (№ 17).
One C library, in one file. Putting pixels on a hosted operating
system's screen means asking its window server, so
glass-sdl binds libSDL2 — and that
is the only third-party native library the workspace links, alongside two POSIX calls where a
hosted Lisp has to ask the host. The other foreign code in the tree is oracles: Core's
library, Chromium, ffmpeg, linked so the implementations can be told they are wrong.
for machines
The same archive, without the page
Legibility is the argument this project makes about software, so it would be strange to
make the archive itself awkward to read. Every issue has a Markdown mirror at its own address
with index.md on the end — same text, no chrome. The rest is where a
machine would look for it:
/feed.xml — Atom, one entry per issue,
each pointing at both the page and its Markdown.
/llms.txt — the whole archive as one
annotated index, in the llms.txt convention.
/index.json — the ledger: every issue
with its number, date span, commit count, repositories touched, and both URLs.
None of it is written by hand. bin/mirror reads the site's own HTML back and
regenerates the lot, so the mirrors cannot drift from the pages they mirror;
bin/mirror --check fails if they have.
42 repositories, one machine
The workspace
Each piece is a library in its own right, clean-room and in portable Common Lisp, and each
is used by something else here rather than written to be admired. They are grouped by what they
are for; the dependencies run mostly downward, and occasionally sideways in ways worth
noticing — the B-tree under the Bitcoin node is also the B-tree under the filesystem
that a git repository lives in.
A bare-metal Lisp operating system. Boots on hardware or QEMU into a REPL with
networking, SSH and crypto, on a portable VM targeting nine architectures.
A delta protocol rather than a renderer: keyed, budgeted, staleness-annotated
updates over typed projections, with a separate encoding per consumer. A browser's DOM
and a stream of tokens are peer encodings; neither is privileged.
A clean-room TLS 1.3 and 1.2 client, and since August the workspace's one
HTTP and WebSocket client — it absorbed four hand-rolled ones, including the last
library here that was reaching for OpenSSL.
A hierarchical filesystem — inodes, directories and contents in one
pagetree keyspace. It exists so that things which expect a filesystem can run where
there is no filesystem.
git from scratch — object model, packfiles, index, merge, and both
transports, validated against real git. It can keep a repository inside a cabinet, which
is how kiln clones this whole organisation with no git binary in the image.
DEFLATE and zlib, with Z_SYNC_FLUSH for streaming. The
workspace's compression: scribe, glass, pigment and cairn all dropped third-party codecs
for it.