Hi! Ricardo Wurmus <rek...@elephly.net> skribis:
> Ludovic Courtès <l...@gnu.org> writes: > >> Hello! >> >> Ricardo Wurmus <rek...@elephly.net> skribis: >> >>> I think it’s a bit difficult to install the Guix Workflow Language at >>> this point and I’d like to change that. >>> >>> Currently, new sub-commands for Guix are looked up by module name on the >>> Guile load path. When installing the “gwl” package, though, the Guile >>> load path is not automatically altered, so users need to set it up by >>> themselves. The load path is only altered automatically when users >>> install the “guile” package. This is not a good recommendation because >>> users may have Guile 2.2 in their profile, and not Guile 3.0 or whatever >>> version may be needed by the extension. [...] >> GUIX_EXTENSIONS_PATH sounds like a good idea. I suppose it could be >> implemented pretty much like GUIX_PACKAGE_PATH? >> >> That would also allow us to consider Guix Home a package rather than a >> channel, like you did for GWL. > > Below is a draft that adds Guile modules from GUIX_EXTENSIONS_PATH to > the %load-path and %load-compiled-path. > > I think this implementation is not good, but I’d like to provoke some > comments about the following thoughts: > > * what happens to the Guile dependencies of an extension? Those would > not be added to the load path. Should the extension take care of this > by manually augmenting the load path? Hmm that doesn’t sound great. > * The draft simply uses the same directories that GUILE_LOAD_PATH and > GUILE_LOAD_COMPILED_PATH use. Is this a bad idea? Would it not be > better to have a new directory prefix (such as “lib/guix/extensions”)? On one hand, if it’s a different search path, you’d rather use a different directory like lib/guix/extensions. OTOH, all this is regular Guile code and it’d be ridiculous to be unable to just have it on the Guile load path. > * The search path on the “guix” package does not distinguish between > compiled modules and source modules; it simply looks for all the > conventional directories and puts them on the GUIX_EXTENSIONS_PATH, > while (guix ui) adds them to both %load-path and %load-compiled-path. Traditionally distros distinguish between arch-dependent and arch-independent files, and that would prevent that. (Thinking out loud.) What if an extension could instead be a package installed next to Guix and its channels in ~/.config/guix/current, and we use ‘package-path-entries’ as is done in (gnu packages) to augment ‘%load-path’ and ‘%load-compiled-path’? Thanks, Ludo’.