Previous: Predefined operations of asdf, Up: Operations

#### 3.1.2 Creating new operations

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`
- `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