summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2017-01-16 21:59:00 +0100
committerLudovic Courtès <ludo@gnu.org>2017-01-16 22:13:21 +0100
commit90ad5c8836138b7fd4d1bd0243dfa8b30ae0cf21 (patch)
treea9471f3cb796528cde0694a35c5c3518289a6293
parentb09903619f82c1561612602307c1ffe426ca74fd (diff)
downloadguix-90ad5c8836138b7fd4d1bd0243dfa8b30ae0cf21.tar.gz
grafts: Actually cache grafts during the derivation DAG traversal.
This fixes a regression introduced in
d38bc9a9f6feefc465964531520fee5663a12f48 whereby the cache was
effectively disabled.

Reported by Thomas Danckaert <thomas.danckaert@gmail.com>.

* guix/grafts.scm (with-cache): In the cache miss case, wrap body in
'mbegin'.
-rw-r--r--guix/grafts.scm5
1 files changed, 3 insertions, 2 deletions
diff --git a/guix/grafts.scm b/guix/grafts.scm
index 2006d3908e..b60c8cfd90 100644
--- a/guix/grafts.scm
+++ b/guix/grafts.scm
@@ -222,8 +222,9 @@ available."
        (return result))
       (#f                                         ;cache miss
        (mlet %state-monad ((result (begin exp ...)))
-         (set-current-state (vhash-consq key result cache))
-         (return result))))))
+         (mbegin %state-monad
+           (set-current-state (vhash-consq key result cache))
+           (return result)))))))
 
 (define* (cumulative-grafts store drv grafts
                             references