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'm open to proposals that don't involve a default directory, but I'm not happy with the current state of affairs.
The thought experiment I suggest is the following: You meet a new Lisp user, who wants to write his or her first lisp system. It's so simple it doesn't have any external dependencies. How do you explain ASDF configuration so that it gets the system loaded, and is absolutely trivial?
I don't want to make an additional tool, since that requires somehow getting all the implementations to bundle said additional tool, and because (a) we don't have a good way to make such a tool invocable from the command line; (b) if we could do a, it would still be a problem to get it to work on Windows as well as the Unix family tree; (c) anything to do with modifying the file system is a bear because of the inadequacies of the CL spec in this area.
But I could be wrong about this! Do you see a way such a tool could simplify the novice's life and be implementable w/o too much effort?
Cheers, r