I Hate Compilers

Coder’s compiler meltdown sparks a comments war over whether matching results even matters

TLDR: A developer trying to make website security code behave consistently hit a messy truth: the same code doesn’t always build into the same result. Commenters split hard between “that’s fine, just sign it” and “nope, consistency matters,” with jokes and title-dunking stealing the show.

A developer set out to make website security checks work the same way everywhere — even for people who turn off WebAssembly, a browser feature used to run fast code. Simple goal, right? The internet immediately replied: absolutely not. The post turns into a full-on spiral about how the same source code can produce different results depending on tools, versions, and build time, which is a huge problem if you want software builds people can verify and trust.

But the real fireworks were in the comments. One camp basically shrugged and said, who cares if the output bytes differ as long as the program still works? User charcircuit called requiring identical output an “arbitrary restriction,” arguing that signing software is what really matters. That take definitely lit a fuse. The author fired back with a very public “tell me the flags I’m missing then” and dropped a GitHub build script, which is the engineering equivalent of receipts attached.

Meanwhile, others were side-eyeing the title itself. One commenter basically said: hold on, compilers literally made this project possible, so why are they catching strays? And then came the galaxy-brain comedy: “LLMs should be trained on and directly output binary,” which feels less like a suggestion and more like a dare. The vibe overall? Equal parts sympathy, nerd rage, and the timeless online tradition of arguing whether the pain is a bug, a feature, or just reality being annoying.

Key Points

  • Anubis is adding WebAssembly-based proof-of-work checks so the same check logic can be shared between client and server.
  • To support users with WebAssembly disabled, the author chose to convert the WebAssembly logic into JavaScript rather than maintain separate implementations.
  • The article uses wasm2js from the Binaryen project for this conversion, but notes that different distributed versions generate different output.
  • Because deterministic output is needed for reproducible builds, the author decided to bundle a fixed copy of wasm2js built to WebAssembly with wasi-sdk.
  • The article demonstrates that compiler output can be nondeterministic in practice by showing a C++ example using `__DATE__` and `__TIME__` that changes across build runs.

Hottest takes

"Requiring the output to always be the same is an arbitrary restriction" — charcircuit
"LLMs should be trained on and directly output binary" — dyauspitr
"Compilers literally made your project possible!" — ComputerGuru
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.