"Robert P. Goldman" <rpgold...@sift.info> writes: > Stelian Ionescu wrote: >> On Thu, 2014-02-27 at 22:30 -0600, Robert P. Goldman wrote: >>> How would you all feel about an alternate default location for lisp >>> systems, in addition to >>> >>> ~/.local/share/common-lisp/source/ >>> >>> I'm sure that .local was chosen out of the (in)finite wisdom of XDG, but >>> it just seems odd to me to hide the lisp systems from the user, which we >>> are doing by putting them in a location that requires ls -a. >>> >>> After all, these are systems, not configuration files. >>> >>> What about ~/asdf-systems which doesn't make the poor user play peekaboo? >>> >>> I came across this while editing the manual. I don't use this directory >>> myself; maybe everyone loves it. Or maybe no one uses the standard >>> default, and I shouldn't care. >> >> I would ask you not to add any more hard-coded directories to ASDF, and >> remove the already existing ones. If what you want is making life easy >> for newcomers, make an additional tool that initializes a work >> environment with convenient values, but separate the configuration of >> ASDF from the core. >> >> The only reason why ~/.local/share/common-lisp/source/ hasn't caused >> complaints is because nobody was already using it. In my case, ~/lisp >> has large numbers of duplicate .asd files and other systems I don't want >> to expose so a :tree recursion there would be very annoying. And please >> don't tell me to :ignore-inherited-configuration, for what's the point >> of the default configuration if so many people either don't use it or >> have to explicitly ignore it ? >> > > The problem with not adding hard-coded directories is that configuration > is too demanding of a new user. I have just overhauled the manual, and > there is WAY too much to have to know in order to just get started. > > IMO, no one should have to learn a complex DSL, or how to structure a > conf.d directory in order to write his or her first lisp system. > Compare with 'make' -- since make doesn't have to find its systems, it's > trivial to build a makefile for your first C program. That is not the > case with ASDF -- you can write your first .asd file, but ASDF won't > find it! > > Since ASDF *does* have to find the user's first ASDF file, we must make > that trivial to do.
I think this could be simplified somewhat if it was easy to load or register a system if you have its pathname. I've seen some people recommend something like (load "/path/to/project.asd"), but I don't think that establishes the same environment that asdf's find-system mechanism does, so it could go wrong. Is there some easy way, supported by ASDF, to make a system known to ASDF if you have its pathname? The complexity of the registry configuration is one reason why I added the ~/quicklisp/local-projects/ mechanism. Zach