[asdf-devel] Alternate default lisp system location

Faré fahree at gmail.com
Thu Mar 13 04:45:25 UTC 2014

>>: rpgoldman
>: dherring

>> I am sorry, but I promise you that this will NOT be consistent with XDG. I
>> have no idea why those people think it's a good idea to put files in
>> directories where ls cannot find them.
>> ASDF already has a deeply-nested, invisible-to-ls location that is XDG
>> compliant where you can put your files if that's what floats your boat.

> Given the current CL ecosystem, things are constantly changing,
> implementations provide little fasl compatibility, CL installs are often
> per-user, etc.  Thus the current best default for sources is in $HOME.  I
> would argue that the use of $HOME is the real problem, and "hiding" things
> is the right solution for users (as opposed to developers who can be
> expected to memorize a slightly obscure path).
> Two default paths is not better than one.
> There is a reason MS Windows has "hide system files" enabled by default.
> Some things are too complicated for "casual users", and an obscure
> "~/common-lisp" is just asking for grandma to delete the folder she "doesn't
> want"...
> In systems like OS-X-style "disk images" and Java-style jarfiles, the entire
> application is self-contained.  Thus it is quite appropriate for the full
> path to be user-visible, for deleting the file is uninstalling the app.

I believe that there are different kinds of users, and that
ASDF should provide sensible defaults for all of them.

On the one hand, there are hypothetical end-users of software written in CL.
For these users, who don't program, and don't want to see the Lisp source,
the XDG standard makes perfect sense, and we already support it.

On the other hand, there are also low-commitment programmers,
who may be beginners or occasional members of the community,
and who would like a simple no-configuration way of hacking code
without having to deal with magic invisible XDG paths.
For them, a ~/common-lisp/ is perfect;
it would also play the role of ~/quicklisp/local-projects or whatever.

Once again, if someone already has a ~/common-lisp/, it should not
matter too much,
since the default only applies after whatever they explicitly configured,
and only shadows other lower-priority defaults — and if it does affect them,
they can easily configure ASDF to skip this default.

A small pain for a handful of hypothetical current users,
a nice gain for all future users.

As for self-contained apps, you can already do that:
just have your start script (either Lisp code or shell wrapper)
properly configure the source-registry.
Actually, any release engineer worth his grain will make sure
his builds are self-contained and reproducible,
built from well-versioned compilers, etc.

—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
Language is froth on the surface of thought.  — John McCarthy

More information about the asdf-devel mailing list