- 24 Haz, 2004 1 kayıt (commit)
-
-
Raymond Hettinger yazdı
-
- 21 Haz, 2004 1 kayıt (commit)
-
-
Raymond Hettinger yazdı
Reduces the cost of "not" to almost zero.
-
- 08 Haz, 2004 1 kayıt (commit)
-
-
Martin v. Löwis yazdı
-
- 19 May, 2004 1 kayıt (commit)
-
-
Raymond Hettinger yazdı
(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.
-
- 22 Mar, 2004 1 kayıt (commit)
-
-
Armin Rigo yazdı
def f(a): if a: print 5 else: pass
-
- 21 Mar, 2004 1 kayıt (commit)
-
-
Raymond Hettinger yazdı
Gives 30% speedup on "a,b=1,2" and 25% on "a,b,c=1,2,3".
-
- 07 Mar, 2004 1 kayıt (commit)
-
-
Raymond Hettinger yazdı
Add a new opcode, LIST_APPEND, and apply it to the code generation for list comprehensions. Reduces the per-loop overhead by about a third.
-
- 29 Kas, 2003 1 kayıt (commit)
-
-
Guido van Rossum yazdı
and left shifts. (Thanks to Kalle Svensson for SF patch 849227.) This addresses most of the remaining semantic changes promised by PEP 237, except for repr() of a long, which still shows the trailing 'L'. The PEP appears to promise warnings for operations that changed semantics compared to Python 2.3, but this is not implemented; we've suffered through enough warnings related to hex/oct literals and I think it's best to be silent now.
-
- 18 Eki, 2003 1 kayıt (commit)
-
-
Martin v. Löwis yazdı
rename LOCAL_GLOBAL to PARAM_GLOBAL.
-
- 12 Eki, 2003 1 kayıt (commit)
-
-
Raymond Hettinger yazdı
* Py_BuildValue("(OOO)",a,b,c) --> PyTuple_Pack(3,a,b,c) * Py_BuildValue("()",a) --> PyTuple_New(0) * Py_BuildValue("O", a) --> Py_INCREF(a)
-
- 22 Eyl, 2003 1 kayıt (commit)
-
-
Jeremy Hylton yazdı
Refactor code so that one helper routine sets error location and increments st_errors. Bug fix candidate.
-
- 16 Eyl, 2003 1 kayıt (commit)
-
-
Raymond Hettinger yazdı
-
- 15 Eyl, 2003 1 kayıt (commit)
-
-
Raymond Hettinger yazdı
Will backport to 2.3.1
-
- 28 Agu, 2003 1 kayıt (commit)
-
-
Jeremy Hylton yazdı
Make sure the inner function is not compiled when there is a syntax error in the default arguments.
-
- 15 Tem, 2003 1 kayıt (commit)
-
-
Jeremy Hylton yazdı
Fixes for three related bugs, including errors that caused a script to be ignored without printing an error message. The key problem was a bad interaction between syntax warnings and syntax errors. If an exception was already set when a warning was issued, the warning could clobber the exception. The PyErr_Occurred() check in issue_warning() isn't entirely satisfying (the caller should know whether there was already an error), but a better solution isn't immediately obvious. Bug fix candidate.
-
- 20 Haz, 2003 1 kayıt (commit)
-
-
Raymond Hettinger yazdı
It depended on the previously removed basic block checker to prevent a jump into the middle of the transformed block. Clears SF 757818: tuple assignment -- SystemError: unknown opcode
-
- 22 May, 2003 3 kayıt (commit)
-
-
Neal Norwitz yazdı
Update error message. Hopefully this is clearer to some people.
-
Jeremy Hylton yazdı
Remove comment about how code used to work.
-
Jeremy Hylton yazdı
to do. XXX Please be careful when checking in patches to avoid checking in junk that explains what the patched code used to do.
-
- 21 May, 2003 1 kayıt (commit)
-
-
Jeremy Hylton yazdı
The compiler was reseting the list comprehension tmpname counter for each function, but the symtable was using the same counter for the entire module. Repair by move tmpname into the symtable entry. Bugfix candidate.
-
- 12 May, 2003 1 kayıt (commit)
-
-
Tim Peters yazdı
about a decade ago. Put the code still allowing for it in cmp_type() out of its lonely misery.
-
- 10 May, 2003 1 kayıt (commit)
-
-
Martin v. Löwis yazdı
riscospath.extsep, and use os.extsep throughout.
-
- 03 May, 2003 1 kayıt (commit)
-
-
Martin v. Löwis yazdı
-
- 29 Nis, 2003 1 kayıt (commit)
-
-
Michael W. Hudson yazdı
[ 708901 ] Lineno calculation sometimes broken A one line patch to compile.c and a rather-more-than-one-line patch to test_dis. Hey ho. Possibly a backport candidate -- tho' lnotab is less used in 2.2...
-
- 24 Nis, 2003 1 kayıt (commit)
-
-
Raymond Hettinger yazdı
The additional code complexity and new NOP opcode were not worth it.
-
- 22 Nis, 2003 1 kayıt (commit)
-
-
Raymond Hettinger yazdı
* Can now test for basic blocks. * Optimize inverted comparisions. * Optimize unary_not followed by a conditional jump. * Added a new opcode, NOP, to keep code size constant. * Applied NOP to previous transformations where appropriate. Note, the NOP would not be necessary if other functions were added to re-target jump addresses and update the co_lnotab mapping. That would yield slightly faster and cleaner bytecode at the expense of optimizer simplicity and of keeping it decoupled from the line-numbering structure.
-
- 15 Nis, 2003 1 kayıt (commit)
-
-
Raymond Hettinger yazdı
to cover the case for: "x,y,z=1,2,3". Gives a 30% speed-up. Also, added FOR_ITER to the list of opcodes that can jump.
-
- 28 Mar, 2003 1 kayıt (commit)
-
-
Raymond Hettinger yazdı
-
- 26 Mar, 2003 1 kayıt (commit)
-
-
Raymond Hettinger yazdı
Adds a single function to improve generated bytecode. Has a single line attachment point, so it is completely de-coupled from both the compiler and ceval.c. Makes three simple transforms that do not require a basic block analysis or re-ordering of code. Gives improved timings on pystone, pybench, and any code using either "while 1" or "x,y=y,x".
-
- 24 Mar, 2003 1 kayıt (commit)
-
-
Tim Peters yazdı
in normal cases, and also in error cases. Bugfix candidate.
-
- 12 Şub, 2003 1 kayıt (commit)
-
-
Guido van Rossum yazdı
"Unsigned" (i.e., positive-looking, but really negative) hex/oct constants with a leading minus sign are once again properly negated. The micro-optimization for negated numeric constants did the wrong thing for such hex/oct constants. The patch avoids the optimization for all hex/oct constants. This needs to be backported to Python 2.2!
-
- 10 Şub, 2003 1 kayıt (commit)
-
-
Just van Rossum yazdı
Incorporated nnorwitz's comment re. Py__USING_UNICODE.
-
- 05 Şub, 2003 1 kayıt (commit)
-
-
Jeremy Hylton yazdı
-DCALL_PROFILE: Count the number of function calls executed. When this symbol is defined, the ceval mainloop and helper functions count the number of function calls made. It keeps detailed statistics about what kind of object was called and whether the call hit any of the special fast paths in the code. Optimization: When we take the fast_function() path, which seems to be taken for most function calls, and there is minimal frame setup to do, avoid call PyEval_EvalCodeEx(). The eval code ex function does a lot of work to handle keywords args and star args, free variables, generators, etc. The inlined version simply allocates the frame and copies the arguments values into the frame. The optimization gets a little help from compile.c which adds a CO_NOFREE flag to code objects that don't have free variables or cell variables. This change allows fast_function() to get into the fast path with fewer tests. I measure a couple of percent speedup in pystone with this change, but there's surely more that can be done.
-
- 16 Ock, 2003 1 kayıt (commit)
-
-
Michael W. Hudson yazdı
-
- 31 Ara, 2002 1 kayıt (commit)
-
-
Jeremy Hylton yazdı
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.
-
- 23 Ara, 2002 2 kayıt (commit)
-
-
Guido van Rossum yazdı
-
Guido van Rossum yazdı
549213 by Jeremy (checking in for him since he's away and busy).
-
- 18 Ara, 2002 1 kayıt (commit)
-
-
Neal Norwitz yazdı
The static variable (implicit) was not necessary. The c_globals can be None or True now.
-
- 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.
-
- 11 Ara, 2002 1 kayıt (commit)
-
-
Martin v. Löwis yazdı
-