summaryrefslogtreecommitdiffstats
path: root/Python/ceval.c
Commit message (Collapse)AuthorAgeFilesLines
* 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.
| * Issue #20440: Massive replacing unsafe attribute setting code with specialSerhiy Storchaka2015-12-241-4/+2
| | | | | | | | macro Py_SETREF.
* | Issue #25557: Refactor _PyDict_LoadGlobal()Victor Stinner2015-11-201-2/+9
| | | | | | | | | | Don't fallback to PyDict_GetItemWithError() if the hash is unknown: compute the hash instead. Add also comments to explain the optimization a little bit.
* | Issue #25556: Add assertions to PyObject_GetItem() to ensure that an exceptionVictor Stinner2015-11-051-2/+2
| | | | | | | | | | | | | | is raised when it returns NULL. Simplify also ceval.c: rely on the fact that PyObject_GetItem() raised an exception when it returns NULL.
* | Merge 3.5Victor Stinner2015-11-051-0/+4
|\ \ | |/
| * Issue #25556: Fix LOAD_GLOBAL bytecode when globals type is not dict and theVictor Stinner2015-11-051-0/+4
| | | | | | | | | | | | requested name doesn't exist in globals: clear the KeyError exception before calling PyObject_GetItem(). Fail also if the raised exception is not a KeyError.
* | Issue 25483: Add an opcode to make f-string formatting more robust.Eric V. Smith2015-11-031-0/+57
|/
* Merge typo fixes from 3.4 into 3.5Martin Panter2015-10-071-1/+1
|\
| * Various minor typos in documentation and commentsMartin Panter2015-10-071-2/+2
| |
* | Issue #24492: make sure that ``from ... import ...` raises anBrett Cannon2015-08-121-7/+12
| | | | | | | | | | | | ImportError if __name__ is not defined on a package. Thanks to Armin Rigo for the bug report and diagnosing the cause.
* | set items in dict displays from left to right (closes #24569)Benjamin Peterson2015-07-051-6/+9
| |
* | Issue #19235: Add new RecursionError exception. Patch by Georg Brandl.Yury Selivanov2015-07-031-1/+1
| |
* | Issue #24400: Introduce a distinct type for 'async def' coroutines.Yury Selivanov2015-06-221-40/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary of changes: 1. Coroutines now have a distinct, separate from generators type at the C level: PyGen_Type, and a new typedef PyCoroObject. PyCoroObject shares the initial segment of struct layout with PyGenObject, making it possible to reuse existing generators machinery. The new type is exposed as 'types.CoroutineType'. As a consequence of having a new type, CO_GENERATOR flag is no longer applied to coroutines. 2. Having a separate type for coroutines made it possible to add an __await__ method to the type. Although it is not used by the interpreter (see details on that below), it makes coroutines naturally (without using __instancecheck__) conform to collections.abc.Coroutine and collections.abc.Awaitable ABCs. [The __instancecheck__ is still used for generator-based coroutines, as we don't want to add __await__ for generators.] 3. Add new opcode: GET_YIELD_FROM_ITER. The opcode is needed to allow passing native coroutines to the YIELD_FROM opcode. Before this change, 'yield from o' expression was compiled to: (o) GET_ITER LOAD_CONST YIELD_FROM Now, we use GET_YIELD_FROM_ITER instead of GET_ITER. The reason for adding a new opcode is that GET_ITER is used in some contexts (such as 'for .. in' loops) where passing a coroutine object is invalid. 4. Add two new introspection functions to the inspec module: getcoroutinestate(c) and getcoroutinelocals(c). 5. inspect.iscoroutine(o) is updated to test if 'o' is a native coroutine object. Before this commit it used abc.Coroutine, and it was requested to update inspect.isgenerator(o) to use abc.Generator; it was decided, however, that inspect functions should really be tailored for checking for native types. 6. sys.set_coroutine_wrapper(w) API is updated to work with only native coroutines. Since types.coroutine decorator supports any type of callables now, it would be confusing that it does not work for all types of coroutines. 7. Exceptions logic in generators C implementation was updated to raise clearer messages for coroutines: Before: TypeError("generator raised StopIteration") After: TypeError("coroutine raised StopIteration")
* | Added the const qualifier for char* argument of Py_EnterRecursiveCall().Serhiy Storchaka2015-06-211-1/+1
|\ \ | |/
| * Added the const qualifier for char* argument of Py_EnterRecursiveCall().Serhiy Storchaka2015-06-211-1/+1
| |
* | Issue 24374: Plug refleak in set_coroutine_wrapperYury Selivanov2015-06-041-31/+19
| |
* | Issue 24342: No need to use PyAPI_FUNC for _PyEval_ApplyCoroutineWrapperYury Selivanov2015-06-031-28/+30
| |
* | Issue 24342: Let wrapper set by sys.set_coroutine_wrapper fail gracefullyYury Selivanov2015-06-021-9/+30
| |
* | Issue 24017: Make PyEval_(Set|Get)CoroutineWrapper privateYury Selivanov2015-06-011-3/+3
| |
* | remove STORE_MAP, since it's unusedBenjamin Peterson2015-05-281-15/+0
| |
* | in dict displays, evaluate the key before the value (closes #11205)Benjamin Peterson2015-05-281-2/+2
| | | | | | | | Patch partially by Steve Dougherty.
* | Issue 24017: Drop getawaitablefunc and friends in favor of unaryfunc.Yury Selivanov2015-05-281-2/+2
| |
* | Issue 24017: fix for "async with" refcountingNick Coghlan2015-05-131-0/+2
| | | | | | | | | | | | * adds missing INCREF in WITH_CLEANUP_START * adds missing DECREF in WITH_CLEANUP_FINISH * adds several new tests Yury created while investigating this
* | Fix warnings for PyEval_GetCoroutineWrapperYury Selivanov2015-05-121-1/+1
| |
* | PEP 0492 -- Coroutines with async and await syntax. Issue #24017.Yury Selivanov2015-05-121-8/+223
| |
* | PEP 448: additional unpacking generalizations (closes #2292)Benjamin Peterson2015-05-061-5/+159
| | | | | | | | Patch by Neil Girdhar.
* | #23949: Improve tuple unpacking error messages.R David Murray2015-04-151-7/+17
| | | | | | | | Patch by Arnon Yaari.
* | Issue #23571: _Py_CheckFunctionResult() now gives the name of the functionVictor Stinner2015-03-211-3/+3
| | | | | | | | | | | | | | | | | | | | | | which returned an invalid result (result+error or no result without error) in the exception message. Add also unit test to check that the exception contains the name of the function. Special case: the final _PyEval_EvalFrameEx() check doesn't mention the function since it didn't execute a single function but a whole frame.
* | Issue #23571: Restore removed assert(!PyErr_Occurred()); inVictor Stinner2015-03-161-0/+7
| | | | | | | | | | | | | | PyEval_CallObjectWithKeywords() Sorry Serhiy, I missed your explanation because the review email was moved to my Spam folder :-(
* | Issue #23571: PyObject_Call(), PyCFunction_Call() and call_function() nowVictor Stinner2015-03-061-19/+11
| | | | | | | | | | | | | | | | | | | | | | raise a SystemError if a function returns a result and raises an exception. The SystemError is chained to the previous exception. Refactor also PyObject_Call() and PyCFunction_Call() to make them more readable. Remove some checks which became useless (duplicate checks). Change reviewed by Serhiy Storchaka.
* | Issue #22883: Got rid of outdated references to PyInt and PyString in comments.Serhiy Storchaka2015-02-171-1/+1
| |
* | Merge 3.4 (generator)Victor Stinner2015-01-311-3/+4
|\ \ | |/
| * Issue #23353: Fix the exception handling of generators in PyEval_EvalFrameEx().Victor Stinner2015-01-311-3/+4
| | | | | | | | | | | | | | At entry, save or swap the exception state even if PyEval_EvalFrameEx() is called with throwflag=0. At exit, the exception state is now always restored or swapped, not only if why is WHY_YIELD or WHY_RETURN. Patch co-written with Antoine Pitrou.
* | Merge 3.4 (ceval.c)Victor Stinner2014-12-121-3/+5
|\ \ | |/
| * Issue #18028: Fix aliasing issue in READ_TIMESTAMP() of ceval.c on x86_64,Victor Stinner2014-12-121-3/+5
| | | | | | | | when Python is configure with --with-tsc. Patch written by Christian Heimes.
* | Issue #17636: Circular imports involving relative imports are now supported.Antoine Pitrou2014-10-131-2/+20
| |
* | merge 3.4Benjamin Peterson2014-06-171-0/+7
|\ \ | |/