From f44c7aaccd1942b8bf7916e4c8bb0f8f1abfcb58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 5 Mar 2018 10:52:32 +0100 Subject: [PATCH] ui: Better workaround for lack of '%fresh-auto-compile' on 2.2.3. Fixes for the most part. * guix/ui.scm (load*): Add call to 'compile-file' on 2.2.3. --- guix/ui.scm | 17 ++++++++++------- 1 file 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 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 - ;; . - (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 . + (if (string=? (version) "2.2.3") + (compile-file file #:env user-module) + (set! %fresh-auto-compile #t)) (set! %load-should-auto-compile #t)