Next: , Previous: , Up: Controlling where ASDF searches for systems   [Contents][Index]


8.1 Configurations

Configurations specify paths where to find system files.

  1. 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.
  2. 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.
  3. The source registry will be configured from the environment variable CL_SOURCE_REGISTRY if it exists.
  4. 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.
  5. 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.
  6. 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.
  7. The source registry will be configured from system configuration file /etc/common-lisp/source-registry.conf if it exists.
  8. The source registry will be configured from system configuration directory /etc/common-lisp/source-registry.conf.d/ if it exists.
  9. 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.
  10. 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.


Next: Truenames and other dangers, Previous: Controlling where ASDF searches for systems, Up: Controlling where ASDF searches for systems   [Contents][Index]