~ chicken-core (chicken-5) 647d33ddf5e949080cee9b5e2c910dfed277c92c


commit 647d33ddf5e949080cee9b5e2c910dfed277c92c
Author:     Evan Hanson <evhan@foldling.org>
AuthorDate: Fri Feb 5 19:31:32 2016 +1300
Commit:     Evan Hanson <evhan@foldling.org>
CommitDate: Tue Mar 8 22:52:35 2016 +1300

    Handle "-uses" flags before "-R" so units are called first

diff --git a/batch-driver.scm b/batch-driver.scm
index 62390bb1..7d885b63 100644
--- a/batch-driver.scm
+++ b/batch-driver.scm
@@ -451,13 +451,6 @@
     (set! ##sys#features (cons '#:compiling ##sys#features))
     (set! upap (user-post-analysis-pass))
 
-    ;; Append required extensions to initforms:
-    (set! initforms
-      (append
-       initforms
-       (map (lambda (r) `(import ,(string->symbol r)))
-	    (collect-options 'require-extension))))
-
     ;; Handle units added with the "-uses" flag.
     (let ((uses (append-map
 		 (lambda (u) (map string->symbol (string-split u ", ")))
@@ -466,6 +459,13 @@
 	(set! forms
 	  (cons `(##core#declare (uses . ,uses)) forms))))
 
+    ;; Append required extensions to initforms:
+    (set! initforms
+      (append
+       initforms
+       (map (lambda (r) `(import ,(string->symbol r)))
+	    (collect-options 'require-extension))))
+
     (when (memq 'compile-syntax options)
       (set! ##sys#enable-runtime-macros #t) )
     (set! target-heap-size
Trap