This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: gcc trunk vs python
- From: Michael Veksler <mveksler at techunix dot technion dot ac dot il>
- To: Jack Howarth <howarth at bromo dot msbb dot uc dot edu>
- Cc: gcc at gcc dot gnu dot org
- Date: Wed, 23 Aug 2006 21:24:14 +0300
- Subject: Re: gcc trunk vs python
- References: <20060714233636.9F0FF10028@bromo.msbb.uc.edu>
Hello Jack,
I has been almost a week since you mailed your question. I hope my
answer is still relevant.
Jack Howarth wrote:
Has anyone tried building python 2.4.3 using gcc trunk? The current gcc 4.2
seems to introduce a new regression in the Python testsuite...
test_builtin
test test_builtin failed -- Traceback (most recent call last):
File "/Users/howarth/Python-2.4.3/Lib/test/test_builtin.py", line 233, in test_divmod
(sys.maxint+1, 0))
AssertionError: (0, -2147483648) != (2147483648L, 0)
I peeked in the python code in question:
https://codespeak.net/viewvc/vendor/cpython/Python-r243/dist/src/Lib/test/test_builtin.py?annotate=25647&pathrev=31297
self.assertEqual(divmod(-sys.maxint-1, -1), (sys.maxint+1, 0))
Can you run:
shell$ python
Python 2.3.4 (#1, Feb 6 2006, 10:38:46)
[GCC 4.2.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> divmod(-sys.maxint-1, -1)
(2147483648L, 0L)
>>> (sys.maxint+1, 0)
(2147483648L, 0)
>>> divmod(-sys.maxint-1, -1) == (sys.maxint+1, 0)
True
------------
How are your results different than the above?
It smells of a bug in python interpreter. Seems like a signed integer
overflows (the C standard says this is undefined). If that is true then
|-fwrapv may work-around the python bug.
Michael
|