The following implementations only provide ASDF 2:
The following implementations only provide ASDF 2:
lispworks, mkcl, mocl, xcl.
LispWorks, mocl, XCL.
The following implementation doesn't provide ASDF yet but will in an upcoming release:
The following implementation doesn't provide ASDF yet but will in an upcoming release:
SCL.
SCL.
The following implementations are obsolete, not actively maintained,
The following implementations are obsolete, not actively maintained,
and most probably will never bundle ASDF:
and most probably will never bundle ASDF:
cormanlisp, gcl, genera, mcl.
Corman CL, GCL, Genera, MCL.
If the implementation you are using doesn't provide ASDF 2 or ASDF 3,
If the implementation you are using doesn't provide ASDF 2 or ASDF 3,
see @pxref{Loading ASDF,,Loading an otherwise installed ASDF} below.
see @pxref{Loading ASDF,,Loading an otherwise installed ASDF} below.
...
@@ -291,11 +297,6 @@ If that implementation is still actively maintained,
...
@@ -291,11 +297,6 @@ If that implementation is still actively maintained,
you may also send a bug report to your Lisp vendor and complain
you may also send a bug report to your Lisp vendor and complain
about their failing to provide ASDF.
about their failing to provide ASDF.
@c FIXME: Move to footnote.
NB: all implementations except clisp also accept
@code{(require "ASDF")}, @code{(require 'asdf)} and @code{(require :asdf)}.
For portability's sake, you probably want to use @code{(require "asdf")}.
@node Checking whether ASDF is loaded, Upgrading ASDF, Loading a pre-installed ASDF, Loading ASDF
@node Checking whether ASDF is loaded, Upgrading ASDF, Loading a pre-installed ASDF, Loading ASDF
@section Checking whether ASDF is loaded
@section Checking whether ASDF is loaded
...
@@ -352,12 +353,14 @@ ASDF will automatically look whether an updated version of itself is available
...
@@ -352,12 +353,14 @@ ASDF will automatically look whether an updated version of itself is available
amongst the regularly configured systems, before it compiles anything else.
amongst the regularly configured systems, before it compiles anything else.
@xref{Configuring ASDF}, below.
@xref{Configuring ASDF}, below.
@c FIXME: this refers to "as above", but there's no description above.
@c FIXME: this refers to "as above", but there's no description above.
If your implementation does provides ASDF 2 (or later),
If your implementation does provides ASDF 2 (or later),
but not ASDF 3 or later,
but not ASDF 3 or later,
and you want to upgrade to a more recent version,
and you want to upgrade to a more recent version,
you need to install and configure your ASDF as above,
you need to install and configure your ASDF just like any other system:
and additionally, you need to explicitly tell ASDF to load itself,
@xref{Configuring ASDF to find your systems}.
Additionally, you need to explicitly tell ASDF to load itself,
right after you require your implementation's old ASDF 2:
right after you require your implementation's old ASDF 2:
@lisp
@lisp
...
@@ -428,7 +431,7 @@ since the new one might shadow the old one while the old one is running,
...
@@ -428,7 +431,7 @@ since the new one might shadow the old one while the old one is running,
and the running old one will be confused
and the running old one will be confused
when extensions are loaded into the new one.
when extensions are loaded into the new one.
In the meantime, we recommend that your systems should @emph{not} specify
In the meantime, we recommend that your systems should @emph{not} specify
@code{:depends-on (:asdf)}, or @code{:depends-on ((:version :asdf "2.010"))},
@code{:depends-on (:asdf)}, or @code{:depends-on ((:version :asdf "3.0.1"))},
but instead that they check that a recent enough ASDF is installed,
but instead that they check that a recent enough ASDF is installed,
with such code as:
with such code as:
@example
@example
...
@@ -476,23 +479,22 @@ for example by loading it from the startup script or dumping a custom core
...
@@ -476,23 +479,22 @@ for example by loading it from the startup script or dumping a custom core
@comment node-name, next, previous, up
@comment node-name, next, previous, up
@chapter Configuring ASDF
@chapter Configuring ASDF
For standard use cases, ASDF should work pretty much out of the box. We
For standard use cases, ASDF should work pretty much out of the box.
recommend you skim the sections on configuring ASDF to find your systems
We recommend you skim the sections on configuring ASDF to find your systems
and choose the method of installing Lisp software that works best for
and choose the method of installing Lisp software that works best for you.
you. Then skip directly to @xref{Using ASDF}; that will probably be
Then skip directly to @xref{Using ASDF}. That will probably be enough.
enough. You are unlikely to have to worry about the way ASDF stores
You are unlikely to have to worry about the way ASDF stores object files,
object files, and resetting the ASDF configuration is usually only
and resetting the ASDF configuration is usually only needed in corner cases.
needed in corner cases.
@menu
@menu
* Configuring ASDF to find your systems ::
* Configuring ASDF to find your systems ::
* Configuring ASDF to find your systems --- old style ::
* Configuring ASDF to find your systems --- old style ::
* Configuring where ASDF stores object files ::
* Configuring where ASDF stores object files ::
* Resetting the ASDF configuration ::
* Resetting the ASDF configuration ::
@end menu
@end menu
@node Configuring ASDF to find your systems, Configuring where ASDF stores object files, Configuring ASDF, Configuring ASDF
@node Configuring ASDF to find your systems, Configuring ASDF to find your systems --- old style, Configuring ASDF, Configuring ASDF
@section Configuring ASDF to find your systems
@section Configuring ASDF to find your systems
In order to compile and load your systems, ASDF must be configured to find
In order to compile and load your systems, ASDF must be configured to find
...
@@ -503,17 +505,17 @@ ASDF, starting from easiest to the most complex:
...
@@ -503,17 +505,17 @@ ASDF, starting from easiest to the most complex:
@itemize @bullet
@itemize @bullet
@item
@item
Put all of your systems in subdirectories of
Put all of your systems in subdirectories of
@file{~/.local/share/common-lisp/source/}.
@file{~/.local/share/common-lisp/source/}.
If you install software there (it can be a symlink),
If you install software there (it can be a symlink),
you don't need further configuration.
you don't need further configuration.
@item
@item
If you're using some tool to install software (e.g. Quicklisp),
If you're using some tool to install software (e.g. Quicklisp),
the authors of that tool should already have configured ASDF.
the authors of that tool should already have configured ASDF.
@item
@item
If you have more specific desires about how to lay out your software on
If you have more specific desires about how to lay out your software on
disk, the preferred way to configure where ASDF finds your systems is
disk, the preferred way to configure where ASDF finds your systems is
the @code{source-registry} facility,
the @code{source-registry} facility,
...
@@ -566,9 +568,10 @@ If necessary, you can reset the source-registry configuration with:
...
@@ -566,9 +568,10 @@ If necessary, you can reset the source-registry configuration with:
@item
@item
In earlier versions of ASDF, the system source registry was configured
In earlier versions of ASDF, the system source registry was configured
using a global variable, @code{asdf:*central-registry*}. For more
using a global variable, @code{asdf:*central-registry*}.
details about this, see the following section, @ref{Configuring ASDF to
For more details about this, see the following section,
find your systems --- old style}. Unless you need to understand this,
@ref{Configuring ASDF to find your systems --- old style}.
Unless you need to understand this,
skip directly to @ref{Configuring where ASDF stores object files}.
skip directly to @ref{Configuring where ASDF stores object files}.
@end itemize
@end itemize
...
@@ -655,7 +658,7 @@ to the actual location of the systems.@footnote{
...
@@ -655,7 +658,7 @@ to the actual location of the systems.@footnote{
On Windows, you can use Windows shortcuts instead of POSIX symlinks.
On Windows, you can use Windows shortcuts instead of POSIX symlinks.
if you try aliases under MacOS, we are curious to hear about your experience.}
if you try aliases under MacOS, we are curious to hear about your experience.}
For example, if @code{#p"/home/me/cl/systems/"}
For example, if @code{#p"/home/me/cl/systems/"}
is an element of @code{*central-registry*}, you could set up the
is an element of @code{*central-registry*}, you could set up the
system @var{foo} as follows:
system @var{foo} as follows:
...
@@ -669,7 +672,7 @@ but it is supported for old users, and for users who want to programmatically
...
@@ -669,7 +672,7 @@ but it is supported for old users, and for users who want to programmatically
control what directories are added to the ASDF search path.
control what directories are added to the ASDF search path.
@node Configuring where ASDF stores object files, , Configuring ASDF to find your systems, Configuring ASDF
@node Configuring where ASDF stores object files, Resetting the ASDF configuration, Configuring ASDF to find your systems --- old style, Configuring ASDF
@section Configuring where ASDF stores object files
@section Configuring where ASDF stores object files