         ->app  (fn [xs] `(apply comp (filter fn? [~@xs])))]
     `(try @(future
              (util/with-let [_# nil]
-               (run-tasks
+               (#'run-tasks
                  ~(if (every? string? argv)
-                    `(apply construct-tasks [~@argv])
+                    `(apply #'construct-tasks [~@argv])
                     (->app (map ->list argv))))))
           (finally (#'do-cleanup!)))))
 

        (if (seq (:arguments parsd)) [opts argv] (recur opts* cdr))))))

(defmacro ^:private daemon
  [& body]
  `(doto (Thread. (fn [] ~@body)) (.setDaemon true) .start))


                 (sync-user-dirs!))]
    (binding [*warnings* (atom 0)]
      (reset-build!)
      ((task-stack #(do (sync! %) %)) (commit! (reset-fileset))))))

(defmacro boot
  "Builds the project as if `argv` was given on the command line."
