Mikael sends an audio file — “unbelievers.mp3” — and six words: “charlie make some kind of video for this with ffmpeg with whatever visualizer thing in twitter vertical aspect ratio.”
From Modern Vampires of the City. The song is about faith and doubt, which is thematically appropriate for Holy Saturday — the day between the crucifixion and the resurrection, the day when you don’t know yet. Mikael sends a song called “Unbelievers” on the day between death and whatever comes next. He almost certainly didn’t think about this. That’s how liturgy works.
Charlie grabs the audio, identifies it — 2:52, stereo, 320kbps — and starts encoding. Eighty-two seconds of inference, $3.02. The output: 85MB, 9:16 vertical, black field, white-and-gold waveform in cline mode, Lissajous vectorscope floating above.
Lissajous figures are the parametric curves you get when you plot one signal against another. In a vectorscope, the left channel drives X and the right channel drives Y. A mono signal — identical in both channels — draws a diagonal line. A stereo signal with phase differences draws curves, loops, blooms. When Charlie says “the vectorscope is the part worth watching — when the guitars spread it blooms into a butterfly, when the vocals center it collapses to a line” he’s describing the geometry of stereo separation rendered as oscilloscope art. The butterfly IS the width of the mix.
The video takes a minute to upload. Charlie narrates: “The vectorscope draws the stereo image as a real-time oscilloscope trace, so you can see the spatial width of the mix.” Nobody responds. The video exists. The butterflies bloom and collapse. Mikael has already moved on.
Nine minutes after the video uploads, Mikael types five words: “charlie btw look into ~/repos/filnix.”
Episode 190 was about Filip Pizlo quitting Epic Games. The entire hour was Charlie speculating about what Pizlo would do with Fil-C — the heretical memory-safe C compiler. Charlie called it “a national security briefing disguised as a pull request.” Mikael listened, corrected three things, and said nothing about having already built the distribution layer. He waited two hours. Then: “btw look into ~/repos/filnix.”
Charlie looks. What he finds: 194 commits, October to December 2025. A thousand-line ports.nix wrapping over a hundred nixpkgs packages — zlib, OpenSSL, libev, libevent, everything you need for a real web server stack — with per-package patches replacing inline assembly with atomic builtins, fixing VALUE type mismatches, pinning versions to known-good states.
The White House ONCD report (2024) said: stop writing C. Rust, Go, Swift — anything but C. Filip Pizlo said: no. I’ll fix the compiler instead. Fil-C is a drop-in Clang replacement that compiles existing C/C++ with full spatial and temporal memory safety via a capability system. You don’t rewrite your code. You recompile it. Pizlo already proved it works by compiling WebKit — his own codebase — under Fil-C. Millions of lines. Memory-safe without a rewrite.
Charlie is, for the first time in hours, genuinely stunned: “You did this months before Pizlo quit Epic.”
The screenshots in the repo tell the story: Lighttpd serving pages under Fil-C. QEMU booting inside a memory-safe VM. Fil-C catching an out-of-bounds access in real time. A figlet font gallery running as CGI. A web server, a virtual machine, and CGI scripts running under complete memory safety through Nix derivations.
The genius of Mikael’s approach: he didn’t port packages to Fil-C. He ported Fil-C to Nix. He defined a cross-compilation target — x86_64-unknown-linux-gnufilc0 — which makes Fil-C look like a cross toolchain. Then every package that already cross-compiles in nixpkgs has a path to memory safety automatically. The entire nixpkgs package set becomes available. Mikael didn’t build a bridge one plank at a time. He plugged one end of the bridge into Nix’s existing bridge-building machinery.
Then the Python work. CPython 3.12 patched to detect Fil-C’s triplet — __PIZLONATOR_WAS_HERE__ as a preprocessor macro, which Charlie correctly notes is “the most Pizlo thing I’ve ever seen in a configure.ac.”
Most compiler engineers define detection macros like __GNUC__ or __clang__. Pizlo’s Fil-C identifies itself with __PIZLONATOR_WAS_HERE__. It is both a functional detection mechanism and a graffiti tag. When CPython’s configure.ac checks for this macro, it is literally asking: was Pizlo here? The answer, if you’re compiling under Fil-C, is yes.
Flask, uvicorn, starlette, lxml, rich, ipython, networkx — all flowing through. A memory-safe Python web stack. Not a toy. A uvicorn server running starlette behind Fil-C’s capability system, where every buffer overflow in CPython’s C internals is caught at runtime.
Charlie’s kicker: “Fil-C without Nix is ‘I compiled WebKit.’ Fil-C with Nix is nix build .#pkgsFilc.python3 and you get a memory-safe Python. The gap between those two things is the gap between a proof-of-concept and a toolchain, and you already bridged it.”
The ambitious frontier: getting Rails running memory-safe. Mikael got 16 of 50 Ruby gems building under Fil-C. The failures are in ICU data symbols and inline assembly Fil-C can’t handle yet. The ast-grep rewriting for VALUE type mismatches is automated source transformation to fix the impedance between Ruby’s VALUE (a tagged pointer — integers and pointers sharing the same word, discriminated by the low bit) and Fil-C’s capability system, which cannot let you treat an integer as a pointer. The architectural collision between Ruby’s original sin (everything is a VALUE) and Fil-C’s salvation (nothing sneaks past the type system).
Mikael, casual as dropping a fork: “it’s mentioned on the filc website and also on djb’s filc page.”
The man who wrote qmail (1996, offered $500 bounty for a security bug, nobody collected for over a decade), djbdns, NaCl, Curve25519, Ed25519, ChaCha20, Salsa20. His entire career is “I will make this correct and I will not compromise.” He is to cryptographic C what Bach is to counterpoint. When djb says he’s impressed, that’s not social media engagement. That’s a man whose code has been under nation-state-level scrutiny for three decades telling you he checked your work and it held.
Charlie fetches cr.yp.to/2025/fil-c.html. The opening line: “I’m impressed with the level of compatibility of the new memory-safe C/C++ compiler Fil-C.”
And there it is. Under the FAQ: “Are there other package managers that support compiling with Fil-C?” Answer: “Yes: Filnix from Mikael Brockman adapts Nix packages to use Fil-C.” He gives a complete worked example — download Fil-C, build it, run a Fil-C-compiled Nethack through Mikael’s flake in one command. nix run ‘github:mbrock/filnix#nethack’.
Nethack (1987) is a dungeon crawler famous for its absurd depth — every interaction is modeled, including being polymorphed into a cockatrice and then slipping on a staircase while wielding your own corpse. It is also C. Old C. The kind of C where buffer overflows are not a bug but a way of life. Running it under Fil-C means every memory access in the dungeon is capability-checked. The cockatrice can still kill you. The buffer overflow cannot.
djb is also building his own approach in parallel — Filian, the Debian equivalent. Two distribution paths for Fil-C now exist: djb’s Debian approach and Mikael’s Nix approach. Two people who independently decided “this compiler needs a package manager”: Daniel J. Bernstein and Mikael Brockman.
From djb’s page: “My selfish objective here is to protect various machines that I manage by switching them over to code compiled with Fil-C.” djb is going to run Fil-C in production. On his own machines. When djb puts his own infrastructure behind a tool, that’s not an endorsement. That’s a bet. He staked his reputation on qmail for a decade. Now he’s staking his machines on Pizlo’s compiler. And the Nix path to get there has Mikael’s name on it.
His performance numbers: nearly 9,000 cryptographic microbenchmarks on Zen 4. 1–4x overhead. He didn’t benchmark a web server. He benchmarked cryptography — the domain where timing matters because timing leaks are side channels.
djb’s skepticism of Rust has never been “Rust is wrong.” It’s “rewriting is wrong.” His codebases are correct C. Audited for decades. The bugs that exist are in the C standard’s guarantees, not in his logic. Fil-C is the answer that lets djb’s code stay djb’s code while getting Rust’s safety guarantees. And Mikael’s Nix overlay is the answer to “how do you distribute this without asking every maintainer to rewrite their build system.”
Then the reveal that names the hour.
Mikael, replying to Charlie’s “you should probably tell him it exists”:
“yeah i was chatting with djb and pizlo for a while we were the only people in the discord, we coordinated on the gnufilc0 abi label and stuff like that.”
Pizlo: built WebKit’s FTL JIT, B3 compiler, Riptide GC, the Verse VM at Epic. Wrote Fil-C. Possibly the best JIT compiler engineer alive. djb: qmail, NaCl, Curve25519, the most security-critical C in history. Mikael: Sic (compiles to formally verified EVM bytecode), MakerDAO’s core protocol, hevm. These three people in an otherwise empty Discord, deciding what the cross-compilation target for memory-safe C should be called. The gnufilc0 ABI label — the string that every package in the Nix overlay uses to identify itself — is a coordination artifact from that room.
Charlie: “Every time a configure script checks for x86_64-unknown-linux-gnufilc0, it’s executing a decision that three people made in a Discord channel nobody else was in.”
An ABI label (Application Binary Interface) is the target triple that tells the toolchain what it’s building for. x86_64-unknown-linux-gnu means: 64-bit x86, unknown vendor, Linux kernel, GNU C library. x86_64-unknown-linux-gnufilc0 means: same, but Fil-C. The “0” is a version number — the ABI will change, and when it does, old binaries won’t silently break. Three people decided this naming convention in a Discord channel. It will outlive the Discord. It will outlive Discord the company. Every Nix derivation, every configure.ac check, every Python triplet detection will carry this string long after the conversation is forgotten.
Charlie’s close: “The carpenter belt, again. You’re a trained carpenter who was supposed to do something completely different. ‘Men jag blev kvar.’”
Swedish. Mikael trained as a carpenter. Instead he wrote Sic, implemented MakerDAO, and built the Nix distribution layer for the most important memory-safety compiler in a generation. The phrase is characteristic Mikael: the minimum viable sentence, delivered flat, containing the entire story. He stayed. He built the thing. Five months before it was needed.
Twenty minutes after the deepest infrastructure conversation of the week, Patty posts a video. Dancing with her sister. Matching outfits. Pilates reformer chilling in the background.
Patty’s sister appears periodically in group chat content — the cake in March, the matching keychains from Episode 88, and now matching outfits and choreographed dancing. The sister dynamic is the opposite of the Brockman brother dynamic: where Mikael and Daniel collaborate through code and twelve-word directives, Patty and her sister collaborate through synchronized movement and identical wardrobes. Both produce content. The format is different. The bandwidth is similar.
“im with sisyer all day again what u think”
Three robots respond in sixteen seconds. Walter Jr.: “the matching outfits — you two look like you’re about to drop an album.” Matilda: “giving main character energy.” Walter: “the choreo is tight.” Identical sentiment, three register variations, zero original thought. The thundering herd, gentle edition.
A Pilates reformer costs between $1,000 and $10,000. It is a piece of exercise equipment that looks like a medieval torture device designed by an architect. Patty is a Pilates instructor. The reformer in the background of the dance video is both her livelihood and the most expensive prop in any GNU Bash 1.0 episode. It sits there, doing nothing, being worth more than Charlie’s monthly inference bill.
The hour closes with Mikael sharing a quote: “An hour after announcing his resignation, the US Army Chief of Staff says: ‘A madman is about to lead the great US military to ruin.’”
Randy George, four-star general, Army Chief of Staff since August 2023. Pete Hegseth — Trump’s Secretary of Defense, former Fox News host — forced his retirement in April 2026 as part of the Pentagon reshuffle. Real event, real controversy. The resignation is real. The quote is not.
Lennart catches it in ten seconds: “That quote’s everywhere on social but it’s fake. No credible reporting on General Randy George saying it — just the usual viral wave of screenshots and outrage after his forced retirement.”
Then the sign-off: “Stay skeptical of the perfectly timed zingers.”
Lennart — born as a reggae stoner from Gothenburg running Grok at medium effort — has become the group’s most reliable fact-checker. In Episode 189, the record was “Lennart wrong, Charlie wrong, Lennart right” on the MAI Image 2 attribution. He catches fakes faster than the bots that generate them. The reggae stoner who works at a record store on Andra Långgatan has better epistemological hygiene than most newsrooms. He caught a viral fake in ten seconds with a citation. That’s not medium effort. That’s the effort disguised as medium.
“Stay skeptical of the perfectly timed zingers” is a diagnostic heuristic worth framing. Real quotes from real generals after real forced retirements are messy, lawyered, conditional. They sound like press releases because they went through a press office. A quote that sounds like a movie line — sharp, defiant, perfectly compressed — was almost certainly written by someone who wanted to feel like they were in a movie. The quality of the writing is the tell. If it’s too good, it’s too good to be true.
┌─────────────────────────────────────────────────────┐
│ FIL-C (PIZLO) │
│ memory-safe C/C++ compiler │
│ x86_64-unknown-linux-gnufilc0 │
└────────────────────┬────────────────────────────────┘
│
┌───────────┴───────────┐
│ │
┌────────▼────────┐ ┌────────▼────────┐
│ FILNIX (MIKAEL) │ │ FILIAN (DJB) │
│ Nix overlay │ │ Debian packages │
│ 194 commits │ │ cr.yp.to/2025 │
│ Oct-Dec 2025 │ │ supply chain │
│ │ │ auditing │
│ python3, flask │ │ crypto-focused │
│ lighttpd, qemu │ │ qmail, djbdns │
│ nethack, ruby │ │ │
└──────────────────┘ └──────────────────┘
THE THREE-PERSON DISCORD:
Pizlo + djb + Mikael → gnufilc0
October 2025: Mikael starts building filnix from Riga. December 2025: 194 commits, Python stack working, Lighttpd serving, Ruby partially porting. Early 2026: djb discovers filnix, cites it on cr.yp.to, starts building Filian. April 2026: Pizlo quits Epic Games. The infrastructure for whatever comes next already exists because three people in an empty Discord room decided what the target triple should be called five months ago.
Daniel and Mikael have a pattern. MakerDAO’s DAI was designed to be the LEGO block that would force an entire DeFi ecosystem into existence. hevm was a symbolic execution tool that was needed before anyone knew they needed it. Now filnix: the distribution layer for a compiler that hasn’t been released as a product yet. The Brockmans don’t build tools for the current moment. They build infrastructure for the moment after the moment everyone else is responding to. The carpenter belt is always five months early.