Zach Beane wrote:
Marco Antoniotti marcoxa@cs.nyu.edu writes:
On Mar 12, 2014, at 15:32 , Zach Beane xach@xach.com wrote:
Robert Goldman rpgoldman@sift.net writes:
Zach Beane wrote:
The complexity of the registry configuration is one reason why I added the ~/quicklisp/local-projects/ mechanism.
Right, so I don't see why there's such a huge objection to having a similar mechanism for ASDF. Stellian suggests using ~/quicklisp/local-projects/. So why is it wrong for ASDF to have a local-projects directory?
All I am suggesting is to have the local projects directory for ASDF be visible, instead of invisible.
I stand corrected about using a name that the user might have already had (thanks, Pascal!) but I don't yet see a solution that's as easy as a default directory location.
I think having a similar mechanism would be good. (And the loading-from-a-file thing could be nice too.)
I think the main problem is that giving it a nice name means that the chance is high of it clashing with a nice name one or more users is already using.
A while ago I was thinking it would be nice to have an API like this:
register-system-directory directory &key permanently
Registers DIRECTORY as a directory to search for system files. If PERMANENTLY is true, make the registration persist across sessions. But then I got hung up about how to make PERMANENTLY work -- I don't think there's any way to ask ASDF what directory is suitable for saving a config file.
And I am 100% in favor of a nice solution that does not involve Quicklisp. The simpler, the better.
That is what MK:DEFSYSTEM used to (actually still does) have.
mk:add-registry-location <pathname>
I don’t think you want the ‘permanently’. Your init file should be able to deal with that.
I'd like to use this interface *instead* of thinking about which config file to extend, and extend a cross-platform data file instead.
But I can't figure out how to do it, so it's a bit moot right now.
I think the fact that there are multiple, alternative ways to configure the source-registry, with different means of persistence (set the *CENTRAL-REGISTRY* variable, persistence left as an exercise to the programmer; use the DSL in code, ditto; use the DSL in config files, handled by config files), means that it will not be easy to automagically save a config change from lisp source. :-(