[asdf-install-devel] Relative symlinks to sysfiles

Dan Muller pikdj2002 at sneakemail.com
Tue Dec 25 22:34:35 UTC 2007


Chaitanya Gupta wrote:
> Dan Muller wrote:
>> My only critique at the moment has to do with the fact that I'd like
>> to see the set of customizable exports from ASDF-INSTALL kept
>> small. Symlinking the system files is a problematic area for Windows
>> users and needs a better solution there. Rather than adding an
>> exported boolean symbol, I'd much rather see something like a variable
>> whose value is a function that is responsible for "registering" a
>> system file. By default, this would symlink as is currently done; you
>> could replace the value with your function, which then wouldn't have
>> to be part of ASDF-INSTALL (although it could still be, as an exported
>> convenience function). This would also provide a means for Windows
>> users to replace it with a function that coordinates with their ASDF
>> (or MK-DEFSYSTEM) configuration.
>>   
> I agree that this would be a better approach than what's done currently
> (calling MAYBE-SYMLINK-SYSFILE from INSTALL-PACKAGE), but instead of
> providing "a" default, I think it would be better to provide
> "reasonable" system-specific default functions for registering a system
> e.g. one for unix-based systems, another for windows, etc (and my
> preferred way could be a convenience exported function - I /think/ some
> people might want symlinks this way).

I agree on all three points: providing reasonable defaults, that some
folks might prefer relative symlinks, and that relative symlinks
should be available via an exported function.

> BTW, even without my patch, currently MAYBE-SYMLINK-FILE does nothing on
> Windows (AFAIK, registering a system only means creating a symlink right
> now).

Yes, I've been looking at this, and have some ideas, and some
unfinished code.

For Windows, I'd like to create a pseudo-link file containing only a
pathname referencing the actual system file in its installed
location. With ASDF, it's easy to add an appropriate sysdef search
function. I played around with other approaches, but this one is the
closest to symbolic link files, with most of their good
characteristics. Come to think of it, this could be provided in both
absolute and relative flavors, too.

ASDF-INSTALL also adds entries to asdf:*central-registry* and/or
mk-defsystem's equivalent. (See MAYBE-UPDATE-CENTRAL-REGISTRY and
ADD-REGISTRY-LOCATION.) I'd like to see it stop doing that, unless
there's a reason for it that I haven't noticed; it can mask problems
that occur with actually setting up the symbolic link (or whatever one
chooses to do on Windows). For instance, everything might appear to
install and load properly, but the next time you start your Lisp
system, installed systems can no longer be found. Better to find out
right away if you've messed up the system file installation.

You might want to take a look at the unstable release, and/or my
"submitted" repository. I always announce my patches here at the same
time that I publish them in the latter.

http://danm.homelinux.org/darcs/asdf-install/submitted

-- 
Dan Muller



More information about the asdf-install-devel mailing list