[asdf-devel] Alternate default lisp system location

Stelian Ionescu sionescu at cddr.org
Wed Mar 12 13:59:24 UTC 2014

On Wed, 2014-03-12 at 08:51 -0500, Robert P. Goldman wrote:
> 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?

1) install Quicklisp, it's easy and painless
2) put your projects in $QUICKLISPDIR/local-projects/


> I don't want to make an additional tool, since that requires somehow
> getting all the implementations to bundle said additional tool

That's not true. See for instance rbenv(ruby) and virtualenv(python).
They're separate projects.

> 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.

I didn't say it must be written in Lisp. Since it would only be asking a
few questions and thereafter creating a few directories and files it can
very well be perl/python.

Stelian Ionescu a.k.a. fe[nl]ix
Quidquid latine dictum sit, altum videtur.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <https://mailman.common-lisp.net/pipermail/asdf-devel/attachments/20140312/de0565ec/attachment.sig>

More information about the asdf-devel mailing list