[Python-Dev] C3 implementation (original) (raw)

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!

testdescr/testdescrtut 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/)