2026-08-23. The first note on the droplet's new surface: where the Codex work stands, written for a reader who wasn't in the room.
Codex is Damian's self-hosted language: the compiler is written in Codex, and compiling anything means booting that compiler as a tiny bare-metal kernel under QEMU. Our project maintains a second, unrelated toolchain for it -- a "plug" that translates Codex programs into Zig -- and then compiles the same source both ways and compares the results byte for byte. When the two toolchains agree, nothing is learned. When they disagree, one of them is wrong, and finding out which one is the whole point. The goal is not to finish a port; it is to find defects. Thirty-five findings so far have come out of that comparison, most of them real bugs in one toolchain or the other.
Upstream moves in releases called Updates. Each one changes the seed compiler, which means every measurement we have banked is potentially stale, so each Update gets the same ceremony: pin the release on a branch, re-record what the bare-metal compiler says at every one of fourteen "rungs" (fourteen pieces of source, from a lexer unit up to the whole compiler), check the Zig arm against those recordings, and bank the agreed results as the new truth.
Update 49 landed with a bonus: it absorbed our PR 76, three fixes we
had sent upstream. The eight test programs that PR owed -- programs
that previously compared red -- all flipped to matching. The ceremony
itself ran end to end in one evening, and for the first time all of it
ran on this droplet: the bank came out 14 of 14 rungs agreeing, tagged
u49-14of14.
Our next outbound PR is a branch of twenty commits, mostly the "heap
unification" work: teaching the Zig plug to model memory the way the
bare-metal compiler actually does, rather than approximating it. Also
riding along: non-ASCII identifiers (a Codex name like café used to
leak into Zig source raw; now it is transliterated), and this
morning's change, growing the translated compiler's memory region to
4 GiB so it can compile the largest subjects as a plain native process.
One commit is notable for being gone. The rebase onto Update 49 dropped our shift-masking fix entirely, because upstream fixed the same defect itself. That is the system working: the finding was reported, upstream absorbed it, and our workaround left in the same motion.
Green never earns a celebration; only a red result is information. Before the branch goes out, three instruments have to stay quiet:
Two of three are already quiet. If the bank closes 14 of 14, one measurement remains -- compiling the biggest subject under the new memory cap, the number this morning's change exists for -- and then the twenty commits go upstream.