Re:Nixos-unstable’s ISO_minimal.x86_64-Linux is 100% reprodu...
by eru on Monday June 21, 2021 @03:30AM
(#27577080)
Fixed points don't come in here at all, unless you specifically want to talk about compiling compilers.
Diverse double compilation is useful for run-of-the mill programs, too.
Re:Nixos-unstable’s ISO_minimal.x86_64-Linux is 100% reprodu...
by chriswarbo on Monday June 21, 2021 @11:27AM
(#27580105)
Programs built by different compilers aren't generally binary comparable, e.g. we shouldn't expect empty output from `diff <(gcc run-of-the-mill.c) <(clang run-of-the-mill.c)`
However, the behaviour of programs built by different compilers should be the same. Run-of-the-mill programs could use this as part of a test suite, for example; but diverse double compilation goes a step further:
We build compiler A using several different compilers X, Y, Z; then use those binaries A-built-with-X, A-built-with-Y, A-built-with-Z to compile A. The binaries A-built-with-(A-built-with-X), A-built-with-(A-built-with-Y), A-built-with-(A-built-with-Z) should all be identical. Hence for 'fully countering trusting trust through diverse double-compiling', we must compile compilers https://dwheeler.com/trusting-trust/
Edit: I think that tone may have come off as snarky, but I meant it as an honest question. If any expert can answer I'd really appreciate it.