[asdf-devel] last note about the module dependencies for now...

Robert Goldman rpgoldman at sift.info
Wed Feb 10 21:56:49 UTC 2010


I believe by adding a little bit more hair (a test that a component IS a
module and IS NOT a system) to the TRAVERSE structure, I can salvage
INTRA-system dependencies involving modules without trying to fix
INTER-system dependencies, which seems like too big a bite to chew off.

What would people think about that?

I'm afraid, pace James A, that this won't make the code a lot simpler or
more elegant, but it will make the behavior more predictable, which is a
Good Thing.

This exhibits a Common Lisp hassle pattern I have written myself into
far too often --- you make a class (in this case system) inherit from
another class (in this case module), and later on find that you should
have built a triangular relationship between module, system and a common
superclass.

Introducing that common superclass is often quite painful....

In this case, I think backward compatibility rules out this kind of
refactoring (impossible to tell whose system subclasses you might
break), so the best we can do is put on some inelegant band-aids like

(when (and (typep x 'module) (not (typep x 'system))
 ....)

cheers,
r




More information about the asdf-devel mailing list