3 ms·
> A compiler uses rigorous modeling and testing to ensure that generated code is semantically equivalent. Here are the reported miscompilation bugs in GCC so f
by petcat 7mo ago
> A compiler uses rigorous modeling and testing to ensure that generated code is semantically equivalent.
Here are the reported miscompilation bugs in GCC so far in 2026. The ones labeled "wrong-code".
https://gcc.gnu.org/bugzilla/buglist.cgi?chfield=%5BBug%20creation%5D&chfieldfrom=2026-01-01&chfieldto=2026-12-31&keywords=wrong-code&keywords_type=allwords https://gcc.gnu.org/bugzilla/buglist.cgi?chfield=%5BBug%20cr...
I count 121 of them.
- sarchertech 7mo agoIf you can’t understand the difference between a bug that will rarely cause a compiler encountering an edge case to generate a wrong instruction and an LLM that will generate 2 completely different programs with zero overlap because you added a single word to your prompt, then I don’t know what to tell you.
- petcat 7mo agoThe point is that expert humans (the GCC developers) writing code (C++) that generates code (ASM) does not appear to be as deterministic as you seem to think it is.
- sarchertech 7mo agoI’m very aware of that, but I’m also aware that it’s rare enough that the compiler doesn’t emit semantically equivalent code that most people can ignore it. That’s not the case with LLMs. I’m also not particularly concerned with non-determinism but with chaos. Determinism in LLMs is likely solvable, prompt instability is not.
- jplusequalt 7mo agoClassic HN-ism. To focus on the semantics of a statement while ignoring the greater point in order to argue why someone is wrong.
- petcat 7mo agoI argued the greater point? Software code-generation is not deterministic, whether it's done by expert humans or by LLMs.
- sarchertech 7mo agoIt has nothing to do with determinism. It's the difference between nearly perfectly but not quite perfectly translating between rigorously specified formal languages and translating an ambiguous natural language specification into a formal one. The first is a purely mechanical process, the second is not and requires thousands of decisions that can go either way.
- raw_anon_1111 7mo agoAnd that’s no different than human developers
- sarchertech 7mo agoThe difference is that a human is that a human can reason about their code changes to a much higher degree than an AI can. If you don't think this is true and you think we're working with AGI, why would you bother architecting anything all or building in any guard rails. Why not just feed the AI the text of the contract your working from and let it rip.
- raw_anon_1111 7mo agoYou give way too much credit to the average mid level ticket taker. And again, why do I care how the code does it as long as it meets the functional and none functional requirements?
- sarchertech 7mo agoBecause in a real application with real users all of the functional and non-functional requirements aren't documented anywhere but in the code.
- jcranmer 7mo agoCompilers are some of the largest, most complex pieces of software out there. It should be no surprise that they come with bugs as all other large, complex pieces of software do.
- Kye 7mo agoThis seems to apply easily to LLMs as language coprocessors that can output code. How long was it before people trusted compilers?
- sarchertech 7mo agoIf you don't understand the difference between something that rigorously translates one formal language to another one and something that will spit out a completely different piece of software with 0 lines of overlap based on a one word prompt change, I don't know what to tell you.
- deleted 7mo ago[deleted]
- anthonyrstevens 7mo ago"rigorously" is doing a lot of heavy lifting here.
- sarchertech 7mo agoLet's substitute rigorously with "in an extremely thorough, careful, and methodical way."