mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2025-01-19 05:57:04 +01:00
store: Add 'references/cached'.
* guix/store.scm (references/cached): New procedure.
This commit is contained in:
parent
25af35fa32
commit
c70cf1a724
1 changed files with 8 additions and 0 deletions
|
@ -135,6 +135,7 @@ (define-module (guix store)
|
|||
|
||||
built-in-builders
|
||||
references
|
||||
references/cached
|
||||
references/substitutes
|
||||
references*
|
||||
query-path-info*
|
||||
|
@ -1393,6 +1394,13 @@ (define %reference-cache
|
|||
;; would use a cache associated with the daemon connection instead (XXX).
|
||||
(make-hash-table 100))
|
||||
|
||||
(define (references/cached store item)
|
||||
"Like 'references', but cache results."
|
||||
(or (hash-ref %reference-cache item)
|
||||
(let ((references (references store item)))
|
||||
(hash-set! %reference-cache item references)
|
||||
references)))
|
||||
|
||||
(define (references/substitutes store items)
|
||||
"Return the list of list of references of ITEMS; the result has the same
|
||||
length as ITEMS. Query substitute information for any item missing from the
|
||||
|
|
Loading…
Reference in a new issue