[Python-checkins] r45252 - python/trunk/Misc/NEWS

tim.peters python-checkins at python.org
Tue Apr 11 03:44:08 CEST 2006


Author: tim.peters
Date: Tue Apr 11 03:44:07 2006
New Revision: 45252

Modified:
   python/trunk/Misc/NEWS
Log:
More words on patch #837242, since 4 or 5 tests started
failing on one of the 32-bit buildbot boxes because of it,
due to tempting but always-wrong Python code.  Users
probably have code like this too (I know I did ...).


Modified: python/trunk/Misc/NEWS
==============================================================================
--- python/trunk/Misc/NEWS	(original)
+++ python/trunk/Misc/NEWS	Tue Apr 11 03:44:07 2006
@@ -12,13 +12,24 @@
 Core and builtins
 -----------------
 
-- Patch #837242: id() of any Python object always gives a positive
-  number, which might be a long integer. PyLong_FromVoidPtr and
-  PyLong_AsVoidPtr have been changed accordingly.
+- Patch #837242: ``id()`` of any Python object always gives a positive
+  number now, which might be a long integer. ``PyLong_FromVoidPtr`` and
+  ``PyLong_AsVoidPtr`` have been changed accordingly.  Note that it has
+  never been correct to implement a ``hash()`` method that returns the
+  ``id()`` of an object:
+
+      def __hash__(self):
+          return id(self)  # WRONG
+
+  because a hash result must be a (short) Python int but it was always
+  possible for ``id()`` to return a Python long.  However, because ``id()``
+  cuold return negative values before, on a 32-bit box an ``id()`` result
+  was always usable as a hash value before this patch.  That's no longer
+  necessarily so.
 
-- Python on OS X 10.3 and above now uses dlopen() (via dynload_shlib.c) 
+- Python on OS X 10.3 and above now uses dlopen() (via dynload_shlib.c)
   to load extension modules and now provides the dl module. As a result,
-  sys.setdlopenflags() now works correctly on these systems. (SF patch 
+  sys.setdlopenflags() now works correctly on these systems. (SF patch
   #1454844)
 
 - Patch #1463867: enhanced garbage collection to allow cleanup of cycles
@@ -197,7 +208,7 @@
   and long longs.
 
 - SF Bug #1350188, "setdlopenflags" leads to crash upon "import"
-  It was possible for dlerror() to return a NULL pointer, so 
+  It was possible for dlerror() to return a NULL pointer, so
   it will now use a default error message in this case.
 
 - Replaced most Unicode charmap codecs with new ones using the
@@ -572,7 +583,7 @@
 
 - Added the sqlite3 package. This is based on pysqlite2.1.3, and provides
   a DB-API interface in the standard library. You'll need sqlite 3.0.8 or
-  later to build this - if you have an earlier version, the C extension 
+  later to build this - if you have an earlier version, the C extension
   module will not be built.
 
 - Bug #1460340: ``random.sample(dict)`` failed in various ways.  Dicts


More information about the Python-checkins mailing list