Previous: Predefined operations of ASDF, Up: Operations [Contents][Index]
ASDF was designed to be extensible in an object-oriented fashion.
To teach ASDF new tricks, a programmer can implement the behaviour he wants
by creating a subclass of operation
.
ASDF’s pre-defined operations are in no way “privileged”,
but it is requested that developers never use the asdf
package
for operations they develop themselves.
The rationale for this rule is that we don’t want to establish a
“global asdf operation name registry”,
but also want to avoid name clashes.
An operation must provide methods for the following generic functions
when invoked with an object of type source-file
:
FIXME describe this better
output-files
The output-files
method determines where the method will put its files.
It returns two values, a list of pathnames, and a boolean.
If the boolean is T
then the pathnames are marked
not be translated by enclosing :around
methods.
If the boolean is NIL
then enclosing :around
methods
may translate these pathnames, e.g. to ensure object files
are somehow stored in some implementation-dependent cache.
perform
The perform
method must call output-files
to find out where to put its files,
because the user is allowed to override.
output-files
for local policy explain
operation-done-p
,
if you don’t like the default one
Operations that print output should send that output to the standard
CL stream *standard-output*
, as the Lisp compiler and loader do.