4 ms·
Historically, major causes for non-determinism was embedded timestamps and unsorted file listings created by the build tools. I have not followed the progress
by 0points 2y ago
Historically, major causes for non-determinism was embedded timestamps and unsorted file listings created by the build tools.
I have not followed the progress recently, but https://reproducible-builds.org/ https://reproducible-builds.org/ is a starting point if you are interested.
There is a sane path forward for reproducibility on bare metal, no custom emulation is needed.
- vessenes 2y agoThanks for the link, I’m aware of reproducible-builds.org. Both your causes seem trivially fixable here - the QEMU builds could have a standard system clock time they start with, and an ‘unsorted’ file listing made in a deterministic OS environment will keep the same file order, no? By comparison the rb.org site says you need to start with stripping all that stuff out of your build process, for the reasons you refer to.
- repelsteeltje 2y ago> Both your causes seem trivially fixable here [] You'd be amazed about the amount of indeterminsim lurking in the guts of depencies all the way into libc and os ... Like locale, fs
- commercialnix 2y agoI like your thinking. Deterministic replay with QEMU is supplemental to the larger goal of reproducible builds. The communities concerned with the topic of reproducible software not only expect cohesive human-readable code that runs deterministically to produce binary reproducible results, but their originally stated goals require it. Deterministic replay with QEMU is a "power tool" in the larger picture of these efforts.