On Tue, 23 Jun 2020 16:34:28 +0200 Victor Stinner <vstin...@python.org> wrote: > Le mar. 23 juin 2020 à 15:56, Petr Viktorin <encu...@gmail.com> a écrit : > > > Adding or removing members of C structures is causing multiple backward > > > compatibility issues. > > > > > > Adding a new member breaks the stable ABI (PEP 384), especially for > > > types declared statically (e.g. ``static PyTypeObject MyType = > > > {...};``). > > > > PyTypeObject is explicitly not part of the stable ABI, see PEP 384: > > https://www.python.org/dev/peps/pep-0384/#structures > > I don't know why Py_TPFLAGS_HAVE_FINALIZE was added, but it wasn't for > > the PEP 384 stable ABI. > > Maybe Antoine Pitrou knows the rationale why Py_TPFLAGS_HAVE_FINALIZE > flag was added. Removing the flag was discussed at:
Mainly because some packagers (how many I don't know) had the habit of building a single extension DLL and distributing it for different Python versions on Windows. It was much easier to add the flag than to pollute the PEP 442 discussion with a sub-discussion about the robustness of such ABI stability claims (which officially didn't exist, but were still relied on by some users / packagers). Regards Antoine. _______________________________________________ Python-Dev mailing list -- python-dev@python.org To unsubscribe send an email to python-dev-le...@python.org https://mail.python.org/mailman3/lists/python-dev.python.org/ Message archived at https://mail.python.org/archives/list/python-dev@python.org/message/EJ5QPTZZDZVNQNEUHENPPNKIUERJ2V4J/ Code of Conduct: http://python.org/psf/codeofconduct/