ui: 'load*' compiles with '-O1'.
With this change, the wall-clock time of: guix system build --no-grafts -d gnu/system/install.scm goes from 5.0s to 2.3s on Guile 3.0.5. * guix/ui.scm (without-compiler-optimizations): New macro. (load*): Use it.master
parent
4288806111
commit
a0ad636167
15
guix/ui.scm
15
guix/ui.scm
|
@ -196,6 +196,18 @@ information, or #f if it could not be found."
|
||||||
(stack-ref stack 1) ;skip the 'throw' frame
|
(stack-ref stack 1) ;skip the 'throw' frame
|
||||||
last))))
|
last))))
|
||||||
|
|
||||||
|
(cond-expand
|
||||||
|
(guile-3
|
||||||
|
(define-syntax-rule (without-compiler-optimizations exp)
|
||||||
|
;; Compile with the baseline compiler (-O1), which is much less expensive
|
||||||
|
;; than -O2.
|
||||||
|
(parameterize (((@ (system base compile) default-optimization-level) 1))
|
||||||
|
exp)))
|
||||||
|
(else
|
||||||
|
(define-syntax-rule (without-compiler-optimizations exp)
|
||||||
|
;; No easy way to turn off optimizations on Guile 2.2.
|
||||||
|
exp)))
|
||||||
|
|
||||||
(define* (load* file user-module
|
(define* (load* file user-module
|
||||||
#:key (on-error 'nothing-special))
|
#:key (on-error 'nothing-special))
|
||||||
"Load the user provided Scheme source code FILE."
|
"Load the user provided Scheme source code FILE."
|
||||||
|
@ -225,7 +237,8 @@ information, or #f if it could not be found."
|
||||||
;; search for FILE in %LOAD-PATH. Note: use 'load', not
|
;; search for FILE in %LOAD-PATH. Note: use 'load', not
|
||||||
;; 'primitive-load', so that FILE is compiled, which then allows
|
;; 'primitive-load', so that FILE is compiled, which then allows
|
||||||
;; us to provide better error reporting with source line numbers.
|
;; us to provide better error reporting with source line numbers.
|
||||||
(load (canonicalize-path file)))
|
(without-compiler-optimizations
|
||||||
|
(load (canonicalize-path file))))
|
||||||
(const #f))))))
|
(const #f))))))
|
||||||
(lambda _
|
(lambda _
|
||||||
;; XXX: Errors are reported from the pre-unwind handler below, but
|
;; XXX: Errors are reported from the pre-unwind handler below, but
|
||||||
|
|
Reference in New Issue