Federico Beffa <be...@ieee.org> skribis:

> The build does finish as I've tested it on my machine before
> committing the package. However, for some reason, guix needs very long
> to generate the derivation. On my machine (quad-core Xeon E5520)
> python2-matplotlib takes ca. 31 mins to start building.
> Python2-scipy, which includes python2-matplotlib, takes ca. 80 mins.!

Eric Bavier <ericbav...@gmail.com> skribis:

> I wonder if this could this be a result of package-with-python2's
> behavior of recursively creating new package objects for each input in a
> package.  As Ludovic suggested, this could easily create very large DAGs
> that then need to be processed.
>
> This behavior of package-with-python2 was giving me a nightmare when
> trying to code some improvements to `guix refresh -l`, since there would
> easily become tens or hundreds of logically identical python package
> objects floating through the package dependency DAG.

Ouch, thanks for putting me on the right track.  Basically
‘package-with-explicit-python’ was recursing way too much, leading to
hundreds of unique package objects, and thus defeating memoization of
‘package-derivation’.

Commit 78a2745 fixes that.  ‘guix build python2-matplotlib -n
--no-substitutes’ takes ~5 seconds on my laptop (which is still too much
IMO, but that’s another story.)  I’ve thus reinstated numpy, scipy, etc.


In the future, don’t hesitate to report a bug when computing a
derivation takes more than a few seconds.

Eric: the good news is that you can now resume work on ‘guix refresh
-l’.  ;-)

Ludo’.

Reply via email to