[Python-Dev] Function Hash: Check it in?

Moshe Zadka moshez@zadka.site.co.il
Sat, 27 Jan 2001 21:14:28 +0200 (IST)


Attached is an example Python session after I patched the intepreter.
The test-suite passes all right.

I want an OK to check this in.

Here is the patch:
Index: Objects/funcobject.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Objects/funcobject.c,v
retrieving revision 2.33
diff -c -r2.33 funcobject.c
*** Objects/funcobject.c        2001/01/25 20:06:59     2.33
--- Objects/funcobject.c        2001/01/27 19:13:08
***************
*** 347,358 ****
        0,              /*tp_print*/
        0, /*tp_getattr*/
        0, /*tp_setattr*/
!       (cmpfunc)func_compare, /*tp_compare*/
        (reprfunc)func_repr, /*tp_repr*/
        0,              /*tp_as_number*/
        0,              /*tp_as_sequence*/
        0,              /*tp_as_mapping*/
!       (hashfunc)func_hash, /*tp_hash*/
        0,              /*tp_call*/
        0,              /*tp_str*/
        (getattrofunc)func_getattro,         /*tp_getattro*/
--- 347,358 ----
        0,              /*tp_print*/
        0, /*tp_getattr*/
        0, /*tp_setattr*/
!       0, /*tp_compare*/
        (reprfunc)func_repr, /*tp_repr*/
        0,              /*tp_as_number*/
        0,              /*tp_as_sequence*/
        0,              /*tp_as_mapping*/
!       0, /*tp_hash*/
        0,              /*tp_call*/
        0,              /*tp_str*/
        (getattrofunc)func_getattro,         /*tp_getattro*/

Python 2.1a1 (#1, Jan 27 2001, 21:01:24)
[GCC 2.95.3 20010111 (prerelease)] on linux2
Type "copyright", "credits" or "license" for more information.
>>> def foo():
...     pass
...
>>> def bar():
...     pass
...
>>> hash(foo)
135484636
>>> hash(bar)
135481676
>>> foo == bar
0
>>> d = {}
>>> d[foo] =1
>>> def temp():
...     print "baz"
...
>>> foo.func_code = temp.func_code
>>> d[foo]
1

-- 
Moshe Zadka <sig@zadka.site.co.il>
This is a signature anti-virus. 
Please stop the spread of signature viruses!
Fingerprint: 4BD1 7705 EEC0 260A 7F21  4817 C7FC A636 46D0 1BD6