summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2013-12-14 16:48:38 +0100
committerLudovic Courtès <ludo@gnu.org>2013-12-14 16:48:38 +0100
commit52a79f1e73f9489b1c89c001f65ca2097e40e92b (patch)
tree6a85878781d8e379ffade812c611ab5ad6ce1c42
parentca6c4fa190e95efba7ade83a0decb19de084f4f5 (diff)
pull: Compile guix/ files before gnu/ files.
* guix/scripts/pull.scm (unpack)[builder]: Build files under guix/ before files under gnu/.
-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"))