GNU bug report logs -
#56766
[PATCH] gnu: exiv2: Fix test failure on ppc64-le
Previous Next
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
On 26-07-2022 20:38, Marcel van der Boom wrote:
>> The 'patches' field is delayed, not thunked, so only the first
>> system+target it sees will take effect. This will break things if for
>> whatever reason you compute the derivation of the package for
>> multiple systems in the same process.
>
> Where can I read up on 'delayed' vs 'thunked' to understand that
> concept? I have no idea what it is at the moment and the manual does
> not mention this.
AFAICT, it is not documented, though you could read the code at (guix
records). Basically:
* thunked = field value is wrapped in a (lambda () the-value).
This allows for target-specific inputs, as (inputs (list (if
It's-this-architecture these those))) is internally translated to
(inputs (lambda () (if [...] [...] [...]))).
That way, the inputs are not decided when the package is being
defined, but when it is compiled to a particular architecture on a
particular architecture (or more precisely, a little before building, in
what is called 'lowering', which is a bit of a low-level concept and
hence probably not well-known).
* delayed = field value is wrapped in a (delay the-value).
For documentation on 'delay', see the manual. This is useful for
avoiding computation until it's really needed, but unlike 'lambda', it
will only be computed once, so only the first value of the-value is
taken in account. As such, this won't work well when target-specific
things are required.
Greetings,
Maxime.
[Message part 2 (text/html, inline)]
[OpenPGP_0x49E3EE22191725EE.asc (application/pgp-keys, attachment)]
[OpenPGP_signature (application/pgp-signature, attachment)]
This bug report was last modified 3 years and 14 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.