Subject: Re: bug#75879: with-parameters does not work generally for packages

From: Ludovic Courtès <[email-masked]>
Date: Sat, 15 Feb 2025 21:59:06 +0100

Hi David,

David Elsing <[email-masked]> skribis:

> 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.

Something just came to mind: the object cache.  The cache is keyed by
object + system + target + grafts?; if there’s anything that influences
what the object lowers to, changes are the object->derivation mapping is
already cached and that other thing will be ignored.

That’s a problem generally speaking with using ‘with-parameters’ with
parameters other than ‘%current-system’, ‘%current-target-system’, and
‘%graft?’.

I wonder if it’s the only thing at play here though.

Ludo’.