<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -82,9 +82,16 @@
     (shell-tokens-to-string a)))
 |#
 
-(defun make-computation (class &amp;rest keys &amp;key inputs outputs command &amp;allow-other-keys)
-  (declare (ignore inputs outputs command)) ;; these are included in KEYS.
-  (let ((computation (apply #'make-instance (or class 'concrete-computation) keys)))
+(defgeneric make-computation (env &amp;key))
+
+(defmethod make-computation ((env null) &amp;rest keys &amp;key &amp;allow-other-keys)
+  (apply #'make-computation 'concrete-computation keys))
+
+(defmethod make-computation ((class symbol) &amp;rest keys &amp;key &amp;allow-other-keys)
+  (apply #'make-computation (find-class class) keys))
+
+(defmethod make-computation ((class standard-class) &amp;rest keys &amp;key &amp;allow-other-keys)
+  (let ((computation (apply #'make-instance class keys)))
     (link-computation-outputs computation)
     (push computation *computations*)
     computation))</diff>
      <filename>computations.lisp</filename>
    </modified>
    <modified>
      <diff>@@ -128,10 +128,14 @@
       (include-image-dependencies env image)
       (setf (image-setup env) `(:image ,(fullname image)))
             image)
-    (let ((driver-name (car *lisp-setup-dependencies*)))
-      (setf (image-setup env) `(:load (,driver-name)))
-      (issue-dependency env (graph-for env driver-name))
-      (build-command-for* env (cdr *lisp-setup-dependencies*)))))
+    (progn
+      (setf (image-setup env)
+            `(:load ,(loop
+                       :for dep :in *lisp-setup-dependencies*
+                       :for grain = (graph-for env dep)
+                       :do (issue-dependency env grain)
+                       :collect (fullname grain))))
+      nil)))
 
 (defun make-load-file-command (fullname)
   `(:load-file ,fullname))
@@ -234,12 +238,14 @@
 
 (defun setup-dependencies-before-fasl (fullname)
   (assert (equal '(:fasl &quot;/xcvb/driver&quot;) (car *lisp-setup-dependencies*)))
-  (cdr ; skip driver, which comes first
-   (reverse ; put back in order
-    (cdr ; skip the current dependency itself
-     (member `(:fasl ,fullname) ; what is up to the current dependency
-             (reverse *lisp-setup-dependencies*)
-             :test #'equal)))))
+  (reverse ; put back in order
+   (cdr ; skip the current dependency itself
+    (member `(:fasl ,fullname) ; what is up to the current dependency
+            (reverse *lisp-setup-dependencies*)
+            :test #'equal))))
+
+(defmethod make-computation ((env static-traversal) &amp;rest keys &amp;key &amp;allow-other-keys)
+  (apply #'make-computation () keys))
 
 (defmethod graph-for-fasls ((env static-traversal) fullname)
   (check-type fullname string)
@@ -265,7 +271,7 @@
                        load-dependencies cload-dependencies
                        build-dependencies)))
         (make-computation
-         ()
+         env
          :outputs outputs
          :inputs (traversed-dependencies env)
          :command</diff>
      <filename>static-backends.lisp</filename>
    </modified>
    <modified>
      <diff>@@ -1,2 +1,2 @@
 #+xcvb (module (:depends-on (&quot;pkgdcl&quot;)))
-(cl:defparameter xcvb:*xcvb-version* &quot;0.416&quot;)
+(cl:defparameter xcvb:*xcvb-version* &quot;0.417&quot;)</diff>
      <filename>version.lisp</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>8dee8c361c63ccef99eee1e526f06ab3e35a06df</id>
    </parent>
  </parents>
  <author>
    <name>Francois-Rene Rideau</name>
    <email>fare@tunes.org</email>
  </author>
  <url>http://github.com/fare/xcvb/commit/7b65ffc124efba8415f93274e340046047d51295</url>
  <id>7b65ffc124efba8415f93274e340046047d51295</id>
  <committed-date>2009-10-30T13:06:03-07:00</committed-date>
  <authored-date>2009-10-30T13:06:03-07:00</authored-date>
  <message>XCVB .417: revert some breakage from .416 (improperly tested)
I had been compiling from an obj directory &quot;dirty&quot; with working files...
Also, have make-computation be a gf for the farmer.</message>
  <tree>3e454b97d63d1d7e9ed066ac669c40aa07d739fd</tree>
  <committer>
    <name>Francois-Rene Rideau</name>
    <email>fare@tunes.org</email>
  </committer>
</commit>
