GNU bug report logs -
#32174
[PATCH 0/6] Add 'add-file-tree-to-store' and related facilities
Previous Next
Reported by: Ludovic Courtès <ludo <at> gnu.org>
Date: Mon, 16 Jul 2018 13:32:02 UTC
Severity: normal
Tags: patch
Done: ludo <at> gnu.org (Ludovic Courtès)
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your bug report
#32174: [PATCH 0/6] Add 'add-file-tree-to-store' and related facilities
which was filed against the guix-patches package, has been closed.
The explanation is attached below, along with your original report.
If you require more details, please reply to 32174 <at> debbugs.gnu.org.
--
32174: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=32174
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
Ludovic Courtès <ludo <at> gnu.org> skribis:
> Ludovic Courtès (6):
> serialization: Add 'write-file-tree'.
> store: Add 'add-file-tree-to-store'.
> gexp: Remove unnecessary 'mlet'.
> gexp: 'imported-files' no longer creates a derivation by default.
> gexp: 'imported-files/derivation' can copy files instead of
> symlinking.
> self: Use the new 'imported-files'.
I went ahead and merged this.
There’s a couple of XXX/TODOs that we’ll address in ‘core-updates’ next.
Ludo’.
[Message part 3 (message/rfc822, inline)]
Hello!
This patch changes some low-level machinery to allow “virtual file trees”
to be imported directly into the store.
Previously the ‘imported-files’ procedures (yeah, there’s a couple of
them…) would create a derivation that would map source files to their final
destination. Now, it directly imports files in the right place, thereby
avoiding a derivation. This is notably useful for (guix self), which
imports a large number of files.
Overall it can reduce the number of RPCs, too. For example:
--8<---------------cut here---------------start------------->8---
$ GUIX_PROFILING=rpc guix system build gnu/system/examples/bare-bones.tmpl -d --no-grafts
/gnu/store/wmv4ypapmzd2ynx6njayc3k87mc1gnjz-system.drv
Remote procedure call summary: 1930 RPCs
built-in-builders ... 1
add-to-store ... 183
add-text-to-store ... 1746
$ GUIX_PROFILING=rpc ./pre-inst-env guix system build gnu/system/examples/bare-bones.tmpl -d --no-grafts
/gnu/store/yy1js0wimwrdfah5n8sw14jh3dayn39k-system.drv
Remote procedure call summary: 1891 RPCs
built-in-builders ... 1
add-to-store/tree ... 15
add-to-store ... 162
add-text-to-store ... 1713
--8<---------------cut here---------------end--------------->8---
To avoid a full rebuild, this mechanism is currently disabled for package
builds, where we’d see a more noticeably difference. When we merge to
‘core-updates’, we’ll turn it on by default and remove the compatibility
hacks like the #:derivation? parameter.
Feedback welcome!
Ludo’.
Ludovic Courtès (6):
serialization: Add 'write-file-tree'.
store: Add 'add-file-tree-to-store'.
gexp: Remove unnecessary 'mlet'.
gexp: 'imported-files' no longer creates a derivation by default.
gexp: 'imported-files/derivation' can copy files instead of
symlinking.
self: Use the new 'imported-files'.
guix/gexp.scm | 143 +++++++++++++++++++++++++++++++++--------
guix/packages.scm | 3 +
guix/self.scm | 57 +++++++---------
guix/serialization.scm | 140 +++++++++++++++++++++++++++++++---------
guix/store.scm | 100 ++++++++++++++++++++++++++++
tests/gexp.scm | 31 ++++-----
tests/nar.scm | 62 +++++++++++++++++-
tests/store.scm | 46 +++++++++++++
8 files changed, 473 insertions(+), 109 deletions(-)
--
2.18.0
This bug report was last modified 7 years and 7 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.