Subject: Re: bug#42688: Running a script with `guix repl` doesn't "see" additional channels using (%package-module-path)

From: Ludovic Courtès <[email-masked]>
Date: Thu, 17 Sep 2020 21:10:53 +0200

Hi,

Leo Prikler <[email-masked]> skribis:

> Am Donnerstag, den 17.09.2020, 17:31 +0200 schrieb Ludovic Courtès:
>> Hi Leo,
>> 
>> [...]
>> 
>> ‘scm_program_arguments_fluid’ is marked as SCM_INTERNAL, so it’s
>> really
>> inaccessible.
> Thought so.
>
>> However, perhaps we could save the initial value of (program-
>> arguments)
>> in (guix ui) and use that in (guix describe)?
> I'd personally put it in (guix describe) and use the same autoload
> trick, that you've now used for %package-module-path (or a dedicated
> save-...-excursion).

In general, (guix …) module should not depend on (gnu …) modules, which
rules out this option.

> (guix ui) has a heavy closure for (guix describe) to pull.

Every (guix scripts …) module depends on (guix ui) via the ‘guix’
command.  (Probably something we could improve, but that’s the way it
is.)

Now, I realize my proposal was misguided because (guix describe) should
remain “UI-free” so to speak.  Hmm…

>> > On the other hand, we could patch `guix repl` to initialize
>> > %package-
>> > module-path earlier (still leaving `guix describe` broken) or
>> > somehow
>> > try to work around that issue in `guix describe`.
>> 
>> Initializing (%package-module-path) earlier sounds like a good idea
>> too,
>> maybe like this:
>> 
>> [...] 
>> 
> I haven't tested that yet (pre-inst-env makes it so Guix doesn't have
> any channels anyway), but yeah, something like that would have been my
> idea.

Alright, I’ll give it a spin.

Thank you!

Ludo’.