Add comments about global memoization.

* guix/build-system/gnu.scm (standard-inputs): Add comment about
  misplaced memoization.
* guix/packages.scm (cache): Likewise.
This commit is contained in:
Ludovic Courtès 2014-07-21 22:06:36 +02:00
parent 1b09031f78
commit bce7526f9a
2 changed files with 5 additions and 0 deletions

View file

@ -250,6 +250,9 @@ (define input-package->derivation
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

View file

@ -527,6 +527,8 @@ (define %derivation-cache
(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