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
