On Thu, Apr 15, 2010 at 10:40 PM, james anderson <span dir="ltr"><<a href="mailto:james.anderson@setf.de">james.anderson@setf.de</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

<br>
On 2010-04-15, at 22:26 , Juan Jose Garcia-Ripoll wrote:<br>
<br>
> Who uses it?<br>
<br>
depends on what one means by "uses it"? the value in the respective<br>
slot is more-or-less central to the dependency computation and is<br>
initialized in the instantiation process[1]. once it plays that role,<br>
is there any reason to not place the initarg in the interface?<br></blockquote></div><br clear="all">The current implementation can be done without :in-order-to, and I think Fare also has that in mind.<br><br>Personally I also find another reason to make the under-the-hoods algorithm not rely on in-order-to, and it is the following one.<br>

<br>The most valuable information ASDF has is the list of dependencies which would allow one to do a topologically sorted list of components to be loaded. By loaded I do not mean compiled and loaded but just loaded, assuming everything had been already compiled.<br>

<br>Currently we can not get this graph because every LOAD-OP produces a COMPILE-OP which may itself trigger a LOAD-OP of other component. LOAD-SRC-OP currently does not work to get an equivalent graph because it is not available for all components and because not all libraries take it into account in :in-order-to. ASDF also does not take it itself into account in the automated dependencies.<br>

<br>So, I would say, in order to produce that beautiful and useful list: 1) provide another mean to have a test-op (perhaps a :test-system option?), 2) remove :in-order-to, 3) implement a kind of "force-all" option to TRAVERSE which makes it behave as if nothing was loaded before and either a) fix LOAD-SRC-OP and rely on it or b) provide a means to temporarily deactivate the triggering LOAD-OP -> COMPILE-OP. With this we can use TRAVERSE to get the sorted graph.<br>

<br>Finally, note that removing :in-order-to does not mean having serial order, for we still have the other ways to express dependencies.<br><br>Juanjo<br><br>-- <br>Instituto de Física Fundamental, CSIC<br>c/ Serrano, 113b, Madrid 28006 (Spain) <br>

<a href="http://tream.dreamhosters.com">http://tream.dreamhosters.com</a><br>