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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.