summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2018-01-15 15:43:53 +0100
committerLudovic Courtès <ludo@gnu.org>2018-01-15 23:29:33 +0100
commit92423868bc451600f8f3d93b638091d12b14b7aa (patch)
tree92c628ebad90c5268fe6b87eb53fce157302ad63
parent9d4399b805b461b9b607ac932061146807e6953c (diff)
downloadguix-92423868bc451600f8f3d93b638091d12b14b7aa.tar.gz
ui: Disable '%fresh-auto-compile' only for Guile 2.2.3.
Mitigates <https://bugs.gnu.org/29881>.
Reported by Diego Nicola Barbato <dnbarbato@posteo.de>.

* guix/ui.scm (load*): Unset '%fresh-auto-compile' only on Guile 2.2.3.
-rw-r--r--guix/ui.scm11
1 files changed, 10 insertions, 1 deletions
diff --git a/guix/ui.scm b/guix/ui.scm
index 895179744b..fb2380b68a 100644
--- a/guix/ui.scm
+++ b/guix/ui.scm
@@ -195,7 +195,16 @@ messages."
   (catch #t
     (lambda ()
       ;; XXX: Force a recompilation to avoid ABI issues.
-      ;; (set! %fresh-auto-compile #t)
+      ;;
+      ;; In 2.2.3, the bogus answer to <https://bugs.gnu.org/29226> was to
+      ;; ignore all available .go, not just those from ~/.cache, which in turn
+      ;; meant that we had to rebuild *everything*.  Since this is too costly,
+      ;; we have to turn auto '%fresh-auto-compile' with that version, at the
+      ;; risk of getting ABI breakage in the user's config file.  See
+      ;; <https://bugs.gnu.org/29881>.
+      (unless (string=? (version) "2.2.3")
+        (set! %fresh-auto-compile #t))
+
       (set! %load-should-auto-compile #t)
 
       (save-module-excursion