mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2025-01-19 05:57:04 +01:00
store: 'mapm/accumulate-builds' does not compare stores with 'eq?'.
Fixes <https://issues.guix.gnu.org/51732>.
Regression introduced in 2015d3f042
.
The (eq? store expected-store) comparison doesn't work on this branch
where the functional cache, with 'cache-object-mapping', is used
extensively, thereby changing the store's object identity.
* guix/store.scm (build-accumulator): Compare the socket of STORE and
EXPECTED-STORE rather than the store themselves.
This commit is contained in:
parent
d855119ece
commit
745d3a9b44
1 changed files with 5 additions and 1 deletions
|
@ -1353,7 +1353,11 @@ (define (build-accumulator expected-store)
|
|||
"Return a build handler that accumulates THINGS and returns an <unresolved>
|
||||
object, only for build requests on EXPECTED-STORE."
|
||||
(lambda (continue store things mode)
|
||||
(if (and (eq? store expected-store)
|
||||
;; Note: Do not compare STORE and EXPECTED-STORE with 'eq?' because
|
||||
;; 'cache-object-mapping' and similar functional "setters" change the
|
||||
;; store's object identity.
|
||||
(if (and (eq? (store-connection-socket store)
|
||||
(store-connection-socket expected-store))
|
||||
(= mode (build-mode normal)))
|
||||
(unresolved things continue)
|
||||
(continue #t))))
|
||||
|
|
Loading…
Reference in a new issue