summaryrefslogtreecommitdiffstats
path: root/Tools/compiler
Commit message (Collapse)AuthorAgeFilesLines
...
* Don't include doc string of class in its code childJeremy Hylton2001-08-291-0/+5
|
* Make sure the JUMP_ABSOLUTE and POP_BLOCK at the end of a for loop areJeremy Hylton2001-08-281-1/+1
| | | | contiguous.
* XXX_NAME ops should affect varnamesJeremy Hylton2001-08-281-1/+4
| | | | | | varnames should list all the local variables (with arguments first). The XXX_NAME ops typically occur at the module level and assignment ops should create locals.
* Generate FOR_ITER-based loops instead of old FOR_LOOP-based loopsJeremy Hylton2001-08-281-5/+9
|
* Handle private namesJeremy Hylton2001-08-273-20/+50
| | | | | | | | | | | | | | | | | | | (Hard to believe these were never handled before) Add misc.mangle() that mangles based on the rules in compile.c. XXX Need to test the corner cases Update CodeGenerator with a class_name attribute bound to None. If a particular instance is created within a class scope, the instance's class_name is bound to that class's name. Add mangle() method to CodeGenerator that mangles if the class_name has a class_name in it. Modify the FunctionCodeGenerator family to handle an extra argument-- the class_name. Wrap all name ops and attrnames in calls to self.mangle()
* emit SET_LINENO for augmented assignmentsJeremy Hylton2001-08-271-0/+4
|
* Many changes -- bug fixes and sundry improvementsJeremy Hylton2001-08-271-33/+30
| | | | | | | | | | | | | | | | Make nested scopes enabled by default Add is_constant_false() helper so that compiled code and symbols are consistent with builtin compiler's handling of "if 0:" Fix doc string handling to be consistent with recent change that eliminates the doc string from the Module's node attribute. Add fix to print handling from Evan & Shane. Track change to visitor api by making "verbose" explicit. Comment out setting CO_NESTED flag (it's unnecessary in 2.2).
* Fix for sibling nodes that define the same free variableJeremy Hylton2001-08-271-6/+10
| | | | | | | | Evan Simpson's fix. And his explanation: If you defined two nested functions in a row that refer to the same non-global variable, the second one will be generated as though the variable were global.
* Add lookup_name() to optimize use of stack framesJeremy Hylton2001-08-271-5/+21
| | | | | | | | | | | | The use of com_node() introduces a lot of extra stack frames, enough to cause a stack overflow compiling test.test_parser with the standard interpreter recursionlimit. The com_node() is a convenience function that hides the dispatch details, but comes at a very high cost. It is more efficient to dispatch directly in the callers. In these cases, use lookup_node() and call the dispatched node directly. Also handle yield_stmt in a way that will work with Python 2.1 (suggested by Shane Hathaway)
* Two changes to visitor API:Jeremy Hylton2001-08-271-20/+23
| | | | | | | Remove _preorder as alias for dispatch and call dispatch directly. Add an extra optional argument to walk() XXX Also comment out some code that does debugging prints.
* Why didn't I think of Fred off the top of my head?Jeremy Hylton2001-08-271-0/+1
|
* Add everyone I can think of off the top of my headJeremy Hylton2001-08-271-0/+7
|
* Revise regrtest to compile entire standard library.Jeremy Hylton2001-08-271-9/+28
| | | | | | | | | The tests are run from a copy of the library directory, where everything has been compiled by the compiler package. Add a raw_input() call at the end of the script, so that I can check the output before the temp directory with the compiled code is removed.
* Add -c option to continue if one file has a SyntaxErrorJeremy Hylton2001-08-271-2/+15
|
* Add a little introductory text.Jeremy Hylton2001-08-181-15/+93
| | | | | | | | | Change several sections to subsections (part of the manual -> howto transformation). Flesh out discussion of assignment nodes (and delete statements). Add an example of manipulating AST objects at a >>> prompt
* Generate correct reprs for Mul, Add, etc.Jeremy Hylton2001-08-183-20/+12
|
* Track removal of doc string from Module().nodes[0]Jeremy Hylton2001-08-181-7/+2
|
* Add Yield() nodeJeremy Hylton2001-08-181-0/+12
|
* Add Yield() statement handlerJeremy Hylton2001-08-181-1/+11
| | | | Fix Module() handler to avoid including the doc string in the AST
* Remove spurious space before a period.Fred Drake2001-08-151-1/+1
|
* Use the "howto" document class rather than the "manual" class.Fred Drake2001-08-151-85/+81
| | | | | | | | Remove the module index; there aren't enough modules documented yet for this to make sense. Add a couple more index entries, fixed a few typos, and adjusted a few more things for consistency.
* Properly mark attribute names in the table.Fred Drake2001-08-151-117/+117
|
* Change the generated markup so that attribute names are properly marked.Fred Drake2001-08-151-1/+1
|
* Fix small markup consistency nits.Fred Drake2001-08-151-7/+8
|
* update simple explanation of parseFile()Jeremy Hylton2001-08-141-1/+1
|
* First day's progress on documentationJeremy Hylton2001-08-143-0/+588
|
* Fix typo in astgen scriptJeremy Hylton2001-08-143-3/+3
|
* Regenerated from new ast.txt and new astgen.pyJeremy Hylton2001-08-141-12/+23
|
* Add getChildNodes() method to NodeJeremy Hylton2001-08-142-0/+4
|
* Add Yield nodeJeremy Hylton2001-08-142-0/+2
|
* Update e-mail addressAndrew M. Kuchling2001-08-131-1/+1
|
* Added README to this directoryAndrew M. Kuchling2001-08-081-0/+21
|
* SF bug 430991: wrong co_lnotabTim Peters2001-06-091-17/+14
| | | | | | | | | Armin Rigo pointed out that the way the line-# table got built didn't work for lines generating more than 255 bytes of bytecode. Fixed as he suggested, plus corresponding changes to pyassem.py, plus added some long overdue docs about this subtle table to compile.c. Bugfix candidate (line numbers may be off in tracebacks under -O).
* Pop loop off the loop stack before handling the loop's else clause.Jeremy Hylton2001-04-121-4/+4
| | | | | | Otherwise, continue/break will attempt to affect the wrong loop. A few more fiddles to get the SET_LINENOs consistent across compilers.
* Use new _implicitNameOp() to generate name op code for list comprehensions.Jeremy Hylton2001-04-121-4/+17
| | | | | | | | | Always emit a SET_LINENO 0 at the beginning of the module. The builtin compiler does this, and it's much easier to compare bytecode generated by the two compilers if they both do. Move the SET_LINENO inside the FOR_LOOP block for list comprehensions. Also for compat. with builtin compiler.
* Add support for visitAssAttr to findOp().Jeremy Hylton2001-04-121-1/+1
|
* pyassem.py:Jeremy Hylton2001-04-122-14/+111
| | | | | | | | | | | | | | | | Fix annoying bugs in flow graph layout code. In some cases the implicit control transfers weren't honored. In other cases, JUMP_FORWARD instructions jumped backwards. Remove unused arg from nextBlock(). pycodegen.py Add optional force kwarg to set_lineno() that will emit a SET_LINENO even if it is the same as the previous lineno. Use explicit LOAD_FAST and STORE_FAST to access list comp implicit variables. (The symbol table doesn't know about them.)
* Revise handling of tuple arguments so that the variables names matchJeremy Hylton2001-04-122-8/+8
| | | | those used by compile.c. (test_grammar now depends on the names)
* Only treat an AugAssign as def if its the target is a Name.Jeremy Hylton2001-04-121-2/+4
| | | | Fixes last bug found with test_scope.py.
* Fix unpackSequence() to use _nameOp() rather than LOAD_FASTJeremy Hylton2001-04-121-1/+2
|
* Inside a class scope always use LOAD_NAME, STORE_NAME, DEL_NAMEJeremy Hylton2001-04-121-0/+3
|
* Preliminary support for nested scopesJeremy Hylton2001-04-123-89/+396
| | | | | XXX Still doesn't work right for classes XXX Still doesn't do sufficient error checking
* Define constants for types of scopesJeremy Hylton2001-04-121-0/+5
|
* typoJeremy Hylton2001-04-111-4/+8
|
* [finishing fix from earlier checkins]Jeremy Hylton2001-04-111-0/+1
| | | | | | | Call set_lineno() in visitDiscard(), which will generate linenos for discard statements, e.g. the statement "1/0" Fixes SF bug #409587
* Add support for extra (*) arguments to preorder.Jeremy Hylton2001-04-111-3/+3
| | | | Change default dispatch to use extended call syntax in place of apply.
* Generate docstrings.Jeremy Hylton2001-04-111-3/+26
| | | | | | | Fixes SF buf #217004 Add method fixDocstring() to CodeGenerator. It converts the Discard node containing the docstring into an assignment to __doc__.
* Add lineno attributes to Discard nodesJeremy Hylton2001-04-111-1/+3
|
* Make sure the docstring is always entered as the first element in theJeremy Hylton2001-04-111-11/+1
| | | | | | consts, even if it is None. Simplify _lookupName() by removing lots of redundant tests.
* Add globals to list of names returned by get_names().Jeremy Hylton2001-04-091-7/+13
| | | | | Fix func arg processing to handle args in tuples. In test code, skip names beginning with '.'.