[Python-Dev] Review needed: proposed fix for 2.6 __hash__ incompatibility (issue 2235)
Nick Coghlan
ncoghlan at gmail.com
Wed Jul 2 14:31:33 CEST 2008
I've posted a possible fix for the __hash__ backwards incompatibilities
described in issue 2235 [1].
The patch uses a model similar to that used in Py3k (using None is
indicate "don't inherit __hash__"), but extends it to allowing Py_None
to be explicitly stored in the tp_hash slot. The major downside is that
we suffer the cost of an extra pointer comparison on every call to
PyObject_Hash, but I wasn't able to come up with another solution that
preserved backwards compatibility while still allowing
collections.Hashable to function correctly.
The patch involves a few changes to fairly deep components in
typeobject.c though, so I'd like at least some kind of sanity check
before I commit it.
Cheers,
Nick.
[1] http://bugs.python.org/issue2235
--
Nick Coghlan | ncoghlan at gmail.com | Brisbane, Australia
---------------------------------------------------------------
http://www.boredomandlaziness.org
More information about the Python-Dev
mailing list