• Fred Drake's avatar
    This patch addresses two main issues: (1) There exist some non-fatal · 13634cf7
    Fred Drake yazdı
    errors in some of the hash algorithms. For exmaple, in float_hash and
    complex_hash a certain part of the value is not included in the hash
    calculation. See Tim's, Guido's, and my discussion of this on
    python-dev in May under the title "fix float_hash and complex_hash for
    64-bit *nix"
    
    (2) The hash algorithms that use pointers (e.g. func_hash, code_hash)
    are universally not correct on Win64 (they assume that sizeof(long) ==
    sizeof(void*))
    
    As well, this patch significantly cleans up the hash code. It adds the
    two function _Py_HashDouble and _PyHash_VoidPtr that the various
    hashing routine are changed to use.
    
    These help maintain the hash function invariant: (a==b) =>
    (hash(a)==hash(b))) I have added Lib/test/test_hash.py and
    Lib/test/output/test_hash to test this for some cases.
    13634cf7
Adı
Son kayıt (commit)
Son güncelleme
BeOS Loading commit data...
Demo Loading commit data...
Doc Loading commit data...
Grammar Loading commit data...
Include Loading commit data...
Lib Loading commit data...
Mac Loading commit data...
Misc Loading commit data...
Modules Loading commit data...
Objects Loading commit data...
PC Loading commit data...
PCbuild Loading commit data...
Parser Loading commit data...
Python Loading commit data...
Tools Loading commit data...
.cvsignore Loading commit data...
.hgtags Loading commit data...
Makefile.in Loading commit data...
README Loading commit data...
acconfig.h Loading commit data...
config.h.in Loading commit data...
configure Loading commit data...
configure.in Loading commit data...
install-sh Loading commit data...