Hi Antoine, "Antoine R. Dumont (@ardumont)" skribis: > After toying a bit with the initial code, I took the liberty to make it > a guix extension (we discussed it a bit with @zimoun). It was mostly to > get started with Guile (I know some lisp implems but not this one so i > had to familiarize myself with tools and whatnot ;). Anyway, that can be > reverted if you feel like it can be integrated as a Guix cli directly. > > Currently, the implementation scans and indexes whatever package is > present in the local store of the machine's user. From nix/guix's > design, it makes sense to do it that way as it's likely that even though > you don't have all the tools locally, it may be already present as a > dependency of some high level tools you already use (it's just not > exposed because not declared in config.scm or home-configuration.scm). > > You will find inlines (at the bottom) some cli usage calls [1] and the > current implementation [2]. Yay, nice work! I toyed a bit with your code and that gave me an idea: instead of the costly ‘fold-packages’ + ‘package-derivation’, we can iterate over all the manifests on the system and index packages they refer to. That way, no need to talk to the daemon, computer derivations, etc. Should be faster, though of course it still needs to traverse those directories. Please find attached a modified version that illustrates that. (We’ll need version control at some point. :-)) Thanks, Ludo’.