diff --git a/asdf.lisp b/asdf.lisp index 73e2440d71d73d8aa52ed201f4c3222b655f1951..333021482fecccefe1e61223d33cdc57e400f729 100644 --- a/asdf.lisp +++ b/asdf.lisp @@ -165,6 +165,14 @@ (defparameter +asdf-methods+ '(perform explain output-files operation-done-p)) +(setf (documentation 'standard-asdf-method-combination + 'method-combination) + "This method combination is based on the standard method combination, +but defines a new method-qualifier, `asdf:around`. `asdf:around` +methods will be run *around* any `:around` methods, so that the core +protocol may employ around methods and those around methods will not +be overridden by around methods added by a system developer.") + (define-method-combination standard-asdf-method-combination () ((around-asdf (around)) (around (:around)) @@ -260,7 +268,13 @@ the head of the tree")) (defgeneric component-self-dependencies (operation component)) -(defgeneric traverse (operation component)) +(defgeneric traverse (operation component) + (:documentation +"Generate and return a plan for performing `operation` on `component`. + +The plan returned is a list of dotted-pairs. Each pair is the `cons` +of ASDF operation object and a `component` object. The pairs will be +processed in order by `operate`.")) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; diff --git a/website/source/manual.mmd b/website/source/manual.mmd index 7f8bc51c1fab941fab6b2604e34718177626963b..5a94f9791ebbbcc7eae74bf4a3636db3a61c56c7 100644 --- a/website/source/manual.mmd +++ b/website/source/manual.mmd @@ -432,26 +432,23 @@ that. If you are creating a component type, you need to implement this operation - at least, where meaningful. --- Operation: **test-system-version** &key minimum +-- Operation: **test-op** +This operation should test the specified component. ASDF does +not (currently) provide a method for returning a value from +the test-op (or any other operation), so the implementor must +ensure that executing `test-op` has the side effect +of printing useful information about the tests to the CL +stream `*standard-output*`. -Asks the system whether it satisfies a version requirement. +The default method for `test-op` does nothing, and will have +to be overridden, but invoking `test-op` on a component for +which nothing is defined will be a simple no-op. -The default method accepts a string, which is expected to -contain of a number of integers separated by #\. characters. -The method is not recursive. The component satisfies the -version dependency if it has the same major number as -required and each of its sub-versions is greater than or -equal to the sub-version number required. +The default dependency for `test-op` on a system is to +require `load-op` on that system. --- Operation: **feature-dependent-op** - -An instance of `feature-dependent-op` will ignore any -components which have a `features` attribute, unless the -feature combination it designates is satisfied by -`*features*`. This operation is not intended to be -instantiated directly, but other operations may inherit from -it. +The default method for `operation-done-p` for `test-op` is to return `nil` regardless of component because tests should usually be run whether or not they have been run previously. #### Creating new operations