Faré wrote:
Isn't it allowed because it's never clear what directory they are relative to, considering that the user may have changed the getcwd() arbitrarily between startup and asdf parsing the source-registry configuration, which would cause "interesting" subtle bugs, that I wanted to avoid — including security issues if a binary written in Lisp ever loads systems at runtime and examines a carefully crafted directory.
I suppose there's a case for allowing relative names, making them relative to the configuration file when in a configuration file (though that's not a common use case at all), and relative to *default-pathname-defaults* when in an environment string, leaving the user full responsibility to avoid subtle bugs. I'm not the one to convince anymore, though. Ask Robert. If he agrees with you, I'll gladly help with the required modifications to ASDF.
Actually, this feature is already available, I believe, through the :HERE directive in the configuration language.
This was something we added for the case that I found common, where there would be a project directory tree, with all the required code in subdirectories, and a master configuration file at the root.*
Have a look at that and see if it does what you want.
Cheers, r
* In practice, we create these trees by checking a project out from svn. We'd have all the required libraries, in stable versions, included as svn externals.