dear Guixers,

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.

should the dependency lists in the package forms be emitted as 
(specification->package "[email protected]") forms?

in the current codebase this emission is done in the shared 
guix/import/utils.scm, in package-names->package-inputs. if i change this, 
it'll affect every other importer (BTW, i have converted it to use the new 
format).

is specification->package fast enough that it all doesn't matter?

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?

background:

the reason i'm facing this is that i'm using the machinery in an idiosyncratic 
way: i want to have an isolated module where a --recursive --pin-versions of 
the entire transitive closure of a project is captured. when some 
package/version is available already in guix, the importer skips it, but then 
refers to it through a missing variable reference. and if i want to have two of 
such golang packages (Swarm's bee, and geth) that share many of the 
dependencies/versions...

i know the arguments why it's considered a bad idea from the perspective of 
Guix, but then miscompiling the ethereum client can lead to losing money.

- attila
PGP: 5D5F 45C7 DFCD 0A39


Reply via email to