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


8.8 Search Algorithm

In case that isn’t clear, the semantics of the configuration is that when searching for a system of a given name, directives are processed in order.

When looking in a directory, if the system is found, the search succeeds, otherwise it continues.

When looking in a tree, if one system is found, the search succeeds. If multiple systems are found, the consequences are unspecified: the search may succeed with any of the found systems, or an error may be raised. ASDF 3.2.1 or later returns the pathname whose normalized directory component has the shortest length (as a list), and breaks ties by choosing the system with the smallest unix-namestring when compared with string<. Earlier versions of ASDF return ASDF return the first system found, which is implementation-dependent, and may or may not be the pathname with the smallest unix-namestring when compared with string<. XCVB raises an error. If none is found, the search continues.

Exclude statements specify patterns of subdirectories the systems from which to ignore. Typically you don’t want to use copies of files kept by such version control systems as Darcs. Exclude statements are not propagated to further included or inherited configuration files or expressions; instead the defaults are reset around every configuration statement to the default defaults from asdf::*default-source-registry-exclusions*.

Include statements cause the search to recurse with the path specifications from the file specified.

An inherit-configuration statement cause the search to recurse with the path specifications from the next configuration (see Configurations above).


Next: Caching Results, Previous: Shell-friendly syntax for configuration, Up: Controlling where ASDF searches for systems   [Contents][Index]