Message328923
My changes move Py_BUILD_CORE to Include/internal/. I'm not sure of the effect on the backward compatibility.
Since Python 3.7, many "Py_BUILD_CORE" functions rely on Include/internal/, like PyThreadState_GET() which uses _PyRuntime.gilstate.tstate_current.
On my Fedora 28, the python3-devel package doesn't proide Include/internal/ headers, only Include/*.h in /usr/include/python3.7m/. It seems like Include/internal/ is not usable by 3rd party modules on Fedora at least.
I understand that even if a 3rd party C extension used the Py_BUILD_CORE API, Python 3.7 already broke these extensions.
I don't want C extensions to use Py_BUILD_CORE: Py_BUILD_CORE API is really designed to only be used inside Python. If this API is used outside Python, we cannot modify the API anymore since it would break extensions. But I want to make sure that we can break this API for different reasons.
In Python 3.7, pyatomic.h is included by Python.h. In Python 3.7.0, pyatomic.h content wasn't surrounded by Py_BUILD_CORE and this header file caused multiple compilation issues: see bpo-23644 and bpo-25150. The content is now restricted to Py_BUILD_CORE since Python 3.7.1. It allows us to more easily change the implementation. |
|
Date |
User |
Action |
Args |
2018-10-30 14:31:17 | vstinner | set | recipients:
+ vstinner |
2018-10-30 14:31:17 | vstinner | set | messageid: <1540909877.13.0.788709270274.issue35081@psf.upfronthosting.co.za> |
2018-10-30 14:31:17 | vstinner | link | issue35081 messages |
2018-10-30 14:31:16 | vstinner | create | |
|