pca006132 parent
While I think the OP did not mean the compilation process is nondeterministic, I won't be surprised if it is actually non-deterministic.
A lot of algorithms and data structures rely on nondeterminism for performance or security (by default). It is too easy to introduce nondeterminism accidentally, and it is tempting to use that to speed up algorithms.
Also, if it relies on floating point, results on different machines and environments may be different (depending on libm and hardware implementation), which is, in some sense, nondeterministic.
> A lot of algorithms and data structures rely on nondeterminism for performance or security (by default). It is too easy to introduce nondeterminism accidentally.
You don't know what you're talking about - no compiler engineer in their right mind would intentionally use a randomized algorithm in a compiler. It's a bug every single time and it gets squashed immediately.
They won't use it intentionally, but it is not like it can never happen. E.g., https://reproducible.nixos.org/nixos-iso-minimal-r13y/ is still only 96.59% reproducible.