[asdf-install-devel] Bugs? install-package, defsystem

Dan Muller pikdj2002 at sneakemail.com
Tue Nov 20 04:43:44 UTC 2007


Gary King writes:
> On Nov 18, 2007, at 6:48 PM, Dan Muller wrote:
>
>> In any case, that change got me a bit farther. Specifically, it got me
>> as far as ASDF-INSTALL::LOAD-PACKAGE, which blows up on the call to
>> MK:LOAD-SYSTEM. CL-BASE64 has no .system file, you see. As far as I
>> can tell, the logic when both ASDF and DEFSYSTEM are present is kind
>> of half-baked; ASDF-INSTALL tries to load each package using both
>> systems, via LOAD-PACKAGE. Am I missing something here?
>
>
> No, you're not missing anything. ASDF's support of mk:defsystem is
> definitely lagging.
>
> I'm inclined to drop support for mk:defsystem for now. What's your
> opinion? (Others should please chime in)

Even though I get to play with Lisp only part-time, I've encountered a
few systems that support mk:defsystem. Personally, I'd rather clean up
ASDF-INSTALL without losing any of its current features. If anything,
I'm inclined to rearrange things so that it's easier to add support
for additional defsystems (not that I know of any, but CL is
experiencing a bit of a renaissance now), perhaps distinguishing among
system files by their extensions.

And even more generally, having studied the internals for two days and
several evenings now, I'd like to take a crack at making a cleaner
separation between the various tasks involved in ASDF-INSTALL's
install functionality, making some of them much more configurable. I
see them as being these:

1. acquisition
2. verification
3. unpacking to an installation location
4. identifying supported system files
5. registering system files (might or might not involve symlinks)
6. loading (once only, please)

Of these, I've looked at 3, 4, and 5 quite a bit, since 3 and 5 are
most problematic on Windows. The use of symlinks is deeply embedded,
starting with the two-part locations that are in your face right at
the beginning of the operation -- and that's unfortunate, because on
Windows that's rarely going to be a good fit.

Uninstalling looks problematic too, since ASDF-INSTALL doesn't
remember anything about what it did during an installation. It looks
like if you only have mk:defsystem installed, the sources won't be
deleted. Which I guess isn't too surprising, but the code does
generally seem to try to treat both defsystems as optional. I'm not
sure how this could be made cleaner without keeping some record of
what was done during installation, a strategy which brings its own set
of problems to solve.

BTW, after reading more about DARCS, I guess I should take some time
out to install it and get it working. Might help me organize some of
the experimental changes I'm making, which aren't always proceeding in
a linear fashion. :)

So, am I stepping on any toes here? Were there other plans for future
ASDF-INSTALL development? Would rework of the sort described here be
welcomed? My impression is that the active user base is not very
large, but I think that ASDF-INSTALL can be really important to
newcomers' experience of Common Lisp.

-- 
Dan Muller



More information about the asdf-install-devel mailing list