Hi,
About this very specific ABI issue, one long term solution would be to
exclude the PyThreadState structure from the C API, to not rely on it
the ABI level.
I started to add getter functions in Python 3.9:
PyThreadState_GetInterpreter(), PyThreadState_GetFrame() and
PyThreadState_GetID(). I'm working on updating C extensions to use
these getter functions, rather than accessing directly PyThreadState
members. I wrote a new pythoncapi_compat.h header file (in an exteral
project, pythoncapi_compat) to provide getter functions to Python
2.7-3.8. Cython gives me most of the work, since it gets and sets many
PyThreadState members.
You can follow the progress at: https://bugs.python.org/issue39947
Victor
On Sat, Apr 3, 2021 at 9:45 PM Łukasz Langa
The memory layout of PyThreadState was unintentionally changed in the recent 3.9.3 bugfix release. This leads to crashes on 32-bit systems when importing binary extensions compiled for Python 3.9.0 - 3.9.2. This is a regression.
We will be releasing a hotfix 3.9.4 around 24 hours from now to address this issue and restore ABI compatibility with C extensions built for Python 3.9.0 - 3.9.2.
Details: https://bugs.python.org/issue43710
- Ł _______________________________________________ python-committers mailing list -- python-committers@python.org To unsubscribe send an email to python-committers-leave@python.org https://mail.python.org/mailman3/lists/python-committers.python.org/ Message archived at https://mail.python.org/archives/list/python-committers@python.org/message/O... Code of Conduct: https://www.python.org/psf/codeofconduct/
-- Night gathers, and now my watch begins. It shall not end until my death.