Hello!

Ludovic Courtès <l...@gnu.org> skribis:

> This patch set leads us to a ‘guix pull’ that creates several
> derivations instead of just one: “guix-core” (38 files), “guix-extra”,
> “guix-packages” (388 files), “guix-cli”, “guix-system”.
>
> The idea is that we should be able to have substitutes for at least some
> of them, for instance because “guix-core” doesn’t need to be rebuilt
> very often.  Most of the time, users will just have to build
> “guix-packages”, which is still a bit slow, but will hopefully get
> better as Guile incorporates those long-awaited fixes.

I’ve just pushed this, let me know how ‘guix pull’ works for you!

In addition to this, I’ve created a Hydra job to build this new
“modular Guix”:

  https://hydra.gnu.org/jobset/guix/modular

If everything goes well, this should give us substitutes for at least
“guix-core” and “guix-extra”.  We have yet to see how long it takes to
evaluate it on hydra.gnu.org and adjust the evaluation frequency
accordingly.

> The ‘reload-guix’ procedure there is here to fix that: we reload all the
> Guix modules of the target checkout, and run the build procedure from
> that context.  Unfortunately, it’s not fully baked yet because reloading
> leads to incompatibilities: the (guix scripts pull) module remains in
> the “old world” and manipulates the old <derivation> and <package>
> record types, which is different from the new ones.  That should be
> fixable, but requires some more time and fiddling.  Help from Guilers is
> very much welcome!  :-)

This part is currently commented out, it needs more work.  The main
issue is performance: we end up evaluating or building a lot of modules,
notably package modules, and again we hit the performance issues of the
compiler in Guile 2.2.2.

Ludo’.



Reply via email to