summaryrefslogtreecommitdiffstats
path: root/Doc/whatsnew
diff options
context:
space:
mode:
authorAndrew M. Kuchling <amk@amk.ca>2002-11-15 14:37:10 (GMT)
committerAndrew M. Kuchling <amk@amk.ca>2002-11-15 14:37:10 (GMT)
commitb60ea3f01f6cba0d1d14f328d00e3922cb66bcd6 (patch)
tree7cdcd315573c2e3ba22070fcf1671d4a8bed23fa /Doc/whatsnew
parent545c2509700f52e0fa8233aa350af444d4f0c8ff (diff)
downloadcpython-b60ea3f01f6cba0d1d14f328d00e3922cb66bcd6.zip
cpython-b60ea3f01f6cba0d1d14f328d00e3922cb66bcd6.tar.gz
cpython-b60ea3f01f6cba0d1d14f328d00e3922cb66bcd6.tar.bz2
Mention change in MRO
Diffstat (limited to 'Doc/whatsnew')
-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