Subject: bug#55499: [PATCH 0/3] Make 'manifest' files more compact

From: Ludovic Courtès <[email-masked]>
Date: Tue, 31 May 2022 18:09:13 +0200

Hello,

These patches implement what you suggested on IRC: not repeating
entire manifest entries and their propagated inputs.  This has a
dramatic impact on the size of the ‘manifest’ file and on the memory
and processing time to read it for the the use case you gave.

The second patch goes a tiny bit further by making the ‘search-paths’
and ‘propagated-inputs’ fields optional, shaving another ~10% on the
size of ‘manifest’ in this example.

The second patch should be squashed with the first one (so we don’t
bump version formats a second time and duplicate code).  It’s kinda
optional because it doesn’t bring much compared to the first patch and
causes a bit of extra complexity, but maybe it’s still worth keeping?

Could you try this on your larger use cases and tell me how it goes?

Thanks,
Ludo’.

Ludovic Courtès (3):
  tests: Augment profile collision test.
  profiles: Do not repeat entries in 'manifest' file.
  squash! profiles: Make all entry fields optional.

 guix/build/profiles.scm |  32 ++++++++--
 guix/profiles.scm       | 137 ++++++++++++++++++++++++++++++++--------
 tests/profiles.scm      |  52 ++++++++++++++-
 3 files changed, 187 insertions(+), 34 deletions(-)

base-commit: fed51b26141548a5bae349a5e1d8d6f681320f4f
-- 
2.36.1