Tim Peters
ea9dcdc062
com_yield_expr(): Squash new compiler wng about unreferenced local.
2005-08-03 18:33:05 +00:00
Phillip J. Eby
0d6615fd29
PEP 342 implementation. Per Guido's comments, the generator throw()
...
method still needs to support string exceptions, and allow None for the
third argument. Documentation updates are needed, too.
2005-08-02 00:46:46 +00:00
Brett Cannon
c9371d4a1b
Fix signedness of various char variables to stop causing a warning under gcc 4.
2005-06-25 08:23:41 +00:00
Brett Cannon
409d8f2ebd
Allow classes to be defined with empty parentheses. This means that
...
``class C(): pass`` is no longer a syntax error.
2005-03-05 06:47:57 +00:00
Brett Cannon
5dc8ced4a8
Silence a gcc warning about putting in parentheses around && expressions mixed
...
with || expressions. Also clarifies intend of 'if' conditional.
2005-03-03 07:01:48 +00:00
Raymond Hettinger
e63a078635
Preserve sign of -0.0 when result is run through marshal.
2005-02-23 13:37:55 +00:00
Raymond Hettinger
07359a7fed
Document how the pattern recognizer keeps all of its references in bounds.
...
Add a test in case the underlying assumptions ever change (i.e. the
compiler starts generating code blocks that are not punctuated by
RETURN_VALUE).
2005-02-21 20:03:14 +00:00
Raymond Hettinger
80121491e0
Teach the peepholer to fold unary operations on constants.
...
Afterwards, -0.5 loads in a single step and no longer requires a runtime
UNARY_NEGATIVE operation.
2005-02-20 12:41:32 +00:00
Raymond Hettinger
b615bf0681
Remove the set conversion which didn't work with: [] in (0,)
2005-02-10 01:42:32 +00:00
Raymond Hettinger
5e547969f8
Have set conversion replace existing constant if not used elsewhere.
2005-02-09 21:24:51 +00:00
Raymond Hettinger
7fcb7869ba
Adopt Skip's idea to optimize lists of constants in the context
...
of a "in" or "not in" test.
2005-02-07 19:32:38 +00:00
Raymond Hettinger
a164574937
Transform "x in (1,2,3)" to "x in frozenset([1,2,3])".
...
Inspired by Skip's idea to recognize the throw-away nature of sequences
in this context and to transform their type to one with better performance.
2005-02-06 22:05:42 +00:00
Raymond Hettinger
9feb267caf
Do not fold a constant if a large sequence will result.
...
Saves space in the presence of code like: (None,)*10000
2005-01-26 12:50:05 +00:00
Armin Rigo
664b43b3f4
Re-running python with/without the -Qnew flag uses incorrectly optimized
...
bytecodes from the previously saved .pyc files. Fixed by disabling the static
optimization of BINARY_DIVIDE between two constants.
2005-01-07 18:10:51 +00:00
Raymond Hettinger
c34f8673a1
Teach the peephole optimizer to fold simple constant expressions.
2005-01-02 06:17:33 +00:00
Jeremy Hylton
16b047904c
SF patch 1025636: Check for NULL returns in compile.c:com_import_stmt
...
There is no test for this change, because there is no way to provoke memory errors on demand. Test suite passes, though.
2004-11-07 14:04:00 +00:00
Raymond Hettinger
5dec096e6a
Maintain peepholer's cumlc invariant by updating the running total
...
everytime a LOAD_CONSTANT is encountered, created, or overwritten.
Added two tests to cover cases affected by the patch.
2004-11-02 04:20:10 +00:00
Raymond Hettinger
099ecfbec9
Simplify and future proof NOP counting in the peepholer.
...
No longer assumes that the input is NOP free.
2004-11-01 15:19:11 +00:00
Armin Rigo
d7bcf4deb1
Fixed a comment and added another one.
2004-10-30 21:08:59 +00:00
Raymond Hettinger
effb3931ea
Adopt some peepholer suggestions from Armin Rigo:
...
* Use simpler, faster two pass algorithm for markblocks().
* Free the blocks variable if not NULL and exiting without change.
* Verify that the rest of the compiler has not set an exception.
* Make the test for tuple of constants less restrictive.
* Embellish the comment for chained conditional jumps.
2004-10-30 08:55:08 +00:00
Raymond Hettinger
23109ef11e
SF bug #1053819 : Segfault in tuple_of_constants
...
Peepholer could be fooled into misidentifying a tuple_of_constants.
Added code to count consecutive occurrences of LOAD_CONST.
Use the count to weed out the misidentified cases.
Added a unittest.
2004-10-26 08:59:14 +00:00
Raymond Hettinger
9047c8f73d
SF bug #1048870 : call arg of lambda not updating
2004-10-24 00:10:06 +00:00
Raymond Hettinger
fec0c466ad
Improve error message for augmented assignments to genexps or listcomps.
...
Rather than introduce new logic, took the approach of making the message
itself more general.
2004-09-29 23:54:08 +00:00
Raymond Hettinger
8ffc1410e2
Fix two erroneous error messages.
2004-09-29 21:47:10 +00:00
Raymond Hettinger
06cc973d06
Replaced a test with an assertion.
...
(Suggested by Michael Hudson.)
2004-09-28 17:22:12 +00:00