guix/gnu
Ludovic Courtès 8f417ed280
gnu: commencement: Further optimize the package object graph.
For a package like:

  (define-public xxx
    (package
      (inherit (@ (gnu packages base) coreutils))
      (name "xxx")
      (inputs (@ (gnu packages commencement) %final-inputs))
      (native-inputs '())
      (propagated-inputs '())
      (arguments '(#:implicit-inputs? #f))))

this reduces the package object graph from 176 nodes (1852 edges) to 113
nodes (1114 edges).

The number of 'add-data-to-store' calls in "guix build coreutils -nd"
drops from 2045 to 1301, and the number of memoization tables drops from
102 to 40.

"guix build libreoffice -nd" goes from 2.40s to 2.27s.

* gnu/packages/commencement.scm (with-boot4): New variable.
(guile-final, glibc-utf8-locales-final): Use it.
(with-boot4, with-boot5): New variable.
(gnu-make-final): Rewrite to avoid 'package-with-explicit-inputs'.
(coreutils-final): Use 'with-boot5' instead of
'package-with-explicit-inputs'.
(grep-final): Likewise.
(with-boot6): New variable.
(sed-final, %final-inputs): Use it.
2019-10-14 00:08:10 +02:00
..
bootloader
build
installer
machine
packages gnu: commencement: Further optimize the package object graph. 2019-10-14 00:08:10 +02:00
services Merge branch 'master' into core-updates 2019-10-06 22:02:20 +02:00
system
tests
artwork.scm
bootloader.scm
ci.scm
installer.scm
local.mk gnu: id3lib: Apply patch for UTF16 writing bug. 2019-10-13 13:07:44 +02:00
machine.scm
packages.scm
services.scm
system.scm Merge branch 'master' into core-updates 2019-10-06 22:02:20 +02:00
tests.scm