[Patches] [ python-Patches-1446922 ] Patch for bug 1441486: bad unary minus folding in compiler
SourceForge.net
noreply at sourceforge.net
Mon Mar 20 08:39:41 CET 2006
Patches item #1446922, was opened at 2006-03-09 18:33
Message generated for change (Comment added) made by nnorwitz
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=305470&aid=1446922&group_id=5470
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: None
Group: None
Status: Open
Resolution: None
Priority: 5
Submitted By: Grant Olson (logistix)
Assigned to: Neal Norwitz (nnorwitz)
Summary: Patch for bug 1441486: bad unary minus folding in compiler
Initial Comment:
In the old compiler, there was a optimization in
com_factor that folded a unary minus against a constant.
In the new AST, it looks like numbers are converted
from strings into PyObjects earlier in the pipeline.
The compiler does fold a unary minus against a
constant, but since the PyObject has already been
created, it may return a PyLong when a PyInt is
sufficient. This patch adds a check that will convert
a PyLong object back into a PyInt if possible.
----------------------------------------------------------------------
>Comment By: Neal Norwitz (nnorwitz)
Date: 2006-03-19 23:39
Message:
Logged In: YES
user_id=33168
Thanks!
Unfortunately, this patch leaves the long in co_consts:
>>> def foo():
... x = -9223372036854775808
...
>>> foo.func_code.co_consts
(None, 9223372036854775808L, -9223372036854775808)
This is a 64-bit system. On 2.4, there is only sys.minint:
Python 2.4.2 (#1, Oct 30 2005, 21:35:48)
>>> def foo():
... x = -9223372036854775808
...
>>> foo.func_code.co_consts
(None, -9223372036854775808)
Can you revise the patch to fix this? I cleaned up some
things. Attached is an updated version I was using.
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=305470&aid=1446922&group_id=5470
More information about the Patches
mailing list