asdf-dependency-grovel tests mostly passing now

Faré fahree at gmail.com
Tue Dec 20 19:25:58 UTC 2022


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)



More information about the asdf-devel mailing list