[asdf-devel] Trying again

Faré fahree at gmail.com
Fri Feb 12 14:07:26 UTC 2010


>>: Faré
>: james anderson
>
>> Maybe the current timestamps in ASDF are somewhat lacking, but
>> that doesn't mean timestamps can't solve the issue. I think that
>> one timestamp per pair (op component) should do the trick, stored
>> as an alist (op timestamp) in a slot of the component.
>
> is that not what the `operation-time` cache[1] is already there to do?
>
Indeed.

I propose to modify operation-done-p as follows i.e. always check op-time.

(defmethod operation-done-p ((o operation) (c component))
  (let ((out-files (output-files o c))
        (in-files (input-files o c))
        (op-time (gethash (type-of o)
                          (component-operation-times c))))
    (and op-time
     (cond
       ((and (not in-files) (not out-files)))
        ;; arbitrary decision: an operation that uses nothing to
        ;; produce nothing probably isn't doing much,
        t)
       ((not out-files)
        (>= op-time
         (apply #'max
                (mapcar #'safe-file-write-date in-files))))
       ((not in-files) nil)
       (t
        (and
         (every #'probe-file in-files)
         (every #'probe-file out-files)
         (> (apply #'min (mapcar #'safe-file-write-date out-files))
            (apply #'max (mapcar #'safe-file-write-date in-files))))))))

> (traverse x operation-done-p) reads as if module-level "done-p" is
> hard-coded[2] with logic, which is different than that for components in
> general, and which does not act on this cache. perhaps some protocol
> additions would work here.
> anyway, wrt to the question on line 1265, the codes reads as if the
> answer might be that dominant operation nodes should be able to specify the
> particular particular sub-operations to force.
>
I admit traverse is a mess that I haven't gotten my head fully around yet,
so I'll leave more knowledgeable people to comment.

[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ]
People are not born rich and become poor because of some dreadful phenomenon.
They are born deprived of anything and become rich when they do but by the
accumulated fruits of their own and their ancestors' labor: their capital.




More information about the asdf-devel mailing list