@@ -309,6 +309,17 @@ without requiring the source code to be rewritten.")
(define-public guile-next guile-3.0)
+(define-public guile-3.0/libgc-7
+ ;; Using libgc-7 avoid crashes that can occur, particularly when loading
+ ;; data in to the Guix Data Service:
+ ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=40525
+ (hidden-package
+ (package
+ (inherit guile-3.0)
+ (propagated-inputs
+ `(("bdw-gc" ,libgc-7)
+ ,@(srfi-1:alist-delete "bdw-gc" (package-propagated-inputs guile-3.0)))))))
+
(define-public guile-3.0/fixed
;; A package of Guile that's rarely changed. It is the one used in the
;; `base' module, and thus changing it entails a full rebuild.
@@ -48,7 +48,7 @@
(let ((ref (lambda (module variable)
(module-ref (resolve-interface module) variable))))
(match-lambda
- ("guile" (ref '(gnu packages guile) 'guile-3.0))
+ ("guile" (ref '(gnu packages guile) 'guile-3.0/libgc-7))
("guile-json" (ref '(gnu packages guile) 'guile-json-3))
("guile-ssh" (ref '(gnu packages ssh) 'guile-ssh))
("guile-git" (ref '(gnu packages guile) 'guile-git))