summaryrefslogtreecommitdiffstats
path: root/Python/ceval.c
Commit message (Collapse)AuthorAgeFilesLines
* Issue #8276: PyEval_CallObject() is now only available in macro form. TheAntoine Pitrou2010-04-011-12/+1
| | | | | function declaration, which was kept for backwards compatibility reasons, is now removed (the macro was introduced in 1997!).
* take into account keyword arguments when passing too many argsBenjamin Peterson2010-03-211-1/+1
|
* improve error message from passing inadequate number of keyword arguments #6474Benjamin Peterson2010-03-211-5/+7
| | | | Note this removes the "non-keyword" or "keyword" phrases from these messages.
* co_varnames is certainly a tuple, so let's not waste time finding outBenjamin Peterson2010-03-211-1/+1
|
* remove pointless conditionBenjamin Peterson2010-03-211-15/+13
|
* flatten conditionBenjamin Peterson2010-03-211-8/+6
|
* more specific exception for wrong kind of raise #8082Benjamin Peterson2010-03-071-2/+3
|
* remove pointless error checkingBenjamin Peterson2010-02-061-3/+0
|
* normalize exceptions passed to the __exit__ method #7853Benjamin Peterson2010-02-051-5/+9
| | | | | | | | | In Python 2.x, exceptions in finally blocks are not normalized. Since with statements are implemented using finally blocks, ceval.c had to be tweaked to distinguish between with finally blocks and normal ones. A test for the finalization of generators containing with statements was also added.
* Issue #2333: Backport set and dict comprehensions syntax.Alexandre Vassalotti2010-01-111-0/+26
|
* Issue #2335: Backport set literals syntax from Python 3.x.Alexandre Vassalotti2010-01-091-0/+19
|
* Issue #7406: Fix some occurrences of potential signed overflow in intMark Dickinson2009-12-021-2/+6
| | | | arithmetic.
* Issue #6603: Fix --with-tsc build failures on x86-64 that resultedMark Dickinson2009-10-311-1/+19
| | | | | | from a gcc inline assembler peculiarity. (gcc's "A" constraint apparently means 'rax or rdx' in 64-bit mode, not edx:eax or rdx:rax as one might expect.)
* small optimization: avoid popping the current block until we have toBenjamin Peterson2009-07-011-5/+5
|
* use stack macrosBenjamin Peterson2009-06-281-2/+2
|
* add two generic macros for peeking and setting in the stackBenjamin Peterson2009-06-281-0/+2
|
* Issue #5330: C functions called with keyword arguments were not reported byAntoine Pitrou2009-05-301-2/+16
| | | | the various profiling modules (profile, cProfile). Patch by Hagen Fürstenau.
* add a SETUP_WITH opcodeBenjamin Peterson2009-05-251-0/+46
| | | | | It speeds up the with statement and correctly looks up the special methods involved.
* Issue #6042:Jeffrey Yasskin2009-05-231-14/+11
| | | | | | | | | | | | | | | lnotab-based tracing is very complicated and isn't documented very well. There were at least 3 comment blocks purporting to document co_lnotab, and none did a very good job. This patch unifies them into Objects/lnotab_notes.txt which tries to completely capture the current state of affairs. I also discovered that we've attached 2 layers of patches to the basic tracing scheme. The first layer avoids jumping to instructions that don't start a line, to avoid problems in if statements and while loops. The second layer discovered that jumps backward do need to trace at instructions that don't start a line, so it added extra lnotab entries for 'while' and 'for' loops, and added a special case for backward jumps within the same line. I replaced these patches by just treating forward and backward jumps differently.
* Issue 5954, PyFrame_GetLineNumber:Jeffrey Yasskin2009-05-081-1/+1
| | | | | | | | | | | | | | Most uses of PyCode_Addr2Line (http://www.google.com/codesearch?q=PyCode_Addr2Line) are just trying to get the line number of a specified frame, but there's no way to do that directly. Forcing people to go through the code object makes them know more about the guts of the interpreter than they should need. The remaining uses of PyCode_Addr2Line seem to be getting the line from a traceback (for example, http://www.google.com/codesearch/p?hl=en#u_9_nDrchrw/pygame-1.7.1release/src/base.c&q=PyCode_Addr2Line), which is replaced by the tb_lineno field. So we may be able to deprecate PyCode_Addr2Line entirely for external use.
* Backport r69961 to trunk, replacing JUMP_IF_{TRUE,FALSE} withJeffrey Yasskin2009-02-281-17/+67
| | | | | | POP_JUMP_IF_{TRUE,FALSE} and JUMP_IF_{TRUE,FALSE}_OR_POP. This avoids executing a POP_TOP on each conditional and sometimes allows the peephole optimizer to skip a JUMP_ABSOLUTE entirely. It speeds up list comprehensions significantly.
* Issue 5176: special-case string formatting in BINARY_MODULO implementation. ↵Collin Winter2009-02-201-1/+4
| | | | This shows a modest (1-3%) speed-up in templating systems, for example.
* Silence 'arg may be used uninitialized in this function' warning from gcc.Mark Dickinson2009-02-081-1/+1
|
* fix building the core with --disable-unicodeBenjamin Peterson2009-01-251-4/+15
| | | | | I changed some bytearray methods to use strings instead of unicode like bytes_repr Also, bytearray.fromhex() can take strings as well as unicode
* allow unicode keyword arguments for the ** syntax #4978Benjamin Peterson2009-01-201-12/+33
|
* Issue 4293: Make Py_AddPendingCall() thread safeKristján Valur Jónsson2009-01-091-22/+146
|
* Issue #2183: Simplify and optimize bytecode for list comprehensions.Antoine Pitrou2008-12-171-2/+1
|
* #4559: When a context manager's __exit__() method returns an object whoseAmaury Forgeot d'Arc2008-12-101-6/+13
| | | | | | | conversion to bool raises an exception, 'with' loses that exception. Reviewed by Jeffrey Yasskin. Already ported to 2.5, will port to 2.6 and 3.0
* Issue 4597: Fix several cases in EvalFrameEx where an exception could beJeffrey Yasskin2008-12-081-3/+14
| | | | "raised" without setting x, err, or why to let the eval loop know.
* Speed up Python (according to pybench and 2to3-on-itself) by 1-2% by cachingJeffrey Yasskin2008-12-031-1/+10
| | | | | whether any thread has tracing turned on, which saves one load instruction in the fast_next_opcode path in PyEval_EvalFrameEx(). See issue 4477.
* Raymond's patch for #1819: speedup function calls with named parametersAntoine Pitrou2008-07-251-22/+30
| | | | (35% faster according to pybench)
* Apply patch for 874900: threading module can deadlock after forkJesse Noller2008-07-161-0/+20
|
* Update comment on prediction macros.Raymond Hettinger2008-07-051-11/+13
|
* Add a comment about incref'ing w.Georg Brandl2008-07-011-0/+2
|
* #3242: fix a crash in "print", if sys.stdout is set to a custom object,Amaury Forgeot d'Arc2008-07-011-0/+2
| | | | | | whose write() method installs another sys.stdout. Will backport.
* This reverts r63675 based on the discussion in this thread:Gregory P. Smith2008-06-091-47/+47
| | | | | | | http://mail.python.org/pipermail/python-dev/2008-June/079988.html Python 2.6 should stick with PyString_* in its codebase. The PyBytes_* names in the spirit of 3.0 are available via a #define only. See the email thread.
* Renamed PyString to PyBytesChristian Heimes2008-05-261-47/+47
|
* A little reformating of Py3k warningsBenjamin Peterson2008-04-271-8/+8
|
* Use PyErr_WarnPy3k throughoutBenjamin Peterson2008-04-271-2/+2
|
* Make Py3k warnings consistent w.r.t. punctuation; also respect theGeorg Brandl2008-03-251-1/+1
| | | | EOL 80 limit and supply more alternatives in warning messages.
* Issue #2341: Add a Py3k warning when raising an exception that doesn'tGuido van Rossum2008-03-181-0/+9
| | | | derive from BaseException.
* Clean up the Py3k warnings for non-BaseException-subclasses a bit. WeGuido van Rossum2008-03-181-4/+6
| | | | | now don't warn for some corner cases that deserve a warning, rather than warning double or incorrectly for some other corner cases.
* - Issue #2371: Add a Py3k warning when catching an exception thatGuido van Rossum2008-03-181-0/+27
| | | | doesn't derive from BaseException.
* Speed up with statements by storing the __exit__ method on the stack instead ↵Nick Coghlan2008-03-071-24/+50
| | | | of in a temp variable (bumps the magic number for pyc files)
* compile.c always emits END_FINALLY after WITH_CLEANUP, so predict that inJeffrey Yasskin2008-03-031-0/+2
| | | | ceval.c. This is worth about a .03-.04us speedup on a simple with block.
* Reduce buffer size since we do not need 1kNeal Norwitz2008-01-271-1/+1
|
* Fix two crashers.Guido van Rossum2008-01-231-1/+5
|
* #1629: Renamed Py_Size, Py_Type and Py_Refcnt to Py_SIZE, Py_TYPE and ↵Christian Heimes2007-12-191-1/+1
| | | | Py_REFCNT. Macros for b/w compatibility are available.
* Give meaning to the oparg for BUILD_MAP: estimated size of the dictionary.Raymond Hettinger2007-12-181-1/+1
| | | | | | | | | | | Allows dictionaries to be pre-sized (upto 255 elements) saving time lost to re-sizes with their attendant mallocs and re-insertions. Has zero effect on small dictionaries (5 elements or fewer), a slight benefit for dicts upto 22 elements (because they had to resize once anyway), and more benefit for dicts upto 255 elements (saving multiple resizes during the build-up and reducing the number of collisions on the first insertions). Beyond 255 elements, there is no addional benefit.
* Speed-up dictionary constructor by about 10%.Raymond Hettinger2007-12-181-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | New opcode, STORE_MAP saves the compiler from awkward stack manipulations and specializes for dicts using PyDict_SetItem instead of PyObject_SetItem. Old disassembly: 0 BUILD_MAP 0 3 DUP_TOP 4 LOAD_CONST 1 (1) 7 ROT_TWO 8 LOAD_CONST 2 ('x') 11 STORE_SUBSCR 12 DUP_TOP 13 LOAD_CONST 3 (2) 16 ROT_TWO 17 LOAD_CONST 4 ('y') 20 STORE_SUBSCR New disassembly: 0 BUILD_MAP 0 3 LOAD_CONST 1 (1) 6 LOAD_CONST 2 ('x') 9 STORE_MAP 10 LOAD_CONST 3 (2) 13 LOAD_CONST 4 ('y') 16 STORE_MAP