<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">
good morning;<div><br><div><div>On 2010-02-12, at 06:11 , Faré wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><font class="Apple-style-span" color="#006312">[...]</font></div> <blockquote type="cite"><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">The problem with doing the INTER-system dependencies is that I don't</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">believe that ASDF currently has the infrastructure to do The Right</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Thing. In order to do the right thing, each system would have to store</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">with itself information about the state of the dependencies when it was</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">built.</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><br></div> </blockquote><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">A timestamp is all you should be needing. What else do you need, really?</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><br></div> <blockquote type="cite"><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Pace Daniel H, I don't believe that timestamps on files is sufficient to</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">do this. We have developed an API based on operation-done-p, and I</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">don't believe that operation-done-p is sufficient for this. Timestamps</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">on files is sufficient for make, but I'm not confident it's sufficient</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">for ASDF. At any rate, I believe that we need to go through a process</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">of making proposals about a protocol that will do the right thing, and</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">then move on.</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><br></div> </blockquote><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Maybe the current timestamps in ASDF are somewhat lacking, but</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">that doesn't mean timestamps can't solve the issue. I think that</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">one timestamp per pair (op component) should do the trick, stored</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">as an alist (op timestamp) in a slot of the component.</div></blockquote><br></div><div>is that not what the `operation-time` cache[1] is already there to do?</div><div>(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.</div><div><br></div><div>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.</div><div><br></div><div>---</div><div>[1]: slot: <a href="http://common-lisp.net/gitweb?p=projects/asdf/asdf.git;a=blob;f=asdf.lisp;h=13aa55cb10f5347b2ff5fe6476ab56d5724a54e9;hb=09fd9358e07eff9e2174a3c730b8b4994bf4e68c#l644">http://common-lisp.net/gitweb?p=projects/asdf/asdf.git;a=blob;f=asdf.lisp;h=13aa55cb10f5347b2ff5fe6476ab56d5724a54e9;hb=09fd9358e07eff9e2174a3c730b8b4994bf4e68c#l644</a></div><div>reference: <a href="http://common-lisp.net/gitweb?p=projects/asdf/asdf.git;a=blob;f=asdf.lisp;h=13aa55cb10f5347b2ff5fe6476ab56d5724a54e9;hb=09fd9358e07eff9e2174a3c730b8b4994bf4e68c#l1109">http://common-lisp.net/gitweb?p=projects/asdf/asdf.git;a=blob;f=asdf.lisp;h=13aa55cb10f5347b2ff5fe6476ab56d5724a54e9;hb=09fd9358e07eff9e2174a3c730b8b4994bf4e68c#l1109</a></div><div>assertion : <a href="http://common-lisp.net/gitweb?p=projects/asdf/asdf.git;a=blob;f=asdf.lisp;h=13aa55cb10f5347b2ff5fe6476ab56d5724a54e9;hb=09fd9358e07eff9e2174a3c730b8b4994bf4e68c#l1324">http://common-lisp.net/gitweb?p=projects/asdf/asdf.git;a=blob;f=asdf.lisp;h=13aa55cb10f5347b2ff5fe6476ab56d5724a54e9;hb=09fd9358e07eff9e2174a3c730b8b4994bf4e68c#l1324</a></div><div>[2] : <a href="http://common-lisp.net/gitweb?p=projects/asdf/asdf.git;a=blob;f=asdf.lisp;h=13aa55cb10f5347b2ff5fe6476ab56d5724a54e9;hb=09fd9358e07eff9e2174a3c730b8b4994bf4e68c#l1260">http://common-lisp.net/gitweb?p=projects/asdf/asdf.git;a=blob;f=asdf.lisp;h=13aa55cb10f5347b2ff5fe6476ab56d5724a54e9;hb=09fd9358e07eff9e2174a3c730b8b4994bf4e68c#l1260</a></div></div></body></html>