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

From: Leo Prikler <[email-masked]>
Date: Thu, 17 Sep 2020 21:56:52 +0200

Hi,
Am Donnerstag, den 17.09.2020, 21:10 +0200 schrieb Ludovic Courtès:
> 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.
Sure, but program-arguments are not defined in (gnu …) and it is a
(guix scripts …) that eventually pulls in %package-module-path. 
Therefore defining %guix-initial-program-arguments (or whatever it will
be called in the end) in (guix describe) still seems like an option to
me. 

> > (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…
With that however, I am no longer so sure.  The initial program
arguments are part of the UI, but at the same time, that would make it
not UI-free to begin with.  Kinda strengthens the argument, that it
should be made a fluid/parameter/what have you, that gets initialized
with program-arguments at some point.

Regards,
Leo