summaryrefslogtreecommitdiffstats
path: root/Python/ceval.c
Commit message (Collapse)AuthorAgeFilesLines
* Issue #27078: Added BUILD_STRING opcode. Optimized f-strings evaluation.Serhiy Storchaka2016-09-061-0/+18
|
* Implement the frame evaluation API aspect of PEP 523.Brett Cannon2016-09-051-0/+7
|
* Issue #27895: Spelling fixes (Contributed by Ville Skyttä).Raymond Hettinger2016-08-301-6/+6
|
* Issue #27830: Revert, remove _PyFunction_FastCallKeywords()Victor Stinner2016-08-251-6/+6
|
* Add _PyObject_FastCallKeywords()Victor Stinner2016-08-241-9/+14
| | | | | | Issue #27830: Similar to _PyObject_FastCallDict(), but keyword arguments are also passed in the same C array than positional arguments, rather than being passed as a Python dict.
* Use Py_ssize_t type for number of argumentsVictor Stinner2016-08-241-83/+114
| | | | | Issue #27848: use Py_ssize_t rather than C int for the number of function positional and keyword arguments.
* PyEval_CallObjectWithKeywords() doesn't inc/decrefVictor Stinner2016-08-221-7/+1
| | | | | | Issue #27809: PyEval_CallObjectWithKeywords() doesn't increment temporary the reference counter of the args tuple (positional arguments). The caller already holds a strong reference to it.
* PyEval_CallObjectWithKeywords() uses fast call with kwargsVictor Stinner2016-08-221-12/+4
| | | | | Issue #27809. _PyObject_FastCallDict() now supports keyword arguments, and so the args==NULL fast-path can also be used when kwargs is not NULL.
* Issue #27809: Cleanup _PyEval_EvalCodeWithName()Victor Stinner2016-08-221-15/+13
| | | | | * Rename nm to name * PEP 7: add { ... } to if/else blocks
* _PyFunction_FastCallDict() supports keyword argsVictor Stinner2016-08-221-9/+41
| | | | | | | | Issue #27809: * Rename _PyFunction_FastCall() to _PyFunction_FastCallDict() * Rename _PyCFunction_FastCall() to _PyCFunction_FastCallDict() * _PyFunction_FastCallDict() now supports keyword arguments
* Rename _PyObject_FastCall() to _PyObject_FastCallDict()Victor Stinner2016-08-221-2/+2
| | | | | | | | Issue #27809: * Rename _PyObject_FastCall() function to _PyObject_FastCallDict() * Add _PyObject_FastCall(), _PyObject_CallNoArg() and _PyObject_CallArg1() macros calling _PyObject_FastCallDict()
* Optimize call to Python function without argumentVictor Stinner2016-08-221-11/+31
| | | | | | Issue #27128. When a Python function is called with no arguments, but all parameters have a default value: use default values as arguments for the fast path.
* import_name() now uses fast callVictor Stinner2016-08-191-13/+9
| | | | | Issue #27128: import_name() now calls _PyObject_FastCall() to avoid the creation of a temporary tuple.
* Fix PyObject_Call() parameter namesVictor Stinner2016-08-191-12/+13
| | | | | | Issue #27128: arg=>args, kw=>kwargs. Same change for PyEval_CallObjectWithKeywords().
* PyEval_CallObjectWithKeywords() uses fast callVictor Stinner2016-08-191-0/+4
| | | | | | Issue #27128: Modify PyEval_CallObjectWithKeywords() to use _PyObject_FastCall() when args==NULL and kw==NULL. It avoids the creation of a temporary empty tuple for positional arguments.
* Add _PyObject_FastCall()Victor Stinner2016-08-191-46/+113
| | | | | | | | | | | | | | | | | Issue #27128: Add _PyObject_FastCall(), a new calling convention avoiding a temporary tuple to pass positional parameters in most cases, but create a temporary tuple if needed (ex: for the tp_call slot). The API is prepared to support keyword parameters, but the full implementation will come later (_PyFunction_FastCall() doesn't support keyword parameters yet). Add also: * _PyStack_AsTuple() helper function: convert a "stack" of parameters to a tuple. * _PyCFunction_FastCall(): fast call implementation for C functions * _PyFunction_FastCall(): fast call implementation for Python functions
* Merge 3.5 (fix raise)Victor Stinner2016-08-181-1/+1
|\
| * Fix SystemError in "raise" statementVictor Stinner2016-08-181-1/+1
| | | | | | | | | | | | | | | | Issue #27558: Fix a SystemError in the implementation of "raise" statement. In a brand new thread, raise a RuntimeError since there is no active exception to reraise. Patch written by Xiang Zhang.
* | Use Py_ssize_t in _PyEval_EvalCodeWithName()Victor Stinner2016-08-161-8/+10
| | | | | | | | | | | | | | | | Issue #27128, #18295: replace int type with Py_ssize_t for index variables used for positional arguments. It should help to avoid integer overflow and help to emit better machine code for "i++" (no trap needed for overflow). Make also the total_args variable constant.
* | Issue #27128: Cleanup _PyEval_EvalCodeWithName()Victor Stinner2016-08-161-11/+43
| | | | | | | | | | | | | | | | * Add comments * Add empty lines for readability * PEP 7 style for if block * Remove useless assert(globals != NULL); (globals is tested a few lines before)
* | Issue #22557: Now importing already imported modules is up to 2.5 times faster.Serhiy Storchaka2016-08-021-28/+51
| |
* | Issue #16191: Merge comment fixes from 3.5Martin Panter2016-07-181-6/+6
|\ \ | |/
| * Issue #16191: Fix up references to renamed variablesMartin Panter2016-07-181-6/+6
| |
* | Issue #27352: Correct the validation of the ImportFrom AST node and simplifySerhiy Storchaka2016-06-271-9/+1
| | | | | | | | the implementation of the IMPORT_NAME opcode.
* | Issue #27255: Added more predictions in ceval.c.Serhiy Storchaka2016-06-271-2/+12
| |
* | Issue #27095: Simplified MAKE_FUNCTION and removed MAKE_CLOSURE opcodes.Serhiy Storchaka2016-06-121-102/+22
| | | | | | | | Patch by Demur Rumed.
* | Issue #27140: Added BUILD_CONST_KEY_MAP opcode.Serhiy Storchaka2016-06-111-0/+33
| |
* | Merge 3.5 (issue #27243)Yury Selivanov2016-06-091-2/+38
|\ \ | |/
| * Issue #27243: Fix __aiter__ protocolYury Selivanov2016-06-091-2/+38
| |
* | Fixed the use of _Py_IS_ALIGNED (issue #27097).Serhiy Storchaka2016-05-251-1/+1
| |
* | Issue #27097: Python interpreter is now about 7% faster due to optimizedSerhiy Storchaka2016-05-251-29/+45
| | | | | | | | instruction decoding. Based on patch by Demur Rumed.
* | Issue #26647: Python interpreter now uses 16-bit wordcode instead of bytecode.Serhiy Storchaka2016-05-241-74/+57
| | | | | | | | Patch by Demur Rumed.
* | merge 3.5 (#26991)Benjamin Peterson2016-05-171-1/+3
|\ \ | |/
| * fix possible refleak in MAKE_FUNCTION (closes #26991)Benjamin Peterson2016-05-171-1/+3
| | | | | | | | Patch by Xiang Zhang.
* | Issue #18531: Single var-keyword argument of dict subtype was passedSerhiy Storchaka2016-05-081-1/+1
| | | | | | | | unscathed to the C-defined function. Now it is converted to exact dict.
* | Issue #26802: Optimized calling a function with *args only positional arguments.Serhiy Storchaka2016-04-191-0/+15
| | | | | | | | Patch by Joe Jevnik.
* | Issue #26200: Added Py_SETREF and replaced Py_XSETREF with Py_SETREFSerhiy Storchaka2016-04-101-2/+2
|\ \ | |/ | | | | in places where Py_DECREF was used.
| * Issue #26200: Added Py_SETREF and replaced Py_XSETREF with Py_SETREFSerhiy Storchaka2016-04-101-2/+2
| | | | | | | | in places where Py_DECREF was used.
* | Issue #22570: Renamed Py_SETREF to Py_XSETREF.Serhiy Storchaka2016-04-061-3/+3
|\ \ | |/
| * Issue #22570: Renamed Py_SETREF to Py_XSETREF.Serhiy Storchaka2016-04-061-3/+3
| |
* | Merge 3.5 (issue #25888)Yury Selivanov2016-03-021-0/+15
|\ \ | |/
| * coroutines: Error when awaiting on coroutine that's being awaitedYury Selivanov2016-03-021-0/+15
| | | | | | | | Issue #25888
* | Switch to more idiomatic C code.Eric V. Smith2016-02-051-3/+4
| |
* | Fix issue 26287: While handling FORMAT_VALUE opcode, the top of stack was ↵Eric V. Smith2016-02-051-2/+2
| | | | | | | | being corrupted if an error occurred in PyObject_Format().
* | Issue #4806: Merge * unpacking fix from 3.5Martin Panter2016-01-311-8/+10
|\ \ | |/
| * Issue #4806: Avoid masking original TypeError in call with * unpackingMartin Panter2016-01-311-8/+10
| | | | | | | | Based on patch by Hagen Fürstenau and Daniel Urban.
* | Issue #20440: Applied yet one patch for using Py_SETREF.Serhiy Storchaka2015-12-271-3/+1
|\ \ | |/ | | | | The patch is automatically generated, it replaces the code that uses Py_CLEAR.
| * Issue #20440: Applied yet one patch for using Py_SETREF.Serhiy Storchaka2015-12-271-3/+1
| | | | | | | | The patch is automatically generated, it replaces the code that uses Py_CLEAR.
* | Issue #25923: Added more const qualifiers to signatures of static and ↵Serhiy Storchaka2015-12-251-2/+2
| | | | | | | | private functions.
* | Issue #20440: Massive replacing unsafe attribute setting code with specialSerhiy Storchaka2015-12-241-4/+2
|\ \ | |/ | | | | macro Py_SETREF.