compile: Really disable cross-module inlining and related features.

This is a followup to d87a1ba6b8b2f08ba6898033353d7463355bd146.

* guix/build/compile.scm (strip-keyword-arguments): Rename to...
(clear-keyword-arguments): ... this, and set the value associated with
each of KEYWORDS to #f.
(optimizations-for-level): Adjust accordingly.
This commit is contained in:
Ludovic Courtès 2022-01-21 16:32:44 +01:00
parent 8ef0473969
commit 97a6b4581a
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5

@ -37,8 +37,8 @@
;;;
;;; Code:
(define (strip-keyword-arguments keywords args) ;XXX: copied from (guix utils)
"Remove all of the keyword arguments listed in KEYWORDS from ARGS."
(define (clear-keyword-arguments keywords args)
"Set to #f the value associated with each of the KEYWORDS in ARGS."
(let loop ((args args)
(result '()))
(match args
@ -47,7 +47,7 @@
(((? keyword? kw) arg . rest)
(loop rest
(if (memq kw keywords)
result
(cons* #f kw result)
(cons* arg kw result))))
((head . tail)
(loop tail (cons head result))))))
@ -82,7 +82,7 @@
;; non-reproducible and more expensive builds, so we turn it off
;; here:
;; <https://wingolog.org/archives/2021/05/13/cross-module-inlining-in-guile>.
(strip-keyword-arguments '(#:inlinable-exports? #:resolve-free-vars?
(clear-keyword-arguments '(#:inlinable-exports? #:resolve-free-vars?
#:cross-module-inlining?)
(if (<= level 1)
%lightweight-optimizations