store: 'references/substitutes' really caches its result.
Until now the cache was always empty because 'for-each' was passed ITEMS as its second argument, and ITEMS was the empty list at that point. * guix/store.scm (references/substitutes): Add 'requested' variable. Use it as second argument of 'for-each' in base case.
This commit is contained in:
parent
2633bd324b
commit
b2fde4800d
|
@ -1009,7 +1009,8 @@ error if there is no such root."
|
|||
length as ITEMS. Query substitute information for any item missing from the
|
||||
store at once. Raise a '&nix-protocol-error' exception if reference
|
||||
information for one of ITEMS is missing."
|
||||
(let* ((local-refs (map (lambda (item)
|
||||
(let* ((requested items)
|
||||
(local-refs (map (lambda (item)
|
||||
(or (hash-ref %reference-cache item)
|
||||
(guard (c ((nix-protocol-error? c) #f))
|
||||
(references store item))))
|
||||
|
@ -1040,7 +1041,7 @@ the list of references")
|
|||
(()
|
||||
(let ((result (reverse result)))
|
||||
(for-each (cut hash-set! %reference-cache <> <>)
|
||||
items result)
|
||||
requested result)
|
||||
result))
|
||||
((item items ...)
|
||||
(match local-refs
|
||||
|
|
Loading…
Reference in New Issue