"Robert P. Goldman" rpgoldman@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