summaryrefslogtreecommitdiff
path: root/guix/ui.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2018-03-05 10:52:32 +0100
committerLudovic Courtès <ludo@gnu.org>2018-03-05 10:54:45 +0100
commitf44c7aaccd1942b8bf7916e4c8bb0f8f1abfcb58 (patch)
tree686c7fd8b260a8ecca13de96d3db686887975e18 /guix/ui.scm
parentf285b17b35437b8d5e41e3f45b29b2090b3f1dc4 (diff)
downloadgnu-guix-f44c7aaccd1942b8bf7916e4c8bb0f8f1abfcb58.tar
gnu-guix-f44c7aaccd1942b8bf7916e4c8bb0f8f1abfcb58.tar.gz
ui: Better workaround for lack of '%fresh-auto-compile' on 2.2.3.
Fixes <https://bugs.gnu.org/29226> for the most part. * guix/ui.scm (load*): Add call to 'compile-file' on 2.2.3.
Diffstat (limited to 'guix/ui.scm')
-rw-r--r--guix/ui.scm17
1 files changed, 10 insertions, 7 deletions
diff --git a/guix/ui.scm b/guix/ui.scm
index fb2380b68a..221bb82b7e 100644
--- a/guix/ui.scm
+++ b/guix/ui.scm
@@ -52,6 +52,7 @@
#:use-module (ice-9 match)
#:use-module (ice-9 format)
#:use-module (ice-9 regex)
+ #:autoload (system base compile) (compile-file)
#:autoload (system repl repl) (start-repl)
#:autoload (system repl debug) (make-debug stack->vector)
#:use-module (texinfo)
@@ -186,8 +187,8 @@ messages."
(define (error-string frame args)
(call-with-output-string
- (lambda (port)
- (apply display-error frame port (cdr args)))))
+ (lambda (port)
+ (apply display-error frame port (cdr args)))))
(define tag
(make-prompt-tag "user-code"))
@@ -199,11 +200,13 @@ messages."
;; 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))
+ ;; we have to turn off '%fresh-auto-compile' with that version, so to
+ ;; avoid ABI breakage in the user's config file, we explicitly compile
+ ;; it (the problem remains if the user's config is spread on several
+ ;; modules.) See <https://bugs.gnu.org/29881>.
+ (if (string=? (version) "2.2.3")
+ (compile-file file #:env user-module)
+ (set! %fresh-auto-compile #t))
(set! %load-should-auto-compile #t)