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} -- __Pascal Bourguignon__ http://www.informatimago.com