Commit 75128da0 authored by Robert P. Goldman's avatar Robert P. Goldman

Added a discussion of the :CLASS argument to DEFSYSTEM.

parent a9d66b19
......@@ -895,7 +895,8 @@ For more details on what these methods do, @pxref{Operations} in
@example
system-definition := ( defsystem system-designator @var{system-option}* )
system-option := :defsystem-depends-on system-list
system-option := :defsystem-depends-on system-list
| :class class-name (see discussion below)
| module-option
| option
......@@ -959,6 +960,25 @@ the current package. So a component type @code{my-component-type}, in
the current package @code{my-system-asd} can be specified as
@code{:my-component-type}, or @code{my-component-type}.
@subsection System class names
A system class name will be looked up in the same way as a Component
type (see above). Typically, one will not need to specify a system
class name, unless using a non-standard system class defined in some
ASDF extension, typically loaded through @code{DEFSYSTEM-DEPENDS-ON},
see below. For such class names in the ASDF package, we recommend that
the @code{:class} option be specified using a keyword symbol, such as
@example
:class :MY-NEW-SYSTEM-SUBCLASS
@end example
This practice will ensure that package name conflicts are avoided.
Otherwise, the symbol @code{MY-NEW-SYSTEM-SUBCLASS} will be read into
the current package @emph{before} it has been exported from the ASDF
extension loaded by @code{:defsystem-depends-on}, causing a name
conflict in the current package.
@subsection Defsystem depends on
The @code{:defsystem-depends-on} option to @code{defsystem} allows the
......@@ -3654,6 +3674,8 @@ you also define the following method:
"lis")
@end lisp
@comment FIXME: Add a FAQ about how to use a new system class...
@node TODO list, Inspiration, FAQ, Top
@comment node-name, next, previous, up
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment