[asdf-devel] summary proposal for COMMON_LISP_PATH and system search changes
Gary King
gwking at metabang.com
Sun Sep 27 13:16:58 UTC 2009
Here is a summary of what I've heard and what I think we should do.
# Proposal Summary
These are independent but make the most sense if taken as a
whole.
* Specify new defaults for `*central-registry*`,
* use an environment variable named `COMMON_LISP_PATH` to
override ASDF's defaults,
* use `*central-registry*` to find and load an ASDF
configuration file (if present) and
* modify the default behavior of
`sysdef-central-registry-search` to search deeply.
## default value for *central-registry*
COMMON_LISP_PATH environment variable with syntax like
path[;path]*
This is used by ASDF to help build the default value for
`*central-registry*`.
If not specified, `*central-registry*` defaults to (on
*nix-like systems):
(list
*default-pathname-defaults*
(merge-pathnames
(make-pathname :directory '(:relative ".common-lisp"))
(user-homedir-pathname)))
(merge-pathnames
(make-pathname :directory '(:relative ".local" "share"
"common-lisp"))
(user-homedir-pathname)))
(make-pathname :directory '(:absolute "usr" "local" "share"
"common-lisp"))
(make-pathname :directory '(:absolute "usr" "share" "common-
lisp"))
)
(The last two would need to be different for Windows-based
systems.)
## modification for `sysdef-central-registry-search`
Currently `sysdef-central-registry-search` searches in the
top-level of each directory in `*central-registry*` to find
systems. If we use the above, then a more useful approach
would be to search in the top-level and in a sub-directory
named `systems`. An even more useful approach would to search
in all sub-directories of each entry.
## configuration file
When ASDF starts, it will:
1. setup `*central-registry*` using its own defaults and the
`COMMON_LISP_PATH` environment variable.
2. look for (and load if it is found) a file named
`asdf-config.lisp` in each of these paths traversed in
_reverse_ order (so that user settings take precedence overs
system ones). Note that the ASDF package will exist when this
file is read.
I.e., I'm suggesting that we go the "user settings overwrite
system settings" route rather than the "if there are any user
settings, then ignore the system settings" one.
--
Gary Warren King, metabang.com
Cell: (413) 559 8738
Fax: (206) 338-4052
gwkkwg on Skype * garethsan on AIM * gwking on twitter
More information about the asdf-devel
mailing list