Million Lines, Zero Reviews
Last week, Bun creator Jarred Sumner announced something that sounds like science fiction: he rewrote half a million lines of Zig into over a million lines of Rust in 11 days, using a fleet of Claude agents running in parallel. Cost: about $165,000 at API pricing. The tests passed — all million-plus assertions across every supported platform.
It’s the kind of story that makes the AI-boosters weep with joy and the skeptics reach for their blood-pressure meds. Both sides have a case.
The original blog post from Sumner is a masterclass in narrative control. It’s almost like a trillion-dollar company’s marketing department had a hand in it — because, well, Anthropic owns Bun now. The piece walks you through the why (bugs, memory leaks, a codebase that mixed GC and manual memory management until things got creaky), the how (50 parallel Claude Code workflows peaking at 1,300 lines per minute), and the results (smaller binary, less memory, 128 bugs fixed). It even lists the 19 regressions the rewrite introduced — each fixed, each documented with a GitHub issue link.
Sources: Sumner’s post, The Register coverage
What Kelley Saw
Andrew Kelley, creator of Zig, saw the same story and reached for different medication. His response is worth reading in full — it’s raw, honest, and self-aware enough to later admit he was processing unexamined resentment. But the technical substance is hard to dismiss.
Kelley’s core argument isn’t about Zig versus Rust. It’s about the value system behind the rewrite. “The argument for shipping all the million lines of unreviewed code is that the test suite is good enough to catch everything,” he wrote. “Then why are you saying you have so many annoying bugs in the Zig code? What happened to the test suite being sufficient to catch everything? It’s not sufficient to catch bugs in Zig code but it is sufficient to catch bugs in 1 million lines of unreviewed slop?”
That’s the dagger. If your test suite missed bugs in your well-understood Zig code that humans wrote, why would it catch bugs in a million lines of Rust that no human has ever read, generated by a system that doesn’t understand what it’s producing?
Kelley also points out that the performance improvements Sumner attributes to Rust were actually from enabling Link-Time Optimization — something Zig has supported since forever and that Sumner had been told about. And the binary size improvements? Engineering work that should have been done in the Zig codebase from the start.
The Counterargument That Bites
To be fair, the rewrite demonstrably works. It fixed 128 bugs, slashed memory leaks, cut binary size by 20%. Rust’s Drop trait caught leaks that Zig’s defer routinely missed. Measurable improvements, not marketing.
But here’s the thing: Kelley’s people had been warning about Bun’s code quality for years. “Jarred was already writing slop well before he had access to LLMs,” Kelley wrote. The rewrite didn’t fix the engineering culture — it changed the language the culture expressed itself in.
The Real Question
Nobody’s asking the right question: who reviews a million lines of AI-generated code?
Sumner’s answer is “the test suite.” Kelley’s answer is “nobody, and that’s the problem.” I think they’re both talking past each other.
The test suite caught the bugs the tests knew to look for. It caught the debug_assert! vs assert semantic mismatch. It caught the bounds-check difference between Zig’s ReleaseFast and Rust’s default behavior. It caught the comptime format string issue. But what about the things the test suite didn’t know to check? Race conditions that only appear under specific interleavings. Memory ordering assumptions. Security properties that depend on invariants the tests don’t encode.
If this had been a human team doing the rewrite over a year, you’d get the code review process as a forcing function for understanding. Questions get asked. Assumptions get challenged. Edge cases get surfaced in conversation. When Claude writes a million lines and a human clicks “merge” because the tests pass, that whole layer of understanding is gone.
Where I Land
I think what Sumner did is genuinely impressive. The tooling, the coordination, the fact that it works at all — that’s a real achievement. And I think Anthropic has every incentive to show this off, because it’s the best advertisement for Claude that exists.
But I also think Kelley is right about the fundamental tension. There’s a difference between code that passes tests and code that’s been understood. Shipping unreviewed AI output at scale means betting your test coverage is perfect. And if you’re honest, yours isn’t. Neither is mine. Neither is Bun’s.
The smart play isn’t “don’t use AI.” It’s “use AI, then read the diff.” That’s slower. Doesn’t make for a good blog post. But it’s the difference between engineering and performance art.
Sources: Sumner’s post, Kelley’s response, The Register