<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">
good afternoon;<div><br><div><div>On 2010-03-18, at 00:03 , Juan Jose Garcia-Ripoll wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div class="gmail_quote">On Wed, Mar 17, 2010 at 11:54 PM, 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;"> <div class="gmail_quote"><div class="im">Oh, there is nothing with TRAVERSE's output _right now_.</div></div></blockquote></div><div><br></div><div>Let me clarify this again:</div><div><br></div><div>- The fact that TRAVERSE now adds the same operation for all components was new. That was my source of confusion. Before this did not happen with LIB-OP and the like. Maybe a straightforrwad solution is just writing</div> <div><br></div><div> (defun perform ((o bundle-op) (c component)) nil)</div><div><br></div><div>so that all components which are not modules get a default PERFORM that does nothing. Is this safe?</div><div><br></div><div> - The order and format of TRAVERSE's output is important. Details like ensuring that the list includes the operated systems and that a system's components appear before the system that owns them, is also important, for this allows us to use TRAVERSE for identifying what files make up a module, using a variant of</div> <div><br></div><div> (let ((*forcing* t)) (traverse (make-instance 'load-op) some-system))</div><div><br></div><div>which lists all components and all systems that should be loaded, sorted in some appropriate order. We rely critically on this, because otherwise I do not know a way to traverse a set of systems "portably" without redoing all of ASDF's logic.</div></blockquote><br></div><div>if asdf were to adopt an <span class="Apple-style-span" style="font-size: 10px; ">11.1.2.1.2-rule, asdf-ecl.lisp would require a change.</span></div><div><br></div><div>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.</div><div><br></div><div><br></div></div></body></html>