guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

01/06: channels: Key cached channel derivations by system.


From: guix-commits
Subject: 01/06: channels: Key cached channel derivations by system.
Date: Mon, 8 Jul 2019 07:06:03 -0400 (EDT)

civodul pushed a commit to branch master
in repository guix.

commit cdf689471a7f360efc798eb6e4dcdc4297d64043
Author: Ludovic Court├Ęs <address@hidden>
Date:   Mon Jul 8 10:53:41 2019 +0200

    channels: Key cached channel derivations by system.
    
    Previously, the channel instance to derivation mapping would be
    independent of the system.  Thus, building the same channel instance for
    several different systems would always return the derivation that was
    first computed.
    
    This is a followup to c3ab921eed2a471022e9863a94ea521508782e53.
    
    * guix/channels.scm (channel-instance-derivations)[instance->derivation]:
    Pass the current system as a third argument to 'mcached'.
---
 guix/channels.scm | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/guix/channels.scm b/guix/channels.scm
index fcf9fed..e6bb9b8 100644
--- a/guix/channels.scm
+++ b/guix/channels.scm
@@ -349,13 +349,15 @@ INSTANCES."
     (resolve-dependencies instances))
 
   (define (instance->derivation instance)
-    (mcached (if (eq? instance core-instance)
-                 (build-channel-instance instance)
-                 (mlet %store-monad ((core (instance->derivation 
core-instance))
-                                     (deps (mapm %store-monad 
instance->derivation
-                                                 (edges instance))))
-                   (build-channel-instance instance core deps)))
-             instance))
+    (mlet %store-monad ((system (current-system)))
+      (mcached (if (eq? instance core-instance)
+                   (build-channel-instance instance)
+                   (mlet %store-monad ((core (instance->derivation 
core-instance))
+                                       (deps (mapm %store-monad 
instance->derivation
+                                                   (edges instance))))
+                     (build-channel-instance instance core deps)))
+               instance
+               system)))
 
   (unless core-instance
     (let ((loc (and=> (any (compose channel-location channel-instance-channel)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]