summaryrefslogtreecommitdiffstats
path: root/Lib/compiler
Commit message (Collapse)AuthorAgeFilesLines
* This is jiwon's patch to fix:Michael W. Hudson2004-10-111-1/+6
| | | | [ 1042238 ] Lib/compiler chokes on certain genexps
* Whitespace normalization.Tim Peters2004-09-122-10/+10
|
* Remove debugging print (not triggered by test suite) and add XXX comment ↵Jeremy Hylton2004-09-071-1/+1
| | | | about how the code should raise a SyntaxError.
* compiler.transformer: correct lineno attribute when possibleJeremy Hylton2004-09-072-405/+316
| | | | | | | | | | | | | | | | SF patch #1015989 The basic idea of this patch is to compute lineno attributes for all AST nodes. The actual implementation lead to a lot of restructing and code cleanup. The generated AST nodes now have an optional lineno argument to constructor. Remove the top-level asList(), since it didn't seem to serve any purpose. Add an __iter__ to ast nodes. Use isinstance() instead of explicit type tests. Change transformer to use the new lineno attribute, which replaces three lines of code with one. Use universal newlines so that we can get rid of special-case code for line endings. Use lookup_node() in a few more frequently called, but simple com_xxx methods(). Change string exception to class exception.
* SF patch #1007189, multi-line imports, for instance:Anthony Baxter2004-08-311-32/+44
| | | | | "from blah import (foo, bar baz, bongo)"
* Whitespace normalization.Tim Peters2004-08-201-1/+1
|
* This is Mark Russell's patch:Michael W. Hudson2004-08-172-13/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [ 1009560 ] Fix @decorator evaluation order From the description: Changes in this patch: - Change Grammar/Grammar to require newlines between adjacent decorators. - Fix order of evaluation of decorators in the C (compile.c) and python (Lib/compiler/pycodegen.py) compilers - Add better order of evaluation check to test_decorators.py (test_eval_order) - Update the decorator documentation in the reference manual (improve description of evaluation order and update syntax description) and the comment: Used Brett's evaluation order (see http://mail.python.org/pipermail/python-dev/2004-August/047835.html) (I'm checking this in for Anthony who was having problems getting SF to talk to him)
* SF patch 836879.Jeremy Hylton2004-08-071-21/+19
| | | | Don't generate code for asserts in -O mode.
* Whitespace normalization.Tim Peters2004-08-043-9/+9
|
* PEP-0318, @decorator-style. In Guido's words:Anthony Baxter2004-08-024-636/+723
| | | | | "@ seems the syntax that everybody can hate equally" Implementation by Mark Russell, from SF #979728.
* this is patchMichael W. Hudson2004-07-121-1/+1
| | | | | | | | [ 988698 ] compiler.transformer fix for (a, b) = 1, 2 fixing bug [ 988613 ] compiler.transformer and tuple unpacking
* Whitespace normalization.Tim Peters2004-07-072-4/+4
|
* SF patch #872326: Generator expression implementationRaymond Hettinger2004-05-194-0/+259
| | | | | | | | | | | | | | (Code contributed by Jiwon Seo.) The documentation portion of the patch is being re-worked and will be checked-in soon. Likewise, PEP 289 will be updated to reflect Guido's rationale for the design decisions on binding behavior (as described in in his patch comments and in discussions on python-dev). The test file, test_genexps.py, is written in doctest format and is meant to exercise all aspects of the the patch. Further additions are welcome from everyone. Please stress test this new feature as much as possible before the alpha release.
* Remove unused instance attributes.Neil Schemenauer2004-03-211-2/+0
|
* Fix SF bug [ 788011 ] compiler.compileFile fails on csv.pyJeremy Hylton2003-08-281-1/+6
| | | | Bug fix candidate.
* Comment typo fixesAndrew M. Kuchling2003-08-112-2/+2
|
* Jacob Hallen cornered me here at EuroPython and got me to look atMichael W. Hudson2003-06-271-1/+5
| | | | | | | | | | patch: [ 750008 ] 'compiler' module bug with 'import foo.bar as baz' which I'm now checking in. after import foo.bar as baz, baz would refer to foo.
* SF patch #701494: more apply removalsRaymond Hettinger2003-04-061-1/+1
|
* Whitespace normalization.Tim Peters2003-03-071-1/+1
|
* Remove debugging prints.Michael W. Hudson2003-01-031-2/+0
|
* Replace all but one explicit emit('SET_LINENO') with call to set_lineno().Jeremy Hylton2002-12-311-8/+2
| | | | | | Remove broken code in visitDict(). I assume the code was trying to add set lineno events for each line of a dict constructor, but I think it was using the wrong object (node instead of k or v).
* SF patch [ 597919 ] compiler package and SET_LINENOJeremy Hylton2002-12-314-44/+69
| | | | | | | | | | | | | | | | | A variety of changes from Michael Hudson to get the compiler working with 2.3. The primary change is the handling of SET_LINENO: # The set_lineno() function and the explicit emit() calls for # SET_LINENO below are only used to generate the line number table. # As of Python 2.3, the interpreter does not have a SET_LINENO # instruction. pyassem treats SET_LINENO opcodes as a special case. A few other small changes: - Remove unused code from pycodegen and pyassem. - Fix error handling in parsermodule. When PyParser_SimplerParseString() fails, it sets an exception with detailed info. The parsermodule was clobbering that exception and replacing it was a generic "could not parse string" exception. Keep the original exception.
* Fixing bugGustavo Niemeyer2002-12-161-2/+2
| | | | | | | | | | | | | | | | | | [#448679] Left to right * Python/compile.c (com_dictmaker): Reordered evaluation of dictionaries to follow strict LTR evaluation. * Lib/compiler/pycodegen.py (CodeGenerator.visitDict): Reordered evaluation of dictionaries to follow strict LTR evaluation. * Doc/ref/ref5.tex Documented the general LTR evaluation order idea. * Misc/NEWS Documented change in evaluation order of dictionaries.
* Remove uses of string module and stat.ST_MODENeal Norwitz2002-06-063-11/+7
|
* Fix com_arglist() and update grammar fragment.Jeremy Hylton2002-04-191-6/+3
| | | | | | | | | | | | | | | | | SF bug #522264 reported by Evelyn Mitchell. The code included a comment about "STAR STAR" which was translated into the code as the bogus attribute token.STARSTAR. This name never caused an attribute error because it was never retrieved. The code was based on an old version of the grammar that specified kwargs as two tokens ('*' '*'). I checked as far back as 2.1 and didn't find this production. The fix is simple, because token.DOUBLESTAR is the only token allowed. Also update the grammar fragment in com_arglist(). XXX I'll bet lots of other grammar fragments in comments are out of date, probably in this module and in compile.c.
* Remove more out-of-date comments and clarify explanation of visit().Jeremy Hylton2002-04-181-7/+1
|
* Remove out-of-date explanation in doc strings,Jeremy Hylton2002-04-181-3/+1
| | | | as reported by Eric C. Newton.
* Patch #522279: transformer.py nodes shadows global.Martin v. Löwis2002-02-281-3/+3
|
* Patch #521714: fix pychecker warnings in ast.py.Martin v. Löwis2002-02-231-124/+124
|
* Whitespace normalization.Tim Peters2002-02-161-1/+1
|
* Merge of the release22 branch changes back into the trunk.Barry Warsaw2001-12-214-4/+27
|
* Fix [ #484645 ] little bug in pycodegen.pyJeremy Hylton2001-11-271-1/+1
|
* Fix SF bug #479186: compiler generates bad code for "del"Jeremy Hylton2001-11-091-0/+1
| | | | | | | Fix by Neil Schemenauer. Visit the Subscript node when trying to find the operation for a statement. XXX Not sure if there are other nodes that should be visited.
* Whitespace normalization.Tim Peters2001-10-189-56/+53
|
* Vastly improved stacksize calculation.Jeremy Hylton2001-10-171-18/+51
| | | | | | | | | | | | | | | | | | | | | There are now no known cases where the compiler package computes a stack depth lower than the one computed by the builtin compiler. (To achieve this state, we had to fix bugs in both compilers :-). The chief change is to do the depth calculations with respect to basic blocks. The stack effect of block is calculated. Then the flow graph is traversed using breadth-first search to find the max weight path through the graph. Had to fix the StackDepthTracker to calculate the right info for several opcodes: LOAD_ATTR, CALL_FUNCTION (and friends), MAKE_CLOSURE, and DUP_TOPX. XXX Still need to handle free variables in MAKE_CLOSURE. XXX There are still a lot of places where the computed stack depth is larger than for the builtin compiler. These won't cause the interpreter to overflow the frame, but they waste space.
* Handle testlist_safe as if it were testlist.Jeremy Hylton2001-10-171-0/+4
|
* Fix comment typoAndrew M. Kuchling2001-09-271-1/+1
|
* API change:Jeremy Hylton2001-09-173-10/+109
| | | | | | | | | | | | | | | | | | compile() becomes replacement for builtin compile() compileFile() generates a .pyc from a .py both are exported in __init__ compiler.parse() gets optional second argument to specify compilation mode, e.g. single, eval, exec Add AbstractCompileMode as parent class and Module, Expression, and Interactive as concrete subclasses. Each corresponds to a compilation mode. THe AbstractCompileMode instances in turn delegate to CodeGeneration subclasses specialized for their particular functions -- ModuleCodeGenerator, ExpressionCodeGeneration, InteractiveCodeGenerator.
* Re-created after change to astgen to calculate hardest_arg correctlyJeremy Hylton2001-09-171-577/+603
|
* Last set of change to get regression tests to passJeremy Hylton2001-09-173-5/+10
| | | | | | | | | | | Remove the only test in the syntax module. It ends up that the transformer must handle this error case. In the transformer, check for a list compression in com_assign_list() by looking for a list_for node where a comma is expected. In pycodegen.compile() re-raise the SyntaxError rather than catching it and exiting
* Handle more syntax errors.Jeremy Hylton2001-09-172-29/+77
| | | | | | | | Invoke compiler.syntax.check() after building AST. If a SyntaxError occurs, print the error and exit without generating a .pyc file. Refactor code to use compiler.misc.set_filename() rather than passing filename argument around to each CodeGenerator instance.
* Add utility to set filename attribute on all nodesJeremy Hylton2001-09-171-0/+9
|
* support true divisionJeremy Hylton2001-09-171-1/+3
|
* Add code generator for yield stmtJeremy Hylton2001-09-141-0/+5
|
* del no longer necessary now that new module is goneJeremy Hylton2001-09-141-2/+0
|
* Various sundry changes for 2.2 compatibilityJeremy Hylton2001-09-142-137/+94
| | | | | | | | | | | | | | | Remove the option to have nested scopes or old LGB scopes. This has a large impact on the code base, by removing the need for two variants of each CodeGenerator. Add a get_module() method to CodeGenerator objects, used to get the future features for the current module. Set CO_GENERATOR, CO_GENERATOR_ALLOWED, and CO_FUTURE_DIVISION flags as appropriate. Attempt to fix the value of nlocals in newCodeObject(), assuming that nlocals is 0 if CO_NEWLOCALS is not defined.
* The object-being sliced in an assignment to a slice is referenced, notJeremy Hylton2001-09-141-2/+2
| | | | | | | bound. When a Yield() node is visited, assign to the generator attribute of the scope, not the visitor.
* the new new doesn't define CO_xxx as the old new didJeremy Hylton2001-09-141-1/+9
|
* the names attribute of Global is not a nodeJeremy Hylton2001-09-141-1/+1
|
* Fix _convert_NAME() so that it doesn't store locals for class bodies.Jeremy Hylton2001-08-303-15/+15
| | | | | | | | | Fix list comp code generation -- emit GET_ITER instead of Const(0) after the list. Add CO_GENERATOR flag to generators. Get CO_xxx flags from the new module