bug#20272: Support reproducible builds
"Thompson, David" <[email protected]>
| Newsgroups | gmane.lisp.guile.bugs |
|---|---|
| Message-ID | <CAJ=Rwfbf98_4hvYQ6nFdRc4dpUK_UwmGe4FVjfx_BF4=yxnf4w@mail.gmail.com> |
On Fri, Nov 17, 2023 at 3:29 PM Bernhard M. Wiedemann <[email protected]> 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