diff options
author | Ludovic Courtès <ludo@gnu.org> | 2017-05-09 17:34:54 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2017-05-09 18:08:24 +0200 |
commit | 07a0f68fa528a88825cf7d908f0def921a5779a1 (patch) | |
tree | 2e6c4c6cbc3d6657e61bad880cf9cb758a570924 | |
parent | 838ba73d6e49bd2b1f2d4ed9329b65cc4e8c1f54 (diff) | |
download | guix-07a0f68fa528a88825cf7d908f0def921a5779a1.tar guix-07a0f68fa528a88825cf7d908f0def921a5779a1.tar.gz |
pull: Build package modules without optimizations on Guile 2.2.
* guix/build/pull.scm (%default-optimizations)
(%lightweight-optimizations): New variables.
(optimization-options): New procedure. Taken from
build-aux/compile-all.scm.
(build-guix): Pass it to 'compile-file'.
-rw-r--r-- | guix/build/pull.scm | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/guix/build/pull.scm b/guix/build/pull.scm index 6825e74092..d2e0404b14 100644 --- a/guix/build/pull.scm +++ b/guix/build/pull.scm @@ -57,6 +57,35 @@ indirectly, on Guile-SSH." (string-prefix? gnu b)) (string<? a b)))))) +(cond-expand + (guile-2.2 (use-modules (language tree-il optimize) + (language cps optimize))) + (else #f)) + +(define %default-optimizations + ;; Default optimization options (equivalent to -O2 on Guile 2.2). + (cond-expand + (guile-2.2 (append (tree-il-default-optimization-options) + (cps-default-optimization-options))) + (else '()))) + +(define %lightweight-optimizations + ;; Lightweight optimizations (like -O0, but with partial evaluation). + (let loop ((opts %default-optimizations) + (result '())) + (match opts + (() (reverse result)) + ((#:partial-eval? _ rest ...) + (loop rest `(#t #:partial-eval? ,@result))) + ((kw _ rest ...) + (loop rest `(#f ,kw ,@result)))))) + +(define (optimization-options file) + (if (string-contains file "gnu/packages/") + %lightweight-optimizations ;build faster + '())) + + (define* (build-guix out source #:key system @@ -158,7 +187,7 @@ containing the source code. Write any debugging output to DEBUG-PORT." (parameterize ((current-warning-port (%make-void-port "w"))) (compile-file file #:output-file go - #:opts %auto-compilation-options))) + #:opts (optimization-options file)))) (with-mutex mutex (set! completed (+ 1 completed)))) files)))) |