Next: Defining systems with defsystem, Previous: Configuring ASDF, Up: Top [Contents][Index]
The system foo is loaded (and compiled, if necessary) by evaluating the following Lisp form:
(asdf:load-system :foo)
On some implementations (namely recent versions of
ABCL, Clozure CL, CLISP, CMUCL, ECL, SBCL and SCL),
ASDF hooks into the CL:REQUIRE
facility
and you can just use:
(require :foo)
In older versions of ASDF, you needed to use
(asdf:oos 'asdf:load-op :foo)
.
If your ASDF is too old to provide asdf:load-system
though
we recommend that you upgrade to ASDF 2.
See Loading an otherwise installed ASDF.
Note the name of a system is specified as a string or a symbol,
typically a keyword.
If a symbol (including a keyword), its name is taken and lowercased.
The name must be a suitable value for the :name
initarg
to make-pathname
in whatever filesystem the system is to be found.
The lower-casing-symbols behaviour is unconventional,
but was selected after some consideration.
Observations suggest that the type of systems we want to support
either have lowercase as customary case (unix, mac, windows)
or silently convert lowercase to uppercase (lpns),
so this makes more sense than attempting to use :case :common
,
which is reported not to work on some implementations
ASDF provides three commands for the most common system operations:
load-system
, compile-system
or test-system
.
Because ASDF is an extensible system
for defining operations on components,
it also provides a generic function operate
(which is usually abbreviated by oos
).
You’ll use oos
whenever you want to do something beyond
compiling, loading and testing.
Output from ASDF and ASDF extensions are supposed to be sent
to the CL stream *standard-output*
,
and so rebinding that stream around calls to asdf:operate
should redirect all output from ASDF operations.
Reminder: before ASDF can operate on a system, however, it must be able to find and load that system’s definition. See Configuring ASDF to find your systems.
To use ASDF:
(require :asdf)
or else through
(load "/path/to/asdf.lisp")
.
(load-system :my-system)
or use some other operation on some system of your choice.
That’s all you need to know to use ASDF to load systems written by others. The rest of this manual deals with writing system definitions for Common Lisp software you write yourself, including how to extend ASDF to define new operation and component types.
Next: Defining systems with defsystem, Previous: Configuring ASDF, Up: Top [Contents][Index]