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'.
This commit is contained in:
parent
838ba73d6e
commit
07a0f68fa5
|
@ -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))))
|
||||
|
|
Loading…
Reference in New Issue