diff options
author | Ludovic Courtès <ludo@gnu.org> | 2019-04-16 11:42:18 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2019-04-16 17:30:21 +0200 |
commit | e856177597b5a7f1b75bb4083ad1e0b50323c82e (patch) | |
tree | e80f3a252ec1fdf195b7f51bd7457e508bfe3aaa | |
parent | 3961edf2304bcff4c402a29868f8c559a03c0663 (diff) | |
download | 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.scm | 5 |
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)) |