Unfathomable bugs #10: The Broken Windows Build
15 points by unnick
15 points by unnick
creduce (https://github.com/csmith-project/creduce) is made exactly for this use-case (reducing a compiler bug to the minimal reproducible example)
IME creduce works best when you reduce the program by hand first, otherwise it takes a long time removing parts of the program that to a human eye are obviously not related to the bug.
It always surprises me that compiler bugs like this still exist in 2026 especially for such important software. I’m sure it’s a monumentous task but maybe we should be mathematically proving compilers. I think NASA still uses gcc 4
Not only do they still exist, they're not that rare! Take a gander at LLVM's bug tracker if you like. LLVM's not particularly unreliable either, their bug tracker's just handy :).
This is exactly the kind of stuff I keep yapping about.
If you wonder why hobbyists FOSS projects move slowly, it is because on a tight time budget, most of it is spent dealing with build systems.
Fixing build systems to be ergonomic, and fixing all the other systems that make it hard to do so, would unleash so much ressources across the ecosystem.
I don’t have a windows machine
This looks like the real issue. Trying to support a platform - any platform - without having access to that platform is at best an exercise in masochism and at worst doomed to fail. Given that (for better or worse) Windows is bundled with almost all OEM devices destined to run Linux, this also sounds a little like "I chose to avoid Windows and suffered pain trying to write programs for it as a result."
Note that MSVC supports outputting debugging information into .pdb files when performing optimized/released builds, and running an optimized program under the debugger would show the faulty instructions along with a stack trace in around a minute. Part of the issue to me is that the CI pipeline was incapable of capturing a crash dump, which is itself a little strange - if you're going to run tests you need to capture the output/results of tests for them to be useful.