GNU bug report logs -
#74909
[PATCH 0/3] Make guile-build-system packages reproducible.
Previous Next
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 74909 in the body.
You can then email your comments to 74909 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
guix-patches <at> gnu.org
:
bug#74909
; Package
guix-patches
.
(Mon, 16 Dec 2024 06:10:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
:
New bug report received and forwarded. Copy sent to
guix-patches <at> gnu.org
.
(Mon, 16 Dec 2024 06:10:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
This makes our guile-build-system packages reproducible, working around a
defect in Guile that introduces non-determinism in the byte code depending off
the order the files get loaded/byte-compiled (IIUC).
Maxim Cournoyer (3):
build/guile-build-system: Remove trailing #t in phases.
build/guile: Disable parallel build for now.
build/guile-build-system: Fix byte-compilation warnings.
guix/build-system/guile.scm | 11 +++++++++++
guix/build/guile-build-system.scm | 22 +++++++++++-----------
2 files changed, 22 insertions(+), 11 deletions(-)
base-commit: 3a8e19a61d785ba651c63a3a5991a6e6dcfba9cb
--
2.46.0
Information forwarded
to
maxim.cournoyer <at> gmail.com, guix-patches <at> gnu.org
:
bug#74909
; Package
guix-patches
.
(Mon, 16 Dec 2024 06:30:04 GMT)
Full text and
rfc822 format available.
Message #8 received at 74909 <at> debbugs.gnu.org (full text, mbox):
Following discussions in bug #74204.
* guix/build-system/guile.scm (guile-build): Add a #:parallel-build? flag,
defaulting to #f for now.
(guile-cross-build): Likewise.
* guix/build/guile-build-system.scm (build): Honor it.
Change-Id: Ibf12ac098e9dcea83da7b9685796e501df606c6c
---
guix/build-system/guile.scm | 11 +++++++++++
guix/build/guile-build-system.scm | 6 +++++-
2 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/guix/build-system/guile.scm b/guix/build-system/guile.scm
index ee59bb15f2..df6988a1b7 100644
--- a/guix/build-system/guile.scm
+++ b/guix/build-system/guile.scm
@@ -85,6 +85,10 @@ (define* (guile-build name inputs
(source-directory ".")
not-compiled-file-regexp
(scheme-file-regexp %scheme-file-regexp)
+ ;; FIXME: Turn on parallel building of Guile modules by
+ ;; default after the non-determinism issues in the Guile byte
+ ;; compiler are resolved (see bug #20272).
+ (parallel-build? #f)
(compile-flags %compile-flags)
(imported-modules %guile-build-system-modules)
(modules '((guix build guile-build-system)
@@ -101,6 +105,7 @@ (define* (guile-build name inputs
#:source-directory #$source-directory
#:scheme-file-regexp #$scheme-file-regexp
#:not-compiled-file-regexp #$not-compiled-file-regexp
+ #:parallel-build? #$parallel-build?
#:compile-flags #$compile-flags
#:phases #$phases
#:system #$system
@@ -132,6 +137,11 @@ (define* (guile-cross-build name
(source-directory ".")
(scheme-file-regexp %scheme-file-regexp)
not-compiled-file-regexp
+ ;; FIXME: Turn on parallel building of Guile
+ ;; modules by default after the non-determinism
+ ;; issues in the Guile byte compiler are resolved
+ ;; (see bug #20272).
+ (parallel-build? #f)
(compile-flags %compile-flags)
(imported-modules %guile-build-system-modules)
(modules '((guix build guile-build-system)
@@ -159,6 +169,7 @@ (define* (guile-cross-build name
#:source-directory #$source-directory
#:scheme-file-regexp #$scheme-file-regexp
#:not-compiled-file-regexp #$not-compiled-file-regexp
+ #:parallel-build? #$parallel-build?
#:compile-flags #$compile-flags
#:inputs %build-target-inputs
#:native-inputs %build-host-inputs
diff --git a/guix/build/guile-build-system.scm b/guix/build/guile-build-system.scm
index 37a1654ce4..b497573c0a 100644
--- a/guix/build/guile-build-system.scm
+++ b/guix/build/guile-build-system.scm
@@ -145,6 +145,10 @@ (define* (report-build-progress total completed
(define* (build #:key outputs inputs native-inputs
(source-directory ".")
(compile-flags '())
+ ;; FIXME: Turn on parallel building of Guile modules by
+ ;; default after the non-determinism issues in the Guile byte
+ ;; compiler are resolved (see bug #20272).
+ (parallel-build? #f)
(scheme-file-regexp %scheme-file-regexp)
(not-compiled-file-regexp #f)
target
@@ -205,7 +209,7 @@ (define* (build #:key outputs inputs native-inputs
(string-append source-directory "/" file)
flags)))
source-files)
- #:max-processes (parallel-job-count)
+ #:max-processes (if parallel-build? (parallel-job-count) 1)
#:report-progress report-build-progress))))
(define* (install-documentation #:key outputs
--
2.46.0
Information forwarded
to
maxim.cournoyer <at> gmail.com, guix-patches <at> gnu.org
:
bug#74909
; Package
guix-patches
.
(Mon, 16 Dec 2024 06:31:02 GMT)
Full text and
rfc822 format available.
Message #11 received at 74909 <at> debbugs.gnu.org (full text, mbox):
* guix/build/guile-build-system.scm (set-locale-path): Delete trailing #t.
(invoke-each, build, install-documentation): Likewise.
Change-Id: I7a0d035b9bef2160856e141642dee70974c571db
---
guix/build/guile-build-system.scm | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
diff --git a/guix/build/guile-build-system.scm b/guix/build/guile-build-system.scm
index 8927da224a..37a1654ce4 100644
--- a/guix/build/guile-build-system.scm
+++ b/guix/build/guile-build-system.scm
@@ -76,8 +76,7 @@ (define* (set-locale-path #:key inputs native-inputs
(match (assoc-ref (or native-inputs inputs) "locales")
(#f #t)
(locales
- (setenv "GUIX_LOCPATH" (string-append locales "/lib/locale"))
- #t)))
+ (setenv "GUIX_LOCPATH" (string-append locales "/lib/locale")))))
(define* (invoke-each commands
#:key (max-processes (current-processor-count))
@@ -112,8 +111,7 @@ (define* (invoke-each commands
(lambda ()
(primitive-exit 127))))
(pid
- (hashv-set! processes pid command)
- #t)))
+ (hashv-set! processes pid command))))
(let loop ((commands commands)
(running 0)
@@ -208,8 +206,7 @@ (define* (build #:key outputs inputs native-inputs
flags)))
source-files)
#:max-processes (parallel-job-count)
- #:report-progress report-build-progress))
- #t))
+ #:report-progress report-build-progress))))
(define* (install-documentation #:key outputs
(documentation-file-regexp
@@ -220,8 +217,7 @@ (define* (install-documentation #:key outputs
(doc (string-append out "/share/doc/"
(strip-store-file-name out))))
(for-each (cut install-file <> doc)
- (find-files "." documentation-file-regexp))
- #t))
+ (find-files "." documentation-file-regexp))))
(define %standard-phases
(modify-phases gnu:%standard-phases
--
2.46.0
Information forwarded
to
maxim.cournoyer <at> gmail.com, guix-patches <at> gnu.org
:
bug#74909
; Package
guix-patches
.
(Mon, 16 Dec 2024 06:31:03 GMT)
Full text and
rfc822 format available.
Message #14 received at 74909 <at> debbugs.gnu.org (full text, mbox):
* guix/build/guile-build-system.scm: Hide 'delete' from (guix build utils), to
avoid shadowing the builtin.
(invoke-each): Replace current-processor-count with parallel-job-count. The
former would require importing (ice-9 threads).
Change-Id: I7cde3305b9017bfec52ffe50ed124e21cbdceb25
---
guix/build/guile-build-system.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/guix/build/guile-build-system.scm b/guix/build/guile-build-system.scm
index b497573c0a..d2198b6715 100644
--- a/guix/build/guile-build-system.scm
+++ b/guix/build/guile-build-system.scm
@@ -18,7 +18,7 @@
(define-module (guix build guile-build-system)
#:use-module ((guix build gnu-build-system) #:prefix gnu:)
- #:use-module (guix build utils)
+ #:use-module ((guix build utils) #:hide (delete))
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-26)
#:use-module (ice-9 match)
@@ -79,7 +79,7 @@ (define* (set-locale-path #:key inputs native-inputs
(setenv "GUIX_LOCPATH" (string-append locales "/lib/locale")))))
(define* (invoke-each commands
- #:key (max-processes (current-processor-count))
+ #:key (max-processes (parallel-job-count))
report-progress)
"Run each command in COMMANDS in a separate process, using up to
MAX-PROCESSES processes in parallel. Call REPORT-PROGRESS at each step.
--
2.46.0
bug closed, send any further explanations to
74909 <at> debbugs.gnu.org and Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
Request was from
Maxim Cournoyer <maxim.cournoyer <at> gmail.com>
to
control <at> debbugs.gnu.org
.
(Thu, 13 Feb 2025 02:21:03 GMT)
Full text and
rfc822 format available.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Thu, 13 Mar 2025 11:24:08 GMT)
Full text and
rfc822 format available.
This bug report was last modified 98 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.