Hi I've just tried to build the guppy version from SVN and run the test suite with Python 2.7 on an amd64 machine. The test suite already fails test1 in guppy/sets/test.py. I've also tried on a 32 bit machine and and their it didn't fail.
The reason is simple: _PyLong_Frexp takes a Py_ssize_t* as second argument but a int* is passed. Therefor _PyLong_Frexp messes with other variables on the stack since Py_ssize_t is larger than int on amd64. Attached is a patch to fix this issues. Kind regards, -- Sebastian Ramacher
Index: src/sets/bitset.c =================================================================== --- src/sets/bitset.c (revision 90) +++ src/sets/bitset.c (working copy) @@ -2011,7 +2011,11 @@ { NyBits *buf; int r = -1; +#if PY_VERSION_HEX >= 0x02070000 + Py_ssize_t e; +#else int e; +#endif long num_poses, num_bytes; double num_bits, x; int cpl = 0;
signature.asc
Description: OpenPGP digital signature