diff options
author | Ludovic Courtès <ludo@gnu.org> | 2019-03-23 15:10:37 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2019-03-23 18:15:36 +0100 |
commit | a53ecfc897a5490744ecc1bc72cabc1d3f5c434f (patch) | |
tree | 35c2e87ed03a09f6a3b20561baa5330d8115b130 /guix/scripts/graph.scm | |
parent | 2b81eac01e5828c6fce61b3cafc0f78e7a0ab891 (diff) |
graph: Factorize calls to 'fold-packages'.
* guix/scripts/graph.scm (all-packages): New procedure.
(%reverse-package-node-type, %reverse-bag-node-type): Use 'all-packages'
instead of 'fold-packages'.
Diffstat (limited to 'guix/scripts/graph.scm')
-rw-r--r-- | guix/scripts/graph.scm | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/guix/scripts/graph.scm b/guix/scripts/graph.scm index d0d353ff9e..8fe81ad64b 100644 --- a/guix/scripts/graph.scm +++ b/guix/scripts/graph.scm @@ -111,11 +111,21 @@ name." ;;; Reverse package DAG. ;;; +(define (all-packages) ;XXX: duplicated from (guix scripts refresh) + "Return the list of all the distro's packages." + (fold-packages (lambda (package result) + ;; Ignore deprecated packages. + (if (package-superseded package) + result + (cons package result))) + '() + #:select? (const #t))) ;include hidden packages + (define %reverse-package-node-type ;; For this node type we first need to compute the list of packages and the ;; list of back-edges. Since we want to do it only once, we use the ;; promises below. - (let* ((packages (delay (fold-packages cons '()))) + (let* ((packages (delay (all-packages))) (back-edges (delay (run-with-store #f ;store not actually needed (node-back-edges %package-node-type (force packages)))))) @@ -223,7 +233,7 @@ GNU-BUILD-SYSTEM have zero dependencies." (define %reverse-bag-node-type ;; Type for the reverse traversal of package nodes via the "bag" ;; representation, which includes implicit inputs. - (let* ((packages (delay (package-closure (fold-packages cons '())))) + (let* ((packages (delay (package-closure (all-packages)))) (back-edges (delay (run-with-store #f ;store not actually needed (node-back-edges %bag-node-type (force packages)))))) |