[asdf-devel] Trying again

Faré fahree at gmail.com
Thu Feb 11 04:38:15 UTC 2010


On 10 February 2010 18:27, Robert Goldman <rpgoldman at sift.info> wrote:
> OK, I have just pushed an alternative solution to the module dependency
> bug, this one (I believe) only triggered by INTRA-system dependencies.
> This one is also on the module-depends branch.
>
A test! This requires a test case in the test suite (and not a suit in
the suitcase).

> This was achieved, as I said, at the cost of some hair, but I believe it
> does the right thing to the extent that I understand the right thing,
> and thinking about James's email convinced me that I /don't/ understand
> what is the right thing with respect to inter-system dependencies.
>
I think you do understand the right thing, and that James is wrong to
want ASDF to somehow DWIM.
If you want to distinguish in code into parts that are depended on and
parts that are not, then split your code into two systems.
System foo-interface provides the interface, with packages, macros,
specials, types, classes, gfs, and anything that matters at
compile-time.
System foo-implementation provides the implementation, with everything
else. Clients depend on foo-interface and get recompiled if the
interface changes. The overall system depends on interface AND implementation.

In other words, on top of a system that does the Right Thing(tm), i.e.
invalidate dependencies recursively, you can do whatever you want,
though it may take some effort. On top of a broken system, you always
and forever have something broken.

> Somewhat disappointingly, this commit agrees with the last one on the
> tests, which indicates that the tests need to be augmented...
>
> Additional reviews very welcome as are test results!
>
No time for that right now. Hopefully tomorrow.


> [Fare: is your XCVB going to handle the kinds of inter-system issues I
> raised in my earlier email?]
>
XCVB does the Right Thing of correctly invalidating any object any
dependencies of which has changed. On top of that, you can do whatever
you want.

> Feeling like Richard III, I can only say "A spec!  A spec!  My kingdom
> for a spec!"
>
I think ASDF should, like XCVB, do the Right Thing, which is obvious:
a dependency is a dependency. Just like any build system on earth
does. Just because legacy ASDF is broken doesn't mean it should remain
so. Incremental builds are broken with ASDF, and that's a shame.

[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ]
There is no excuse for a programming language without clean formal semantics.
For even if your language is not designed for formal reasoning by computers,
there will still be humans who'll have to reason about programs.




More information about the asdf-devel mailing list