[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Extending Guix without using the Guile load path
From: |
Ludovic Courtès |
Subject: |
Re: Extending Guix without using the Guile load path |
Date: |
Sun, 01 Nov 2020 23:23:16 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) |
Hi!
Ricardo Wurmus <rekado@elephly.net> skribis:
> Ludovic Courtès <ludo@gnu.org> writes:
>
>> Hello!
>>
>> Ricardo Wurmus <rekado@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’.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: Extending Guix without using the Guile load path,
Ludovic Courtès <=