diff options
author | Ludovic Courtès <ludo@gnu.org> | 2018-03-05 10:52:32 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2018-03-05 10:54:45 +0100 |
commit | f44c7aaccd1942b8bf7916e4c8bb0f8f1abfcb58 (patch) | |
tree | 686c7fd8b260a8ecca13de96d3db686887975e18 /guix | |
parent | f285b17b35437b8d5e41e3f45b29b2090b3f1dc4 (diff) | |
download | gnu-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')
-rw-r--r-- | guix/ui.scm | 17 |
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) |