ASDF configuration and cache

Faré fahree at gmail.com
Wed Apr 29 05:13:53 UTC 2015


Dear Lispers,

The most significant bit for this email is:
DO YOU HAVE A source-registry.conf ON WINDOWS?
or do you know someone who has?
If so, please contact me, either on this list or in private,
because I'm considering a backward-incompatible change in its location.

(If you use or don't use source-registry.conf on Linux, that can be an
interesting data point, too, for comparison of impact.)

If not, then there will be no negative impact to the proposed change.

I'm having a hard time finding an affected Windows user who cares,
which may be a sign that there is none and I can proceed, or that I'm
simply disconnected from the user base.

Right now, ASDF tries to do things kind-of-the-windows-way, where
"common-lisp/" replaces the vendor/app/ path component. Thus, it puts
its configuration in %LOCALAPPDATA%/common-lisp/config/ its cache in
%LOCALAPPDATA%/common-lisp/cache/ and for source code in
%LOCALAPPDATA%/common-lisp/source/

I'm considering dropping the Windows special-casing, and offering the
XDG model on all platforms, including Windows. That would mean the
configuration would instead go in
%LOCALAPPDATA%/Configuration/common-lisp/ and the cache in
%LOCALAPPDATA%/Cache/common-lisp/ while source code remains in
%LOCALAPPDATA%/common-lisp/source/ with these the conceptual mapping
XDG_CONFIG_HOME=%LOCALAPPDATA%/Configuration instead of ~/.config/ and
XDG_DATA_HOME=%LOCALAPPDATA%/ instead of ~/.local/share/ and
XDG_CACHE_HOME=%LOCALAPPDATA%/Cache/ instead of ~/.cache/

The advantage of the change would be that ASDF would offer to Lisp
programs a uniform XDG view on all platforms, which has some costs in
terms of being slightly unfamiliar to Windows users and a transition
issue for some of them, but going forward allows for:
* all files can be redirected on all platforms using the
XDG_CONFIG_HOME environment variable and its siblings.
* the same directory concepts on all platforms.
* slightly simpler code for the ASDF maintainers, and much simpler
documentation: no need to explain vast subtle discrepancies from one
platform to the next.
* the ability to handle backup of configuration and skipping of backup
of cache in a simpler way than with the usual Windows semi-convention.
* a more uniform API for the Lisp programmer

The main disadvantage is that this setup is somewhat different from
current conventions on Windows. On the other hand, conventions on Unix
were similar to those on Windows some ten years back, and have
improved thanks to XDG -- maybe they can evolve for the better on
Windows, too, in the next ten years.

To me, the big issue is with transition for people who currently use a
source-registry.conf on Windows. Since ASDF will start to look for it
at a different location, their setup will need to be amended when they
upgrade ASDF.

What do you think? Does anyone care at all? Does anyone actually have
a common-lisp/config/source-registry.conf file and be confused if the
location changes?

—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org
Corollaries to the Law of Bitur-Camember: The political process destroys the
value of all known resources that are up for grabs. The socialist process of
systematically denying legitimacy to property rights applies the political
process universally and destroys the value of all available resources.



More information about the asdf-devel mailing list