On Sat, Mar 10, 2007 at 04:51:28PM +0000, Jonathan Worthington wrote: > Different languages may have a different MRO. Python since 2.3 and Perl > 6 by default use C3. Perl 5 used something else. Therefore, we need uses
> Hope that this makes some kinda sense - feedback would be *very* welcome! Pedant point, I know, but any suggestion that Perl 5 is "special biologist word for stable" seems to raise some hackles with the over-sensitive-but-less-than-sensitive-about-it. Brandon Black has been working on making (IIRC) pluggable MRO for Perl 5 - you might want to talk to him. We've not been able to give him much helpful feedback on the implementation of that, because all the Perl 5 MRO code predates "change 1" - the import of 5.003 to perforce in 1997. I suspect it goes back to 5.000. As part of "we", I've really not thought about the implications of this sort of thing. Does it actually work having different classes in the same hierarchy declaring their own MRO? For example, if A-F declare themselves to be leftmost depth first (or whatever the correct term is for Perl 5's order), but G-I declare themselves to be C3, will it work? A / \ B C / \ / \ D E F \ / \ / G H \ / I Specifically because I thought that with C3, in J / \ K L \ / M the search order is M, K, L, J, whereas Perl 5 does M, K, J, L. So if the top diamonds are ordered the Perl 5 way, they flatly contradict the guarantee of C3. It might be that I'm confused, misremembering or undercaffeinated. Nicholas Clark