[Python-checkins] python/dist/src/Misc NEWS,1.772,1.773
tim_one@users.sourceforge.net
tim_one@users.sourceforge.net
Sat, 24 May 2003 18:45:14 -0700
Update of /cvsroot/python/python/dist/src/Misc
In directory sc8-pr-cvs1:/tmp/cvs-serv14651/Misc
Modified Files:
NEWS
Log Message:
SF 742860: WeakKeyDictionary __delitem__ uses iterkeys
Someone review this, please! Final releases are getting close, Fred
(the weakref guy) won't be around until Tuesday, and the pre-patch
code can indeed raise spurious RuntimeErrors in the presence of
threads or mutating comparison functions.
See the bug report for my confusions: I can't see any reason for why
__delitem__ iterated over the keys. The new one-liner implementation
is much faster, can't raise RuntimeError, and should be better-behaved
in all respects wrt threads.
New tests test_weak_keyed_bad_delitem and
test_weak_keyed_cascading_deletes fail before this patch.
Bugfix candidate for 2.2.3 too, if someone else agrees with this patch.
Index: NEWS
===================================================================
RCS file: /cvsroot/python/python/dist/src/Misc/NEWS,v
retrieving revision 1.772
retrieving revision 1.773
diff -C2 -d -r1.772 -r1.773
*** NEWS 24 May 2003 20:18:24 -0000 1.772
--- NEWS 25 May 2003 01:45:11 -0000 1.773
***************
*** 13,16 ****
--- 13,22 ----
-----------------
+ - SF bug 742860: WeakKeyDictionary __delitem__ uses iterkeys. This
+ wasn't as threadsafe as it should be, was very inefficient, and could
+ raise RuntimeError if another thread mutated the dict during
+ __delitem__, or if a comparison function mutated it. A new
+ implementation of WeakKeyDictionary.__delitem__ repairs all that.
+
- SF bug 705231: builtin pow() no longer lets the platform C pow()
raise -1.0 to integer powers, because (at least) glibc gets it wrong