mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2025-01-24 11:39:46 -05:00
packages: Reduce bloat induced by ‘sanitize-inputs’.
At -O1, peval does the bulk of the optimization work and it cannot reduce things like (null? (list 1 2)), unlike what happens in CPS at -O2. Thus, reduce the part of ‘sanitize-inputs’ that’s inlined. * guix/packages.scm (maybe-add-input-labels): New procedure. (sanitize-inputs): Turn into a macro; use ‘maybe-add-input-labels’. Change-Id: Id2283bb5a2f5d714722200bdcfe0b0bfa606923f
This commit is contained in:
parent
2f93e1682a
commit
b011ef4378
1 changed files with 15 additions and 4 deletions
|
@ -429,15 +429,26 @@ (define %cuirass-supported-systems
|
|||
;; <https://lists.gnu.org/archive/html/guix-devel/2017-03/msg00790.html>.
|
||||
(fold delete %supported-systems '("mips64el-linux" "powerpc-linux" "riscv64-linux")))
|
||||
|
||||
(define-inlinable (sanitize-inputs inputs)
|
||||
"Sanitize INPUTS by turning it into a list of name/package tuples if it's
|
||||
not already the case."
|
||||
(cond ((null? inputs) inputs)
|
||||
(define (maybe-add-input-labels inputs)
|
||||
"Add labels to INPUTS unless it already has them."
|
||||
(cond ((null? inputs)
|
||||
inputs)
|
||||
((and (pair? (car inputs))
|
||||
(string? (caar inputs)))
|
||||
inputs)
|
||||
(else (map add-input-label inputs))))
|
||||
|
||||
(define-syntax sanitize-inputs
|
||||
;; This is written as a macro rather than as a 'define-inlinable' procedure
|
||||
;; because as of Guile 3.0.9, peval can handle (null? '()) but not
|
||||
;; (null? (list x y z)); that residual 'null?' test contributes to code
|
||||
;; bloat.
|
||||
(syntax-rules (quote)
|
||||
"Sanitize INPUTS by turning it into a list of name/package tuples if it's
|
||||
not already the case."
|
||||
((_ '()) '())
|
||||
((_ inputs) (maybe-add-input-labels inputs))))
|
||||
|
||||
(define-syntax current-location-vector
|
||||
(lambda (s)
|
||||
"Like 'current-source-location' but expand to a literal vector with
|
||||
|
|
Loading…
Reference in a new issue