Commit Graph

97 Commits

Author SHA1 Message Date
Antoine Pitrou
e970dc757c Issue #15212: fix typo in compiler module (rename SC_GLOBAL_EXPLICT to SC_GLOBAL_EXPLICIT).
Patch by Arfrever.
2012-07-02 00:01:22 +02:00
Alexandre Vassalotti
b646547bb4 Issue #2333: Backport set and dict comprehensions syntax. 2010-01-11 22:36:12 +00:00
Alexandre Vassalotti
ee936a2130 Issue #2335: Backport set literals syntax from Python 3.x. 2010-01-09 23:35:54 +00:00
Antoine Pitrou
b9d4963a98 Issue #7092: Fix the DeprecationWarnings emitted by the standard library
when using the -3 flag.  Patch by Florent Xicluna.
2010-01-04 23:22:44 +00:00
Jeffrey Yasskin
68d6852006 Backport r69961 to trunk, replacing JUMP_IF_{TRUE,FALSE} with
POP_JUMP_IF_{TRUE,FALSE} and JUMP_IF_{TRUE,FALSE}_OR_POP. This avoids executing
a POP_TOP on each conditional and sometimes allows the peephole optimizer to
skip a JUMP_ABSOLUTE entirely. It speeds up list comprehensions significantly.
2009-02-28 19:03:21 +00:00
Neil Schemenauer
92c3b2190b Issue #999042: The Python compiler now handles explict global statements
correctly (should be assigned using STORE_GLOBAL opcode).  This was done by
having the system table differentiate between explict and implicit globals.
2009-02-07 00:54:41 +00:00
Neil Schemenauer
98c3b85bc4 Make names generated for 'with' variables match the built-in compiler. 2009-02-07 00:13:39 +00:00
Neil Schemenauer
4db626f95d Overhaul Lib/compiler block ordering. The previous code was filled with
hacks.  The new code is based on issue #2472 posted by Antoine Pitrou.  I
did some further cleanups of the pyassem code and optimized the block
ordering pass.
2009-02-06 21:08:52 +00:00
Antoine Pitrou
d0c3515bc5 Issue #2183: Simplify and optimize bytecode for list comprehensions. 2008-12-17 00:38:28 +00:00
Eric Smith
5d5c63f462 Fixed compiler module so __future__ print_function is compilable. 2008-03-19 02:11:30 +00:00
Nick Coghlan
7af53be66f Speed up with statements by storing the __exit__ method on the stack instead of in a temp variable (bumps the magic number for pyc files) 2008-03-07 14:13:28 +00:00
Georg Brandl
ab49684f55 Patch #1638243: the compiler package is now able to correctly compile
a with statement; previously, executing code containing a with statement
compiled by the compiler package crashed the interpreter.
2007-01-27 17:43:02 +00:00
Georg Brandl
fe9c71bcd3 Remove trailing comma. 2006-10-29 09:01:01 +00:00
Georg Brandl
5addf70078 Bug #1586448: the compiler module now emits the same bytecode for
list comprehensions as the builtin compiler, using the LIST_APPEND
opcode.
2006-10-29 08:53:06 +00:00
Neil Schemenauer
4c6b0d5bec Fix a bug in the `compiler` package that caused invalid code to be
generated for generator expressions.
2006-08-16 23:38:05 +00:00
Neil Schemenauer
06ded09d40 Fix the 'compiler' package to generate correct code for MAKE_CLOSURE.
In the 2.5 development cycle, MAKE_CLOSURE as changed to take free
variables as a tuple rather than as individual items on the stack.
Closes patch #1534084.
2006-08-04 16:20:30 +00:00
Guido van Rossum
da5b701aee Get rid of __context__, per the latest changes to PEP 343 and python-dev
discussion.
There are two places of documentation that still mention __context__:
Doc/lib/libstdtypes.tex -- I wasn't quite sure how to rewrite that without
spending a whole lot of time thinking about it; and whatsnew, which Andrew
usually likes to change himself.
2006-05-02 19:47:52 +00:00
Nick Coghlan
cb35b95f86 Teach the compiler module about augmented assignment to tuple subscripts 2006-03-14 13:21:14 +00:00
Guido van Rossum
f669436189 Um, I thought I'd already checked this in.
Anyway, this is the changes to the with-statement
so that __exit__ must return a true value in order
for a pending exception to be ignored.
The PEP (343) is already updated.
2006-03-10 02:28:35 +00:00
Neal Norwitz
d4e3035701 Fix compiler breakage related to absolute imports 2006-03-03 20:21:48 +00:00
Neal Norwitz
eaed39f303 Hopefully this removes all vestiges of CO_GENERATOR_ALLOWED that can
be removed in 2.x.
2006-03-03 19:12:58 +00:00
Thomas Wouters
fa0cf4f3ae Add support for absolute/relative imports and if/else expressions:
- regenerate ast.py
 - add future flags for absolute-import and with-statement so they
   (hopefully) properly get set in code-object flags
 - try out if/else expressions in actual code for the hell of it.

Seems to generate the same kind of bytecode as the normal compiler.
2006-03-03 18:16:20 +00:00
Guido van Rossum
7ad94f011e Update the compiler package to compile the with-statement.
Jeremy, please review!
2006-02-28 00:32:16 +00:00
Neal Norwitz
d752f7d8e8 No need for types, use isinstance 2005-11-25 03:17:59 +00:00
Tim Peters
a45cacfc1c Whitespace normalization. 2004-08-20 03:47:14 +00:00