diff options
author | Ludovic Courtès <ludo@gnu.org> | 2020-08-26 16:01:37 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2020-08-26 16:02:38 +0200 |
commit | 331a09654eb7e9f6212b7e8469077fa7393e8b11 (patch) | |
tree | 7ef8499517417a0436bea92664fdf1b97398ce44 | |
parent | 3c6113a594c55f184cec746acd570ce4ad1747d1 (diff) |
gexp: 'compiled-modules' defaults to '-O1'.
* guix/gexp.scm (compiled-modules): Add #:optimization-level.
[build](optimizations-for-level): New variable.
(process-entry): Use it.
-rw-r--r-- | guix/gexp.scm | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/guix/gexp.scm b/guix/gexp.scm index 42a5e7f442..7132ca899b 100644 --- a/guix/gexp.scm +++ b/guix/gexp.scm @@ -1507,7 +1507,8 @@ last one is created from the given <scheme-file> object." (guile (%guile-for-build)) (module-path %load-path) (extensions '()) - (deprecation-warnings #f)) + (deprecation-warnings #f) + (optimization-level 1)) "Return a derivation that builds a tree containing the `.go' files corresponding to MODULES. All the MODULES are built in a context where they can refer to each other. When TARGET is true, cross-compile MODULES for @@ -1531,6 +1532,13 @@ TARGET, a GNU triplet." (system base target) (system base compile)) + (define optimizations-for-level + (or (and=> (false-if-exception + (resolve-interface '(system base optimize))) + (lambda (iface) + (module-ref iface 'optimizations-for-level))) ;Guile 3.0 + (const '()))) + (define (regular? file) (not (member file '("." "..")))) @@ -1551,7 +1559,9 @@ TARGET, a GNU triplet." (compile-file entry #:output-file output #:opts - %auto-compilation-options))) + `(,@%auto-compilation-options + ,@(optimizations-for-level + (ungexp optimization-level)))))) (+ 1 processed)))) |