On Fri, Nov 17, 2023 at 3:29 PM Bernhard M. Wiedemann <bwiedem...@suse.de> wrote: > > Parallel builds with guile-3.0.9 still introduce non-determinism
I recently learned that the cross-module inlining optimization pass is a source of nondeterminism. If module A imports module B, inlining of procedures from B into A may occur *if* B has already been compiled. Depending on the value of n in `make -j $n` you will likely get a different build. While working on Guile Hoot, I encountered a bug on my machine that Andy Wingo couldn't reproduce on his. Turns out it was because my `make -j6` build was different from his `make -j32` build. I don't recall the details but apparently Guile's bootstrap process takes great care to avoid sequencing issues like this. I don't know what the solution might be, though. I want parallel *and* reproducible builds! - Dave