[Python-Dev] C3 implementation

Guido van Rossum guido@python.org
Sun, 06 Oct 2002 15:44:12 -0400


> I have an apparently working implementation of C3 in C.

Woo hoo!

> test_descr/test_descrtut pass apart some tests that involves
> hierarchies with MRO order disagreements. In such cases my impl
> raise TypeError: MRO order disagreement exceptions.

I'd like that to be a (new?) warning instead, so the user can control
whether to turn it into an error or ignore it or fix it.

> Some of them it's clear to me how to fix them myself, for others
> someone should think about what was the original intention of the
> test.
> 
> I can add some tests about monotonicity etc, with examples from the
> paper and the discussion we had here.
> 
> Should I submit this as  a patch on SF? at least is a start.

Yes please!  Assign to me, I'll get on it after I push 2.2.2 beta 1
out of the door.

> PS:
> 1. the implementation is worst-case quadratic in the total length of
> the superclasses' mros, like the Python one I have presented here or
> the one used in Goo. I don't think this has relevance in practice,
> it's a trade-off versus even more complicated logic and data
> structure usage.

Sounds fine given the expected size of the average inheritance
lattice.

--Guido van Rossum (home page: http://www.python.org/~guido/)