summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--guix/scripts/pull.scm11
1 files changed, 10 insertions, 1 deletions
diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm
index e56897986a..11f5cc1493 100644
--- a/guix/scripts/pull.scm
+++ b/guix/scripts/pull.scm
@@ -150,7 +150,16 @@ files."
                                        %auto-compilation-options)))
 
                      (filter (cut string-suffix? ".scm" <>)
-                             (find-files out "\\.scm")))
+
+                             ;; Build guix/*.scm before gnu/*.scm to speed
+                             ;; things up.
+                             (sort (find-files out "\\.scm")
+                                   (let ((guix (string-append out "/guix"))
+                                         (gnu  (string-append out "/gnu")))
+                                     (lambda (a b)
+                                       (or (and (string-prefix? guix a)
+                                                (string-prefix? gnu b))
+                                           (string<? a b)))))))
 
          ;; Remove the "fake" (guix config).
          (delete-file (string-append out "/guix/config.scm"))