summaryrefslogtreecommitdiffstats
path: root/Python/compile.c
Commit message (Collapse)AuthorAgeFilesLines
* make too many nested blocks be a SyntaxError instead of a SystemError ↵Benjamin Peterson2016-07-151-1/+1
| | | | | | (closes #27514) Patch by Ammar Askar.
* Issue #27301: Fixed incorrect return code for error in compile.c.Serhiy Storchaka2016-06-151-1/+1
|
* Issue #22570: Renamed Py_SETREF to Py_XSETREF.Serhiy Storchaka2016-04-061-1/+1
|
* code_richcompare() now uses the constants typesVictor Stinner2016-01-221-47/+6
| | | | | | | | | Issue #25843: When compiling code, don't merge constants if they are equal but have a different types. For example, "f1, f2 = lambda: 1, lambda: 1.0" is now correctly compiled to two different functions: f1() returns 1 (int) and f2() returns 1.0 (int), even if 1 and 1.0 are equal. Add a new _PyCode_ConstantKey() private function.
* Issue #20440: Massive replacing unsafe attribute setting code with specialSerhiy Storchaka2015-12-241-3/+2
| | | | macro Py_SETREF.
* check return value of PyString_FromStringAndSize for NULL (closes #24734)Benjamin Peterson2015-07-271-1/+4
| | | | Patch by Pankaj Sharma.
* Fixed indentation of Python examples in C comments.Serhiy Storchaka2015-06-101-2/+2
|
* pop the loop block even for infinite while loops (closes #23048)Benjamin Peterson2014-12-131-3/+2
|
* Issue #22453: Fexed reference leaks when format error messages in ceval.c.Serhiy Storchaka2014-11-181-6/+6
| | | | Warn against the use of leaking macro PyObject_REPR().
* Issue #21523: Fix over-pessimistic computation of the stack effect of some ↵Antoine Pitrou2014-05-231-2/+6
| | | | | | | opcodes in the compiler. This also fixes a quadratic compilation time issue noticeable when compiling code with a large number of "and" and "or" operators.
* Issue #17645: convert an assert() into a proper exception in _Py_Mangle().Antoine Pitrou2013-04-061-2/+5
|
* remove unused variableMeador Inge2012-07-181-1/+1
|
* Issue #15368: fixing variable typo.Meador Inge2012-07-181-1/+1
|
* Issue #15368: make bytecode generation deterministic.Meador Inge2012-07-181-2/+22
|
* don't let a tuple msg be interpreted as arguments to AssertionError (closes ↵Benjamin Peterson2011-10-271-4/+2
| | | | #13268)
* Fix misindents in compile.c (for Benjamin).Antoine Pitrou2010-06-221-11/+11
| | | | Of course, whoever used the wrong indentation rules needs to be spanked.
* Untabify C files. Will watch buildbots.Antoine Pitrou2010-05-091-3128/+3128
|
* Backported PyCapsule from 3.1, and converted most uses ofLarry Hastings2010-03-251-7/+9
| | | | CObject to PyCapsule.
* prevent lambda functions from having docstrings #8164Benjamin Peterson2010-03-171-0/+5
|
* normalize exceptions passed to the __exit__ method #7853Benjamin Peterson2010-02-051-0/+3
| | | | | | | | | In Python 2.x, exceptions in finally blocks are not normalized. Since with statements are implemented using finally blocks, ceval.c had to be tweaked to distinguish between with finally blocks and normal ones. A test for the finalization of generators containing with statements was also added.
* Issue #2333: Backport set and dict comprehensions syntax.Alexandre Vassalotti2010-01-111-42/+152
|
* Issue #2335: Backport set literals syntax from Python 3.x.Alexandre Vassalotti2010-01-091-0/+6
|
* Issue #1678380: When distinguishing between -0.0 and 0.0 inMark Dickinson2009-11-281-26/+15
| | | | | | compiler_add_o, use copysign instead of examining the first and last bytes of the double. The latter method fails for little-endian ARM, OABI, where doubles are little-endian but with the words swapped.
* turn goto into do while loopBenjamin Peterson2009-11-201-36/+31
|
* Allow core Python build to succeed under WITHOUT_COMPLEX. The module build ↵Mark Dickinson2009-10-151-3/+6
| | | | stage still fails.
* Issue #1754094: Improve the stack depth calculation in the compiler.Neil Schemenauer2009-10-141-12/+21
| | | | | There should be no other effect than a small decrease in memory use. Patch by Christopher Tur Lesniewski-Laas.
* remove tmpname support since it's no longer usedBenjamin Peterson2009-06-211-2/+0
|
* remove unused 'encoding' member from the compiler structBenjamin Peterson2009-06-171-4/+0
|
* when no module is given in a 'from' relative import, make ImportFrom.module NULLBenjamin Peterson2009-06-131-10/+18
|
* Fix nearly all compilation warnings under Apple gcc-4.0. Tested with OPT="-gJeffrey Yasskin2009-05-291-12/+0
| | | | | | -Wall -Wstrict-prototypes -Werror" in both --with-pydebug mode and --without. There's still a batch of non-prototype warnings in Xlib.h that I don't know how to fix.
* take into account the fact that SETUP_WITH pushes a finally blockBenjamin Peterson2009-05-251-1/+1
|
* add a SETUP_WITH opcodeBenjamin Peterson2009-05-251-56/+9
| | | | | It speeds up the with statement and correctly looks up the special methods involved.
* Issue #6042:Jeffrey Yasskin2009-05-231-51/+3
| | | | | | | | | | | | | | | lnotab-based tracing is very complicated and isn't documented very well. There were at least 3 comment blocks purporting to document co_lnotab, and none did a very good job. This patch unifies them into Objects/lnotab_notes.txt which tries to completely capture the current state of affairs. I also discovered that we've attached 2 layers of patches to the basic tracing scheme. The first layer avoids jumping to instructions that don't start a line, to avoid problems in if statements and while loops. The second layer discovered that jumps backward do need to trace at instructions that don't start a line, so it added extra lnotab entries for 'while' and 'for' loops, and added a special case for backward jumps within the same line. I replaced these patches by just treating forward and backward jumps differently.
* Backport r69961 to trunk, replacing JUMP_IF_{TRUE,FALSE} withJeffrey Yasskin2009-02-281-53/+33
| | | | | | 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.
* more flags which only work for function blocksBenjamin Peterson2009-01-311-6/+4
|
* add explanatory commentBenjamin Peterson2009-01-311-0/+2
|
* #4077: No need to append \n when calling Py_FatalErrorAmaury Forgeot d'Arc2009-01-171-1/+1
| | | | + fix a declaration to make it match the one in pythonrun.h
* #4748 lambda generators shouldn't return valuesBenjamin Peterson2008-12-271-1/+6
|
* Issue #2183: Simplify and optimize bytecode for list comprehensions.Antoine Pitrou2008-12-171-26/+7
|
* check for assignment to __debug__ during AST generationBenjamin Peterson2008-11-081-6/+0
| | | | Also, give assignment to None a better error message
* Merge in release25-maint r60793:Gregory P. Smith2008-06-111-4/+28
| | | | | | Added checks for integer overflows, contributed by Google. Some are only available if asserts are left in the code, in cases where they can't be triggered from Python code.
* This reverts r63675 based on the discussion in this thread:Gregory P. Smith2008-06-091-47/+47
| | | | | | | http://mail.python.org/pipermail/python-dev/2008-June/079988.html Python 2.6 should stick with PyString_* in its codebase. The PyBytes_* names in the spirit of 3.0 are available via a #define only. See the email thread.
* Renamed PyString to PyBytesChristian Heimes2008-05-261-47/+47
|
* Patch #2511: Give the "excepthandler" AST item proper attributes by making ↵Georg Brandl2008-03-301-7/+7
| | | | it a Sum.
* Fix a reference leak found by Georg, when compiling a class nested in ↵Amaury Forgeot d'Arc2008-03-281-0/+1
| | | | | | | | another class. Now "regrtest.py -R:: test_compile" is satisfied. Will backport.
* Patch #1810 by Thomas Lee, reviewed by myself:Georg Brandl2008-03-281-6/+14
| | | | | allow compiling Python AST objects into code objects in compile().
* Add a warning for code like:Neal Norwitz2008-03-151-0/+8
| | | | | | | | | | assert (0, 'message') An empty tuple does not create a warning. While questionable usage: assert (), 'message' should not display a warning. Tested manually. The warning message could be improved. Feel free to update it.
* Speed up with statements by storing the __exit__ method on the stack instead ↵Nick Coghlan2008-03-071-14/+6
| | | | of in a temp variable (bumps the magic number for pyc files)
* Fix indentationNeal Norwitz2008-02-251-1/+1
|
* Patch #1759: Backport of PEP 3129 class decoratorsChristian Heimes2008-02-231-2/+11
| | | | with some help from Georg