[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