From b60ea3f01f6cba0d1d14f328d00e3922cb66bcd6 Mon Sep 17 00:00:00 2001 From: "Andrew M. Kuchling" Date: Fri, 15 Nov 2002 14:37:10 +0000 Subject: Mention change in MRO --- Doc/whatsnew/whatsnew23.tex | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Doc/whatsnew/whatsnew23.tex b/Doc/whatsnew/whatsnew23.tex index a7c9dbe..102cd42 100644 --- a/Doc/whatsnew/whatsnew23.tex +++ b/Doc/whatsnew/whatsnew23.tex @@ -854,6 +854,19 @@ command line or use \function{warnings.filterwarnings()}. \exception{SyntaxWarning} warning. In a future version of Python, \code{None} may finally become a keyword. +\item The method resolution order used by new-style classes has +changed, though you'll only notice the difference if you have a really +complicated inheritance hierarchy. (Classic classes are unaffected by +this change.) Python 2.2 originally used a topological sort of a +class's ancestors, but 2.3 now uses the C3 algorithm as described in +\citetitle[http://www.webcom.com/haahr/dylan/linearization-oopsla96.html]{``A +Monotonic Superclass Linearization for Dylan''}. To understand the +motivation for this change, read the thread on python-dev starting +with the message at +\url{http://mail.python.org/pipermail/python-dev/2002-October/029035.html}. +Samuele Pedroni first pointed out the problem and also implemented the +fix by coding the C3 algorithm. + \item Python runs multithreaded programs by switching between threads after executing N bytecodes. The default value for N has been increased from 10 to 100 bytecodes, speeding up single-threaded -- cgit v0.12