good morning;

On 2010-02-12, at 06:11 , Faré wrote:

[...]
The problem with doing the INTER-system dependencies is that I don't
believe that ASDF currently has the infrastructure to do The Right
Thing.  In order to do the right thing, each system would have to store
with itself information about the state of the dependencies when it was
built.

A timestamp is all you should be needing. What else do you need, really?

Pace Daniel H, I don't believe that timestamps on files is sufficient to
do this.  We have developed an API based on operation-done-p, and I
don't believe that operation-done-p is sufficient for this.  Timestamps
on files is sufficient for make, but I'm not confident it's sufficient
for ASDF.  At any rate, I believe that we need to go through a process
of making proposals about a protocol that will do the right thing, and
then move on.

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?
(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.

---
[1]: slot: http://common-lisp.net/gitweb?p=projects/asdf/asdf.git;a=blob;f=asdf.lisp;h=13aa55cb10f5347b2ff5fe6476ab56d5724a54e9;hb=09fd9358e07eff9e2174a3c730b8b4994bf4e68c#l644
reference: http://common-lisp.net/gitweb?p=projects/asdf/asdf.git;a=blob;f=asdf.lisp;h=13aa55cb10f5347b2ff5fe6476ab56d5724a54e9;hb=09fd9358e07eff9e2174a3c730b8b4994bf4e68c#l1109
assertion : http://common-lisp.net/gitweb?p=projects/asdf/asdf.git;a=blob;f=asdf.lisp;h=13aa55cb10f5347b2ff5fe6476ab56d5724a54e9;hb=09fd9358e07eff9e2174a3c730b8b4994bf4e68c#l1324
[2] : http://common-lisp.net/gitweb?p=projects/asdf/asdf.git;a=blob;f=asdf.lisp;h=13aa55cb10f5347b2ff5fe6476ab56d5724a54e9;hb=09fd9358e07eff9e2174a3c730b8b4994bf4e68c#l1260