guix-devel
[Top][All Lists]
Advanced

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

Re: importers and input package lookup


From: Jelle Licht
Subject: Re: importers and input package lookup
Date: Mon, 03 Jan 2022 16:01:43 +0100

Ludovic Courtès <ludo@gnu.org> writes:

> Hi!
>
> Attila Lendvai <attila@lendvai.name> skribis:
>
>> there are two, independent namespaces:
>> 1) the scheme one, and
>> 2) the guix package repository.
>>
>> when i work on an importer (golang), it skips the packages that are already 
>> available in 2), but then it has no clue under what variable name they are 
>> stored in 1), and in which scheme module.
>
> Does the variable name matters though?  In general what matters for the
> importer is whether the package/version exists, regardless of the
> variable name.

Since these packages often end up in a `inputs' list, the variable name
seems pretty relevant.

>> should the dependency lists in the package forms be emitted as 
>> (specification->package "pkgname@0.1.0") forms?
>
> No, not for packages in Guix proper.
>
> [...]
>
>> a bit of a tangent here, and a higher-level perspective, but... shouldn't 
>> the package definition DSL have support for this? then most package 
>> descriptions could be using package specifications instead of scheme 
>> variables, and 1) could be phased out. or would that be more error prone? 
>> maybe with a tool that warns for the equivalent of undefined variable 
>> warnings?
>
> Package specs are ambiguous compared to variable references (they depend
> on external state, on the set of chosen channels, etc.) so in general we
> want to refer to variables.

They are pretty explicit at one point in time: the moment we run an
importer. So at some point in the course of running the importer, we
know we have a package definition somewhere that is pretty much
equivalent to the result of (specification->package "pkgname@0.1.0");
can we somehow serialize this package object, perhaps using a heuristic?

If someone fiddles with GUIX_PACKAGE_PATH, GUILE_LOAD_PATH or any amount
of channels this impacts the result of running an importer, but
importers already can give different results depending on these
settings.



reply via email to

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