On Oct 1, 2009, at 3:55 PM, Gary King wrote:
Take 2.
Thanks for all the comments and ideas; and is a new summary.
# Proposal Summary
- a `!` will be replaced by the default value (see below) so that it is easy to extend the path rather than just replacing it.
I don't like too much using random characters like this.
On the other hand, I'm not sure I've got a good proposition here. I've seen programs using the ${VAR} or $(VAR) syntax. So instead of matching "!", we'd match "${DEFAULT}". We'd write:
export CL_SYSTEM_PATH="${HOME}"'/lisp/*/:/data/lisp/**/system/:$ {DEFAULT}' or: export CL_SYSTEM_PATH="${HOME}/lisp/*/:/data/lisp/**/system/:$ {DEFAULT}"
which is nice when there is several such variable the program provides, but is also confusing the user with environment variables vs. the program variables.
- if the last component is a `*` or `**` then sub-directories of this path will be searched recursively either one level deep (if `*`) or all the way down (if `**`).
I see no reason to restrict it to the last component. On the contrary, we may assume that each system is delivered with a specific directory structure, and that a system X could have its various asdf, defsystem, xcvb files in a specific subdirectory:
X/system/X.asd
in which case we would set:
CL_SYSTEM_PATH=/src/lisp/*/system/:${DEFAULT}