guix-devel
[Top][All Lists]
Advanced

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

Re: [PATCH 1/2] gnu: Add datefudge.


From: Ludovic Courtès
Subject: Re: [PATCH 1/2] gnu: Add datefudge.
Date: Sat, 17 Aug 2013 23:36:16 +0200
User-agent: Gnus/5.130007 (Ma Gnus v0.7) Emacs/24.3 (gnu/linux)

Cyril Roelandt <address@hidden> skribis:

> On 08/16/2013 07:45 PM, Ludovic Courtès wrote:
>> Cyril Roelandt <address@hidden> skribis:
>>
>>> +        (alist-replace
>>> +         'configure
>>> +         (lambda* (#:key version outputs #:allow-other-keys #:rest args)
>>> +          (pk version outputs)
>>
>> Leftover debugging statements, and ‘version’ doesn’t exist.
>>
>> What you can do is use:
>>
>>    (arguments
>>      `( ...
>>         ,version
>>         ...
>>        ))
>>
>> to paste the ‘version’ field of the package being defined in the
>> quasiquote expression.
>>
>
> What kind of whitchcraft is this ? This works but I have no idea
> why. I don't think that Duckduckgoing "GNU Guile ," will give me any
> interesting results, so would you care to explain how this works, or
> redirect me to the appropriate documentation ?

It’s not witchcraft, it’s Scheme!  :-)

Basically ` is “quasiquote”, and , (coma) is “unquote”.  Think of

  echo "ls $foo"

See the manual for details (info "(guile) Expression Syntax"), or see
the occurrences of ,name and ,version in ttf-freefont in xorg.scm for an
example.

>>> +    (inputs `(("perl" ,perl))) ; Needed for the tests.
>>
>> ‘native-inputs’, probably (if it were being cross-compiled, you’d want
>> to run the native Perl, right?).
>>
>
> Not sure about the difference between inputs and native-inputs. I
> think we may want to improve the documentation:
>
> $ git grep native-inputs doc/

Agreed.

To illustrate the difference, here’s an example.  Suppose you have a C
program with a Bison-generated C file.  When cross-compiling that
program, you want the native Bison, so that the ‘bison’ program can run
at compile-time; conversely, the resulting executable must be linked
against the target libc–the libc that will actually be used at run time
on the target architecture.

In that case, Bison should be listed in ‘native-inputs’, whereas ‘libc’
should be listed in ‘inputs’ (which it is, implicitly.)

HTH,
Ludo’.



reply via email to

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