- 16 Ara, 2002 1 kayıt (commit)
-
-
Gustavo Niemeyer yazdı
[#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.
-
- 06 Haz, 2002 1 kayıt (commit)
-
-
Neal Norwitz yazdı
-
- 19 Nis, 2002 1 kayıt (commit)
-
-
Jeremy Hylton yazdı
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.
-
- 18 Nis, 2002 2 kayıt (commit)
-
-
Jeremy Hylton yazdı
-
Jeremy Hylton yazdı
as reported by Eric C. Newton.
-
- 28 Şub, 2002 1 kayıt (commit)
-
-
Martin v. Löwis yazdı
-
- 23 Şub, 2002 1 kayıt (commit)
-
-
Martin v. Löwis yazdı
-
- 16 Şub, 2002 1 kayıt (commit)
-
-
Tim Peters yazdı
-
- 21 Ara, 2001 1 kayıt (commit)
-
-
Barry Warsaw yazdı
-
- 27 Kas, 2001 1 kayıt (commit)
-
-
Jeremy Hylton yazdı
-
- 09 Kas, 2001 1 kayıt (commit)
-
-
Jeremy Hylton yazdı
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.
-
- 18 Eki, 2001 1 kayıt (commit)
-
-
Tim Peters yazdı
-
- 17 Eki, 2001 2 kayıt (commit)
-
-
Jeremy Hylton yazdı
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.
-
Jeremy Hylton yazdı
-
- 27 Eyl, 2001 1 kayıt (commit)
-
-
Andrew M. Kuchling yazdı
-
- 17 Eyl, 2001 6 kayıt (commit)
-
-
Jeremy Hylton yazdı
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.
-
Jeremy Hylton yazdı
-
Jeremy Hylton yazdı
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
-
Jeremy Hylton yazdı
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.
-
Jeremy Hylton yazdı
-
Jeremy Hylton yazdı
-
- 14 Eyl, 2001 6 kayıt (commit)
-
-
Jeremy Hylton yazdı
-
Jeremy Hylton yazdı
-
Jeremy Hylton yazdı
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.
-
Jeremy Hylton yazdı
bound. When a Yield() node is visited, assign to the generator attribute of the scope, not the visitor.
-
Jeremy Hylton yazdı
-
Jeremy Hylton yazdı
-
- 30 Agu, 2001 2 kayıt (commit)
-
-
Jeremy Hylton yazdı
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
-
Jeremy Hylton yazdı
-
- 29 Agu, 2001 11 kayıt (commit)
-
-
Jeremy Hylton yazdı
try/except or try/finally. Previous versions had only track SETUP_LOOP blocks and ignored the exception part. This meant that it allowed continue inside a try/except but generated buggy code. Now it does the right thing.
-
Jeremy Hylton yazdı
Add CONTINUE_LOOP to the list of unconditional transfers
-
Jeremy Hylton yazdı
-
Jeremy Hylton yazdı
starts a new line. Also fix undetected typo in visitDict() -- uncovered by recent change to add lineno attrs to atoms.
-
Jeremy Hylton yazdı
-
Jeremy Hylton yazdı
XXX The code is still widely inaccurate, but most (all?) of the time it's an overestimate.
-
Jeremy Hylton yazdı
As the doc string for _lookupName() explains: This routine uses a list instead of a dictionary, because a dictionary can't store two different keys if the keys have the same value but different types, e.g. 2 and 2L. The compiler must treat these two separately, so it does an explicit type comparison before comparing the values.
-
Jeremy Hylton yazdı
-
Jeremy Hylton yazdı
Generate SET_LINENO for del statements. Define klass=1 for PyFlowGraph constructor for a class statement. A class has no varnames.
-
Jeremy Hylton yazdı
Avoid if/elif/elif/else tests where the final else is supposed to handle exactly one case instead of all other cases. When the list of operators is extended, the catchall else treats all new operators as the last operator in the set of tests. Instead, raise an exception if an unexpected operator occurs.
-
Jeremy Hylton yazdı
Fix bug in handling of statements like "l[x:y] = 2". The visitor was treating this as assignments to l, x, and y!
-