Robert Goldman wrote:
> I was reading over the info again before my talk, and I realized that
> there was no discussion of the test-op as one of the predefined
> operations, although it is predefined.  Patch attached.
> 
> 
> 

In previous draft I forgot to mention that OPERATION-DONE-P always
returns NIL by default for TEST-OP.  Fixed here.

Best,
r

diff --git a/asdf.texinfo b/asdf.texinfo
index cfef5c6..c831ddc 100644
--- a/asdf.texinfo
+++ b/asdf.texinfo
@@ -558,42 +558,63 @@ If you are creating a component type, you need to 
implement this
 operation - at least, where meaningful.
 @end deffn
 
-...@deffn Operation test-system-version &key minimum
+...@deffn Operation test-op
 
-Asks the system whether it satisfies a version requirement.
+This operation should carry out a test on 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 the @code{test-op} has the side effect of printing useful
+information about the tests to the CL stream @code{*standard-output*}.
 
-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 method for @code{test-op} does nothing, and will have to be
+overridden, but invoking @code{test-op} on a component for which nothing
+is defined will be a simple no-op.
 
-...@lisp
-(defun version-satisfies (x y)
-  (labels ((bigger (x y)
-            (cond ((not y) t)
-                  ((not x) nil)
-                  ((> (car x) (car y)) t)
-                  ((= (car x) (car y))
-                   (bigger (cdr x) (cdr y))))))
-    (and (= (car x) (car y))
-        (or (not (cdr y)) (bigger (cdr x) (cdr y))))))
-...@end lisp
+The default dependency for @code{test-op} on a system is to require
+...@code{load-op} on that system.
 
-If that doesn't work for your system, you can override it.  I hope
-you have as much fun writing the new method as @verb{|#lisp|} did
-reimplementing this one.
+The default method for @code{operation-done-p} for @code{test-op} and
+any component is to return @code{NIL}.  We expect that users will want
+to rerun tests.
 @end deffn
 
-...@deffn Operation feature-dependent-op
 
-An instance of @code{feature-dependent-op} will ignore any components
-which have a @code{features} attribute, unless the feature combination
-it designates is satisfied by @code{*features*}.  This operation is
-not intended to be instantiated directly, but other operations may
-inherit from it.
+...@c @deffn Operation test-system-version &key minimum
 
-...@end deffn
+...@c Asks the system whether it satisfies a version requirement.
+
+...@c The default method accepts a string, which is expected to contain of a
+...@c number of integers separated by #\. characters.  The method is not
+...@c recursive.  The component satisfies the version dependency if it has
+...@c the same major number as required and each of its sub-versions is
+...@c greater than or equal to the sub-version number required.
+
+...@c @lisp
+...@c (defun version-satisfies (x y)
+...@c   (labels ((bigger (x y)
+...@c       (cond ((not y) t)
+...@c             ((not x) nil)
+...@c             ((> (car x) (car y)) t)
+...@c             ((= (car x) (car y))
+...@c              (bigger (cdr x) (cdr y))))))
+...@c     (and (= (car x) (car y))
+...@c   (or (not (cdr y)) (bigger (cdr x) (cdr y))))))
+...@c @end lisp
+
+...@c If that doesn't work for your system, you can override it.  I hope
+...@c you have as much fun writing the new method as @verb{|#lisp|} did
+...@c reimplementing this one.
+...@c @end deffn
+
+...@c @deffn Operation feature-dependent-op
+
+...@c An instance of @code{feature-dependent-op} will ignore any components
+...@c which have a @code{features} attribute, unless the feature combination
+...@c it designates is satisfied by @code{*features*}.  This operation is
+...@c not intended to be instantiated directly, but other operations may
+...@c inherit from it.
+
+...@c @end deffn
 
 @node  Creating new operations,  , Predefined operations of asdf, Operations
 @comment  node-name,  next,  previous,  up
_______________________________________________
asdf-devel mailing list
[email protected]
http://common-lisp.net/cgi-bin/mailman/listinfo/asdf-devel

Reply via email to