On Thu, Apr 15, 2010 at 10:40 PM, james anderson <james.anderson@setf.de>wrote:
On 2010-04-15, at 22:26 , Juan Jose Garcia-Ripoll wrote:
Who uses it?
depends on what one means by "uses it"? the value in the respective slot is more-or-less central to the dependency computation and is initialized in the instantiation process[1]. once it plays that role, is there any reason to not place the initarg in the interface?
The current implementation can be done without :in-order-to, and I think Fare also has that in mind. 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. 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. 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. 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. Finally, note that removing :in-order-to does not mean having serial order, for we still have the other ways to express dependencies. Juanjo -- Instituto de Física Fundamental, CSIC c/ Serrano, 113b, Madrid 28006 (Spain) http://tream.dreamhosters.com