guix-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug#56766] [PATCH] gnu: exiv2: Fix test failure on ppc64-le


From: Maxime Devos
Subject: [bug#56766] [PATCH] gnu: exiv2: Fix test failure on ppc64-le
Date: Tue, 26 Jul 2022 20:55:13 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0


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.

Attachment: OpenPGP_0x49E3EE22191725EE.asc
Description: OpenPGP public key

Attachment: OpenPGP_signature
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]