On Thu, Aug 19, 2010 at 10:13 AM, Tobias C Rittweiler tcr@freebits.dewrote:
Now I'm wondering how good that solution is.
Bad. I already spoke about why I am against reader conditionalization in ASDF files. Dependencies should only be either features (strictly CL implementation dependent not the ones introduced by libraries) or modules (thus recognized by ASDF), which may themselves be optional or compulsory and ASDF should provide a good syntax for both.
What is if the library was compiled with a core that happened to include named-readtables? Trying to load that fasl with another core file would probably result in an obscure error. Now, it's a shoot-yourself-in-the-foot kind of thing to do, but I'd think it's something that can happen quite easily. Does ASDF somehow guard against this case?
This is one of the reasons why reader conditionalization is bad: the dependency is stored outside ASDF, in *features*, which is not good. If one sticks to ASDF, it would recognize the named-readtables modules to be present in the core and thus it would work, or it would not find it and then it would load it.
From what I can see, it appears that :WEAKLY-DEPENDS-ON was added in a quick rush thinking that it might be appropriate for conditional compilation, but it really is not. Does that seem true to you, too?
I once tried to understand how :weakly-depends-on works, but I simply could not (ASDF internals really elude me). Hence, I am not sure whether it is the replacement I have in mind, but the name seems ok :-)
Juanjo