I was sketching out my explanation of the ASDF protocol and needed to explain TRAVERSE. I figured that while I was at it, I could provide a docstring for the function, since anyone who wants to extend it really needs to know what it is supposed to do and return.
Best, r
diff --git a/asdf.lisp b/asdf.lisp index c82c6e8..94b52f1 100644 --- a/asdf.lisp +++ b/asdf.lisp @@ -836,7 +836,12 @@ the head of the tree")) ;;; runs :before methods most->least-specific, which is back to front ;;; for our purposes.
-(defgeneric traverse (operation component)) +(defgeneric traverse (operation component) + (:documentation "Generate and return a plan for performing +OPERATION on COMPONENT. The returned plan will be a list of +dotted pairs, each of which is an ASDF operation object and a +COMPONENT object, which are to be performed in order.")) + (defmethod traverse ((operation operation) (c component)) (let ((forced nil)) (labels ((%do-one-dep (required-op required-c required-v)