summaryrefslogtreecommitdiffstats
path: root/Doc/whatsnew/whatsnew23.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Doc/whatsnew/whatsnew23.tex')
-rw-r--r--Doc/whatsnew/whatsnew23.tex13
1 files changed, 13 insertions, 0 deletions
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