<feed xmlns='http://www.w3.org/2005/Atom'>
<title>cpython.git/Python/context.c, branch v3.12.0b2</title>
<subtitle>https://github.com/python/cpython.git</subtitle>
<link rel='alternate' type='text/html' href='http://service.techsat.com/oss-git/cpython.git/'/>
<entry>
<title>gh-94673: Hide Objects in PyTypeObject Behind Accessors (gh-104074)</title>
<updated>2023-05-02T02:34:43Z</updated>
<author>
<name>Eric Snow</name>
<email>ericsnowcurrently@gmail.com</email>
</author>
<published>2023-05-02T02:34:43Z</published>
<link rel='alternate' type='text/html' href='http://service.techsat.com/oss-git/cpython.git/commit/?id=f73abf8e03fd370c86fbb2a249fe1e065f7d84b4'/>
<id>f73abf8e03fd370c86fbb2a249fe1e065f7d84b4</id>
<content type='text'>
This makes it much cleaner to move more PyTypeObject fields to PyInterpreterState.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This makes it much cleaner to move more PyTypeObject fields to PyInterpreterState.</pre>
</div>
</content>
</entry>
<entry>
<title>gh-81057: Move contextvars-related Globals to _PyRuntimeState (gh-99400)</title>
<updated>2022-11-16T16:54:28Z</updated>
<author>
<name>Eric Snow</name>
<email>ericsnowcurrently@gmail.com</email>
</author>
<published>2022-11-16T16:54:28Z</published>
<link rel='alternate' type='text/html' href='http://service.techsat.com/oss-git/cpython.git/commit/?id=01fa907aa8e7c475a76b407f35c635b26c9f47f8'/>
<id>01fa907aa8e7c475a76b407f35c635b26c9f47f8</id>
<content type='text'>
This is part of the effort to consolidate global variables, to make them easier to manage (and make it easier to later move some of them to PyInterpreterState).

https://github.com/python/cpython/issues/81057</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is part of the effort to consolidate global variables, to make them easier to manage (and make it easier to later move some of them to PyInterpreterState).

https://github.com/python/cpython/issues/81057</pre>
</div>
</content>
</entry>
<entry>
<title>gh-99300: Use Py_NewRef() in Python/ directory (#99317)</title>
<updated>2022-11-10T10:23:36Z</updated>
<author>
<name>Victor Stinner</name>
<email>vstinner@python.org</email>
</author>
<published>2022-11-10T10:23:36Z</published>
<link rel='alternate' type='text/html' href='http://service.techsat.com/oss-git/cpython.git/commit/?id=231d83b72435d61e929d6d62f2be7305e7b5b62b'/>
<id>231d83b72435d61e929d6d62f2be7305e7b5b62b</id>
<content type='text'>
Replace Py_INCREF() and Py_XINCREF() with Py_NewRef() and
Py_XNewRef() in C files of the Python/ directory.

Update Parser/asdl_c.py to regenerate Python/Python-ast.c.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Replace Py_INCREF() and Py_XINCREF() with Py_NewRef() and
Py_XNewRef() in C files of the Python/ directory.

Update Parser/asdl_c.py to regenerate Python/Python-ast.c.</pre>
</div>
</content>
</entry>
<entry>
<title>Add more stats for freelist use and allocations. (GH-92211)</title>
<updated>2022-05-03T22:40:24Z</updated>
<author>
<name>Mark Shannon</name>
<email>mark@hotpy.org</email>
</author>
<published>2022-05-03T22:40:24Z</published>
<link rel='alternate' type='text/html' href='http://service.techsat.com/oss-git/cpython.git/commit/?id=836b17c9c3ea313e400e58a75f52b63f96e498bb'/>
<id>836b17c9c3ea313e400e58a75f52b63f96e498bb</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>bpo-47164: Add _PyCFunction_CAST() macro (GH-32192)</title>
<updated>2022-03-31T08:02:34Z</updated>
<author>
<name>Victor Stinner</name>
<email>vstinner@python.org</email>
</author>
<published>2022-03-31T08:02:34Z</published>
<link rel='alternate' type='text/html' href='http://service.techsat.com/oss-git/cpython.git/commit/?id=f0bc69485677ae8973685866ada0982976d3878f'/>
<id>f0bc69485677ae8973685866ada0982976d3878f</id>
<content type='text'>
Use the macro in C files of the Python/ directory.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Use the macro in C files of the Python/ directory.</pre>
</div>
</content>
</entry>
<entry>
<title>bpo-46417: Clear more static types (GH-30796)</title>
<updated>2022-01-22T17:55:48Z</updated>
<author>
<name>Victor Stinner</name>
<email>vstinner@python.org</email>
</author>
<published>2022-01-22T17:55:48Z</published>
<link rel='alternate' type='text/html' href='http://service.techsat.com/oss-git/cpython.git/commit/?id=500c146387b01ea797b52e6a54caf228384e184c'/>
<id>500c146387b01ea797b52e6a54caf228384e184c</id>
<content type='text'>
* Move PyContext static types into object.c static_types list.
* Rename PyContextTokenMissing_Type to _PyContextTokenMissing_Type
  and declare it in pycore_context.h.
* _PyHamtItems types are no long exported: replace PyAPI_DATA() with
  extern.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Move PyContext static types into object.c static_types list.
* Rename PyContextTokenMissing_Type to _PyContextTokenMissing_Type
  and declare it in pycore_context.h.
* _PyHamtItems types are no long exported: replace PyAPI_DATA() with
  extern.</pre>
</div>
</content>
</entry>
<entry>
<title>bpo-46008: Make runtime-global object/type lifecycle functions and state consistent. (gh-29998)</title>
<updated>2021-12-09T19:59:26Z</updated>
<author>
<name>Eric Snow</name>
<email>ericsnowcurrently@gmail.com</email>
</author>
<published>2021-12-09T19:59:26Z</published>
<link rel='alternate' type='text/html' href='http://service.techsat.com/oss-git/cpython.git/commit/?id=c8749b578324ad4089c8d014d9136bc42b065343'/>
<id>c8749b578324ad4089c8d014d9136bc42b065343</id>
<content type='text'>
This change is strictly renames and moving code around.  It helps in the following ways:

* ensures type-related init functions focus strictly on one of the three aspects (state, objects, types)
* passes in PyInterpreterState * to all those functions, simplifying work on moving types/objects/state to the interpreter
* consistent naming conventions help make what's going on more clear
* keeping API related to a type in the corresponding header file makes it more obvious where to look for it

https://bugs.python.org/issue46008</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This change is strictly renames and moving code around.  It helps in the following ways:

* ensures type-related init functions focus strictly on one of the three aspects (state, objects, types)
* passes in PyInterpreterState * to all those functions, simplifying work on moving types/objects/state to the interpreter
* consistent naming conventions help make what's going on more clear
* keeping API related to a type in the corresponding header file makes it more obvious where to look for it

https://bugs.python.org/issue46008</pre>
</div>
</content>
</entry>
<entry>
<title>bpo-45522: Allow to disable freelists on build time (GH-29056)</title>
<updated>2021-10-21T13:12:20Z</updated>
<author>
<name>Christian Heimes</name>
<email>christian@python.org</email>
</author>
<published>2021-10-21T13:12:20Z</published>
<link rel='alternate' type='text/html' href='http://service.techsat.com/oss-git/cpython.git/commit/?id=9942f42a93ccda047fd3558c47b822e99afe10c0'/>
<id>9942f42a93ccda047fd3558c47b822e99afe10c0</id>
<content type='text'>
Freelists for object structs can now be disabled. A new ``configure``
option ``--without-freelists`` can be used to disable all freelists
except empty tuple singleton. Internal Py*_MAXFREELIST macros can now
be defined as 0 without causing compiler warnings and segfaults.

Signed-off-by: Christian Heimes &lt;christian@python.org&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Freelists for object structs can now be disabled. A new ``configure``
option ``--without-freelists`` can be used to disable all freelists
except empty tuple singleton. Internal Py*_MAXFREELIST macros can now
be defined as 0 without causing compiler warnings and segfaults.

Signed-off-by: Christian Heimes &lt;christian@python.org&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>bpo-45439: Move _PyObject_VectorcallTstate() to pycore_call.h (GH-28893)</title>
<updated>2021-10-14T19:53:04Z</updated>
<author>
<name>Victor Stinner</name>
<email>vstinner@python.org</email>
</author>
<published>2021-10-14T19:53:04Z</published>
<link rel='alternate' type='text/html' href='http://service.techsat.com/oss-git/cpython.git/commit/?id=3cc56c828d2d8f8659ea49447234bf0d2b87cd64'/>
<id>3cc56c828d2d8f8659ea49447234bf0d2b87cd64</id>
<content type='text'>
* Move _PyObject_VectorcallTstate() and _PyObject_FastCallTstate() to
  pycore_call.h (internal C API).
* Convert PyObject_CallOneArg(), PyObject_Vectorcall(),
  _PyObject_FastCall() and PyVectorcall_Function() static inline
  functions to regular functions.
* Add _PyVectorcall_FunctionInline() static inline function.
* PyObject_Vectorcall(), _PyObject_FastCall(), and
  PyObject_CallOneArg() now call _PyThreadState_GET() rather
  than PyThreadState_Get().</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Move _PyObject_VectorcallTstate() and _PyObject_FastCallTstate() to
  pycore_call.h (internal C API).
* Convert PyObject_CallOneArg(), PyObject_Vectorcall(),
  _PyObject_FastCall() and PyVectorcall_Function() static inline
  functions to regular functions.
* Add _PyVectorcall_FunctionInline() static inline function.
* PyObject_Vectorcall(), _PyObject_FastCall(), and
  PyObject_CallOneArg() now call _PyThreadState_GET() rather
  than PyThreadState_Get().</pre>
</div>
</content>
</entry>
<entry>
<title>pycore_pystate.h no longer redefines PyThreadState_GET() (GH-28921)</title>
<updated>2021-10-13T12:09:13Z</updated>
<author>
<name>Victor Stinner</name>
<email>vstinner@python.org</email>
</author>
<published>2021-10-13T12:09:13Z</published>
<link rel='alternate' type='text/html' href='http://service.techsat.com/oss-git/cpython.git/commit/?id=7cdc2a0f4b785327ad9d55312409a06e554df3d5'/>
<id>7cdc2a0f4b785327ad9d55312409a06e554df3d5</id>
<content type='text'>
Redefining the PyThreadState_GET() macro in pycore_pystate.h is
useless since it doesn't affect files not including it. Either use
_PyThreadState_GET() directly, or don't use pycore_pystate.h internal
C API. For example, the _testcapi extension don't use the internal C
API, but use the public PyThreadState_Get() function instead.

Replace PyThreadState_Get() with _PyThreadState_GET(). The
_PyThreadState_GET() macro is more efficient than PyThreadState_Get()
and PyThreadState_GET() function calls which call fail with a fatal
Python error.

posixmodule.c and _ctypes extension now include &lt;windows.h&gt; before
pycore header files (like pycore_call.h).

_PyTraceback_Add() now uses _PyErr_Fetch()/_PyErr_Restore() instead
of PyErr_Fetch()/PyErr_Restore().

The _decimal and _xxsubinterpreters extensions are now built with the
Py_BUILD_CORE_MODULE macro defined to get access to the internal C
API.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Redefining the PyThreadState_GET() macro in pycore_pystate.h is
useless since it doesn't affect files not including it. Either use
_PyThreadState_GET() directly, or don't use pycore_pystate.h internal
C API. For example, the _testcapi extension don't use the internal C
API, but use the public PyThreadState_Get() function instead.

Replace PyThreadState_Get() with _PyThreadState_GET(). The
_PyThreadState_GET() macro is more efficient than PyThreadState_Get()
and PyThreadState_GET() function calls which call fail with a fatal
Python error.

posixmodule.c and _ctypes extension now include &lt;windows.h&gt; before
pycore header files (like pycore_call.h).

_PyTraceback_Add() now uses _PyErr_Fetch()/_PyErr_Restore() instead
of PyErr_Fetch()/PyErr_Restore().

The _decimal and _xxsubinterpreters extensions are now built with the
Py_BUILD_CORE_MODULE macro defined to get access to the internal C
API.</pre>
</div>
</content>
</entry>
</feed>
