guix-commits
[Top][All Lists]
Advanced

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

01/09: self: Move core (guix script ...) modules to a separate derivatio


From: guix-commits
Subject: 01/09: self: Move core (guix script ...) modules to a separate derivation.
Date: Wed, 13 Oct 2021 05:49:30 -0400 (EDT)

civodul pushed a commit to branch master
in repository guix.

commit abd38dcee16f0ac71191527c38dcd3659111e2ba
Author: Ludovic Courtès <ludo@gnu.org>
AuthorDate: Tue Oct 12 23:47:59 2021 +0200

    self: Move core (guix script ...) modules to a separate derivation.
    
    This adds an opportunity for parallelism and reduces the amount of
    rebuild needed when "secondary" modules are modified.
    
    * guix/self.scm (compiled-guix)[*core-cli-modules*]: New variable.
    [*cli-modules*]: Depend on it.
    [built-modules]: Likewise.
---
 guix/self.scm | 22 +++++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)

diff --git a/guix/self.scm b/guix/self.scm
index 61ff423..a0d4487 100644
--- a/guix/self.scm
+++ b/guix/self.scm
@@ -968,13 +968,32 @@ itself."
                  #:extensions dependencies
                  #:guile-for-build guile-for-build))
 
+  (define *core-cli-modules*
+    ;; Core command-line interface modules that do not depend on (gnu system
+    ;; …) or (gnu home …), and not even on *PACKAGE-MODULES*.
+    (scheme-node "guix-cli-core"
+                 (remove (match-lambda
+                           (('guix 'scripts 'system . _) #t)
+                           (('guix 'scripts 'environment) #t)
+                           (('guix 'scripts 'container . _) #t)
+                           (('guix 'scripts 'deploy) #t)
+                           (('guix 'scripts 'home . _) #t)
+                           (('guix 'scripts 'import . _) #t)
+                           (('guix 'pack) #t)
+                           (_ #f))
+                         (scheme-modules* source "guix/scripts"))
+                 (list *core-modules* *extra-modules*
+                       *core-package-modules*)
+                 #:extensions dependencies
+                 #:guile-for-build guile-for-build))
+
   (define *cli-modules*
     (scheme-node "guix-cli"
                  (append (scheme-modules* source "/guix/scripts")
                          `((gnu ci)))
                  (list *core-modules* *extra-modules*
                        *core-package-modules* *package-modules*
-                       *system-modules* *home-modules*)
+                       *core-cli-modules* *system-modules* *home-modules*)
                  #:extensions dependencies
                  #:guile-for-build guile-for-build))
 
@@ -1020,6 +1039,7 @@ itself."
                                  ;; comes with *CORE-MODULES*.
                                  (list *config*
                                        *cli-modules*
+                                       *core-cli-modules*
                                        *system-test-modules*
                                        *system-modules*
                                        *home-modules*



reply via email to

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