[asdf-devel] Alternate default lisp system location

Zach Beane xach at xach.com
Wed Mar 12 14:02:05 UTC 2014


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



More information about the asdf-devel mailing list