mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 21:38:07 -05:00
compile: Work around non-thread-safe module autoloading.
* guix/build/compile.scm <top level>: Set 'try-module-autoload' when running on Guile < 2.2.4.
This commit is contained in:
parent
3fe43df716
commit
870677cbb8
1 changed files with 14 additions and 0 deletions
|
@ -196,6 +196,20 @@ (define (build file)
|
|||
(unless (zero? total)
|
||||
(report-compilation #f total total)))))
|
||||
|
||||
(eval-when (eval load)
|
||||
(when (and (string=? "2" (major-version))
|
||||
(or (string=? "0" (minor-version))
|
||||
(and (string=? (minor-version) "2")
|
||||
(< (string->number (micro-version)) 4))))
|
||||
;; Work around <https://bugs.gnu.org/31878> on Guile < 2.2.4.
|
||||
;; Serialize 'try-module-autoload' calls.
|
||||
(set! (@ (guile) try-module-autoload)
|
||||
(let ((mutex (make-mutex 'recursive))
|
||||
(real (@ (guile) try-module-autoload)))
|
||||
(lambda* (module #:optional version)
|
||||
(with-mutex mutex
|
||||
(real module version)))))))
|
||||
|
||||
;;; Local Variables:
|
||||
;;; eval: (put 'with-augmented-search-path 'scheme-indent-function 2)
|
||||
;;; eval: (put 'with-target 'scheme-indent-function 1)
|
||||
|
|
Loading…
Reference in a new issue