On Thu, Mar 18, 2010 at 2:55 PM, james anderson <james.anderson@setf.de> wrote:

if asdf were to adopt an 11.1.2.1.2-rule, asdf-ecl.lisp would require a change.

it would not be supported for an extension to extend 'asdf:load-op such that load-op itself specialized an operation-done-p :around method which forced complete traversal results. it would be be necessary to specialize the load-op class as, for example, collect-op, and specialize operation-done-p on that class. in which case its own primary method could always return nil and an :around method would not be necessary.

What you suggest can not be done. While load-op dependencies are automatically added to all systems by some hard-coded logic in DEFSYSTEM, if we create a collect-op, traverse will not find any dependencies that are related to it and it will refuse to, say, traverse cl-ppcre when stumpwm depends on it.

A potential aternative would be to remove the :around method and use *forcing* but this again does not work, because *forcing* only forces the system we act upon, and not the dependecies it has.

So right now there is no way to traverse the ASDF system tree without such a hack.

Juanjo

--
Instituto de Física Fundamental, CSIC
c/ Serrano, 113b, Madrid 28006 (Spain)
http://tream.dreamhosters.com