Congratulations for resurrecting ADG. > I wonder why the appropriate dependency wasn't detected, but I'm not > too worried about it. ADG is still useful even if it misses these. > There is no guarantee when the types defined by deftype are or aren't going to be expanded and checked, unless you explicitly (eval-when (:compile-toplevel :load-toplevel :execute) ... (typep my-value my-type) ...) Implementation-dependent optimization settings might affect type checks.
> There are various questionable aspects of that, which I'll point out, > although they don't really bother me too much -- I'm not responsible > for ADG. > You've been the most responsible person for ADG in the last 10 years. > (1) I was able to get ADG working only with this particular > combination of SBCL (2.1.6) and ASDF (3.1.5). There might be other > workable combinations, however, some or all later versions of ASDF > trigger errors in ADG. > It *should* work all the way to ASDF 3.2.1. For 3.3.0 and later, you'll need to refactor things to support DEFINE-OP or probably, a way to instrument OPERATE rather than modify either operation or component classes. > (3) It appears the handlers file is supposed to be loaded by ASDF, > which, I guess, is supposed to scan the handlers directory, but > something in that process didn't work, so it's loaded by hand. > The code in ADG hails from the ASDF 1 era. It might be possible to fix the grovel-handlers code—but it's probably best to junk it. > ADG constructs a new .asd file from the inferred dependencies (and > writes it into the ASDF output cache -- maybe that could be mentioned > in a readme or something) and I present it here as a kind of trophy. > Making ASDF work with the output from ADG on a thousand-file project is what started me fixing significant ASDF bugs and ultimately becoming ASDF maintainer and writing ASDF 2 and 3. Notably: ASDF 1 running time was cubic in the number of components, leading to minutes to process the generated file, instead of a fraction of a second. —♯ƒ • François-René Rideau • Co-Founder and President, MuKn.io “Time is really the only capital that any human being has and the thing that he can least afford to waste or lose.” — Thomas A. Edison (1847–1931)