summaryrefslogtreecommitdiff
path: root/guix/scripts/graph.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2020-01-24 18:13:38 +0100
committerLudovic Courtès <ludo@gnu.org>2020-01-24 23:56:42 +0100
commit09238d618a511de80de189ff3ff18bfa0f280bb9 (patch)
tree81dc484aab064afce53f839fc9c87c7e32e8ab0b /guix/scripts/graph.scm
parenta07d5e558b5403dad0a59776b950b6b02169c249 (diff)
downloadguix-patches-09238d618a511de80de189ff3ff18bfa0f280bb9.tar
guix-patches-09238d618a511de80de189ff3ff18bfa0f280bb9.tar.gz
guix build, archive, graph: Disable absolute file port name canonicalization.
This avoids an 'lstat' storm. Specifically: ./pre-inst-env strace -c guix build -nd libreoffice goes from 1,711 to 214 'lstat' calls. * guix/scripts/build.scm (options->things-to-build): When SPEC matches 'derivation-path?', call 'canonicalize-path'. (guix-build): Remove 'with-fluids' for %FILE-PORT-NAME-CANONICALIZATION. * guix/scripts/archive.scm (guix-archive): Remove 'with-fluids' for %FILE-PORT-NAME-CANONICALIZATION. * guix/scripts/graph.scm (guix-graph): Likewise.
Diffstat (limited to 'guix/scripts/graph.scm')
-rw-r--r--guix/scripts/graph.scm27
1 files changed, 12 insertions, 15 deletions
diff --git a/guix/scripts/graph.scm b/guix/scripts/graph.scm
index 53f407b2fc..fca1e3777c 100644
--- a/guix/scripts/graph.scm
+++ b/guix/scripts/graph.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2019 Simon Tournier <zimon.toutoune@gmail.com>
;;;
;;; This file is part of GNU Guix.
@@ -552,20 +552,17 @@ Emit a representation of the dependency graph of PACKAGE...\n"))
(read/eval-package-expression exp)))
(_ #f))
opts)))
- ;; Ask for absolute file names so that .drv file names passed from the
- ;; user to 'read-derivation' are absolute when it returns.
- (with-fluids ((%file-port-name-canonicalization 'absolute))
- (run-with-store store
- ;; XXX: Since grafting can trigger unsolicited builds, disable it.
- (mlet %store-monad ((_ (set-grafting #f))
- (nodes (mapm %store-monad
- (node-type-convert type)
- items)))
- (export-graph (concatenate nodes)
- (current-output-port)
- #:node-type type
- #:backend backend))
- #:system (assq-ref opts 'system))))))
+ (run-with-store store
+ ;; XXX: Since grafting can trigger unsolicited builds, disable it.
+ (mlet %store-monad ((_ (set-grafting #f))
+ (nodes (mapm %store-monad
+ (node-type-convert type)
+ items)))
+ (export-graph (concatenate nodes)
+ (current-output-port)
+ #:node-type type
+ #:backend backend))
+ #:system (assq-ref opts 'system)))))
#t)
;;; graph.scm ends here