summaryrefslogtreecommitdiff
path: root/guix/grafts.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2015-11-20 18:44:29 +0100
committerLudovic Courtès <ludo@gnu.org>2018-11-12 23:37:13 +0100
commitc6080c3249560ef777b9a4eb6a78e7605b8b98d8 (patch)
treedf4d2676a8ca18949f4ff3c9e1d6d54ca7aa8a9b /guix/grafts.scm
parent9ed86fe175c15c819d6d86681c8136ff6bc927c0 (diff)
downloadgnu-guix-c6080c3249560ef777b9a4eb6a78e7605b8b98d8.tar
gnu-guix-c6080c3249560ef777b9a4eb6a78e7605b8b98d8.tar.gz
store: Add a functional object cache and use it in 'lower-object'.
This leads to ~25% improvements on things like: guix system build desktop.tmpl --no-grafts -d * guix/store.scm (<nix-server>)[object-cache]: New field. * guix/store.scm (open-connection): Initialize it. (cache-object-mapping, lookup-cached-object, %mcached): New procedures. (mcached): New macro. * guix/gexp.scm (lower-object): Use it. * guix/grafts.scm (grafting?): New procedure.
Diffstat (limited to 'guix/grafts.scm')
-rw-r--r--guix/grafts.scm8
1 files changed, 7 insertions, 1 deletions
diff --git a/guix/grafts.scm b/guix/grafts.scm
index f303e925f1..01e245d8eb 100644
--- a/guix/grafts.scm
+++ b/guix/grafts.scm
@@ -40,7 +40,8 @@
graft-derivation/shallow
%graft?
- set-grafting))
+ set-grafting
+ grafting?))
(define-record-type* <graft> graft make-graft
graft?
@@ -328,6 +329,11 @@ it otherwise. It returns the previous setting."
(lambda (store)
(values (%graft? enable?) store)))
+(define (grafting?)
+ "Return a Boolean indicating whether grafting is enabled."
+ (lambda (store)
+ (values (%graft?) store)))
+
;; Local Variables:
;; eval: (put 'with-cache 'scheme-indent-function 1)
;; End: