<div class="gmail_quote">On Mon, Oct 17, 2011 at 9:58 AM, Juan Jose Garcia-Ripoll <span dir="ltr"><<a href="mailto:juanjose.garciaripoll@googlemail.com">juanjose.garciaripoll@googlemail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

In a sense, it is a _reversed_ dependency. Normally we have that file2 depends on file1 and thus file2 is loaded _after_ file1 is loaded. Couldn't we just add another component to defsystem which is loaded when _any_ file is to be changed? It would be like a prerequisite module or file.</blockquote>

</div><br>Related to this, I appreciate that also what is exactly missing in ASDF is _operations_ that have to be performed before or after some system is loaded / compiled / etc.<div><div><br></div><div>Operations should not be part of the ASDF file. If we didn't have ASDF what we would naturally do is group them in a file which is loaded before everything else (or sometimes after it), for preparation (and for cleanup), typically.</div>

<div><br></div><div>Thinking about the most general way to do it, which does not involve any methods whatsoever, and such that the whole system may also be loaded without ASDF, I think the best way would be to have some declaration such as</div>

<div><br></div><div>{:after | :before} (operation+)</div><div>operation = (operation-pattern module-to-be-loaded)</div><div>operation-pattern = {* | asdf-operation-class-symbol}</div><div><br></div><div>The syntax is reminiscent of :in-order-to for the module and the operation, and it only differs in the time in which it is performed.</div>

<div><br></div><div>I believe this very much solves all the problems listed so far. It also has some advantages over explicit lisp forms, for it avoids problems with non-existent packages at the time of reading the asdf, and it also generalizes to all operations.</div>

<div><br></div><div>I also insist that having the operations being actually stored in files makes it relatively easy to map an ASDF to a set of load statements, making the library rather independent of actual ASDF complexities.</div>

<div><br></div><div>Juanjo</div><div><br></div>-- <br>Instituto de Física Fundamental, CSIC<br>c/ Serrano, 113b, Madrid 28006 (Spain) <br><a href="http://juanjose.garciaripoll.googlepages.com" target="_blank">http://juanjose.garciaripoll.googlepages.com</a><br>


</div>