Hi, I noticed that sometimes the Travis CI buildbot succeeds, and Stefan's buildbot fails on the same code. I also understand that sometimes the 32bit and 64bit Python versions behave differently in tests and sometimes also major Python versions like 3.2 vs 2.7, also I think 2.4 and 2.5 (or maybe it was 2.3 and 2.4).
All these are caused by the different behavior of the hash() function. In particular, 32bit and 64bit and also sometimes Python versions have different hash implementation. Also in SymPy, sometimes we just store instances in a dictionary, but instances have essentially random hash (depending on where they sit in the memory, right?). So rather than trying to make the hash() uniform, we need to make sure that SymPy tests pass with any hash() implementation. I think the way to do it is to use the new "-R" option (http://bugs.python.org/issue13703) and specify the PYTHONHASHSEED env variable. We will use let's say 3 or 4 different tests with different (but definite) value. Besides that, we should also run with "-R" and keep the seed random (to help discover seeds, that break sympy), but we need to be able to print the seed, so that we can add it to the test suite. My hope is that by having 3 or 4 different seeds will catch pretty much all such bugs in sympy (if things behave randomly, it shouldn't even matter what seeds we use, as long as we use 3 or 4 different seeds). And we can just use one platform for testing. This should take care of the hash() differences for good hopefully. Besides the hash, is there any other difference between platforms? Ondrej -- You received this message because you are subscribed to the Google Groups "sympy" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
