[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How to install GWL?

From: Ludovic Courtès
Subject: Re: How to install GWL?
Date: Sat, 01 Feb 2020 12:49:32 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)

Hi there!

Ricardo Wurmus <address@hidden> skribis:

>> The difference between "as a package" --which implies inferiors-- or
>> "as a channel" is: embed vs extend.
>> I was convinced that "as a package" was more convenient. Now I am not sure. 
>> :-)
>> Because we know what "embed" means. ;-)
>> For example, Julien's home-manager [1] uses the "as a channel" approach.
> The home-manager *only* requires Guix.  The GWL needs wisp,
> guile-commonmark, guile-gcrypt, guile-pfds (for sets),
> guile-syntax-highlight, graphviz (for visualizing workflows), etc.  In
> the future it might also depend on the Guile AWS library, perhaps even
> some libraries that implement different schedulers, etc.  I’ve also been
> thinking about adding a web interface to visualize the current state of
> processes spawned by the workflow, which should make debugging workflows
> much easier.

Oh, channels in their current form wouldn’t be a good fit because they
don’t allow you to ask for additional dependencies.  Perhaps a problem
to solve, dunno.

> Channels don’t allow for any fancy installation or setup.  The Guile
> modules provided by a channel are compiled just in time when running
> “guix pull”.  It doesn’t seem like a good idea for the GWL to hook into
> the channels mechanism when it doesn’t provide what channels were
> designed to help implement: extensions to the package graph.


> I think inferiors also give GWL users a feature that would otherwise be
> missing: to run arbitrary workflows with arbitrary channel definitions
> via inferiors without having to first manually execute “guix pull” to
> switch to the particular channels that a workflow requires.  Using
> inferiors gives a superior user experience, in my opinion.

Indeed, that makes sense to me.

Simon and I were discussing and I was saying that this inferior
vs. channel discussion reminds me of extend vs. embed in the context of
programming languages like Guile (where inferiors are a bit like

But yeah, I didn’t have a good understanding of the constraints here, so
thanks for clarifying!


reply via email to

[Prev in Thread] Current Thread [Next in Thread]