(address . bug-guix@gnu.org)
Hello,
I noticed that 'with-parameters' from (guix gexp) does not work with
Guile parameters used in package definitions. They are still set
in 'lower-object', but not anymore when the monadic procedure returned
by 'lower-object' is evaluated.
Attached is an example for a package wrapped by 'with-parameters', which
results in a file with "D" instead of "C" (it is not "A", because the
'arguments' field of <package> is thunked).
Is this intentional? I'm not really sure how (or whether) this should be
changed though.
Best,
David
(use-modules
(guix build-system trivial)
(guix gexp)
(guix derivations)
(guix packages)
(guix store)
(gnu packages base))
(define %param
(make-parameter "A"))
(define testp
(package
(name "testp")
(version "0")
(source #f)
(build-system trivial-build-system)
(arguments
(list
#:builder
#~(let ((port (open-file (string-append #$output) "w")))
(display (string-append #$(%param) "\n") port)
(close-port port))))
(home-page #f)
(synopsis #f)
(description #f)
(license #f)))
(%param "B")
(define obj
(with-parameters
((%param "C"))
testp))
(%param "D")
obj