aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2014-07-21 22:06:36 +0200
committerLudovic Courtès <ludo@gnu.org>2014-07-21 23:18:21 +0200
commitbce7526f9a7d4e26242d3128157e30c2fa7ecb0c (patch)
tree74e0d5d8be0de09c5c79dfbdbc7b4b43101f67bb
parent1b09031f786238b21ab10ba4c3e384ab194735df (diff)
downloadpatches-bce7526f9a7d4e26242d3128157e30c2fa7ecb0c.tar
patches-bce7526f9a7d4e26242d3128157e30c2fa7ecb0c.tar.gz
Add comments about global memoization.
* guix/build-system/gnu.scm (standard-inputs): Add comment about misplaced memoization. * guix/packages.scm (cache): Likewise.
-rw-r--r--guix/build-system/gnu.scm3
-rw-r--r--guix/packages.scm2
2 files changed, 5 insertions, 0 deletions
diff --git a/guix/build-system/gnu.scm b/guix/build-system/gnu.scm
index 4fa1d1683d..b2b184db34 100644
--- a/guix/build-system/gnu.scm
+++ b/guix/build-system/gnu.scm
@@ -250,6 +250,9 @@ derivations for SYSTEM. Include propagated inputs in the result."
inputs))))
(define standard-inputs
+ ;; FIXME: Memoization should be associated with the open store (as for
+ ;; 'add-text-to-store'), otherwise we get .drv that may not be valid when
+ ;; switching to another store.
(memoize
(lambda (system)
"Return the list of implicit standard inputs used with the GNU Build
diff --git a/guix/packages.scm b/guix/packages.scm
index 5c3da9f2ff..1939373f35 100644
--- a/guix/packages.scm
+++ b/guix/packages.scm
@@ -527,6 +527,8 @@ recursively."
(define (cache package system thunk)
"Memoize the return values of THUNK as the derivation of PACKAGE on
SYSTEM."
+ ;; FIXME: This memoization should be associated with the open store, because
+ ;; otherwise it breaks when switching to a different store.
(let ((vals (call-with-values thunk list)))
;; Use `hashq-set!' instead of `hash-set!' because `hash' returns the
;; same value for all structs (as of Guile 2.0.6), and because pointer