anchor.diff:      :when (and pt (> pt nt)) :do (setf nt pt)
       :finally (return nt)))
   
  -;; FIXME XXX Test this! Fix why I get an unbound symbol in finding the
  -;; grain-pathname of the outputs list...
  +;; XXX Broken when files are written in subsecond intervals.
  +;; XXX Touches the disk too much to get timestamps.
  +(defun all-newer-pathnames-p (output-pn input-pn)
  +  (and
  +   ;; If any output files don't exist, then they can't possibly be
  +   ;; newer than the inputs!
  +   (every #'safe-file-write-date output-pn)
  +   ;; If any input files have newer timestamps than output files...
  +   (>= (newest-timestamp input-pn)
  +       (oldest-timestamp output-pn))))
  +
  +;; FIXME XXX Test this!
   (defun run-computation (env computation &key force)
     (let* ((inputs (computation-inputs computation)) ; a grain
   	 (outputs (computation-outputs computation)) ; a grain
  
positive.code:     (&rest keys &key
       source-registry setup verbosity output-path
       build lisp-implementation lisp-binary-path define-feature undefine-feature
       disable-cfasl master object-directory use-base-image profiling debugging force)
    (declare (ignore source-registry setup verbosity
                     lisp-implementation lisp-binary-path define-feature undefine-feature
                     disable-cfasl master object-directory use-base-image debugging))
    (with-maybe-profiling (profiling)
      (apply 'handle-global-options keys)
      (simple-build build :output-path output-path :force force)))
  
negative.code:                                    :collect (grain-pathname-text env o)))))
  
      ;; first, check the outputs are newew than the inputs, if so, bail.
      ;; same checking as with make
      (when (and (all-newer-pathnames-p output-pathnames input-pathnames)
  	       (not force)) ; force computation
        (log-format 5 "Nothing to regenerate!~%")
        (return-from run-computation t))
      
      ;; create the output directories
      (dolist (output-pn output-pathnames)
        (ensure-directories-exist output-pn))
      
      (dolist (external-command (external-commands-for-computation env command))
        (log-format 5 "running:~{ ~A~}" (mapcar #'escape-shell-token external-command))
        (let ((text (run-program/read-output-string external-command)))
  