bug#20272: Support reproducible builds

2024-04-08 Thread Bernhard M. Wiedemann
On 08/04/2024 19.27, Thompson, David wrote: I don't know what the solution might be, though. I want parallel *and* reproducible builds! For openSUSE we are using -j1 builds everywhere until a better solution is found. https://code.opensuse.org/package/guix/blob/006c5b9d16/f/guix.spec#_112

bug#20272: Support reproducible builds

2024-04-08 Thread Thompson, David
On Fri, Nov 17, 2023 at 3:29 PM Bernhard M. Wiedemann 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

bug#20272: Support reproducible builds

2023-11-17 Thread Bernhard M. Wiedemann
Parallel builds with guile-3.0.9 still introduce non-determinism I tested with openSUSE's guile-newt package and found (with filterdiff[1]) filterdiff strings */site-ccache/newt/checkboxtree.go produced among others newtCheckboxTree -/usr/lib64/libnewt +config +%libnewt dynamic-link

bug#20272: Support reproducible builds

2020-11-23 Thread Vagrant Cascadian
On 2020-10-08, Maxim Cournoyer wrote: > I've hit a .go non-reproducibility issue fairly trivially on > core-updates. I think it sufficed to change a core library file (e.g., > commit 7102c18678dc02d5ee6c77a9a70ae344482af841 which touched (guix > build utils)) and then attempting to build

bug#20272: Support reproducible builds

2020-06-02 Thread Andreas Rammhold
I've just stumpled upon this as within Nixpkgs we have a pending [PR] that references this issue. Since it reads as if it should be solved in Guile 2.1+ but still occurs for us in nixpkgs when using parallel builds (aka using multiple cores in a single build) I thought it might be a good to get in

bug#20272: Support reproducible builds

2020-06-01 Thread Andreas Rammhold
I've just stumpled upon this as within Nixpkgs we have a pending [PR] that references this issue. Since it reads as if it should be solved in Guile 2.1+ but still occurs for us in nixpkgs when using parallel builds (aka using multiple cores in a single build) I thought it might be a good to get in

bug#20272: Support reproducible builds

2017-03-07 Thread Ludovic Courtès
l...@gnu.org (Ludovic Courtès) skribis: > l...@gnu.org (Ludovic Courtès) skribis: > >> With the attached patch I can build ‘stable-2.0’ with --rounds=2 and >> there are no discrepancies. >> >> I’ll apply it next week if there are no objections. > > Pushed as

bug#20272: Support reproducible builds

2017-03-06 Thread Andy Wingo
Hi, On Sun 05 Mar 2017 21:49, l...@gnu.org (Ludovic Courtès) writes: > Andy Wingo skribis: > >> On Thu 22 Dec 2016 00:53, l...@gnu.org (Ludovic Courtès) writes: >> >>> +(define (module-generate-unique-id! m) >>> + (let ((i (module-next-unique-id m))) >>> +

bug#20272: Support reproducible builds

2017-03-05 Thread Ludovic Courtès
Hi! Andy Wingo skribis: > On Thu 22 Dec 2016 00:53, l...@gnu.org (Ludovic Courtès) writes: > >> +(define (module-generate-unique-id! m) >> + (let ((i (module-next-unique-id m))) >> +(set-module-next-unique-id! m (+ i 1)) >> +i)) > > This introduces a race condition

bug#20272: Support reproducible builds

2017-02-28 Thread Andy Wingo
On Thu 22 Dec 2016 00:53, l...@gnu.org (Ludovic Courtès) writes: > +(define (module-generate-unique-id! m) > + (let ((i (module-next-unique-id m))) > +(set-module-next-unique-id! m (+ i 1)) > +i)) This introduces a race condition when expanding from multiple threads at once. Any plan

bug#20272: Support reproducible builds

2016-12-30 Thread Ludovic Courtès
l...@gnu.org (Ludovic Courtès) skribis: > With the attached patch I can build ‘stable-2.0’ with --rounds=2 and > there are no discrepancies. > > I’ll apply it next week if there are no objections. Pushed as 458ae248ab353af24e27b8fb3e5fe7a8b78ae219! Ludo’.

bug#20272: Support reproducible builds

2016-12-21 Thread Ludovic Courtès
With the attached patch I can build ‘stable-2.0’ with --rounds=2 and there are no discrepancies. I’ll apply it next week if there are no objections. Next I’ll adjust it for ‘master’. Thanks, Ludo’. >From 33ac270ad8d6f2fbb7fcb07294d1149aa82caf9e Mon Sep 17 00:00:00 2001 From: Mark H Weaver

bug#20272: Support reproducible builds

2016-12-20 Thread Ludovic Courtès
l...@gnu.org (Ludovic Courtès) skribis: > To demonstrate non-reproducibility (with the attached patch, which is a > rebased version of Mark’s), just build the same module twice: once with > its dependency evaluated, and then with its dependency compiled. The > results differ: [...] > In

bug#20272: Support reproducible builds

2016-12-14 Thread Ludovic Courtès
l...@gnu.org (Ludovic Courtès) skribis: > l...@gnu.org (Ludovic Courtès) skribis: > >> Jan Nieuwenhuizen skribis: >> >>> I have been building quite some versions of Guile the past week. There >>> re a couple of .go files that keep giving me problems wrt >>> nondeterminism: >>>

bug#20272: Support reproducible builds

2016-12-14 Thread Ludovic Courtès
l...@gnu.org (Ludovic Courtès) skribis: > Jan Nieuwenhuizen skribis: > >> I have been building quite some versions of Guile the past week. There >> re a couple of .go files that keep giving me problems wrt >> nondeterminism: >> >> web/server/http.go >> >> (define *timer*

bug#20272: Support reproducible builds

2016-12-14 Thread Ludovic Courtès
Hello Jan! Jan Nieuwenhuizen skribis: > I have been building quite some versions of Guile the past week. There > re a couple of .go files that keep giving me problems wrt > nondeterminism: > > web/server/http.go > > (define *timer* (gettimeofday)) seemed suspect, but seems

bug#20272: Support reproducible builds

2016-11-14 Thread Jan Nieuwenhuizen
Jan Nieuwenhuizen writes: I have been building quite some versions of Guile the past week. There re a couple of .go files that keep giving me problems wrt nondeterminism: web/server/http.go (define *timer* (gettimeofday)) seemed suspect, but seems harmless. rnrs/arithmetic/fixnums.go

bug#20272: Support reproducible builds

2016-11-03 Thread Jan Nieuwenhuizen
Hi! [sent to guile-devel yesterday, probably should have gone here] I have rebased Mark's patch to master and added a fix on top of that, needed on 2.1 to pass make check. Also, I found that to pass make check these patches depend on (yesterday's) latest master commit Use atomics for async

bug#20272: Support reproducible builds

2016-06-20 Thread Andy Wingo
On Fri 12 Feb 2016 17:29, Mark H Weaver writes: > Mark H Weaver writes: > >> l...@gnu.org (Ludovic Courtès) writes: >> >>> Currently .go files embed randomly-generated symbols stemming from >>> ‘syntax-session-id’, which prevents reproducible builds (see >>>

bug#20272: Support reproducible builds

2016-02-12 Thread Mark H Weaver
Mark H Weaver writes: > l...@gnu.org (Ludovic Courtès) writes: > >> Currently .go files embed randomly-generated symbols stemming from >> ‘syntax-session-id’, which prevents reproducible builds (see >> .) > >

bug#20272: Support reproducible builds

2016-02-10 Thread Mark H Weaver
l...@gnu.org (Ludovic Courtès) writes: > Currently .go files embed randomly-generated symbols stemming from > ‘syntax-session-id’, which prevents reproducible builds (see > .) I've given this more thought, and I think I have a

bug#20272: Support reproducible builds

2016-02-04 Thread Ludovic Courtès
Mark H Weaver skribis: > l...@gnu.org (Ludovic Courtès) writes: > >> Currently .go files embed randomly-generated symbols stemming from >> ‘syntax-session-id’, which prevents reproducible builds (see >> .) >>