8.1 Configurations
Configurations specify paths where to find system files.
- The search registry may use some hardcoded wrapping registry specification.
This allows some implementations (notably SBCL) to specify where to find
some special implementation-provided systems that
need to precisely match the version of the implementation itself.
- An application may explicitly initialize the source-registry configuration
using the configuration API
(see Configuration API, below)
in which case this takes precedence.
It may itself compute this configuration from the command-line,
from a script, from its own configuration file, etc.
- The source registry will be configured from
the environment variable
CL_SOURCE_REGISTRY
if it exists.
- The source registry will be configured from
user configuration file
$XDG_CONFIG_DIRS/common-lisp/source-registry.conf
(which defaults to
~/.config/common-lisp/source-registry.conf)
if it exists.
- The source registry will be configured from
user configuration directory
$XDG_CONFIG_DIRS/common-lisp/source-registry.conf.d/
(which defaults to
~/.config/common-lisp/source-registry.conf.d/)
if it exists.
- The source registry will be configured from
default user configuration trees
~/common-lisp/ (since ASDF 3.1.2 only),
~/.sbcl/systems/ (on SBCL only),
$XDG_DATA_HOME/common-lisp/systems/ (no recursion, link farm)
$XDG_DATA_HOME/common-lisp/source/.
The
XDG_DATA_HOME
directory defaults to ~/.local/share/.
On Windows, the local-appdata
and appdata
directories are used instead.
- The source registry will be configured from
system configuration file
/etc/common-lisp/source-registry.conf
if it exists.
- The source registry will be configured from
system configuration directory
/etc/common-lisp/source-registry.conf.d/
if it exists.
- The source registry will be configured from a default configuration.
This configuration may allow for implementation-specific systems
to be found, for systems to be found the current directory
(at the time that the configuration is initialized) as well as
:directory
entries for $XDG_DATA_DIRS/common-lisp/systems/ and
:tree
entries for $XDG_DATA_DIRS/common-lisp/source/,
where XDG_DATA_DIRS
defaults to /usr/local/share and /usr/share on Unix,
and the common-appdata
directory on Windows.
- The source registry may include implementation-dependent directories
that correspond to implementation-provided extensions.
Each of these configurations is specified as an s-expression
in a trivial domain-specific language (defined below).
Additionally, a more shell-friendly syntax is available
for the environment variable (defined yet below).
Each of these configurations is only used if the previous
configuration explicitly or implicitly specifies that it
includes its inherited configuration.
Additionally, some implementation-specific directories
may be automatically prepended to whatever directories are specified
in configuration files, no matter if the last one inherits or not.