4 ms·
This is in general only true for either trivial toy compilers or ones which have gone to lengths to have reproducible builds. GCC for instance uses a randomised
by codebje 2y ago
This is in general only true for either trivial toy compilers or ones which have gone to lengths to have reproducible builds. GCC for instance uses a randomised branch prediction model in some circumstances.
- shafyy 2y agoOk, but my understanding is that that they are mostly deterministic. And that there are initiatives like Reproducible Builds (https://reproducible-builds.org https://reproducible-builds.org) that try to move even more in that direction.
- Wowfunhappy 2y agoBut what does "mostly" mean? You can compile the same code twice and literally get two different binaries. The bits don't match. Sure, those collections of bits tend to do exactly the same thing when executed, but that's is in some sense a subjective evaluation. --- Szundi said in a sibling comment that I was "completely [missing] the point on purpose" by bringing up compiler determinism. I think that's fair, but it's also why I opened my post by saying "I agree [with the parent], but I want to try to define the language better." Most compilers in use today are literally not deterministic, but they are deterministic in a different sense, which is useful as a comparison point to LLMs. Well, which sense? What is the fundamental quality that makes a compiler more predictable? I'd like to try to find the correct words, because I don't think we have them yet.
- shafyy 2y agoI'm not an compiler expert, not by far. But my understanding is that if you compile the same code on the same machine for the same target, you'll get the same bits. Only minor things like timestamps that are sometimes introduced might differ. In this sense, maybe they are not deterministic. But I think it's fair to classify them as "determinstic" compared to LLMs.