diff options
author | Petr Viktorin <encukou@gmail.com> | 2021-07-23 13:21:11 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-23 13:21:11 (GMT) |
commit | a4760cc32d9e5dac7be262e9736eb30502cd7be3 (patch) | |
tree | 6f791f7d6c0dacea9cdeccd68e0d405109b4bf03 /Include | |
parent | 7d28a6eb90e2e381e13ba21073c6868fdf6eb058 (diff) | |
download | cpython-a4760cc32d9e5dac7be262e9736eb30502cd7be3.zip cpython-a4760cc32d9e5dac7be262e9736eb30502cd7be3.tar.gz cpython-a4760cc32d9e5dac7be262e9736eb30502cd7be3.tar.bz2 |
bpo-42747: Remove Py_TPFLAGS_HAVE_AM_SEND and make Py_TPFLAGS_HAVE_VERSION_TAG no-op (GH-27260)
* Remove code that checks Py_TPFLAGS_HAVE_VERSION_TAG
The field is always present in the type struct, as explained
in the added comment.
* Remove Py_TPFLAGS_HAVE_AM_SEND
The flag is not needed, and since it was added in 3.10 it can be removed now.
Diffstat (limited to 'Include')
-rw-r--r-- | Include/object.h | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/Include/object.h b/Include/object.h index 109f535..9e6a8f4 100644 --- a/Include/object.h +++ b/Include/object.h @@ -368,18 +368,12 @@ given type object has a specified feature. /* Objects behave like an unbound method */ #define Py_TPFLAGS_METHOD_DESCRIPTOR (1UL << 17) -/* Objects support type attribute cache */ -#define Py_TPFLAGS_HAVE_VERSION_TAG (1UL << 18) +/* Object has up-to-date type attribute cache */ #define Py_TPFLAGS_VALID_VERSION_TAG (1UL << 19) /* Type is abstract and cannot be instantiated */ #define Py_TPFLAGS_IS_ABSTRACT (1UL << 20) -#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 - // This undocumented flag gives certain built-ins their unique pattern-matching // behavior, which allows a single positional subpattern to match against the // subject itself (rather than a mapped attribute on it): @@ -397,19 +391,23 @@ given type object has a specified feature. #define Py_TPFLAGS_DEFAULT ( \ Py_TPFLAGS_HAVE_STACKLESS_EXTENSION | \ - Py_TPFLAGS_HAVE_VERSION_TAG | \ 0) -/* NOTE: The following flags reuse lower bits (removed as part of the +/* NOTE: Some of the following flags reuse lower bits (removed as part of the * Python 3.0 transition). */ -/* The following flag is kept for compatibility. Starting with 3.8, - * binary compatibility of C extensions across feature releases of - * Python is not supported anymore, except when using the stable ABI. +/* The following flags are kept for compatibility; in previous + * versions they indicated presence of newer tp_* fields on the + * type struct. + * Starting with 3.8, binary compatibility of C extensions across + * feature releases of Python is not supported anymore (except when + * using the stable ABI, in which all classes are created dynamically, + * using the interpreter's memory layout.) + * Note that older extensions using the stable ABI set these flags, + * so the bits must not be repurposed. */ - -/* Type structure has tp_finalize member (3.4) */ #define Py_TPFLAGS_HAVE_FINALIZE (1UL << 0) +#define Py_TPFLAGS_HAVE_VERSION_TAG (1UL << 18) /* |