From e4bd17dc7e667fad43abe718f551569afadfb41c Mon Sep 17 00:00:00 2001
From: Francois-Rene Rideau <tunes@google.com>
Date: Mon, 23 Sep 2013 01:20:12 -0400
Subject: [PATCH] Introduce load-systems* as a variant of load-systems that
 allows for keyword arguments.

---
 defsystem.lisp | 2 +-
 interface.lisp | 2 +-
 operate.lisp   | 9 +++++++--
 3 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/defsystem.lisp b/defsystem.lisp
index 2a3baab9..8f3a5500 100644
--- a/defsystem.lisp
+++ b/defsystem.lisp
@@ -222,7 +222,7 @@
              (defsystem-dependencies (loop :for spec :in defsystem-depends-on :collect
                                            (resolve-dependency-spec nil spec))))
         (setf (gethash name *systems-being-defined*) system)
-        (apply 'load-systems defsystem-dependencies)
+        (load-systems* defsystem-dependencies)
         ;; We change-class AFTER we loaded the defsystem-depends-on
         ;; since the class might be defined as part of those.
         (let ((class (class-for-type nil class)))
diff --git a/interface.lisp b/interface.lisp
index 7fb3afd2..84e80add 100644
--- a/interface.lisp
+++ b/interface.lisp
@@ -22,7 +22,7 @@
    #:oos #:operate #:make-plan #:perform-plan #:sequential-plan
    #:system-definition-pathname #:with-system-definitions
    #:search-for-system-definition #:find-component #:component-find-path
-   #:compile-system #:load-system #:load-systems
+   #:compile-system #:load-system #:load-systems #:load-systems*
    #:require-system #:test-system #:clear-system
    #:operation #:make-operation #:find-operation
    #:upward-operation #:downward-operation #:sideway-operation #:selfward-operation
diff --git a/operate.lisp b/operate.lisp
index 09be3924..84e1b25c 100644
--- a/operate.lisp
+++ b/operate.lisp
@@ -10,7 +10,8 @@
    #:operate #:oos
    #:*systems-being-operated*
    #:build-system
-   #:load-system #:load-systems #:compile-system #:test-system #:require-system
+   #:load-system #:load-systems #:load-systems*
+   #:compile-system #:test-system #:require-system
    #:*load-system-operation* #:module-provide-asdf
    #:component-loaded-p #:already-loaded-systems))
 (in-package :asdf/operate)
@@ -120,9 +121,13 @@ for how to load or compile stuff")
     (apply 'operate *load-system-operation* system keys)
     t)
 
+  (defun load-systems* (systems &rest keys)
+    "Loading multiple systems at once."
+    (dolist (s systems) (apply 'load-system s keys)))
+
   (defun load-systems (&rest systems)
     "Loading multiple systems at once."
-    (map () 'load-system systems))
+    (load-systems* systems))
 
   (defun compile-system (system &rest args &key force force-not verbose version &allow-other-keys)
     "Shorthand for `(asdf:operate 'asdf:compile-op system)`. See OPERATE for details."
-- 
GitLab