Stable ABI or not for PyTypeObject?

Hello, I have a simple question for which there doesn't seem to be a good answer: is the layout of PyTypeObject considered to be part of the stable ABI? Officially, the answer is certainly "no" (see PEP 384). However, unofficially the answer might be "yes". At least, the last time that an incompatible change was made to PyTypeObject (adding tp_finalize in Python 3.4, PEP 442), care was taken not to break the ABI by using the Py_TPFLAGS_HAVE_FINALIZE flag. There is some discussion about this on https://bugs.python.org/issue32388 The implementation of PEP 590 is going to make another ABI-breaking change. So should we add a new Py_TFLAGS_HAVE_... flag for that or not? Jeroen.

On Mon, 6 May 2019 15:55:03 +0200 Jeroen Demeyer <J.Demeyer@UGent.be> wrote:
Hello,
I have a simple question for which there doesn't seem to be a good answer: is the layout of PyTypeObject considered to be part of the stable ABI?
Officially, the answer is certainly "no" (see PEP 384).
However, unofficially the answer might be "yes". At least, the last time that an incompatible change was made to PyTypeObject (adding tp_finalize in Python 3.4, PEP 442), care was taken not to break the ABI by using the Py_TPFLAGS_HAVE_FINALIZE flag.
There is some discussion about this on https://bugs.python.org/issue32388
The discussion there was more or less conclusive. At the time it was too late to go into 3.7 and then I (and others) forgot about it. We should revive that PR in time for 3.8. Regards Antoine.

PyType_FromSpec() looks like a better approach for ABI compatibility. My notes on types and ABI: https://pythoncapi.readthedocs.io/type_object.html Victor Le lun. 6 mai 2019 à 09:57, Jeroen Demeyer <J.Demeyer@ugent.be> a écrit :
Hello,
I have a simple question for which there doesn't seem to be a good answer: is the layout of PyTypeObject considered to be part of the stable ABI?
Officially, the answer is certainly "no" (see PEP 384).
However, unofficially the answer might be "yes". At least, the last time that an incompatible change was made to PyTypeObject (adding tp_finalize in Python 3.4, PEP 442), care was taken not to break the ABI by using the Py_TPFLAGS_HAVE_FINALIZE flag.
There is some discussion about this on https://bugs.python.org/issue32388
The implementation of PEP 590 is going to make another ABI-breaking change. So should we add a new Py_TFLAGS_HAVE_... flag for that or not?
Jeroen. _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/vstinner%40redhat.com
-- Night gathers, and now my watch begins. It shall not end until my death.
participants (3)
-
Antoine Pitrou
-
Jeroen Demeyer
-
Victor Stinner