cpython/Lib/compiler
Jeremy Hylton 138d90eb73 Vastly improved stacksize calculation.
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.
2001-10-17 13:37:29 +00:00
..
__init__.py Fix comment typo 2001-09-27 04:18:36 +00:00
ast.py Re-created after change to astgen to calculate hardest_arg correctly 2001-09-17 20:17:02 +00:00
consts.py del no longer necessary now that new module is gone 2001-09-14 22:54:48 +00:00
future.py Track removal of doc string from Module().nodes[0] 2001-08-18 00:07:46 +00:00
misc.py Add utility to set filename attribute on all nodes 2001-09-17 18:02:21 +00:00
pyassem.py Vastly improved stacksize calculation. 2001-10-17 13:37:29 +00:00
pycodegen.py API change: 2001-09-17 21:02:51 +00:00
symbols.py The object-being sliced in an assignment to a slice is referenced, not 2001-09-14 22:45:57 +00:00
syntax.py Last set of change to get regression tests to pass 2001-09-17 19:33:48 +00:00
transformer.py Handle testlist_safe as if it were testlist. 2001-10-17 13:32:52 +00:00
visitor.py Change default() to use getChildNodes() instead of getChildren() 2001-08-29 18:17:22 +00:00