(+Cc: Mark, who’s looked at this part of the code before.)

swedebu...@riseup.net skribis:

> I would like guix package -A/s to be faster.
> There it takes >3s every time I run the command.

On closer inspection, ‘package-transitive-supported-systems’ is
responsible for most of the overhead you’re seeing here.

On my laptop, if I define it like this in (guix packages):

  (define package-transitive-supported-systems
    (const '("x86_64-linux")))

then ‘guix package -A’ drops from 1.5s to 0.6s.

The main cost is calling ‘package->bag’, which amounts to doing half of
the work towards computing a package’s derivation.  This particular
change was introduced in 9bf3ced06c42700d6c83ce3a0eda244798104618 so
that ‘package-transitive-supported-systems’ would account for implicit
inputs.

I can’t think of any simple way to optimize it without changing these
semantics.  Mark?

Ludo’.

Reply via email to