aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2019-04-16 11:42:18 +0200
committerLudovic Courtès <ludo@gnu.org>2019-04-16 17:30:21 +0200
commite856177597b5a7f1b75bb4083ad1e0b50323c82e (patch)
treee80f3a252ec1fdf195b7f51bd7457e508bfe3aaa
parent3961edf2304bcff4c402a29868f8c559a03c0663 (diff)
downloadgnu-guix-e856177597b5a7f1b75bb4083ad1e0b50323c82e.tar
gnu-guix-e856177597b5a7f1b75bb4083ad1e0b50323c82e.tar.gz
derivations: Reduce 'valid-path?' RPCs in 'derivation-prerequisites-to-build'.
On a profile with 280 packages, this reduces the number of 'valid-paths?' RPCs made by 'guix package -nu' from 6K to 500. * guix/derivations.scm (derivation-prerequisites-to-build)[built?]: Memoize 'valid-path?' calls.
-rw-r--r--guix/derivations.scm5
1 files changed, 3 insertions, 2 deletions
diff --git a/guix/derivations.scm b/guix/derivations.scm
index fb2fa177be..7a5c3bca94 100644
--- a/guix/derivations.scm
+++ b/guix/derivations.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017 Mathieu Lirzin <mthl@gnu.org>
;;;
;;; This file is part of GNU Guix.
@@ -344,7 +344,8 @@ OUTPUTS of DRV and not already available in STORE, recursively, and the list
of required store paths that can be substituted. SUBSTITUTABLE-INFO must be a
one-argument procedure similar to that returned by 'substitution-oracle'."
(define built?
- (cut valid-path? store <>))
+ (mlambda (item)
+ (valid-path? store item)))
(define input-built?
(compose (cut any built? <>) derivation-input-output-paths))