Mark Dickinson <dicki...@gmail.com> added the comment: > The calculation of long_hash assumes an unsigned temporary type to get > correct results for the bit shifting and masking.
Yes, exactly. > The calculation is > done on the absolute value of the long and then the sign is applied. We > either needed to (1) add an unsigned Py_hash_t type or (2) just use > size_t and Py_ssize_t. I like (2); the use of Py_hash_t suggests to me that the type used for the hash is configurable independently of Py_ssize_t, which isn't true. Also, with Py_hash_t it's no longer clear that printing a hash value (e.g., using PyErr_Format and friends) should use the '%zd' modifier. ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue9778> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com