<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/cpython-git.git/Python/ceval.c, branch misc-acks-comment</title>
<subtitle>github.com: python/cpython.git
</subtitle>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/cpython-git.git/'/>
<entry>
<title>Produce cleaner bytecode for 'with' and 'async with' by generating separate code for normal and exceptional paths. (#6641)</title>
<updated>2019-11-21T09:11:43+00:00</updated>
<author>
<name>Mark Shannon</name>
<email>mark@hotpy.org</email>
</author>
<published>2019-11-21T09:11:43+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/cpython-git.git/commit/?id=fee552669f21ca294f57fe0df826945edc779090'/>
<id>fee552669f21ca294f57fe0df826945edc779090</id>
<content type='text'>
Remove BEGIN_FINALLY, END_FINALLY, CALL_FINALLY and POP_FINALLY bytecodes. Implement finally blocks by code duplication.
Reimplement frame.lineno setter using line numbers rather than bytecode offsets.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove BEGIN_FINALLY, END_FINALLY, CALL_FINALLY and POP_FINALLY bytecodes. Implement finally blocks by code duplication.
Reimplement frame.lineno setter using line numbers rather than bytecode offsets.</pre>
</div>
</content>
</entry>
<entry>
<title>bpo-36710: Add PyInterpreterState.runtime field (GH-17270)</title>
<updated>2019-11-20T01:27:56+00:00</updated>
<author>
<name>Victor Stinner</name>
<email>vstinner@python.org</email>
</author>
<published>2019-11-20T01:27:56+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/cpython-git.git/commit/?id=01b1cc12e7c6a3d6a3d27ba7c731687d57aae92a'/>
<id>01b1cc12e7c6a3d6a3d27ba7c731687d57aae92a</id>
<content type='text'>
Add PyInterpreterState.runtime field: reference to the _PyRuntime
global variable. This field exists to not have to pass runtime in
addition to tstate to a function.  Get runtime from tstate:
tstate-&gt;interp-&gt;runtime.

Remove "_PyRuntimeState *runtime" parameter from functions already
taking a "PyThreadState *tstate" parameter.

_PyGC_Init() first parameter becomes "PyThreadState *tstate".</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add PyInterpreterState.runtime field: reference to the _PyRuntime
global variable. This field exists to not have to pass runtime in
addition to tstate to a function.  Get runtime from tstate:
tstate-&gt;interp-&gt;runtime.

Remove "_PyRuntimeState *runtime" parameter from functions already
taking a "PyThreadState *tstate" parameter.

_PyGC_Init() first parameter becomes "PyThreadState *tstate".</pre>
</div>
</content>
</entry>
<entry>
<title>bpo-38644: Add _PyEval_EvalCode() (GH-17183)</title>
<updated>2019-11-16T00:03:22+00:00</updated>
<author>
<name>Victor Stinner</name>
<email>vstinner@python.org</email>
</author>
<published>2019-11-16T00:03:22+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/cpython-git.git/commit/?id=b5e170f127b57d5b0a4fb58f316acd6191509dce'/>
<id>b5e170f127b57d5b0a4fb58f316acd6191509dce</id>
<content type='text'>
_PyFunction_Vectorcall() now pass tstate to function calls.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
_PyFunction_Vectorcall() now pass tstate to function calls.</pre>
</div>
</content>
</entry>
<entry>
<title>bpo-38644: Add _PyObject_Call() (GH-17089)</title>
<updated>2019-11-14T12:36:21+00:00</updated>
<author>
<name>Victor Stinner</name>
<email>vstinner@python.org</email>
</author>
<published>2019-11-14T12:36:21+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/cpython-git.git/commit/?id=4d231bcc77ac8ce7d11bda0804130dcdd678f710'/>
<id>4d231bcc77ac8ce7d11bda0804130dcdd678f710</id>
<content type='text'>
* Add pycore_call.h internal header file.
* Add _PyObject_Call(): PyObject_Call() with tstate
* Add _PyObject_CallNoArgTstate(): _PyObject_CallNoArg() with tstate
* Add _PyObject_FastCallDictTstate(): _PyObject_FastCallDict()
  with tstate
* _PyObject_Call_Prepend() now takes tstate
* Replace _PyObject_FastCall() calls
  with _PyObject_VectorcallTstate() calls</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Add pycore_call.h internal header file.
* Add _PyObject_Call(): PyObject_Call() with tstate
* Add _PyObject_CallNoArgTstate(): _PyObject_CallNoArg() with tstate
* Add _PyObject_FastCallDictTstate(): _PyObject_FastCallDict()
  with tstate
* _PyObject_Call_Prepend() now takes tstate
* Replace _PyObject_FastCall() calls
  with _PyObject_VectorcallTstate() calls</pre>
</div>
</content>
</entry>
<entry>
<title>bpo-38644: Add _PyEval_EvalFrame() with tstate (GH-17131)</title>
<updated>2019-11-14T11:20:46+00:00</updated>
<author>
<name>Victor Stinner</name>
<email>vstinner@python.org</email>
</author>
<published>2019-11-14T11:20:46+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/cpython-git.git/commit/?id=b9e681261cd5ce6db0a79461c58d7cc52cfa4902'/>
<id>b9e681261cd5ce6db0a79461c58d7cc52cfa4902</id>
<content type='text'>
Add _PyEval_EvalFrame() static inline function to get eval_frame from
tstate-&gt;interp.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add _PyEval_EvalFrame() static inline function to get eval_frame from
tstate-&gt;interp.</pre>
</div>
</content>
</entry>
<entry>
<title>bpo-37645: add new function _PyObject_FunctionStr() (GH-14890)</title>
<updated>2019-11-05T15:48:04+00:00</updated>
<author>
<name>Jeroen Demeyer</name>
<email>jeroen.k.demeyer@gmail.com</email>
</author>
<published>2019-11-05T15:48:04+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/cpython-git.git/commit/?id=bf17d41826a8bb4bc1e34ba6345da98aac779e41'/>
<id>bf17d41826a8bb4bc1e34ba6345da98aac779e41</id>
<content type='text'>
Additional note: the `method_check_args` function in `Objects/descrobject.c` is written in such a way that it applies to all kinds of descriptors. In particular, a future re-implementation of `wrapper_descriptor` could use that code.

CC @vstinner @encukou 


https://bugs.python.org/issue37645



Automerge-Triggered-By: @encukou</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Additional note: the `method_check_args` function in `Objects/descrobject.c` is written in such a way that it applies to all kinds of descriptors. In particular, a future re-implementation of `wrapper_descriptor` could use that code.

CC @vstinner @encukou 


https://bugs.python.org/issue37645



Automerge-Triggered-By: @encukou</pre>
</div>
</content>
</entry>
<entry>
<title>bpo-38644: Pass tstate to _Py_CheckFunctionResult() (GH-17050)</title>
<updated>2019-11-05T00:22:12+00:00</updated>
<author>
<name>Victor Stinner</name>
<email>vstinner@python.org</email>
</author>
<published>2019-11-05T00:22:12+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/cpython-git.git/commit/?id=17269090940aa20f6079a6b9f27ae319f8cdae14'/>
<id>17269090940aa20f6079a6b9f27ae319f8cdae14</id>
<content type='text'>
* Add tstate parameter to _Py_CheckFunctionResult()
* Add _PyErr_FormatFromCauseTstate()
* Replace PyErr_XXX(...) with _PyErr_XXX(state, ...)</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Add tstate parameter to _Py_CheckFunctionResult()
* Add _PyErr_FormatFromCauseTstate()
* Replace PyErr_XXX(...) with _PyErr_XXX(state, ...)</pre>
</div>
</content>
</entry>
<entry>
<title>bpo-38644: Pass tstate to Py_EnterRecursiveCall() (GH-16997)</title>
<updated>2019-11-04T23:51:22+00:00</updated>
<author>
<name>Victor Stinner</name>
<email>vstinner@python.org</email>
</author>
<published>2019-11-04T23:51:22+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/cpython-git.git/commit/?id=be434dc0380d9f5c7c800de9943cc46d55fd9491'/>
<id>be434dc0380d9f5c7c800de9943cc46d55fd9491</id>
<content type='text'>
* Add _Py_EnterRecursiveCall() and _Py_LeaveRecursiveCall() which
  require a tstate argument.
* Pass tstate to _Py_MakeRecCheck() and  _Py_CheckRecursiveCall().
* Convert Py_EnterRecursiveCall() and Py_LeaveRecursiveCall() macros
  to static inline functions.

_PyThreadState_GET() is the most efficient way to get the tstate, and
so using it with _Py_EnterRecursiveCall() and
_Py_LeaveRecursiveCall() should be a little bit more efficient than
using Py_EnterRecursiveCall() and Py_LeaveRecursiveCall() which use
the "slower" PyThreadState_GET().</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Add _Py_EnterRecursiveCall() and _Py_LeaveRecursiveCall() which
  require a tstate argument.
* Pass tstate to _Py_MakeRecCheck() and  _Py_CheckRecursiveCall().
* Convert Py_EnterRecursiveCall() and Py_LeaveRecursiveCall() macros
  to static inline functions.

_PyThreadState_GET() is the most efficient way to get the tstate, and
so using it with _Py_EnterRecursiveCall() and
_Py_LeaveRecursiveCall() should be a little bit more efficient than
using Py_EnterRecursiveCall() and Py_LeaveRecursiveCall() which use
the "slower" PyThreadState_GET().</pre>
</div>
</content>
</entry>
<entry>
<title>bpo-38644: Add Py_EnterRecursiveCall() to the limited API (GH-17046)</title>
<updated>2019-11-04T18:48:34+00:00</updated>
<author>
<name>Victor Stinner</name>
<email>vstinner@python.org</email>
</author>
<published>2019-11-04T18:48:34+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/cpython-git.git/commit/?id=f4b1e3d7c64985f5d5b00f6cc9a1c146bbbfd613'/>
<id>f4b1e3d7c64985f5d5b00f6cc9a1c146bbbfd613</id>
<content type='text'>
Provide Py_EnterRecursiveCall() and Py_LeaveRecursiveCall() as
regular functions for the limited API. Previously, there were defined
as macros, but these macros didn't work with the limited API which
cannot access PyThreadState.recursion_depth field.

Remove _Py_CheckRecursionLimit from the stable ABI.

Add Include/cpython/ceval.h header file.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Provide Py_EnterRecursiveCall() and Py_LeaveRecursiveCall() as
regular functions for the limited API. Previously, there were defined
as macros, but these macros didn't work with the limited API which
cannot access PyThreadState.recursion_depth field.

Remove _Py_CheckRecursionLimit from the stable ABI.

Add Include/cpython/ceval.h header file.</pre>
</div>
</content>
</entry>
<entry>
<title>bpo-38310: Predict BUILD_MAP_UNPACK_WITH_CALL -&gt; CALL_FUNCTION_EX. (GH-16467)</title>
<updated>2019-09-29T00:12:49+00:00</updated>
<author>
<name>Brandt Bucher</name>
<email>brandtbucher@gmail.com</email>
</author>
<published>2019-09-29T00:12:49+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/cpython-git.git/commit/?id=f185a73249189bc3b75b4dc26e9ec2990a587b17'/>
<id>f185a73249189bc3b75b4dc26e9ec2990a587b17</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
