[New-bugs-announce] [issue42747] Remove Py_TPFLAGS_HAVE_VERSION_TAG flag?
STINNER Victor
report at bugs.python.org
Fri Dec 25 18:48:07 EST 2020
New submission from STINNER Victor <vstinner at python.org>:
Since the PyTypeObject structure is excluded from the limited C API and the stable ABI on purpose (PEP 384), I don't see the purpose of the Py_TPFLAGS_HAVE_VERSION_TAG flag.
Moreover, a new flag was added recently:
#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x030A0000
/* Type has am_send entry in tp_as_async slot */
#define Py_TPFLAGS_HAVE_AM_SEND (1UL << 21)
#endif
Should it be also removed?
For example, Py_TPFLAGS_HAVE_FINALIZE was deprecated in bpo-32388 by:
commit ada319bb6d0ebcc68d3e0ef2b4279ea061877ac8
Author: Antoine Pitrou <antoine at python.org>
Date: Wed May 29 22:12:38 2019 +0200
bpo-32388: Remove cross-version binary compatibility requirement in tp_flags (GH-4944)
It is now allowed to add new fields at the end of the PyTypeObject struct without having to allocate a dedicated compatibility flag i
n tp_flags.
This will reduce the risk of running out of bits in the 32-bit tp_flags value.
By the way, is it worth it to remove Py_TPFLAGS_HAVE_FINALIZE? Or is it going to break too many extension modules?
----------
components: C API
messages: 383782
nosy: petr.viktorin, pitrou, vstinner
priority: normal
severity: normal
status: open
title: Remove Py_TPFLAGS_HAVE_VERSION_TAG flag?
versions: Python 3.10
_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue42747>
_______________________________________
More information about the New-bugs-announce
mailing list