summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2019-10-27 22:42:59 +0100
committerLudovic Courtès <ludo@gnu.org>2019-10-27 23:05:01 +0100
commitac19950507e941b6263f62f4ee4e8934c1b1598e (patch)
tree57ad02bc9c5959f00ac67699af704d991244d77f
parent5166d027308f4cf694f5cff1c0670b6ff622c226 (diff)
gnu: bootstrap: Cache the 'bootstrap-executable' origins.
This reduces the number of lookups in the 'add-data-to-store' cache from 2705 to 2685 (hit rate: 10% to 9%) when running: GUIX_PROFILING=add-data-to-store-cache guix build libreoffice -nd * gnu/packages/bootstrap.scm (raw-build)[->store]: Use 'lower-object' instead of 'origin->derivation'. This allows the origin-to-derivation mapping to be cached.
-rw-r--r--gnu/packages/bootstrap.scm5
1 files changed, 3 insertions, 2 deletions
diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm
index 363c99c7c3..c6e3c697e6 100644
--- a/gnu/packages/bootstrap.scm
+++ b/gnu/packages/bootstrap.scm
@@ -33,6 +33,7 @@
#:use-module ((guix derivations)
#:select (derivation derivation-input derivation->output-path))
#:use-module ((guix utils) #:select (gnu-triplet->nix-system))
+ #:use-module ((guix gexp) #:select (lower-object))
#:use-module (guix memoization)
#:use-module (guix i18n)
#:use-module (srfi srfi-1)
@@ -348,8 +349,8 @@ or false to signal an error."
#:allow-other-keys)
(define (->store file)
(run-with-store store
- (origin->derivation (bootstrap-executable file system)
- system)))
+ (lower-object (bootstrap-executable file system)
+ system)))
(let* ((tar (->store "tar"))
(xz (->store "xz"))