··········@tfeb.org (Tim Bradshaw) writes:
> Has anyone done an implementation of Dylan's C3 linearization for
> CLOS? It seems to me it should be doable via a reasonably standard
> MOP.
In the scheme world there's a short one for TinyCLOS:
http://www.call-with-current-continuation.org/eggs/c3.html
But I don't know how it relates to MOP.
Paul Foley <···@below.invalid> wrote in message news:<··············@mycroft.actrix.gen.nz>...
>
> It's not "Dylan's C3 linearization"; Dylan doesn't use it. (Python
> does, though)
I was confused... Is the received wisdom that C3 is better than the
linearization that Dylan does use? It looks to me from the paper on
it by Barrett et al that they think it probably is better but diverges
from standard CLOS too far.
Thanks for the code (I haven't played with it yet, but will, and I
guess I can then decide for myself which one I think is better...)
--tim
In article <····························@posting.google.com>,
··········@tfeb.org (Tim Bradshaw) wrote:
> Paul Foley <···@below.invalid> wrote in message
> news:<··············@mycroft.actrix.gen.nz>...
>
> >
> > It's not "Dylan's C3 linearization"; Dylan doesn't use it. (Python
> > does, though)
>
> I was confused... Is the received wisdom that C3 is better than the
> linearization that Dylan does use? It looks to me from the paper on
> it by Barrett et al that they think it probably is better but diverges
> from standard CLOS too far.
I've been wanting to change Gwydion d2c to use C3 for some time, but
incompatability with Functional-Developer has been a concern.
Fun-Dev uses the linearization described in the DRM (as does d2c), but
in the event of ambiguity falls back to the CLOS method for
compatability with some of their legacy code ported from CLOS.
Now that Fun-Dev is open-sourced and in the Gwydion cvs server we can
consider changing both at once.
I haven't looked at the details for a while, but I think C3 helps make
fast table-based GF dispatch easier.
-- Bruce