aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--Include/cpython/tupleobject.h2
-rw-r--r--Include/internal/pycore_runtime_init.h2
-rw-r--r--Include/internal/pycore_tuple.h37
-rw-r--r--Lib/test/clinic.test.c124
-rw-r--r--Lib/test/test_clinic.py2
-rw-r--r--Lib/test/test_sys.py8
-rw-r--r--Misc/NEWS.d/next/C_API/2025-03-20-17-14-29.gh-issue-131525.n8Di6a.rst2
-rw-r--r--Modules/_ctypes/clinic/cfield.c.h4
-rw-r--r--Modules/_functoolsmodule.c4
-rw-r--r--Modules/_io/clinic/_iomodule.c.h6
-rw-r--r--Modules/_io/clinic/bufferedio.c.h8
-rw-r--r--Modules/_io/clinic/bytesio.c.h4
-rw-r--r--Modules/_io/clinic/fileio.c.h4
-rw-r--r--Modules/_io/clinic/stringio.c.h4
-rw-r--r--Modules/_io/clinic/textio.c.h10
-rw-r--r--Modules/_io/clinic/winconsoleio.c.h4
-rw-r--r--Modules/_multiprocessing/clinic/semaphore.c.h8
-rw-r--r--Modules/_sqlite/clinic/connection.c.h28
-rw-r--r--Modules/_sqlite/clinic/cursor.c.h4
-rw-r--r--Modules/_sqlite/clinic/module.c.h4
-rw-r--r--Modules/_sre/clinic/sre.c.h28
-rw-r--r--Modules/_ssl/clinic/cert.c.h4
-rw-r--r--Modules/_testcapi/clinic/exceptions.c.h4
-rw-r--r--Modules/cjkcodecs/clinic/multibytecodec.c.h10
-rw-r--r--Modules/clinic/_asynciomodule.c.h34
-rw-r--r--Modules/clinic/_bisectmodule.c.h10
-rw-r--r--Modules/clinic/_bz2module.c.h4
-rw-r--r--Modules/clinic/_codecsmodule.c.h6
-rw-r--r--Modules/clinic/_collectionsmodule.c.h4
-rw-r--r--Modules/clinic/_csv.c.h8
-rw-r--r--Modules/clinic/_cursesmodule.c.h4
-rw-r--r--Modules/clinic/_datetimemodule.c.h12
-rw-r--r--Modules/clinic/_elementtree.c.h18
-rw-r--r--Modules/clinic/_functoolsmodule.c.h6
-rw-r--r--Modules/clinic/_hashopenssl.c.h42
-rw-r--r--Modules/clinic/_lsprof.c.h6
-rw-r--r--Modules/clinic/_lzmamodule.c.h6
-rw-r--r--Modules/clinic/_opcode.c.h22
-rw-r--r--Modules/clinic/_pickle.c.h14
-rw-r--r--Modules/clinic/_queuemodule.c.h8
-rw-r--r--Modules/clinic/_ssl.c.h24
-rw-r--r--Modules/clinic/_struct.c.h8
-rw-r--r--Modules/clinic/_testclinic.c.h68
-rw-r--r--Modules/clinic/_testclinic_depr.c.h58
-rw-r--r--Modules/clinic/_testinternalcapi.c.h12
-rw-r--r--Modules/clinic/_testmultiphase.c.h4
-rw-r--r--Modules/clinic/_threadmodule.c.h4
-rw-r--r--Modules/clinic/_winapi.c.h36
-rw-r--r--Modules/clinic/_zoneinfo.c.h10
-rw-r--r--Modules/clinic/binascii.c.h16
-rw-r--r--Modules/clinic/blake2module.c.h6
-rw-r--r--Modules/clinic/cmathmodule.c.h4
-rw-r--r--Modules/clinic/gcmodule.c.h6
-rw-r--r--Modules/clinic/grpmodule.c.h6
-rw-r--r--Modules/clinic/itertoolsmodule.c.h18
-rw-r--r--Modules/clinic/mathmodule.c.h8
-rw-r--r--Modules/clinic/md5module.c.h4
-rw-r--r--Modules/clinic/overlapped.c.h4
-rw-r--r--Modules/clinic/posixmodule.c.h204
-rw-r--r--Modules/clinic/pyexpat.c.h4
-rw-r--r--Modules/clinic/selectmodule.c.h12
-rw-r--r--Modules/clinic/sha1module.c.h4
-rw-r--r--Modules/clinic/sha2module.c.h10
-rw-r--r--Modules/clinic/sha3module.c.h4
-rw-r--r--Modules/clinic/signalmodule.c.h4
-rw-r--r--Modules/clinic/socketmodule.c.h4
-rw-r--r--Modules/clinic/syslogmodule.c.h4
-rw-r--r--Modules/clinic/zlibmodule.c.h14
-rw-r--r--Modules/itertoolsmodule.c24
-rw-r--r--Objects/clinic/bytearrayobject.c.h16
-rw-r--r--Objects/clinic/bytesobject.c.h16
-rw-r--r--Objects/clinic/codeobject.c.h6
-rw-r--r--Objects/clinic/complexobject.c.h4
-rw-r--r--Objects/clinic/descrobject.c.h6
-rw-r--r--Objects/clinic/enumobject.c.h4
-rw-r--r--Objects/clinic/funcobject.c.h4
-rw-r--r--Objects/clinic/listobject.c.h4
-rw-r--r--Objects/clinic/longobject.c.h8
-rw-r--r--Objects/clinic/memoryobject.c.h12
-rw-r--r--Objects/clinic/moduleobject.c.h4
-rw-r--r--Objects/clinic/odictobject.c.h12
-rw-r--r--Objects/clinic/structseq.c.h4
-rw-r--r--Objects/clinic/typevarobject.c.h14
-rw-r--r--Objects/clinic/unicodeobject.c.h16
-rw-r--r--Objects/dictobject.c9
-rw-r--r--Objects/enumobject.c9
-rw-r--r--Objects/odictobject.c5
-rw-r--r--Objects/stringlib/clinic/transmogrify.h.h4
-rw-r--r--Objects/structseq.c1
-rw-r--r--Objects/tupleobject.c50
-rw-r--r--PC/clinic/_wmimodule.cpp.h4
-rw-r--r--PC/clinic/winreg.c.h10
-rw-r--r--Python/bltinmodule.c4
-rw-r--r--Python/clinic/Python-tokenize.c.h4
-rw-r--r--Python/clinic/_warnings.c.h6
-rw-r--r--Python/clinic/bltinmodule.c.h18
-rw-r--r--Python/clinic/import.c.h6
-rw-r--r--Python/clinic/instruction_sequence.c.h8
-rw-r--r--Python/clinic/marshal.c.h10
-rw-r--r--Python/clinic/sysmodule.c.h14
-rw-r--r--Python/clinic/traceback.c.h4
-rw-r--r--Tools/clinic/libclinic/parse_args.py2
102 files changed, 1218 insertions, 183 deletions
diff --git a/Include/cpython/tupleobject.h b/Include/cpython/tupleobject.h
index e530c8beda4..afb98ccbb81 100644
--- a/Include/cpython/tupleobject.h
+++ b/Include/cpython/tupleobject.h
@@ -4,6 +4,8 @@
typedef struct {
PyObject_VAR_HEAD
+ /* Cached hash. Initially set to -1. */
+ Py_hash_t ob_hash;
/* ob_item contains space for 'ob_size' elements.
Items must normally not be NULL, except during construction when
the tuple is not yet visible outside the function that builds it. */
diff --git a/Include/internal/pycore_runtime_init.h b/Include/internal/pycore_runtime_init.h
index 8f866fd3497..2b2e439681f 100644
--- a/Include/internal/pycore_runtime_init.h
+++ b/Include/internal/pycore_runtime_init.h
@@ -27,6 +27,7 @@ extern "C" {
#include "pycore_runtime_init_generated.h" // _Py_bytes_characters_INIT
#include "pycore_signal.h" // _signals_RUNTIME_INIT
#include "pycore_tracemalloc.h" // _tracemalloc_runtime_state_INIT
+#include "pycore_tuple.h" // _PyTuple_HASH_EMPTY
extern PyTypeObject _PyExc_MemoryError;
@@ -106,6 +107,7 @@ extern PyTypeObject _PyExc_MemoryError;
}, \
.tuple_empty = { \
.ob_base = _PyVarObject_HEAD_INIT(&PyTuple_Type, 0), \
+ .ob_hash = _PyTuple_HASH_EMPTY, \
}, \
.hamt_bitmap_node_empty = { \
.ob_base = _PyVarObject_HEAD_INIT(&_PyHamt_BitmapNode_Type, 0), \
diff --git a/Include/internal/pycore_tuple.h b/Include/internal/pycore_tuple.h
index da6754ff7db..acf1bec4602 100644
--- a/Include/internal/pycore_tuple.h
+++ b/Include/internal/pycore_tuple.h
@@ -8,6 +8,7 @@ extern "C" {
# error "this header requires Py_BUILD_CORE define"
#endif
+#include "pycore_object.h" // _PyObject_GC_IS_TRACKED
#include "pycore_structs.h" // _PyStackRef
extern void _PyTuple_MaybeUntrack(PyObject *);
@@ -32,6 +33,42 @@ typedef struct {
PyTupleObject *it_seq; /* Set to NULL when iterator is exhausted */
} _PyTupleIterObject;
+#define _PyTuple_RESET_HASH_CACHE(op) \
+ do { \
+ assert(op != NULL); \
+ _PyTuple_CAST(op)->ob_hash = -1; \
+ } while (0)
+
+/* bpo-42536: If reusing a tuple object, this should be called to re-track it
+ with the garbage collector and reset its hash cache. */
+static inline void
+_PyTuple_Recycle(PyObject *op)
+{
+ _PyTuple_RESET_HASH_CACHE(op);
+ if (!_PyObject_GC_IS_TRACKED(op)) {
+ _PyObject_GC_TRACK(op);
+ }
+}
+
+/* Below are the official constants from the xxHash specification. Optimizing
+ compilers should emit a single "rotate" instruction for the
+ _PyTuple_HASH_XXROTATE() expansion. If that doesn't happen for some important
+ platform, the macro could be changed to expand to a platform-specific rotate
+ spelling instead.
+*/
+#if SIZEOF_PY_UHASH_T > 4
+#define _PyTuple_HASH_XXPRIME_1 ((Py_uhash_t)11400714785074694791ULL)
+#define _PyTuple_HASH_XXPRIME_2 ((Py_uhash_t)14029467366897019727ULL)
+#define _PyTuple_HASH_XXPRIME_5 ((Py_uhash_t)2870177450012600261ULL)
+#define _PyTuple_HASH_XXROTATE(x) ((x << 31) | (x >> 33)) /* Rotate left 31 bits */
+#else
+#define _PyTuple_HASH_XXPRIME_1 ((Py_uhash_t)2654435761UL)
+#define _PyTuple_HASH_XXPRIME_2 ((Py_uhash_t)2246822519UL)
+#define _PyTuple_HASH_XXPRIME_5 ((Py_uhash_t)374761393UL)
+#define _PyTuple_HASH_XXROTATE(x) ((x << 13) | (x >> 19)) /* Rotate left 13 bits */
+#endif
+#define _PyTuple_HASH_EMPTY (_PyTuple_HASH_XXPRIME_5 + (_PyTuple_HASH_XXPRIME_5 ^ 3527539UL))
+
#ifdef __cplusplus
}
#endif
diff --git a/Lib/test/clinic.test.c b/Lib/test/clinic.test.c
index cf7cff857a5..8bc6d511e6c 100644
--- a/Lib/test/clinic.test.c
+++ b/Lib/test/clinic.test.c
@@ -2176,9 +2176,11 @@ test_keywords(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObjec
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('a'), _Py_LATIN1_CHR('b'), },
};
#undef NUM_KEYWORDS
@@ -2214,7 +2216,7 @@ exit:
static PyObject *
test_keywords_impl(PyObject *module, PyObject *a, PyObject *b)
-/*[clinic end generated code: output=5411fdee0a85d60d input=0d3484844749c05b]*/
+/*[clinic end generated code: output=591462ba3858e446 input=0d3484844749c05b]*/
/*[clinic input]
@@ -2247,9 +2249,11 @@ test_keywords_kwonly(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('a'), _Py_LATIN1_CHR('b'), },
};
#undef NUM_KEYWORDS
@@ -2285,7 +2289,7 @@ exit:
static PyObject *
test_keywords_kwonly_impl(PyObject *module, PyObject *a, PyObject *b)
-/*[clinic end generated code: output=38b11b4dd0a94399 input=384adc78bfa0bff7]*/
+/*[clinic end generated code: output=620bb64efa62d69b input=384adc78bfa0bff7]*/
/*[clinic input]
@@ -2319,9 +2323,11 @@ test_keywords_opt(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyO
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('a'), _Py_LATIN1_CHR('b'), _Py_LATIN1_CHR('c'), },
};
#undef NUM_KEYWORDS
@@ -2370,7 +2376,7 @@ exit:
static PyObject *
test_keywords_opt_impl(PyObject *module, PyObject *a, PyObject *b,
PyObject *c)
-/*[clinic end generated code: output=c59ecb8eca9880cf input=eda7964f784f4607]*/
+/*[clinic end generated code: output=3ea21673d129218c input=eda7964f784f4607]*/
/*[clinic input]
@@ -2406,9 +2412,11 @@ test_keywords_opt_kwonly(PyObject *module, PyObject *const *args, Py_ssize_t nar
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('a'), _Py_LATIN1_CHR('b'), _Py_LATIN1_CHR('c'), _Py_LATIN1_CHR('d'), },
};
#undef NUM_KEYWORDS
@@ -2468,7 +2476,7 @@ exit:
static PyObject *
test_keywords_opt_kwonly_impl(PyObject *module, PyObject *a, PyObject *b,
PyObject *c, PyObject *d)
-/*[clinic end generated code: output=b9572975a3e5d857 input=209387a4815e5082]*/
+/*[clinic end generated code: output=1e5fbe4eebfd40a5 input=209387a4815e5082]*/
/*[clinic input]
@@ -2503,9 +2511,11 @@ test_keywords_kwonly_opt(PyObject *module, PyObject *const *args, Py_ssize_t nar
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('a'), _Py_LATIN1_CHR('b'), _Py_LATIN1_CHR('c'), },
};
#undef NUM_KEYWORDS
@@ -2554,7 +2564,7 @@ exit:
static PyObject *
test_keywords_kwonly_opt_impl(PyObject *module, PyObject *a, PyObject *b,
PyObject *c)
-/*[clinic end generated code: output=94114334841ff55a input=18393cc64fa000f4]*/
+/*[clinic end generated code: output=bac8882cbcd50151 input=18393cc64fa000f4]*/
/*[clinic input]
@@ -2587,9 +2597,11 @@ test_posonly_keywords(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('b'), },
};
#undef NUM_KEYWORDS
@@ -2625,7 +2637,7 @@ exit:
static PyObject *
test_posonly_keywords_impl(PyObject *module, PyObject *a, PyObject *b)
-/*[clinic end generated code: output=4abfbb43b77fd29a input=1767b0ebdf06060e]*/
+/*[clinic end generated code: output=7ddf55a744ba53dc input=1767b0ebdf06060e]*/
/*[clinic input]
@@ -2659,9 +2671,11 @@ test_posonly_kwonly(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('c'), },
};
#undef NUM_KEYWORDS
@@ -2697,7 +2711,7 @@ exit:
static PyObject *
test_posonly_kwonly_impl(PyObject *module, PyObject *a, PyObject *c)
-/*[clinic end generated code: output=9fe05c76d80d63a9 input=9042f2818f664839]*/
+/*[clinic end generated code: output=095a4e17e22609bc input=9042f2818f664839]*/
/*[clinic input]
@@ -2733,9 +2747,11 @@ test_posonly_keywords_kwonly(PyObject *module, PyObject *const *args, Py_ssize_t
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('b'), _Py_LATIN1_CHR('c'), },
};
#undef NUM_KEYWORDS
@@ -2774,7 +2790,7 @@ exit:
static PyObject *
test_posonly_keywords_kwonly_impl(PyObject *module, PyObject *a, PyObject *b,
PyObject *c)
-/*[clinic end generated code: output=de2b8c631dc1b5d3 input=29546ebdca492fea]*/
+/*[clinic end generated code: output=2f03aff955026341 input=29546ebdca492fea]*/
/*[clinic input]
@@ -2810,9 +2826,11 @@ test_posonly_keywords_opt(PyObject *module, PyObject *const *args, Py_ssize_t na
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('b'), _Py_LATIN1_CHR('c'), _Py_LATIN1_CHR('d'), },
};
#undef NUM_KEYWORDS
@@ -2863,7 +2881,7 @@ exit:
static PyObject *
test_posonly_keywords_opt_impl(PyObject *module, PyObject *a, PyObject *b,
PyObject *c, PyObject *d)
-/*[clinic end generated code: output=70002e6beef31864 input=cdf5a9625e554e9b]*/
+/*[clinic end generated code: output=2c8b2ca42f821c66 input=cdf5a9625e554e9b]*/
/*[clinic input]
@@ -2898,9 +2916,11 @@ test_posonly_keywords_opt2(PyObject *module, PyObject *const *args, Py_ssize_t n
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('b'), _Py_LATIN1_CHR('c'), },
};
#undef NUM_KEYWORDS
@@ -2949,7 +2969,7 @@ exit:
static PyObject *
test_posonly_keywords_opt2_impl(PyObject *module, PyObject *a, PyObject *b,
PyObject *c)
-/*[clinic end generated code: output=b0f78abf242565cf input=1581299d21d16f14]*/
+/*[clinic end generated code: output=969a3b2b020310f1 input=1581299d21d16f14]*/
/*[clinic input]
@@ -2985,9 +3005,11 @@ test_posonly_opt_keywords_opt(PyObject *module, PyObject *const *args, Py_ssize_
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('c'), _Py_LATIN1_CHR('d'), },
};
#undef NUM_KEYWORDS
@@ -3043,7 +3065,7 @@ exit:
static PyObject *
test_posonly_opt_keywords_opt_impl(PyObject *module, PyObject *a,
PyObject *b, PyObject *c, PyObject *d)
-/*[clinic end generated code: output=75708b03d2837419 input=408798ec3d42949f]*/
+/*[clinic end generated code: output=02bf5e64403946fc input=408798ec3d42949f]*/
/*[clinic input]
@@ -3080,9 +3102,11 @@ test_posonly_kwonly_opt(PyObject *module, PyObject *const *args, Py_ssize_t narg
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('b'), _Py_LATIN1_CHR('c'), _Py_LATIN1_CHR('d'), },
};
#undef NUM_KEYWORDS
@@ -3133,7 +3157,7 @@ exit:
static PyObject *
test_posonly_kwonly_opt_impl(PyObject *module, PyObject *a, PyObject *b,
PyObject *c, PyObject *d)
-/*[clinic end generated code: output=3aab93ed7b9cc713 input=8d8e5643bbbc2309]*/
+/*[clinic end generated code: output=26510e61948015e8 input=8d8e5643bbbc2309]*/
/*[clinic input]
@@ -3169,9 +3193,11 @@ test_posonly_kwonly_opt2(PyObject *module, PyObject *const *args, Py_ssize_t nar
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('b'), _Py_LATIN1_CHR('c'), },
};
#undef NUM_KEYWORDS
@@ -3220,7 +3246,7 @@ exit:
static PyObject *
test_posonly_kwonly_opt2_impl(PyObject *module, PyObject *a, PyObject *b,
PyObject *c)
-/*[clinic end generated code: output=ac73a9a84a83e0c7 input=f7e5eed94f75fff0]*/
+/*[clinic end generated code: output=b31416e16c908756 input=f7e5eed94f75fff0]*/
/*[clinic input]
@@ -3257,9 +3283,11 @@ test_posonly_opt_kwonly_opt(PyObject *module, PyObject *const *args, Py_ssize_t
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('c'), _Py_LATIN1_CHR('d'), },
};
#undef NUM_KEYWORDS
@@ -3315,7 +3343,7 @@ exit:
static PyObject *
test_posonly_opt_kwonly_opt_impl(PyObject *module, PyObject *a, PyObject *b,
PyObject *c, PyObject *d)
-/*[clinic end generated code: output=21a1bfee0c50ec98 input=1e557dc979d120fd]*/
+/*[clinic end generated code: output=dc2337647059cb51 input=1e557dc979d120fd]*/
/*[clinic input]
@@ -3354,9 +3382,11 @@ test_posonly_keywords_kwonly_opt(PyObject *module, PyObject *const *args, Py_ssi
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('b'), _Py_LATIN1_CHR('c'), _Py_LATIN1_CHR('d'), _Py_LATIN1_CHR('e'), },
};
#undef NUM_KEYWORDS
@@ -3410,7 +3440,7 @@ static PyObject *
test_posonly_keywords_kwonly_opt_impl(PyObject *module, PyObject *a,
PyObject *b, PyObject *c, PyObject *d,
PyObject *e)
-/*[clinic end generated code: output=60ac8589c5331fc9 input=c3884a4f956fdc89]*/
+/*[clinic end generated code: output=b7adeae40c9833a4 input=c3884a4f956fdc89]*/
/*[clinic input]
@@ -3447,9 +3477,11 @@ test_posonly_keywords_kwonly_opt2(PyObject *module, PyObject *const *args, Py_ss
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('b'), _Py_LATIN1_CHR('c'), _Py_LATIN1_CHR('d'), },
};
#undef NUM_KEYWORDS
@@ -3500,7 +3532,7 @@ exit:
static PyObject *
test_posonly_keywords_kwonly_opt2_impl(PyObject *module, PyObject *a,
PyObject *b, PyObject *c, PyObject *d)
-/*[clinic end generated code: output=349e1a19c507956a input=68d01d7c0f6dafb0]*/
+/*[clinic end generated code: output=827a349e36e89c82 input=68d01d7c0f6dafb0]*/
/*[clinic input]
@@ -3540,9 +3572,11 @@ test_posonly_keywords_opt_kwonly_opt(PyObject *module, PyObject *const *args, Py
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('b'), _Py_LATIN1_CHR('c'), _Py_LATIN1_CHR('d'), _Py_LATIN1_CHR('e'), },
};
#undef NUM_KEYWORDS
@@ -3605,7 +3639,7 @@ static PyObject *
test_posonly_keywords_opt_kwonly_opt_impl(PyObject *module, PyObject *a,
PyObject *b, PyObject *c,
PyObject *d, PyObject *e)
-/*[clinic end generated code: output=94787c9e20861a56 input=d0883d45876f186c]*/
+/*[clinic end generated code: output=bcb0088555123966 input=d0883d45876f186c]*/
/*[clinic input]
@@ -3645,9 +3679,11 @@ test_posonly_keywords_opt2_kwonly_opt(PyObject *module, PyObject *const *args, P
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('b'), _Py_LATIN1_CHR('c'), _Py_LATIN1_CHR('d'), _Py_LATIN1_CHR('e'), },
};
#undef NUM_KEYWORDS
@@ -3715,7 +3751,7 @@ static PyObject *
test_posonly_keywords_opt2_kwonly_opt_impl(PyObject *module, PyObject *a,
PyObject *b, PyObject *c,
PyObject *d, PyObject *e)
-/*[clinic end generated code: output=ea8664ae9fdb4769 input=c95e2e1ec93035ad]*/
+/*[clinic end generated code: output=a22d1276d4c2c9c7 input=c95e2e1ec93035ad]*/
/*[clinic input]
@@ -3757,9 +3793,11 @@ test_posonly_opt_keywords_opt_kwonly_opt(PyObject *module, PyObject *const *args
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('c'), _Py_LATIN1_CHR('d'), _Py_LATIN1_CHR('e'), _Py_LATIN1_CHR('f'), },
};
#undef NUM_KEYWORDS
@@ -3835,7 +3873,7 @@ test_posonly_opt_keywords_opt_kwonly_opt_impl(PyObject *module, PyObject *a,
PyObject *b, PyObject *c,
PyObject *d, PyObject *e,
PyObject *f)
-/*[clinic end generated code: output=6e0ee12cf458acb1 input=9914857713c5bbf8]*/
+/*[clinic end generated code: output=ebdbe695ee85a2ea input=9914857713c5bbf8]*/
/*[clinic input]
test_keyword_only_parameter
@@ -3867,9 +3905,11 @@ test_keyword_only_parameter(PyObject *module, PyObject *const *args, Py_ssize_t
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(co_lnotab), },
};
#undef NUM_KEYWORDS
@@ -3912,7 +3952,7 @@ exit:
static PyObject *
test_keyword_only_parameter_impl(PyObject *module, PyBytesObject *co_lnotab)
-/*[clinic end generated code: output=18b5b3c80412bc4a input=303df5046c7e37a3]*/
+/*[clinic end generated code: output=bcad654ee66b0972 input=303df5046c7e37a3]*/
/*[clinic input]
@@ -4266,9 +4306,11 @@ test_vararg(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('a'), },
};
#undef NUM_KEYWORDS
@@ -4313,7 +4355,7 @@ exit:
static PyObject *
test_vararg_impl(PyObject *module, PyObject *a, PyObject *args)
-/*[clinic end generated code: output=5fa7dc68243a5211 input=7448995636d9186a]*/
+/*[clinic end generated code: output=17ba625cdd0369c1 input=7448995636d9186a]*/
/*[clinic input]
test_vararg_with_default
@@ -4347,9 +4389,11 @@ test_vararg_with_default(PyObject *module, PyObject *const *args, Py_ssize_t nar
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('a'), _Py_LATIN1_CHR('b'), },
};
#undef NUM_KEYWORDS
@@ -4405,7 +4449,7 @@ exit:
static PyObject *
test_vararg_with_default_impl(PyObject *module, PyObject *a, PyObject *args,
int b)
-/*[clinic end generated code: output=603ae52bfa307337 input=3a0f9f557ce1f712]*/
+/*[clinic end generated code: output=3f2b06ab08d5d0be input=3a0f9f557ce1f712]*/
/*[clinic input]
test_vararg_with_only_defaults
@@ -4439,9 +4483,11 @@ test_vararg_with_only_defaults(PyObject *module, PyObject *const *args, Py_ssize
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('b'), _Py_LATIN1_CHR('c'), },
};
#undef NUM_KEYWORDS
@@ -4500,7 +4546,7 @@ exit:
static PyObject *
test_vararg_with_only_defaults_impl(PyObject *module, PyObject *args, int b,
PyObject *c)
-/*[clinic end generated code: output=195fe286176f4ee8 input=6983e66817f82924]*/
+/*[clinic end generated code: output=f46666f0b1bf86b9 input=6983e66817f82924]*/
/*[clinic input]
test_paramname_module
@@ -4529,9 +4575,11 @@ test_paramname_module(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(module), },
};
#undef NUM_KEYWORDS
@@ -4565,7 +4613,7 @@ exit:
static PyObject *
test_paramname_module_impl(PyObject *module, PyObject *mod)
-/*[clinic end generated code: output=7ab63a2adaea2873 input=afefe259667f13ba]*/
+/*[clinic end generated code: output=b979bb1c03b16911 input=afefe259667f13ba]*/
/*[clinic input]
mangle1
@@ -4607,9 +4655,11 @@ mangle1(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwn
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(args), &_Py_ID(kwnames), &_Py_ID(return_value), &_Py_ID(_keywords), &_Py_ID(_parser), &_Py_ID(argsbuf), &_Py_ID(fastargs), &_Py_ID(nargs), &_Py_ID(noptargs), },
};
#undef NUM_KEYWORDS
@@ -4662,7 +4712,7 @@ mangle1_impl(PyObject *module, PyObject *args, PyObject *kwnames,
PyObject *return_value, PyObject *_keywords, PyObject *_parser,
PyObject *argsbuf, PyObject *fastargs, PyObject *nargs,
PyObject *noptargs)
-/*[clinic end generated code: output=f9127cea2f508da3 input=a3ed51bdedf8a3c7]*/
+/*[clinic end generated code: output=8993a3111845dfc3 input=a3ed51bdedf8a3c7]*/
/*[clinic input]
mangle2
@@ -4695,9 +4745,11 @@ mangle2(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwn
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(args), &_Py_ID(kwargs), &_Py_ID(return_value), },
};
#undef NUM_KEYWORDS
@@ -4736,7 +4788,7 @@ exit:
static PyObject *
mangle2_impl(PyObject *module, PyObject *args, PyObject *kwargs,
PyObject *return_value)
-/*[clinic end generated code: output=3afbc3260971e5d3 input=391766fee51bad7a]*/
+/*[clinic end generated code: output=bbbe696e52e0267f input=391766fee51bad7a]*/
/*[clinic input]
@@ -4767,9 +4819,11 @@ Test_cls_with_param(PyObject *self, PyTypeObject *cls, PyObject *const *args, Py
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('a'), },
};
#undef NUM_KEYWORDS
@@ -4806,7 +4860,7 @@ exit:
static PyObject *
Test_cls_with_param_impl(TestObj *self, PyTypeObject *cls, int a)
-/*[clinic end generated code: output=7e893134a81fef92 input=af158077bd237ef9]*/
+/*[clinic end generated code: output=bd3883003f57d02b input=af158077bd237ef9]*/
/*[clinic input]
@@ -5177,9 +5231,11 @@ Test___init__(PyObject *self, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('a'), },
};
#undef NUM_KEYWORDS
@@ -5215,7 +5271,7 @@ exit:
static int
Test___init___impl(TestObj *self, PyObject *a)
-/*[clinic end generated code: output=aa1f3d73e611e438 input=a8f9222a6ab35c59]*/
+/*[clinic end generated code: output=5c1e743f6a2a0b8b input=a8f9222a6ab35c59]*/
/*[clinic input]
@@ -5511,9 +5567,11 @@ mangled_c_keyword_identifier(PyObject *module, PyObject *const *args, Py_ssize_t
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('i'), },
};
#undef NUM_KEYWORDS
@@ -5550,7 +5608,7 @@ exit:
static PyObject *
mangled_c_keyword_identifier_impl(PyObject *module, int int_value)
-/*[clinic end generated code: output=19ec1a02f0819cf7 input=060876448ab567a2]*/
+/*[clinic end generated code: output=49365b3b96b23980 input=060876448ab567a2]*/
/*[clinic input]
@@ -5770,9 +5828,11 @@ fn_with_default_binop_expr(PyObject *module, PyObject *const *args, Py_ssize_t n
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(arg), },
};
#undef NUM_KEYWORDS
@@ -5811,7 +5871,7 @@ exit:
static PyObject *
fn_with_default_binop_expr_impl(PyObject *module, PyObject *arg)
-/*[clinic end generated code: output=e15a6f5d9f7bea0c input=1b55c8ae68d89453]*/
+/*[clinic end generated code: output=6613a7a96537bcf2 input=1b55c8ae68d89453]*/
/*[python input]
@@ -5860,9 +5920,11 @@ docstr_fallback_to_converter_default(PyObject *module, PyObject *const *args, Py
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('a'), },
};
#undef NUM_KEYWORDS
@@ -5898,7 +5960,7 @@ exit:
static PyObject *
docstr_fallback_to_converter_default_impl(PyObject *module, str a)
-/*[clinic end generated code: output=15bc9f32945ed0da input=0cbe6a4d24bc2274]*/
+/*[clinic end generated code: output=4405b7050a5f6fb9 input=0cbe6a4d24bc2274]*/
/*[clinic input]
diff --git a/Lib/test/test_clinic.py b/Lib/test/test_clinic.py
index b45b9ee89ee..199050d0d61 100644
--- a/Lib/test/test_clinic.py
+++ b/Lib/test/test_clinic.py
@@ -2713,7 +2713,7 @@ class ClinicExternalTest(TestCase):
# Verify by checking the checksum.
checksum = (
"/*[clinic end generated code: "
- "output=00512eb783a9b748 input=9543a8d2da235301]*/\n"
+ "output=a2957bc4d43a3c2f input=9543a8d2da235301]*/\n"
)
with open(fn, encoding='utf-8') as f:
generated = f.read()
diff --git a/Lib/test/test_sys.py b/Lib/test/test_sys.py
index b1d63c517ef..c64a80d83f1 100644
--- a/Lib/test/test_sys.py
+++ b/Lib/test/test_sys.py
@@ -1655,7 +1655,7 @@ class SizeofTest(unittest.TestCase):
# float
check(float(0), size('d'))
# sys.floatinfo
- check(sys.float_info, vsize('') + self.P * len(sys.float_info))
+ check(sys.float_info, self.P + vsize('') + self.P * len(sys.float_info))
# frame
def func():
return sys._getframe()
@@ -1763,8 +1763,8 @@ class SizeofTest(unittest.TestCase):
# super
check(super(int), size('3P'))
# tuple
- check((), vsize(''))
- check((1,2,3), vsize('') + 3*self.P)
+ check((), vsize('') + self.P)
+ check((1,2,3), vsize('') + self.P + 3*self.P)
# type
# static type: PyTypeObject
fmt = 'P2nPI13Pl4Pn9Pn12PIPc'
@@ -1886,7 +1886,7 @@ class SizeofTest(unittest.TestCase):
# XXX
# sys.flags
# FIXME: The +1 will not be necessary once gh-122575 is fixed
- check(sys.flags, vsize('') + self.P * (1 + len(sys.flags)))
+ check(sys.flags, vsize('') + self.P + self.P * (1 + len(sys.flags)))
def test_asyncgen_hooks(self):
old = sys.get_asyncgen_hooks()
diff --git a/Misc/NEWS.d/next/C_API/2025-03-20-17-14-29.gh-issue-131525.n8Di6a.rst b/Misc/NEWS.d/next/C_API/2025-03-20-17-14-29.gh-issue-131525.n8Di6a.rst
new file mode 100644
index 00000000000..3cd4a800f9a
--- /dev/null
+++ b/Misc/NEWS.d/next/C_API/2025-03-20-17-14-29.gh-issue-131525.n8Di6a.rst
@@ -0,0 +1,2 @@
+The PyTupleObject now caches the computed hash value in the new field
+ob_hash.
diff --git a/Modules/_ctypes/clinic/cfield.c.h b/Modules/_ctypes/clinic/cfield.c.h
index 3d16139f2d6..355e69803b1 100644
--- a/Modules/_ctypes/clinic/cfield.c.h
+++ b/Modules/_ctypes/clinic/cfield.c.h
@@ -25,9 +25,11 @@ PyCField_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(name), &_Py_ID(type), &_Py_ID(byte_size), &_Py_ID(byte_offset), &_Py_ID(index), &_Py_ID(_internal_use), &_Py_ID(bit_size), &_Py_ID(bit_offset), },
};
#undef NUM_KEYWORDS
@@ -124,4 +126,4 @@ skip_optional_kwonly:
exit:
return return_value;
}
-/*[clinic end generated code: output=7160ded221fb00ff input=a9049054013a1b77]*/
+/*[clinic end generated code: output=7eb1621e22ea2e05 input=a9049054013a1b77]*/
diff --git a/Modules/_functoolsmodule.c b/Modules/_functoolsmodule.c
index f91fa9a7327..2529a9047f3 100644
--- a/Modules/_functoolsmodule.c
+++ b/Modules/_functoolsmodule.c
@@ -1008,9 +1008,7 @@ _functools_reduce_impl(PyObject *module, PyObject *func, PyObject *seq,
}
// bpo-42536: The GC may have untracked this args tuple. Since we're
// recycling it, make sure it's tracked again:
- if (!_PyObject_GC_IS_TRACKED(args)) {
- _PyObject_GC_TRACK(args);
- }
+ _PyTuple_Recycle(args);
}
}
diff --git a/Modules/_io/clinic/_iomodule.c.h b/Modules/_io/clinic/_iomodule.c.h
index 9a41b364284..90b80af3018 100644
--- a/Modules/_io/clinic/_iomodule.c.h
+++ b/Modules/_io/clinic/_iomodule.c.h
@@ -145,9 +145,11 @@ _io_open(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kw
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(file), &_Py_ID(mode), &_Py_ID(buffering), &_Py_ID(encoding), &_Py_ID(errors), &_Py_ID(newline), &_Py_ID(closefd), &_Py_ID(opener), },
};
#undef NUM_KEYWORDS
@@ -369,9 +371,11 @@ _io_open_code(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObjec
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), },
};
#undef NUM_KEYWORDS
@@ -406,4 +410,4 @@ _io_open_code(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObjec
exit:
return return_value;
}
-/*[clinic end generated code: output=2eaf6e914503bcfd input=a9049054013a1b77]*/
+/*[clinic end generated code: output=7a8e032c0424bce2 input=a9049054013a1b77]*/
diff --git a/Modules/_io/clinic/bufferedio.c.h b/Modules/_io/clinic/bufferedio.c.h
index 3345ae4c7f8..b7c0ca2c4b9 100644
--- a/Modules/_io/clinic/bufferedio.c.h
+++ b/Modules/_io/clinic/bufferedio.c.h
@@ -958,9 +958,11 @@ _io_BufferedReader___init__(PyObject *self, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(raw), &_Py_ID(buffer_size), },
};
#undef NUM_KEYWORDS
@@ -1036,9 +1038,11 @@ _io_BufferedWriter___init__(PyObject *self, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(raw), &_Py_ID(buffer_size), },
};
#undef NUM_KEYWORDS
@@ -1206,9 +1210,11 @@ _io_BufferedRandom___init__(PyObject *self, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(raw), &_Py_ID(buffer_size), },
};
#undef NUM_KEYWORDS
@@ -1259,4 +1265,4 @@ skip_optional_pos:
exit:
return return_value;
}
-/*[clinic end generated code: output=1a0562c66776fd53 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=3ee17211d2010462 input=a9049054013a1b77]*/
diff --git a/Modules/_io/clinic/bytesio.c.h b/Modules/_io/clinic/bytesio.c.h
index dc481603d1e..aaf4884d173 100644
--- a/Modules/_io/clinic/bytesio.c.h
+++ b/Modules/_io/clinic/bytesio.c.h
@@ -521,9 +521,11 @@ _io_BytesIO___init__(PyObject *self, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(initial_bytes), },
};
#undef NUM_KEYWORDS
@@ -561,4 +563,4 @@ skip_optional_pos:
exit:
return return_value;
}
-/*[clinic end generated code: output=477217b2bc464110 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=6dbfd82f4e9d4ef3 input=a9049054013a1b77]*/
diff --git a/Modules/_io/clinic/fileio.c.h b/Modules/_io/clinic/fileio.c.h
index bc816ea030f..04870b1c890 100644
--- a/Modules/_io/clinic/fileio.c.h
+++ b/Modules/_io/clinic/fileio.c.h
@@ -66,9 +66,11 @@ _io_FileIO___init__(PyObject *self, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(file), &_Py_ID(mode), &_Py_ID(closefd), &_Py_ID(opener), },
};
#undef NUM_KEYWORDS
@@ -541,4 +543,4 @@ _io_FileIO_isatty(PyObject *self, PyObject *Py_UNUSED(ignored))
#ifndef _IO_FILEIO_TRUNCATE_METHODDEF
#define _IO_FILEIO_TRUNCATE_METHODDEF
#endif /* !defined(_IO_FILEIO_TRUNCATE_METHODDEF) */
-/*[clinic end generated code: output=f4e1f74c03d4ecdf input=a9049054013a1b77]*/
+/*[clinic end generated code: output=1902fac9e39358aa input=a9049054013a1b77]*/
diff --git a/Modules/_io/clinic/stringio.c.h b/Modules/_io/clinic/stringio.c.h
index 2c5757f668e..8e8cd8df9ab 100644
--- a/Modules/_io/clinic/stringio.c.h
+++ b/Modules/_io/clinic/stringio.c.h
@@ -310,9 +310,11 @@ _io_StringIO___init__(PyObject *self, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(initial_value), &_Py_ID(newline), },
};
#undef NUM_KEYWORDS
@@ -550,4 +552,4 @@ _io_StringIO_newlines_get(PyObject *self, void *Py_UNUSED(context))
return return_value;
}
-/*[clinic end generated code: output=69c9b100a359cbd5 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=5bfaaab7f41ee6b5 input=a9049054013a1b77]*/
diff --git a/Modules/_io/clinic/textio.c.h b/Modules/_io/clinic/textio.c.h
index fd84198b103..128a5ad1678 100644
--- a/Modules/_io/clinic/textio.c.h
+++ b/Modules/_io/clinic/textio.c.h
@@ -318,9 +318,11 @@ _io_IncrementalNewlineDecoder___init__(PyObject *self, PyObject *args, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(decoder), &_Py_ID(translate), &_Py_ID(errors), },
};
#undef NUM_KEYWORDS
@@ -388,9 +390,11 @@ _io_IncrementalNewlineDecoder_decode(PyObject *self, PyObject *const *args, Py_s
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(input), &_Py_ID(final), },
};
#undef NUM_KEYWORDS
@@ -538,9 +542,11 @@ _io_TextIOWrapper___init__(PyObject *self, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(buffer), &_Py_ID(encoding), &_Py_ID(errors), &_Py_ID(newline), &_Py_ID(line_buffering), &_Py_ID(write_through), },
};
#undef NUM_KEYWORDS
@@ -677,9 +683,11 @@ _io_TextIOWrapper_reconfigure(PyObject *self, PyObject *const *args, Py_ssize_t
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(encoding), &_Py_ID(errors), &_Py_ID(newline), &_Py_ID(line_buffering), &_Py_ID(write_through), },
};
#undef NUM_KEYWORDS
@@ -1304,4 +1312,4 @@ _io_TextIOWrapper__CHUNK_SIZE_set(PyObject *self, PyObject *value, void *Py_UNUS
return return_value;
}
-/*[clinic end generated code: output=dad68d8c33d676e6 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=30404271a1151056 input=a9049054013a1b77]*/
diff --git a/Modules/_io/clinic/winconsoleio.c.h b/Modules/_io/clinic/winconsoleio.c.h
index ba6dcde6e01..7af5923b6c1 100644
--- a/Modules/_io/clinic/winconsoleio.c.h
+++ b/Modules/_io/clinic/winconsoleio.c.h
@@ -65,9 +65,11 @@ _io__WindowsConsoleIO___init__(PyObject *self, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(file), &_Py_ID(mode), &_Py_ID(closefd), &_Py_ID(opener), },
};
#undef NUM_KEYWORDS
@@ -461,4 +463,4 @@ _io__WindowsConsoleIO_isatty(PyObject *self, PyObject *Py_UNUSED(ignored))
#ifndef _IO__WINDOWSCONSOLEIO_ISATTY_METHODDEF
#define _IO__WINDOWSCONSOLEIO_ISATTY_METHODDEF
#endif /* !defined(_IO__WINDOWSCONSOLEIO_ISATTY_METHODDEF) */
-/*[clinic end generated code: output=edc47f5c49589045 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=ce50bcd905f1f213 input=a9049054013a1b77]*/
diff --git a/Modules/_multiprocessing/clinic/semaphore.c.h b/Modules/_multiprocessing/clinic/semaphore.c.h
index 74a9daa3c67..6b1c0092ce4 100644
--- a/Modules/_multiprocessing/clinic/semaphore.c.h
+++ b/Modules/_multiprocessing/clinic/semaphore.c.h
@@ -34,9 +34,11 @@ _multiprocessing_SemLock_acquire(PyObject *self, PyObject *const *args, Py_ssize
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(block), &_Py_ID(timeout), },
};
#undef NUM_KEYWORDS
@@ -140,9 +142,11 @@ _multiprocessing_SemLock_acquire(PyObject *self, PyObject *const *args, Py_ssize
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(block), &_Py_ID(timeout), },
};
#undef NUM_KEYWORDS
@@ -237,9 +241,11 @@ _multiprocessing_SemLock(PyTypeObject *type, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(kind), &_Py_ID(value), &_Py_ID(maxvalue), &_Py_ID(name), &_Py_ID(unlink), },
};
#undef NUM_KEYWORDS
@@ -576,4 +582,4 @@ exit:
#ifndef _MULTIPROCESSING_SEMLOCK___EXIT___METHODDEF
#define _MULTIPROCESSING_SEMLOCK___EXIT___METHODDEF
#endif /* !defined(_MULTIPROCESSING_SEMLOCK___EXIT___METHODDEF) */
-/*[clinic end generated code: output=dddd8e989525f565 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=d1e349d4ee3d4bbf input=a9049054013a1b77]*/
diff --git a/Modules/_sqlite/clinic/connection.c.h b/Modules/_sqlite/clinic/connection.c.h
index bbdefe24a01..c8e1d0b7a73 100644
--- a/Modules/_sqlite/clinic/connection.c.h
+++ b/Modules/_sqlite/clinic/connection.c.h
@@ -37,9 +37,11 @@ pysqlite_connection_init(PyObject *self, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(database), &_Py_ID(timeout), &_Py_ID(detect_types), &_Py_ID(isolation_level), &_Py_ID(check_same_thread), &_Py_ID(factory), &_Py_ID(cached_statements), &_Py_ID(uri), &_Py_ID(autocommit), },
};
#undef NUM_KEYWORDS
@@ -191,9 +193,11 @@ pysqlite_connection_cursor(PyObject *self, PyObject *const *args, Py_ssize_t nar
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(factory), },
};
#undef NUM_KEYWORDS
@@ -264,9 +268,11 @@ blobopen(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwna
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(readonly), &_Py_ID(name), },
};
#undef NUM_KEYWORDS
@@ -458,9 +464,11 @@ pysqlite_connection_create_function(PyObject *self, PyTypeObject *cls, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(name), &_Py_ID(narg), &_Py_ID(func), &_Py_ID(deterministic), },
};
#undef NUM_KEYWORDS
@@ -651,9 +659,11 @@ pysqlite_connection_create_aggregate(PyObject *self, PyTypeObject *cls, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(name), &_Py_ID(n_arg), &_Py_ID(aggregate_class), },
};
#undef NUM_KEYWORDS
@@ -754,9 +764,11 @@ pysqlite_connection_set_authorizer(PyObject *self, PyTypeObject *cls, PyObject *
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(authorizer_callback), },
};
#undef NUM_KEYWORDS
@@ -848,9 +860,11 @@ pysqlite_connection_set_progress_handler(PyObject *self, PyTypeObject *cls, PyOb
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(progress_handler), _Py_LATIN1_CHR('n'), },
};
#undef NUM_KEYWORDS
@@ -937,9 +951,11 @@ pysqlite_connection_set_trace_callback(PyObject *self, PyTypeObject *cls, PyObje
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(trace_callback), },
};
#undef NUM_KEYWORDS
@@ -1040,9 +1056,11 @@ pysqlite_connection_load_extension(PyObject *self, PyObject *const *args, Py_ssi
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(entrypoint), },
};
#undef NUM_KEYWORDS
@@ -1253,9 +1271,11 @@ pysqlite_connection_iterdump(PyObject *self, PyObject *const *args, Py_ssize_t n
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(filter), },
};
#undef NUM_KEYWORDS
@@ -1318,9 +1338,11 @@ pysqlite_connection_backup(PyObject *self, PyObject *const *args, Py_ssize_t nar
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(target), &_Py_ID(pages), &_Py_ID(progress), &_Py_ID(name), &_Py_ID(sleep), },
};
#undef NUM_KEYWORDS
@@ -1501,9 +1523,11 @@ serialize(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwn
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(name), },
};
#undef NUM_KEYWORDS
@@ -1591,9 +1615,11 @@ deserialize(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *k
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(name), },
};
#undef NUM_KEYWORDS
@@ -1895,4 +1921,4 @@ exit:
#ifndef DESERIALIZE_METHODDEF
#define DESERIALIZE_METHODDEF
#endif /* !defined(DESERIALIZE_METHODDEF) */
-/*[clinic end generated code: output=fc4857f09ad563b1 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=2f325c2444b4bb47 input=a9049054013a1b77]*/
diff --git a/Modules/_sqlite/clinic/cursor.c.h b/Modules/_sqlite/clinic/cursor.c.h
index 832ba2e43f0..350577f488d 100644
--- a/Modules/_sqlite/clinic/cursor.c.h
+++ b/Modules/_sqlite/clinic/cursor.c.h
@@ -193,9 +193,11 @@ pysqlite_cursor_fetchmany(PyObject *self, PyObject *const *args, Py_ssize_t narg
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(size), },
};
#undef NUM_KEYWORDS
@@ -327,4 +329,4 @@ pysqlite_cursor_close(PyObject *self, PyObject *Py_UNUSED(ignored))
{
return pysqlite_cursor_close_impl((pysqlite_Cursor *)self);
}
-/*[clinic end generated code: output=02831aed7377f5f6 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=d05c7cbbc8bcab26 input=a9049054013a1b77]*/
diff --git a/Modules/_sqlite/clinic/module.c.h b/Modules/_sqlite/clinic/module.c.h
index 5569c454516..82ecd3eea1b 100644
--- a/Modules/_sqlite/clinic/module.c.h
+++ b/Modules/_sqlite/clinic/module.c.h
@@ -30,9 +30,11 @@ pysqlite_complete_statement(PyObject *module, PyObject *const *args, Py_ssize_t
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(statement), },
};
#undef NUM_KEYWORDS
@@ -209,4 +211,4 @@ skip_optional:
exit:
return return_value;
}
-/*[clinic end generated code: output=db9bf7ecad197343 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=17c4e031680a5168 input=a9049054013a1b77]*/
diff --git a/Modules/_sre/clinic/sre.c.h b/Modules/_sre/clinic/sre.c.h
index 1f7e037351d..d2f25a71495 100644
--- a/Modules/_sre/clinic/sre.c.h
+++ b/Modules/_sre/clinic/sre.c.h
@@ -188,9 +188,11 @@ _sre_SRE_Pattern_match(PyObject *self, PyTypeObject *cls, PyObject *const *args,
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(string), &_Py_ID(pos), &_Py_ID(endpos), },
};
#undef NUM_KEYWORDS
@@ -282,9 +284,11 @@ _sre_SRE_Pattern_fullmatch(PyObject *self, PyTypeObject *cls, PyObject *const *a
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(string), &_Py_ID(pos), &_Py_ID(endpos), },
};
#undef NUM_KEYWORDS
@@ -378,9 +382,11 @@ _sre_SRE_Pattern_search(PyObject *self, PyTypeObject *cls, PyObject *const *args
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(string), &_Py_ID(pos), &_Py_ID(endpos), },
};
#undef NUM_KEYWORDS
@@ -471,9 +477,11 @@ _sre_SRE_Pattern_findall(PyObject *self, PyObject *const *args, Py_ssize_t nargs
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(string), &_Py_ID(pos), &_Py_ID(endpos), },
};
#undef NUM_KEYWORDS
@@ -567,9 +575,11 @@ _sre_SRE_Pattern_finditer(PyObject *self, PyTypeObject *cls, PyObject *const *ar
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(string), &_Py_ID(pos), &_Py_ID(endpos), },
};
#undef NUM_KEYWORDS
@@ -660,9 +670,11 @@ _sre_SRE_Pattern_scanner(PyObject *self, PyTypeObject *cls, PyObject *const *arg
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(string), &_Py_ID(pos), &_Py_ID(endpos), },
};
#undef NUM_KEYWORDS
@@ -753,9 +765,11 @@ _sre_SRE_Pattern_split(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(string), &_Py_ID(maxsplit), },
};
#undef NUM_KEYWORDS
@@ -828,9 +842,11 @@ _sre_SRE_Pattern_sub(PyObject *self, PyTypeObject *cls, PyObject *const *args, P
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(repl), &_Py_ID(string), &_Py_ID(count), },
};
#undef NUM_KEYWORDS
@@ -906,9 +922,11 @@ _sre_SRE_Pattern_subn(PyObject *self, PyTypeObject *cls, PyObject *const *args,
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(repl), &_Py_ID(string), &_Py_ID(count), },
};
#undef NUM_KEYWORDS
@@ -1060,9 +1078,11 @@ _sre_compile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(pattern), &_Py_ID(flags), &_Py_ID(code), &_Py_ID(groups), &_Py_ID(groupindex), &_Py_ID(indexgroup), },
};
#undef NUM_KEYWORDS
@@ -1191,9 +1211,11 @@ _sre_SRE_Match_expand(PyObject *self, PyObject *const *args, Py_ssize_t nargs, P
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(template), },
};
#undef NUM_KEYWORDS
@@ -1250,9 +1272,11 @@ _sre_SRE_Match_groups(PyObject *self, PyObject *const *args, Py_ssize_t nargs, P
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(default), },
};
#undef NUM_KEYWORDS
@@ -1314,9 +1338,11 @@ _sre_SRE_Match_groupdict(PyObject *self, PyObject *const *args, Py_ssize_t nargs
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(default), },
};
#undef NUM_KEYWORDS
@@ -1542,4 +1568,4 @@ _sre_SRE_Scanner_search(PyObject *self, PyTypeObject *cls, PyObject *const *args
#ifndef _SRE_SRE_PATTERN__FAIL_AFTER_METHODDEF
#define _SRE_SRE_PATTERN__FAIL_AFTER_METHODDEF
#endif /* !defined(_SRE_SRE_PATTERN__FAIL_AFTER_METHODDEF) */
-/*[clinic end generated code: output=45baae8bdfafdc51 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=bbf42e1de3bdd3ae input=a9049054013a1b77]*/
diff --git a/Modules/_ssl/clinic/cert.c.h b/Modules/_ssl/clinic/cert.c.h
index 3e0c5b40509..7e05772e323 100644
--- a/Modules/_ssl/clinic/cert.c.h
+++ b/Modules/_ssl/clinic/cert.c.h
@@ -29,9 +29,11 @@ _ssl_Certificate_public_bytes(PyObject *self, PyObject *const *args, Py_ssize_t
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(format), },
};
#undef NUM_KEYWORDS
@@ -87,4 +89,4 @@ _ssl_Certificate_get_info(PyObject *self, PyObject *Py_UNUSED(ignored))
{
return _ssl_Certificate_get_info_impl((PySSLCertificate *)self);
}
-/*[clinic end generated code: output=51365b498b975ee0 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=bab2dba7dbc1523c input=a9049054013a1b77]*/
diff --git a/Modules/_testcapi/clinic/exceptions.c.h b/Modules/_testcapi/clinic/exceptions.c.h
index 7c18bac0f68..cac5d288f43 100644
--- a/Modules/_testcapi/clinic/exceptions.c.h
+++ b/Modules/_testcapi/clinic/exceptions.c.h
@@ -78,9 +78,11 @@ _testcapi_make_exception_with_doc(PyObject *module, PyObject *const *args, Py_ss
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(name), &_Py_ID(doc), &_Py_ID(base), &_Py_ID(dict), },
};
#undef NUM_KEYWORDS
@@ -457,4 +459,4 @@ _testcapi_unstable_exc_prep_reraise_star(PyObject *module, PyObject *const *args
exit:
return return_value;
}
-/*[clinic end generated code: output=d917e9ec082e69ee input=a9049054013a1b77]*/
+/*[clinic end generated code: output=357caea020348789 input=a9049054013a1b77]*/
diff --git a/Modules/cjkcodecs/clinic/multibytecodec.c.h b/Modules/cjkcodecs/clinic/multibytecodec.c.h
index d77bbd48066..b3663180d72 100644
--- a/Modules/cjkcodecs/clinic/multibytecodec.c.h
+++ b/Modules/cjkcodecs/clinic/multibytecodec.c.h
@@ -37,9 +37,11 @@ _multibytecodec_MultibyteCodec_encode(PyObject *self, PyObject *const *args, Py_
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(input), &_Py_ID(errors), },
};
#undef NUM_KEYWORDS
@@ -124,9 +126,11 @@ _multibytecodec_MultibyteCodec_decode(PyObject *self, PyObject *const *args, Py_
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(input), &_Py_ID(errors), },
};
#undef NUM_KEYWORDS
@@ -212,9 +216,11 @@ _multibytecodec_MultibyteIncrementalEncoder_encode(PyObject *self, PyObject *con
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(input), &_Py_ID(final), },
};
#undef NUM_KEYWORDS
@@ -342,9 +348,11 @@ _multibytecodec_MultibyteIncrementalDecoder_decode(PyObject *self, PyObject *con
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(input), &_Py_ID(final), },
};
#undef NUM_KEYWORDS
@@ -688,4 +696,4 @@ PyDoc_STRVAR(_multibytecodec___create_codec__doc__,
#define _MULTIBYTECODEC___CREATE_CODEC_METHODDEF \
{"__create_codec", (PyCFunction)_multibytecodec___create_codec, METH_O, _multibytecodec___create_codec__doc__},
-/*[clinic end generated code: output=6571941b8e45b013 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=014f4f6bb9d29594 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_asynciomodule.c.h b/Modules/clinic/_asynciomodule.c.h
index d529b09bd15..66953d74213 100644
--- a/Modules/clinic/_asynciomodule.c.h
+++ b/Modules/clinic/_asynciomodule.c.h
@@ -39,9 +39,11 @@ _asyncio_Future___init__(PyObject *self, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(loop), },
};
#undef NUM_KEYWORDS
@@ -269,9 +271,11 @@ _asyncio_Future_add_done_callback(PyObject *self, PyTypeObject *cls, PyObject *c
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(context), },
};
#undef NUM_KEYWORDS
@@ -388,9 +392,11 @@ _asyncio_Future_cancel(PyObject *self, PyTypeObject *cls, PyObject *const *args,
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(msg), },
};
#undef NUM_KEYWORDS
@@ -883,9 +889,11 @@ _asyncio_Task___init__(PyObject *self, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(coro), &_Py_ID(loop), &_Py_ID(name), &_Py_ID(context), &_Py_ID(eager_start), },
};
#undef NUM_KEYWORDS
@@ -1143,9 +1151,11 @@ _asyncio_Task_cancel(PyObject *self, PyObject *const *args, Py_ssize_t nargs, Py
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(msg), },
};
#undef NUM_KEYWORDS
@@ -1281,9 +1291,11 @@ _asyncio_Task_get_stack(PyObject *self, PyTypeObject *cls, PyObject *const *args
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(limit), },
};
#undef NUM_KEYWORDS
@@ -1349,9 +1361,11 @@ _asyncio_Task_print_stack(PyObject *self, PyTypeObject *cls, PyObject *const *ar
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(limit), &_Py_ID(file), },
};
#undef NUM_KEYWORDS
@@ -1625,9 +1639,11 @@ _asyncio__register_task(PyObject *module, PyObject *const *args, Py_ssize_t narg
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(task), },
};
#undef NUM_KEYWORDS
@@ -1683,9 +1699,11 @@ _asyncio__register_eager_task(PyObject *module, PyObject *const *args, Py_ssize_
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(task), },
};
#undef NUM_KEYWORDS
@@ -1741,9 +1759,11 @@ _asyncio__unregister_task(PyObject *module, PyObject *const *args, Py_ssize_t na
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(task), },
};
#undef NUM_KEYWORDS
@@ -1799,9 +1819,11 @@ _asyncio__unregister_eager_task(PyObject *module, PyObject *const *args, Py_ssiz
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(task), },
};
#undef NUM_KEYWORDS
@@ -1859,9 +1881,11 @@ _asyncio__enter_task(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(loop), &_Py_ID(task), },
};
#undef NUM_KEYWORDS
@@ -1921,9 +1945,11 @@ _asyncio__leave_task(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(loop), &_Py_ID(task), },
};
#undef NUM_KEYWORDS
@@ -1982,9 +2008,11 @@ _asyncio__swap_current_task(PyObject *module, PyObject *const *args, Py_ssize_t
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(loop), &_Py_ID(task), },
};
#undef NUM_KEYWORDS
@@ -2040,9 +2068,11 @@ _asyncio_current_task(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(loop), },
};
#undef NUM_KEYWORDS
@@ -2101,9 +2131,11 @@ _asyncio_all_tasks(PyObject *module, PyObject *const *args, Py_ssize_t nargs, Py
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(loop), },
};
#undef NUM_KEYWORDS
@@ -2200,4 +2232,4 @@ _asyncio_future_discard_from_awaited_by(PyObject *module, PyObject *const *args,
exit:
return return_value;
}
-/*[clinic end generated code: output=b1060b180d9dd54c input=a9049054013a1b77]*/
+/*[clinic end generated code: output=b69948ed810591d9 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_bisectmodule.c.h b/Modules/clinic/_bisectmodule.c.h
index 910fd52c07d..314208bc41d 100644
--- a/Modules/clinic/_bisectmodule.c.h
+++ b/Modules/clinic/_bisectmodule.c.h
@@ -41,9 +41,11 @@ _bisect_bisect_right(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('a'), _Py_LATIN1_CHR('x'), &_Py_ID(lo), &_Py_ID(hi), &_Py_ID(key), },
};
#undef NUM_KEYWORDS
@@ -150,9 +152,11 @@ _bisect_insort_right(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('a'), _Py_LATIN1_CHR('x'), &_Py_ID(lo), &_Py_ID(hi), &_Py_ID(key), },
};
#undef NUM_KEYWORDS
@@ -256,9 +260,11 @@ _bisect_bisect_left(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('a'), _Py_LATIN1_CHR('x'), &_Py_ID(lo), &_Py_ID(hi), &_Py_ID(key), },
};
#undef NUM_KEYWORDS
@@ -365,9 +371,11 @@ _bisect_insort_left(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('a'), _Py_LATIN1_CHR('x'), &_Py_ID(lo), &_Py_ID(hi), &_Py_ID(key), },
};
#undef NUM_KEYWORDS
@@ -438,4 +446,4 @@ skip_optional_kwonly:
exit:
return return_value;
}
-/*[clinic end generated code: output=972e8938ba5a0eac input=a9049054013a1b77]*/
+/*[clinic end generated code: output=729385c6a23828ab input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_bz2module.c.h b/Modules/clinic/_bz2module.c.h
index a599bd1a8be..2bc6524b6a9 100644
--- a/Modules/clinic/_bz2module.c.h
+++ b/Modules/clinic/_bz2module.c.h
@@ -146,9 +146,11 @@ _bz2_BZ2Decompressor_decompress(PyObject *self, PyObject *const *args, Py_ssize_
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(data), &_Py_ID(max_length), },
};
#undef NUM_KEYWORDS
@@ -235,4 +237,4 @@ _bz2_BZ2Decompressor(PyTypeObject *type, PyObject *args, PyObject *kwargs)
exit:
return return_value;
}
-/*[clinic end generated code: output=0fc5a6292c5fd2c5 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=552ac6d4c5a101b7 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_codecsmodule.c.h b/Modules/clinic/_codecsmodule.c.h
index 46476a948b6..b0310325759 100644
--- a/Modules/clinic/_codecsmodule.c.h
+++ b/Modules/clinic/_codecsmodule.c.h
@@ -98,9 +98,11 @@ _codecs_encode(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObje
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(obj), &_Py_ID(encoding), &_Py_ID(errors), },
};
#undef NUM_KEYWORDS
@@ -199,9 +201,11 @@ _codecs_decode(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObje
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(obj), &_Py_ID(encoding), &_Py_ID(errors), },
};
#undef NUM_KEYWORDS
@@ -2798,4 +2802,4 @@ exit:
#ifndef _CODECS_CODE_PAGE_ENCODE_METHODDEF
#define _CODECS_CODE_PAGE_ENCODE_METHODDEF
#endif /* !defined(_CODECS_CODE_PAGE_ENCODE_METHODDEF) */
-/*[clinic end generated code: output=f8a7fdd0b7edc0c4 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=ed13f20dfb09e306 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_collectionsmodule.c.h b/Modules/clinic/_collectionsmodule.c.h
index c7dc639ce87..b5c315c680e 100644
--- a/Modules/clinic/_collectionsmodule.c.h
+++ b/Modules/clinic/_collectionsmodule.c.h
@@ -471,9 +471,11 @@ deque_init(PyObject *deque, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(iterable), &_Py_ID(maxlen), },
};
#undef NUM_KEYWORDS
@@ -630,4 +632,4 @@ tuplegetter_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
exit:
return return_value;
}
-/*[clinic end generated code: output=1eb3634d5ef8b407 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=b9d4d647c221cb9f input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_csv.c.h b/Modules/clinic/_csv.c.h
index b5608c850b6..416aeafccf9 100644
--- a/Modules/clinic/_csv.c.h
+++ b/Modules/clinic/_csv.c.h
@@ -52,9 +52,11 @@ _csv_unregister_dialect(PyObject *module, PyObject *const *args, Py_ssize_t narg
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(name), },
};
#undef NUM_KEYWORDS
@@ -110,9 +112,11 @@ _csv_get_dialect(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyOb
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(name), },
};
#undef NUM_KEYWORDS
@@ -171,9 +175,11 @@ _csv_field_size_limit(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(new_limit), },
};
#undef NUM_KEYWORDS
@@ -209,4 +215,4 @@ skip_optional_pos:
exit:
return return_value;
}
-/*[clinic end generated code: output=9c7314c2434156b3 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=1fb09d5e7667ad0d input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_cursesmodule.c.h b/Modules/clinic/_cursesmodule.c.h
index 769d75c0901..0346cc88782 100644
--- a/Modules/clinic/_cursesmodule.c.h
+++ b/Modules/clinic/_cursesmodule.c.h
@@ -2703,9 +2703,11 @@ _curses_setupterm(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyO
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(term), &_Py_ID(fd), },
};
#undef NUM_KEYWORDS
@@ -4392,4 +4394,4 @@ _curses_has_extended_color_support(PyObject *module, PyObject *Py_UNUSED(ignored
#ifndef _CURSES_USE_DEFAULT_COLORS_METHODDEF
#define _CURSES_USE_DEFAULT_COLORS_METHODDEF
#endif /* !defined(_CURSES_USE_DEFAULT_COLORS_METHODDEF) */
-/*[clinic end generated code: output=ce2d19df9e20bfa3 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=acae2eb9cf75e76d input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_datetimemodule.c.h b/Modules/clinic/_datetimemodule.c.h
index d200c9cfd18..18e6129fad8 100644
--- a/Modules/clinic/_datetimemodule.c.h
+++ b/Modules/clinic/_datetimemodule.c.h
@@ -47,9 +47,11 @@ iso_calendar_date_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(year), &_Py_ID(week), &_Py_ID(weekday), },
};
#undef NUM_KEYWORDS
@@ -119,9 +121,11 @@ datetime_date_replace(PyObject *self, PyObject *const *args, Py_ssize_t nargs, P
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(year), &_Py_ID(month), &_Py_ID(day), },
};
#undef NUM_KEYWORDS
@@ -206,9 +210,11 @@ datetime_time_replace(PyObject *self, PyObject *const *args, Py_ssize_t nargs, P
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(hour), &_Py_ID(minute), &_Py_ID(second), &_Py_ID(microsecond), &_Py_ID(tzinfo), &_Py_ID(fold), },
};
#undef NUM_KEYWORDS
@@ -326,9 +332,11 @@ datetime_datetime_now(PyObject *type, PyObject *const *args, Py_ssize_t nargs, P
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(tz), },
};
#undef NUM_KEYWORDS
@@ -392,9 +400,11 @@ datetime_datetime_replace(PyObject *self, PyObject *const *args, Py_ssize_t narg
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(year), &_Py_ID(month), &_Py_ID(day), &_Py_ID(hour), &_Py_ID(minute), &_Py_ID(second), &_Py_ID(microsecond), &_Py_ID(tzinfo), &_Py_ID(fold), },
};
#undef NUM_KEYWORDS
@@ -514,4 +524,4 @@ skip_optional_kwonly:
exit:
return return_value;
}
-/*[clinic end generated code: output=7b55f2d9a4596b58 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=809640e747529c72 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_elementtree.c.h b/Modules/clinic/_elementtree.c.h
index e79f20d8620..c9e77a4c2b9 100644
--- a/Modules/clinic/_elementtree.c.h
+++ b/Modules/clinic/_elementtree.c.h
@@ -277,9 +277,11 @@ _elementtree_Element_find(PyObject *self, PyTypeObject *cls, PyObject *const *ar
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), &_Py_ID(namespaces), },
};
#undef NUM_KEYWORDS
@@ -341,9 +343,11 @@ _elementtree_Element_findtext(PyObject *self, PyTypeObject *cls, PyObject *const
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), &_Py_ID(default), &_Py_ID(namespaces), },
};
#undef NUM_KEYWORDS
@@ -411,9 +415,11 @@ _elementtree_Element_findall(PyObject *self, PyTypeObject *cls, PyObject *const
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), &_Py_ID(namespaces), },
};
#undef NUM_KEYWORDS
@@ -474,9 +480,11 @@ _elementtree_Element_iterfind(PyObject *self, PyTypeObject *cls, PyObject *const
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), &_Py_ID(namespaces), },
};
#undef NUM_KEYWORDS
@@ -537,9 +545,11 @@ _elementtree_Element_get(PyObject *self, PyObject *const *args, Py_ssize_t nargs
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(key), &_Py_ID(default), },
};
#undef NUM_KEYWORDS
@@ -600,9 +610,11 @@ _elementtree_Element_iter(PyObject *self, PyTypeObject *cls, PyObject *const *ar
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(tag), },
};
#undef NUM_KEYWORDS
@@ -864,9 +876,11 @@ _elementtree_TreeBuilder___init__(PyObject *self, PyObject *args, PyObject *kwar
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(element_factory), &_Py_ID(comment_factory), &_Py_ID(pi_factory), &_Py_ID(insert_comments), &_Py_ID(insert_pis), },
};
#undef NUM_KEYWORDS
@@ -1139,9 +1153,11 @@ _elementtree_XMLParser___init__(PyObject *self, PyObject *args, PyObject *kwargs
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(target), &_Py_ID(encoding), },
};
#undef NUM_KEYWORDS
@@ -1315,4 +1331,4 @@ skip_optional:
exit:
return return_value;
}
-/*[clinic end generated code: output=0eed58350c3c1832 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=c863ce16d8566291 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_functoolsmodule.c.h b/Modules/clinic/_functoolsmodule.c.h
index afd5eb4eb12..23f66631085 100644
--- a/Modules/clinic/_functoolsmodule.c.h
+++ b/Modules/clinic/_functoolsmodule.c.h
@@ -34,9 +34,11 @@ _functools_cmp_to_key(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(mycmp), },
};
#undef NUM_KEYWORDS
@@ -98,9 +100,11 @@ _functools_reduce(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyO
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(initial), },
};
#undef NUM_KEYWORDS
@@ -188,4 +192,4 @@ _functools__lru_cache_wrapper_cache_clear(PyObject *self, PyObject *Py_UNUSED(ig
return return_value;
}
-/*[clinic end generated code: output=e6edcc01f0720daf input=a9049054013a1b77]*/
+/*[clinic end generated code: output=7f2abc718fcc35d5 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_hashopenssl.c.h b/Modules/clinic/_hashopenssl.c.h
index 7bf6af1eeeb..bfb2d9afc87 100644
--- a/Modules/clinic/_hashopenssl.c.h
+++ b/Modules/clinic/_hashopenssl.c.h
@@ -109,9 +109,11 @@ EVPXOF_digest(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(length), },
};
#undef NUM_KEYWORDS
@@ -180,9 +182,11 @@ EVPXOF_hexdigest(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObje
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(length), },
};
#undef NUM_KEYWORDS
@@ -255,9 +259,11 @@ EVP_new(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwn
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(name), &_Py_ID(string), &_Py_ID(usedforsecurity), },
};
#undef NUM_KEYWORDS
@@ -333,9 +339,11 @@ _hashlib_openssl_md5(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), },
};
#undef NUM_KEYWORDS
@@ -409,9 +417,11 @@ _hashlib_openssl_sha1(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), },
};
#undef NUM_KEYWORDS
@@ -485,9 +495,11 @@ _hashlib_openssl_sha224(PyObject *module, PyObject *const *args, Py_ssize_t narg
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), },
};
#undef NUM_KEYWORDS
@@ -561,9 +573,11 @@ _hashlib_openssl_sha256(PyObject *module, PyObject *const *args, Py_ssize_t narg
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), },
};
#undef NUM_KEYWORDS
@@ -637,9 +651,11 @@ _hashlib_openssl_sha384(PyObject *module, PyObject *const *args, Py_ssize_t narg
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), },
};
#undef NUM_KEYWORDS
@@ -713,9 +729,11 @@ _hashlib_openssl_sha512(PyObject *module, PyObject *const *args, Py_ssize_t narg
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), },
};
#undef NUM_KEYWORDS
@@ -791,9 +809,11 @@ _hashlib_openssl_sha3_224(PyObject *module, PyObject *const *args, Py_ssize_t na
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), },
};
#undef NUM_KEYWORDS
@@ -871,9 +891,11 @@ _hashlib_openssl_sha3_256(PyObject *module, PyObject *const *args, Py_ssize_t na
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), },
};
#undef NUM_KEYWORDS
@@ -951,9 +973,11 @@ _hashlib_openssl_sha3_384(PyObject *module, PyObject *const *args, Py_ssize_t na
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), },
};
#undef NUM_KEYWORDS
@@ -1031,9 +1055,11 @@ _hashlib_openssl_sha3_512(PyObject *module, PyObject *const *args, Py_ssize_t na
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), },
};
#undef NUM_KEYWORDS
@@ -1111,9 +1137,11 @@ _hashlib_openssl_shake_128(PyObject *module, PyObject *const *args, Py_ssize_t n
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), },
};
#undef NUM_KEYWORDS
@@ -1191,9 +1219,11 @@ _hashlib_openssl_shake_256(PyObject *module, PyObject *const *args, Py_ssize_t n
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), },
};
#undef NUM_KEYWORDS
@@ -1271,9 +1301,11 @@ pbkdf2_hmac(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(hash_name), &_Py_ID(password), &_Py_ID(salt), &_Py_ID(iterations), &_Py_ID(dklen), },
};
#undef NUM_KEYWORDS
@@ -1373,9 +1405,11 @@ _hashlib_scrypt(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(password), &_Py_ID(salt), _Py_LATIN1_CHR('n'), _Py_LATIN1_CHR('r'), _Py_LATIN1_CHR('p'), &_Py_ID(maxmem), &_Py_ID(dklen), },
};
#undef NUM_KEYWORDS
@@ -1505,9 +1539,11 @@ _hashlib_hmac_singleshot(PyObject *module, PyObject *const *args, Py_ssize_t nar
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(key), &_Py_ID(msg), &_Py_ID(digest), },
};
#undef NUM_KEYWORDS
@@ -1579,9 +1615,11 @@ _hashlib_hmac_new(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyO
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(key), &_Py_ID(msg), &_Py_ID(digestmod), },
};
#undef NUM_KEYWORDS
@@ -1674,9 +1712,11 @@ _hashlib_HMAC_update(PyObject *self, PyObject *const *args, Py_ssize_t nargs, Py
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(msg), },
};
#undef NUM_KEYWORDS
@@ -1857,4 +1897,4 @@ exit:
#ifndef _HASHLIB_SCRYPT_METHODDEF
#define _HASHLIB_SCRYPT_METHODDEF
#endif /* !defined(_HASHLIB_SCRYPT_METHODDEF) */
-/*[clinic end generated code: output=e9624853a73bb65a input=a9049054013a1b77]*/
+/*[clinic end generated code: output=d908fa85e0251426 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_lsprof.c.h b/Modules/clinic/_lsprof.c.h
index 6a75a8f9833..2918a6bc7ab 100644
--- a/Modules/clinic/_lsprof.c.h
+++ b/Modules/clinic/_lsprof.c.h
@@ -218,9 +218,11 @@ _lsprof_Profiler_enable(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(subcalls), &_Py_ID(builtins), },
};
#undef NUM_KEYWORDS
@@ -331,9 +333,11 @@ profiler_init(PyObject *self, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(timer), &_Py_ID(timeunit), &_Py_ID(subcalls), &_Py_ID(builtins), },
};
#undef NUM_KEYWORDS
@@ -407,4 +411,4 @@ skip_optional_pos:
exit:
return return_value;
}
-/*[clinic end generated code: output=d983dbf23fd8ac3b input=a9049054013a1b77]*/
+/*[clinic end generated code: output=fe231309776df7a7 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_lzmamodule.c.h b/Modules/clinic/_lzmamodule.c.h
index c7c81d8d1f1..ebdc81a0dac 100644
--- a/Modules/clinic/_lzmamodule.c.h
+++ b/Modules/clinic/_lzmamodule.c.h
@@ -104,9 +104,11 @@ _lzma_LZMADecompressor_decompress(PyObject *self, PyObject *const *args, Py_ssiz
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(data), &_Py_ID(max_length), },
};
#undef NUM_KEYWORDS
@@ -200,9 +202,11 @@ _lzma_LZMADecompressor(PyTypeObject *type, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(format), &_Py_ID(memlimit), &_Py_ID(filters), },
};
#undef NUM_KEYWORDS
@@ -329,4 +333,4 @@ exit:
return return_value;
}
-/*[clinic end generated code: output=19ed9b1182f5ddf9 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=6386084cb43d2533 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_opcode.c.h b/Modules/clinic/_opcode.c.h
index e61762e124a..fb8d814241b 100644
--- a/Modules/clinic/_opcode.c.h
+++ b/Modules/clinic/_opcode.c.h
@@ -31,9 +31,11 @@ _opcode_stack_effect(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(jump), },
};
#undef NUM_KEYWORDS
@@ -109,9 +111,11 @@ _opcode_is_valid(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyOb
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(opcode), },
};
#undef NUM_KEYWORDS
@@ -173,9 +177,11 @@ _opcode_has_arg(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(opcode), },
};
#undef NUM_KEYWORDS
@@ -237,9 +243,11 @@ _opcode_has_const(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyO
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(opcode), },
};
#undef NUM_KEYWORDS
@@ -301,9 +309,11 @@ _opcode_has_name(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyOb
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(opcode), },
};
#undef NUM_KEYWORDS
@@ -365,9 +375,11 @@ _opcode_has_jump(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyOb
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(opcode), },
};
#undef NUM_KEYWORDS
@@ -434,9 +446,11 @@ _opcode_has_free(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyOb
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(opcode), },
};
#undef NUM_KEYWORDS
@@ -498,9 +512,11 @@ _opcode_has_local(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyO
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(opcode), },
};
#undef NUM_KEYWORDS
@@ -562,9 +578,11 @@ _opcode_has_exc(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(opcode), },
};
#undef NUM_KEYWORDS
@@ -718,9 +736,11 @@ _opcode_get_executor(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(code), &_Py_ID(offset), },
};
#undef NUM_KEYWORDS
@@ -756,4 +776,4 @@ _opcode_get_executor(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
exit:
return return_value;
}
-/*[clinic end generated code: output=2e0c39286d0253e7 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=a11f02989c3175d7 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_pickle.c.h b/Modules/clinic/_pickle.c.h
index 91d355c5afb..213e817a50a 100644
--- a/Modules/clinic/_pickle.c.h
+++ b/Modules/clinic/_pickle.c.h
@@ -154,9 +154,11 @@ _pickle_Pickler___init__(PyObject *self, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(file), &_Py_ID(protocol), &_Py_ID(fix_imports), &_Py_ID(buffer_callback), },
};
#undef NUM_KEYWORDS
@@ -462,9 +464,11 @@ _pickle_Unpickler___init__(PyObject *self, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(file), &_Py_ID(fix_imports), &_Py_ID(encoding), &_Py_ID(errors), &_Py_ID(buffers), },
};
#undef NUM_KEYWORDS
@@ -657,9 +661,11 @@ _pickle_dump(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(obj), &_Py_ID(file), &_Py_ID(protocol), &_Py_ID(fix_imports), &_Py_ID(buffer_callback), },
};
#undef NUM_KEYWORDS
@@ -762,9 +768,11 @@ _pickle_dumps(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObjec
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(obj), &_Py_ID(protocol), &_Py_ID(fix_imports), &_Py_ID(buffer_callback), },
};
#undef NUM_KEYWORDS
@@ -871,9 +879,11 @@ _pickle_load(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(file), &_Py_ID(fix_imports), &_Py_ID(encoding), &_Py_ID(errors), &_Py_ID(buffers), },
};
#undef NUM_KEYWORDS
@@ -998,9 +1008,11 @@ _pickle_loads(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObjec
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(fix_imports), &_Py_ID(encoding), &_Py_ID(errors), &_Py_ID(buffers), },
};
#undef NUM_KEYWORDS
@@ -1086,4 +1098,4 @@ skip_optional_kwonly:
exit:
return return_value;
}
-/*[clinic end generated code: output=d71dc73af298ebe8 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=6331c72b3c427f63 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_queuemodule.c.h b/Modules/clinic/_queuemodule.c.h
index 2dfc3e6be19..1751d68716b 100644
--- a/Modules/clinic/_queuemodule.c.h
+++ b/Modules/clinic/_queuemodule.c.h
@@ -64,9 +64,11 @@ _queue_SimpleQueue_put(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(item), &_Py_ID(block), &_Py_ID(timeout), },
};
#undef NUM_KEYWORDS
@@ -142,9 +144,11 @@ _queue_SimpleQueue_put_nowait(PyObject *self, PyObject *const *args, Py_ssize_t
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(item), },
};
#undef NUM_KEYWORDS
@@ -209,9 +213,11 @@ _queue_SimpleQueue_get(PyObject *self, PyTypeObject *cls, PyObject *const *args,
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(block), &_Py_ID(timeout), },
};
#undef NUM_KEYWORDS
@@ -352,4 +358,4 @@ _queue_SimpleQueue_qsize(PyObject *self, PyObject *Py_UNUSED(ignored))
exit:
return return_value;
}
-/*[clinic end generated code: output=e04e15a1b959c700 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=1d3efe9df89997cf input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_ssl.c.h b/Modules/clinic/_ssl.c.h
index 9656f09c471..c6e2abd4d93 100644
--- a/Modules/clinic/_ssl.c.h
+++ b/Modules/clinic/_ssl.c.h
@@ -601,9 +601,11 @@ _ssl__SSLSocket_get_channel_binding(PyObject *self, PyObject *const *args, Py_ss
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(cb_type), },
};
#undef NUM_KEYWORDS
@@ -1379,9 +1381,11 @@ _ssl__SSLContext_load_cert_chain(PyObject *self, PyObject *const *args, Py_ssize
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(certfile), &_Py_ID(keyfile), &_Py_ID(password), },
};
#undef NUM_KEYWORDS
@@ -1453,9 +1457,11 @@ _ssl__SSLContext_load_verify_locations(PyObject *self, PyObject *const *args, Py
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(cafile), &_Py_ID(capath), &_Py_ID(cadata), },
};
#undef NUM_KEYWORDS
@@ -1555,9 +1561,11 @@ _ssl__SSLContext__wrap_socket(PyObject *self, PyObject *const *args, Py_ssize_t
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(sock), &_Py_ID(server_side), &_Py_ID(server_hostname), &_Py_ID(owner), &_Py_ID(session), },
};
#undef NUM_KEYWORDS
@@ -1650,9 +1658,11 @@ _ssl__SSLContext__wrap_bio(PyObject *self, PyObject *const *args, Py_ssize_t nar
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(incoming), &_Py_ID(outgoing), &_Py_ID(server_side), &_Py_ID(server_hostname), &_Py_ID(owner), &_Py_ID(session), },
};
#undef NUM_KEYWORDS
@@ -1915,9 +1925,11 @@ _ssl__SSLContext_get_ca_certs(PyObject *self, PyObject *const *args, Py_ssize_t
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(binary_form), },
};
#undef NUM_KEYWORDS
@@ -1981,9 +1993,11 @@ _ssl__SSLContext_set_psk_client_callback(PyObject *self, PyObject *const *args,
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(callback), },
};
#undef NUM_KEYWORDS
@@ -2040,9 +2054,11 @@ _ssl__SSLContext_set_psk_server_callback(PyObject *self, PyObject *const *args,
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(callback), &_Py_ID(identity_hint), },
};
#undef NUM_KEYWORDS
@@ -2624,9 +2640,11 @@ _ssl_txt2obj(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(txt), &_Py_ID(name), },
};
#undef NUM_KEYWORDS
@@ -2742,9 +2760,11 @@ _ssl_enum_certificates(PyObject *module, PyObject *const *args, Py_ssize_t nargs
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(store_name), },
};
#undef NUM_KEYWORDS
@@ -2821,9 +2841,11 @@ _ssl_enum_crls(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObje
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(store_name), },
};
#undef NUM_KEYWORDS
@@ -2878,4 +2900,4 @@ exit:
#ifndef _SSL_ENUM_CRLS_METHODDEF
#define _SSL_ENUM_CRLS_METHODDEF
#endif /* !defined(_SSL_ENUM_CRLS_METHODDEF) */
-/*[clinic end generated code: output=c402c53dc30a14fa input=a9049054013a1b77]*/
+/*[clinic end generated code: output=748650909fec8906 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_struct.c.h b/Modules/clinic/_struct.c.h
index 0e50395f70d..e4eaadb91eb 100644
--- a/Modules/clinic/_struct.c.h
+++ b/Modules/clinic/_struct.c.h
@@ -33,9 +33,11 @@ Struct___init__(PyObject *self, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(format), },
};
#undef NUM_KEYWORDS
@@ -136,9 +138,11 @@ Struct_unpack_from(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyOb
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(buffer), &_Py_ID(offset), },
};
#undef NUM_KEYWORDS
@@ -347,9 +351,11 @@ unpack_from(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(buffer), &_Py_ID(offset), },
};
#undef NUM_KEYWORDS
@@ -452,4 +458,4 @@ exit:
return return_value;
}
-/*[clinic end generated code: output=c7c051850b7ad427 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=caa7f36443e91cb9 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_testclinic.c.h b/Modules/clinic/_testclinic.c.h
index 434488adbbb..f378e95cd6b 100644
--- a/Modules/clinic/_testclinic.c.h
+++ b/Modules/clinic/_testclinic.c.h
@@ -1456,9 +1456,11 @@ keywords(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kw
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('a'), _Py_LATIN1_CHR('b'), },
};
#undef NUM_KEYWORDS
@@ -1513,9 +1515,11 @@ keywords_kwonly(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('a'), _Py_LATIN1_CHR('b'), },
};
#undef NUM_KEYWORDS
@@ -1570,9 +1574,11 @@ keywords_opt(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('a'), _Py_LATIN1_CHR('b'), _Py_LATIN1_CHR('c'), },
};
#undef NUM_KEYWORDS
@@ -1640,9 +1646,11 @@ keywords_opt_kwonly(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('a'), _Py_LATIN1_CHR('b'), _Py_LATIN1_CHR('c'), _Py_LATIN1_CHR('d'), },
};
#undef NUM_KEYWORDS
@@ -1721,9 +1729,11 @@ keywords_kwonly_opt(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('a'), _Py_LATIN1_CHR('b'), _Py_LATIN1_CHR('c'), },
};
#undef NUM_KEYWORDS
@@ -1790,9 +1800,11 @@ posonly_keywords(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyOb
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('b'), },
};
#undef NUM_KEYWORDS
@@ -1847,9 +1859,11 @@ posonly_kwonly(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObje
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('b'), },
};
#undef NUM_KEYWORDS
@@ -1905,9 +1919,11 @@ posonly_keywords_kwonly(PyObject *module, PyObject *const *args, Py_ssize_t narg
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('b'), _Py_LATIN1_CHR('c'), },
};
#undef NUM_KEYWORDS
@@ -1965,9 +1981,11 @@ posonly_keywords_opt(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('b'), _Py_LATIN1_CHR('c'), _Py_LATIN1_CHR('d'), },
};
#undef NUM_KEYWORDS
@@ -2037,9 +2055,11 @@ posonly_opt_keywords_opt(PyObject *module, PyObject *const *args, Py_ssize_t nar
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('c'), _Py_LATIN1_CHR('d'), },
};
#undef NUM_KEYWORDS
@@ -2114,9 +2134,11 @@ posonly_kwonly_opt(PyObject *module, PyObject *const *args, Py_ssize_t nargs, Py
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('b'), _Py_LATIN1_CHR('c'), _Py_LATIN1_CHR('d'), },
};
#undef NUM_KEYWORDS
@@ -2186,9 +2208,11 @@ posonly_opt_kwonly_opt(PyObject *module, PyObject *const *args, Py_ssize_t nargs
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('c'), _Py_LATIN1_CHR('d'), },
};
#undef NUM_KEYWORDS
@@ -2263,9 +2287,11 @@ posonly_keywords_kwonly_opt(PyObject *module, PyObject *const *args, Py_ssize_t
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('b'), _Py_LATIN1_CHR('c'), _Py_LATIN1_CHR('d'), _Py_LATIN1_CHR('e'), },
};
#undef NUM_KEYWORDS
@@ -2339,9 +2365,11 @@ posonly_keywords_opt_kwonly_opt(PyObject *module, PyObject *const *args, Py_ssiz
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('b'), _Py_LATIN1_CHR('c'), _Py_LATIN1_CHR('d'), _Py_LATIN1_CHR('e'), },
};
#undef NUM_KEYWORDS
@@ -2424,9 +2452,11 @@ posonly_opt_keywords_opt_kwonly_opt(PyObject *module, PyObject *const *args, Py_
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('c'), _Py_LATIN1_CHR('d'), },
};
#undef NUM_KEYWORDS
@@ -2504,9 +2534,11 @@ keyword_only_parameter(PyObject *module, PyObject *const *args, Py_ssize_t nargs
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('a'), },
};
#undef NUM_KEYWORDS
@@ -2672,9 +2704,11 @@ posonly_poskw_varpos(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('b'), },
};
#undef NUM_KEYWORDS
@@ -2740,9 +2774,11 @@ poskw_varpos(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('a'), },
};
#undef NUM_KEYWORDS
@@ -2807,9 +2843,11 @@ poskw_varpos_kwonly_opt(PyObject *module, PyObject *const *args, Py_ssize_t narg
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('a'), _Py_LATIN1_CHR('b'), },
};
#undef NUM_KEYWORDS
@@ -2884,9 +2922,11 @@ poskw_varpos_kwonly_opt2(PyObject *module, PyObject *const *args, Py_ssize_t nar
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('a'), _Py_LATIN1_CHR('b'), _Py_LATIN1_CHR('c'), },
};
#undef NUM_KEYWORDS
@@ -2964,9 +3004,11 @@ varpos_kwonly_opt(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyO
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('b'), },
};
#undef NUM_KEYWORDS
@@ -3034,9 +3076,11 @@ varpos_kwonly_req_opt(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('a'), _Py_LATIN1_CHR('b'), _Py_LATIN1_CHR('c'), },
};
#undef NUM_KEYWORDS
@@ -3213,9 +3257,11 @@ posonly_poskw_varpos_array(PyObject *module, PyObject *const *args, Py_ssize_t n
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('b'), },
};
#undef NUM_KEYWORDS
@@ -3277,9 +3323,11 @@ gh_32092_oob(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(pos1), &_Py_ID(pos2), &_Py_ID(kw1), &_Py_ID(kw2), },
};
#undef NUM_KEYWORDS
@@ -3361,9 +3409,11 @@ gh_32092_kw_pass(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyOb
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(pos), &_Py_ID(kw), },
};
#undef NUM_KEYWORDS
@@ -3501,9 +3551,11 @@ null_or_tuple_for_varargs(PyObject *module, PyObject *const *args, Py_ssize_t na
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(name), &_Py_ID(covariant), },
};
#undef NUM_KEYWORDS
@@ -3577,9 +3629,11 @@ clone_f1(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kw
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), },
};
#undef NUM_KEYWORDS
@@ -3644,9 +3698,11 @@ clone_f2(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kw
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), },
};
#undef NUM_KEYWORDS
@@ -3711,9 +3767,11 @@ clone_with_conv_f1(PyObject *module, PyObject *const *args, Py_ssize_t nargs, Py
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), },
};
#undef NUM_KEYWORDS
@@ -3775,9 +3833,11 @@ clone_with_conv_f2(PyObject *module, PyObject *const *args, Py_ssize_t nargs, Py
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), },
};
#undef NUM_KEYWORDS
@@ -3863,9 +3923,11 @@ _testclinic_TestClass_get_defining_class_arg(PyObject *self, PyTypeObject *cls,
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(arg), },
};
#undef NUM_KEYWORDS
@@ -4117,9 +4179,11 @@ posonly_poskw_varpos_no_fastcall(PyTypeObject *type, PyObject *args, PyObject *k
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('b'), },
};
#undef NUM_KEYWORDS
@@ -4272,9 +4336,11 @@ posonly_poskw_varpos_array_no_fastcall(PyTypeObject *type, PyObject *args, PyObj
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('b'), },
};
#undef NUM_KEYWORDS
@@ -4313,4 +4379,4 @@ posonly_poskw_varpos_array_no_fastcall(PyTypeObject *type, PyObject *args, PyObj
exit:
return return_value;
}
-/*[clinic end generated code: output=00085e5637450fe6 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=a3726ee0a94090d1 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_testclinic_depr.c.h b/Modules/clinic/_testclinic_depr.c.h
index 9378038e6b9..a46d238801b 100644
--- a/Modules/clinic/_testclinic_depr.c.h
+++ b/Modules/clinic/_testclinic_depr.c.h
@@ -46,9 +46,11 @@ depr_star_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('a'), },
};
#undef NUM_KEYWORDS
@@ -132,9 +134,11 @@ depr_star_new_clone(PyObject *type, PyObject *const *args, Py_ssize_t nargs, PyO
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('a'), },
};
#undef NUM_KEYWORDS
@@ -215,9 +219,11 @@ depr_star_init(PyObject *self, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('a'), },
};
#undef NUM_KEYWORDS
@@ -301,9 +307,11 @@ depr_star_init_clone(PyObject *self, PyObject *const *args, Py_ssize_t nargs, Py
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('a'), },
};
#undef NUM_KEYWORDS
@@ -374,9 +382,11 @@ depr_star_init_noinline(PyObject *self, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('a'), _Py_LATIN1_CHR('b'), _Py_LATIN1_CHR('c'), _Py_LATIN1_CHR('d'), },
};
#undef NUM_KEYWORDS
@@ -453,9 +463,11 @@ depr_kwd_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('a'), },
};
#undef NUM_KEYWORDS
@@ -537,9 +549,11 @@ depr_kwd_init(PyObject *self, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('a'), },
};
#undef NUM_KEYWORDS
@@ -612,9 +626,11 @@ depr_kwd_init_noinline(PyObject *self, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('b'), _Py_LATIN1_CHR('c'), _Py_LATIN1_CHR('d'), },
};
#undef NUM_KEYWORDS
@@ -696,9 +712,11 @@ depr_star_pos0_len1(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('a'), },
};
#undef NUM_KEYWORDS
@@ -775,9 +793,11 @@ depr_star_pos0_len2(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('a'), _Py_LATIN1_CHR('b'), },
};
#undef NUM_KEYWORDS
@@ -857,9 +877,11 @@ depr_star_pos0_len3_with_kwd(PyObject *module, PyObject *const *args, Py_ssize_t
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('a'), _Py_LATIN1_CHR('b'), _Py_LATIN1_CHR('c'), _Py_LATIN1_CHR('d'), },
};
#undef NUM_KEYWORDS
@@ -942,9 +964,11 @@ depr_star_pos1_len1_opt(PyObject *module, PyObject *const *args, Py_ssize_t narg
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('a'), _Py_LATIN1_CHR('b'), },
};
#undef NUM_KEYWORDS
@@ -1028,9 +1052,11 @@ depr_star_pos1_len1(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('a'), _Py_LATIN1_CHR('b'), },
};
#undef NUM_KEYWORDS
@@ -1110,9 +1136,11 @@ depr_star_pos1_len2_with_kwd(PyObject *module, PyObject *const *args, Py_ssize_t
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('a'), _Py_LATIN1_CHR('b'), _Py_LATIN1_CHR('c'), _Py_LATIN1_CHR('d'), },
};
#undef NUM_KEYWORDS
@@ -1196,9 +1224,11 @@ depr_star_pos2_len1(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('a'), _Py_LATIN1_CHR('b'), _Py_LATIN1_CHR('c'), },
};
#undef NUM_KEYWORDS
@@ -1280,9 +1310,11 @@ depr_star_pos2_len2(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('a'), _Py_LATIN1_CHR('b'), _Py_LATIN1_CHR('c'), _Py_LATIN1_CHR('d'), },
};
#undef NUM_KEYWORDS
@@ -1366,9 +1398,11 @@ depr_star_pos2_len2_with_kwd(PyObject *module, PyObject *const *args, Py_ssize_t
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('a'), _Py_LATIN1_CHR('b'), _Py_LATIN1_CHR('c'), _Py_LATIN1_CHR('d'), _Py_LATIN1_CHR('e'), },
};
#undef NUM_KEYWORDS
@@ -1454,9 +1488,11 @@ depr_star_noinline(PyObject *module, PyObject *const *args, Py_ssize_t nargs, Py
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('a'), _Py_LATIN1_CHR('b'), _Py_LATIN1_CHR('c'), _Py_LATIN1_CHR('d'), },
};
#undef NUM_KEYWORDS
@@ -1538,9 +1574,11 @@ depr_star_multi(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('a'), _Py_LATIN1_CHR('b'), _Py_LATIN1_CHR('c'), _Py_LATIN1_CHR('d'), _Py_LATIN1_CHR('e'), _Py_LATIN1_CHR('f'), _Py_LATIN1_CHR('g'), _Py_LATIN1_CHR('h'), },
};
#undef NUM_KEYWORDS
@@ -1632,9 +1670,11 @@ depr_kwd_required_1(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('b'), },
};
#undef NUM_KEYWORDS
@@ -1714,9 +1754,11 @@ depr_kwd_required_2(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('b'), _Py_LATIN1_CHR('c'), },
};
#undef NUM_KEYWORDS
@@ -1796,9 +1838,11 @@ depr_kwd_optional_1(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('b'), },
};
#undef NUM_KEYWORDS
@@ -1883,9 +1927,11 @@ depr_kwd_optional_2(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('b'), _Py_LATIN1_CHR('c'), },
};
#undef NUM_KEYWORDS
@@ -1977,9 +2023,11 @@ depr_kwd_optional_3(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('a'), _Py_LATIN1_CHR('b'), _Py_LATIN1_CHR('c'), },
};
#undef NUM_KEYWORDS
@@ -2076,9 +2124,11 @@ depr_kwd_required_optional(PyObject *module, PyObject *const *args, Py_ssize_t n
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('b'), _Py_LATIN1_CHR('c'), },
};
#undef NUM_KEYWORDS
@@ -2165,9 +2215,11 @@ depr_kwd_noinline(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyO
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('b'), _Py_LATIN1_CHR('c'), _Py_LATIN1_CHR('d'), },
};
#undef NUM_KEYWORDS
@@ -2252,9 +2304,11 @@ depr_kwd_multi(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObje
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('b'), _Py_LATIN1_CHR('c'), _Py_LATIN1_CHR('d'), _Py_LATIN1_CHR('e'), _Py_LATIN1_CHR('f'), _Py_LATIN1_CHR('g'), _Py_LATIN1_CHR('h'), },
};
#undef NUM_KEYWORDS
@@ -2354,9 +2408,11 @@ depr_multi(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('b'), _Py_LATIN1_CHR('c'), _Py_LATIN1_CHR('d'), _Py_LATIN1_CHR('e'), _Py_LATIN1_CHR('f'), _Py_LATIN1_CHR('g'), },
};
#undef NUM_KEYWORDS
@@ -2418,4 +2474,4 @@ depr_multi(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *
exit:
return return_value;
}
-/*[clinic end generated code: output=836affc1a13d67a1 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=4e60af44fd6b7b94 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_testinternalcapi.c.h b/Modules/clinic/_testinternalcapi.c.h
index d98d69df22f..7dfc16965cc 100644
--- a/Modules/clinic/_testinternalcapi.c.h
+++ b/Modules/clinic/_testinternalcapi.c.h
@@ -30,9 +30,11 @@ _testinternalcapi_compiler_cleandoc(PyObject *module, PyObject *const *args, Py_
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(doc), },
};
#undef NUM_KEYWORDS
@@ -110,9 +112,11 @@ _testinternalcapi_compiler_codegen(PyObject *module, PyObject *const *args, Py_s
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(ast), &_Py_ID(filename), &_Py_ID(optimize), &_Py_ID(compile_mode), },
};
#undef NUM_KEYWORDS
@@ -184,9 +188,11 @@ _testinternalcapi_optimize_cfg(PyObject *module, PyObject *const *args, Py_ssize
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(instructions), &_Py_ID(consts), &_Py_ID(nlocals), },
};
#undef NUM_KEYWORDS
@@ -250,9 +256,11 @@ _testinternalcapi_assemble_code_object(PyObject *module, PyObject *const *args,
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(filename), &_Py_ID(instructions), &_Py_ID(metadata), },
};
#undef NUM_KEYWORDS
@@ -327,9 +335,11 @@ gh_119213_getargs(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyO
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(spam), },
};
#undef NUM_KEYWORDS
@@ -365,4 +375,4 @@ skip_optional_pos:
exit:
return return_value;
}
-/*[clinic end generated code: output=ec77971c6c2663da input=a9049054013a1b77]*/
+/*[clinic end generated code: output=da34166d2c147e7a input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_testmultiphase.c.h b/Modules/clinic/_testmultiphase.c.h
index 01c29c0753a..311b6409476 100644
--- a/Modules/clinic/_testmultiphase.c.h
+++ b/Modules/clinic/_testmultiphase.c.h
@@ -85,9 +85,11 @@ _testmultiphase_StateAccessType_increment_count_clinic(PyObject *self, PyTypeObj
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('n'), &_Py_ID(twice), },
};
#undef NUM_KEYWORDS
@@ -163,4 +165,4 @@ _testmultiphase_StateAccessType_get_count(PyObject *self, PyTypeObject *cls, PyO
}
return _testmultiphase_StateAccessType_get_count_impl((StateAccessTypeObject *)self, cls);
}
-/*[clinic end generated code: output=ea0ca98e467e53c2 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=8eed2f14292ec986 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_threadmodule.c.h b/Modules/clinic/_threadmodule.c.h
index 367831c25a9..8930e54170c 100644
--- a/Modules/clinic/_threadmodule.c.h
+++ b/Modules/clinic/_threadmodule.c.h
@@ -54,9 +54,11 @@ _thread_set_name(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyOb
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(name), },
};
#undef NUM_KEYWORDS
@@ -101,4 +103,4 @@ exit:
#ifndef _THREAD_SET_NAME_METHODDEF
#define _THREAD_SET_NAME_METHODDEF
#endif /* !defined(_THREAD_SET_NAME_METHODDEF) */
-/*[clinic end generated code: output=c7922811558d314f input=a9049054013a1b77]*/
+/*[clinic end generated code: output=e978dc4615b9bc35 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_winapi.c.h b/Modules/clinic/_winapi.c.h
index 6a2f8d45cd4..f8b623fca08 100644
--- a/Modules/clinic/_winapi.c.h
+++ b/Modules/clinic/_winapi.c.h
@@ -119,9 +119,11 @@ _winapi_ConnectNamedPipe(PyObject *module, PyObject *const *args, Py_ssize_t nar
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(handle), &_Py_ID(overlapped), },
};
#undef NUM_KEYWORDS
@@ -176,9 +178,11 @@ _winapi_CreateEventW(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(security_attributes), &_Py_ID(manual_reset), &_Py_ID(initial_state), &_Py_ID(name), },
};
#undef NUM_KEYWORDS
@@ -390,9 +394,11 @@ _winapi_CreateMutexW(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(security_attributes), &_Py_ID(initial_owner), &_Py_ID(name), },
};
#undef NUM_KEYWORDS
@@ -771,9 +777,11 @@ _winapi_GetLongPathName(PyObject *module, PyObject *const *args, Py_ssize_t narg
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), },
};
#undef NUM_KEYWORDS
@@ -876,9 +884,11 @@ _winapi_GetShortPathName(PyObject *module, PyObject *const *args, Py_ssize_t nar
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), },
};
#undef NUM_KEYWORDS
@@ -1075,9 +1085,11 @@ _winapi_OpenEventW(PyObject *module, PyObject *const *args, Py_ssize_t nargs, Py
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(desired_access), &_Py_ID(inherit_handle), &_Py_ID(name), },
};
#undef NUM_KEYWORDS
@@ -1141,9 +1153,11 @@ _winapi_OpenMutexW(PyObject *module, PyObject *const *args, Py_ssize_t nargs, Py
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(desired_access), &_Py_ID(inherit_handle), &_Py_ID(name), },
};
#undef NUM_KEYWORDS
@@ -1314,9 +1328,11 @@ _winapi_LCMapStringEx(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(locale), &_Py_ID(flags), &_Py_ID(src), },
};
#undef NUM_KEYWORDS
@@ -1372,9 +1388,11 @@ _winapi_ReadFile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyOb
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(handle), &_Py_ID(size), &_Py_ID(overlapped), },
};
#undef NUM_KEYWORDS
@@ -1426,9 +1444,11 @@ _winapi_ReleaseMutex(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(mutex), },
};
#undef NUM_KEYWORDS
@@ -1478,9 +1498,11 @@ _winapi_ResetEvent(PyObject *module, PyObject *const *args, Py_ssize_t nargs, Py
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(event), },
};
#undef NUM_KEYWORDS
@@ -1530,9 +1552,11 @@ _winapi_SetEvent(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyOb
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(event), },
};
#undef NUM_KEYWORDS
@@ -1725,9 +1749,11 @@ _winapi_BatchedWaitForMultipleObjects(PyObject *module, PyObject *const *args, P
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(handle_seq), &_Py_ID(wait_all), &_Py_ID(milliseconds), },
};
#undef NUM_KEYWORDS
@@ -1850,9 +1876,11 @@ _winapi_WriteFile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyO
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(handle), &_Py_ID(buffer), &_Py_ID(overlapped), },
};
#undef NUM_KEYWORDS
@@ -1922,9 +1950,11 @@ _winapi_GetFileType(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(handle), },
};
#undef NUM_KEYWORDS
@@ -1984,9 +2014,11 @@ _winapi__mimetypes_read_windows_registry(PyObject *module, PyObject *const *args
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(on_type_read), },
};
#undef NUM_KEYWORDS
@@ -2089,9 +2121,11 @@ _winapi_CopyFile2(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyO
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(existing_file_name), &_Py_ID(new_file_name), &_Py_ID(flags), &_Py_ID(progress_routine), },
};
#undef NUM_KEYWORDS
@@ -2127,4 +2161,4 @@ exit:
return return_value;
}
-/*[clinic end generated code: output=06b56212b2186250 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=6cd07628af447d0a input=a9049054013a1b77]*/
diff --git a/Modules/clinic/_zoneinfo.c.h b/Modules/clinic/_zoneinfo.c.h
index 52ea3368ab1..09ac157cbfd 100644
--- a/Modules/clinic/_zoneinfo.c.h
+++ b/Modules/clinic/_zoneinfo.c.h
@@ -28,9 +28,11 @@ zoneinfo_ZoneInfo(PyTypeObject *type, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(key), },
};
#undef NUM_KEYWORDS
@@ -89,9 +91,11 @@ zoneinfo_ZoneInfo_from_file(PyObject *type, PyTypeObject *cls, PyObject *const *
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(key), },
};
#undef NUM_KEYWORDS
@@ -153,9 +157,11 @@ zoneinfo_ZoneInfo_no_cache(PyObject *type, PyTypeObject *cls, PyObject *const *a
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(key), },
};
#undef NUM_KEYWORDS
@@ -210,9 +216,11 @@ zoneinfo_ZoneInfo_clear_cache(PyObject *type, PyTypeObject *cls, PyObject *const
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(only_keys), },
};
#undef NUM_KEYWORDS
@@ -439,4 +447,4 @@ zoneinfo_ZoneInfo__unpickle(PyObject *type, PyTypeObject *cls, PyObject *const *
exit:
return return_value;
}
-/*[clinic end generated code: output=786e8579e58c2f1c input=a9049054013a1b77]*/
+/*[clinic end generated code: output=8e9e204f390261b9 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/binascii.c.h b/Modules/clinic/binascii.c.h
index f81f12c388f..602e42a4c1a 100644
--- a/Modules/clinic/binascii.c.h
+++ b/Modules/clinic/binascii.c.h
@@ -61,9 +61,11 @@ binascii_b2a_uu(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(backtick), },
};
#undef NUM_KEYWORDS
@@ -138,9 +140,11 @@ binascii_a2b_base64(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(strict_mode), },
};
#undef NUM_KEYWORDS
@@ -210,9 +214,11 @@ binascii_b2a_base64(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(newline), },
};
#undef NUM_KEYWORDS
@@ -390,9 +396,11 @@ binascii_b2a_hex(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyOb
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(data), &_Py_ID(sep), &_Py_ID(bytes_per_sep), },
};
#undef NUM_KEYWORDS
@@ -480,9 +488,11 @@ binascii_hexlify(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyOb
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(data), &_Py_ID(sep), &_Py_ID(bytes_per_sep), },
};
#undef NUM_KEYWORDS
@@ -627,9 +637,11 @@ binascii_a2b_qp(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(data), &_Py_ID(header), },
};
#undef NUM_KEYWORDS
@@ -704,9 +716,11 @@ binascii_b2a_qp(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(data), &_Py_ID(quotetabs), &_Py_ID(istext), &_Py_ID(header), },
};
#undef NUM_KEYWORDS
@@ -774,4 +788,4 @@ exit:
return return_value;
}
-/*[clinic end generated code: output=9ed7fbeec13c6606 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=adb855a2797c3cad input=a9049054013a1b77]*/
diff --git a/Modules/clinic/blake2module.c.h b/Modules/clinic/blake2module.c.h
index 9450334bd67..bb2e308574a 100644
--- a/Modules/clinic/blake2module.c.h
+++ b/Modules/clinic/blake2module.c.h
@@ -35,9 +35,11 @@ py_blake2b_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(digest_size), &_Py_ID(key), &_Py_ID(salt), &_Py_ID(person), &_Py_ID(fanout), &_Py_ID(depth), &_Py_ID(leaf_size), &_Py_ID(node_offset), &_Py_ID(node_depth), &_Py_ID(inner_size), &_Py_ID(last_node), &_Py_ID(usedforsecurity), },
};
#undef NUM_KEYWORDS
@@ -230,9 +232,11 @@ py_blake2s_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(digest_size), &_Py_ID(key), &_Py_ID(salt), &_Py_ID(person), &_Py_ID(fanout), &_Py_ID(depth), &_Py_ID(leaf_size), &_Py_ID(node_offset), &_Py_ID(node_depth), &_Py_ID(inner_size), &_Py_ID(last_node), &_Py_ID(usedforsecurity), },
};
#undef NUM_KEYWORDS
@@ -474,4 +478,4 @@ _blake2_blake2b_hexdigest(PyObject *self, PyObject *Py_UNUSED(ignored))
{
return _blake2_blake2b_hexdigest_impl((Blake2Object *)self);
}
-/*[clinic end generated code: output=b286a0d1be8729b0 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=d30e8293bd8e2950 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/cmathmodule.c.h b/Modules/clinic/cmathmodule.c.h
index 16eaba7aa7e..7f9e65baf12 100644
--- a/Modules/clinic/cmathmodule.c.h
+++ b/Modules/clinic/cmathmodule.c.h
@@ -905,9 +905,11 @@ cmath_isclose(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObjec
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('a'), _Py_LATIN1_CHR('b'), &_Py_ID(rel_tol), &_Py_ID(abs_tol), },
};
#undef NUM_KEYWORDS
@@ -983,4 +985,4 @@ skip_optional_kwonly:
exit:
return return_value;
}
-/*[clinic end generated code: output=5fda69f15dc9dfc9 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=631db17fb1c79d66 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/gcmodule.c.h b/Modules/clinic/gcmodule.c.h
index 0147020bd48..53ff9e4faf8 100644
--- a/Modules/clinic/gcmodule.c.h
+++ b/Modules/clinic/gcmodule.c.h
@@ -102,9 +102,11 @@ gc_collect(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(generation), },
};
#undef NUM_KEYWORDS
@@ -394,9 +396,11 @@ gc_get_objects(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObje
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(generation), },
};
#undef NUM_KEYWORDS
@@ -580,4 +584,4 @@ gc_get_freeze_count(PyObject *module, PyObject *Py_UNUSED(ignored))
exit:
return return_value;
}
-/*[clinic end generated code: output=3e33248997e06c34 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=96d057eac558e6ca input=a9049054013a1b77]*/
diff --git a/Modules/clinic/grpmodule.c.h b/Modules/clinic/grpmodule.c.h
index facfa3a43e4..665c2f2dfda 100644
--- a/Modules/clinic/grpmodule.c.h
+++ b/Modules/clinic/grpmodule.c.h
@@ -32,9 +32,11 @@ grp_getgrgid(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(id), },
};
#undef NUM_KEYWORDS
@@ -90,9 +92,11 @@ grp_getgrnam(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(name), },
};
#undef NUM_KEYWORDS
@@ -148,4 +152,4 @@ grp_getgrall(PyObject *module, PyObject *Py_UNUSED(ignored))
{
return grp_getgrall_impl(module);
}
-/*[clinic end generated code: output=2154194308dab038 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=35aa81c00dbd3229 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/itertoolsmodule.c.h b/Modules/clinic/itertoolsmodule.c.h
index 401c87e846f..0af82e7eb05 100644
--- a/Modules/clinic/itertoolsmodule.c.h
+++ b/Modules/clinic/itertoolsmodule.c.h
@@ -44,9 +44,11 @@ batched_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(iterable), _Py_LATIN1_CHR('n'), &_Py_ID(strict), },
};
#undef NUM_KEYWORDS
@@ -161,9 +163,11 @@ itertools_groupby(PyTypeObject *type, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(iterable), &_Py_ID(key), },
};
#undef NUM_KEYWORDS
@@ -521,9 +525,11 @@ itertools_combinations(PyTypeObject *type, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(iterable), _Py_LATIN1_CHR('r'), },
};
#undef NUM_KEYWORDS
@@ -593,9 +599,11 @@ itertools_combinations_with_replacement(PyTypeObject *type, PyObject *args, PyOb
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(iterable), _Py_LATIN1_CHR('r'), },
};
#undef NUM_KEYWORDS
@@ -664,9 +672,11 @@ itertools_permutations(PyTypeObject *type, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(iterable), _Py_LATIN1_CHR('r'), },
};
#undef NUM_KEYWORDS
@@ -727,9 +737,11 @@ itertools_accumulate(PyTypeObject *type, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(iterable), &_Py_ID(func), &_Py_ID(initial), },
};
#undef NUM_KEYWORDS
@@ -803,9 +815,11 @@ itertools_compress(PyTypeObject *type, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(data), &_Py_ID(selectors), },
};
#undef NUM_KEYWORDS
@@ -902,9 +916,11 @@ itertools_count(PyTypeObject *type, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(start), &_Py_ID(step), },
};
#undef NUM_KEYWORDS
@@ -949,4 +965,4 @@ skip_optional_pos:
exit:
return return_value;
}
-/*[clinic end generated code: output=688855b1dc77bf5a input=a9049054013a1b77]*/
+/*[clinic end generated code: output=999758202a532e0a input=a9049054013a1b77]*/
diff --git a/Modules/clinic/mathmodule.c.h b/Modules/clinic/mathmodule.c.h
index a76dde1eb43..4c2c8acd8f6 100644
--- a/Modules/clinic/mathmodule.c.h
+++ b/Modules/clinic/mathmodule.c.h
@@ -737,9 +737,11 @@ math_isclose(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('a'), _Py_LATIN1_CHR('b'), &_Py_ID(rel_tol), &_Py_ID(abs_tol), },
};
#undef NUM_KEYWORDS
@@ -856,9 +858,11 @@ math_prod(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *k
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(start), },
};
#undef NUM_KEYWORDS
@@ -1007,9 +1011,11 @@ math_nextafter(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObje
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(steps), },
};
#undef NUM_KEYWORDS
@@ -1106,4 +1112,4 @@ math_ulp(PyObject *module, PyObject *arg)
exit:
return return_value;
}
-/*[clinic end generated code: output=1ccb4b9f570d6dad input=a9049054013a1b77]*/
+/*[clinic end generated code: output=634773bd18cd3f93 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/md5module.c.h b/Modules/clinic/md5module.c.h
index fc42bfb61f5..9ca4f6528ce 100644
--- a/Modules/clinic/md5module.c.h
+++ b/Modules/clinic/md5module.c.h
@@ -110,9 +110,11 @@ _md5_md5(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kw
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), },
};
#undef NUM_KEYWORDS
@@ -162,4 +164,4 @@ skip_optional_kwonly:
exit:
return return_value;
}
-/*[clinic end generated code: output=10db0ff2ecf97159 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=73f4d2034d9fcc63 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/overlapped.c.h b/Modules/clinic/overlapped.c.h
index 7e571566002..7e2480bdace 100644
--- a/Modules/clinic/overlapped.c.h
+++ b/Modules/clinic/overlapped.c.h
@@ -459,9 +459,11 @@ _overlapped_Overlapped(PyTypeObject *type, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(event), },
};
#undef NUM_KEYWORDS
@@ -1240,4 +1242,4 @@ exit:
return return_value;
}
-/*[clinic end generated code: output=d009cc9e53d9732a input=a9049054013a1b77]*/
+/*[clinic end generated code: output=3e4cb2b55342cd96 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/posixmodule.c.h b/Modules/clinic/posixmodule.c.h
index abeb9c3e3e1..d03f68ab8fb 100644
--- a/Modules/clinic/posixmodule.c.h
+++ b/Modules/clinic/posixmodule.c.h
@@ -51,9 +51,11 @@ os_stat(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwn
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), &_Py_ID(dir_fd), &_Py_ID(follow_symlinks), },
};
#undef NUM_KEYWORDS
@@ -134,9 +136,11 @@ os_lstat(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kw
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), &_Py_ID(dir_fd), },
};
#undef NUM_KEYWORDS
@@ -231,9 +235,11 @@ os_access(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *k
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), &_Py_ID(mode), &_Py_ID(dir_fd), &_Py_ID(effective_ids), &_Py_ID(follow_symlinks), },
};
#undef NUM_KEYWORDS
@@ -392,9 +398,11 @@ os_chdir(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kw
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), },
};
#undef NUM_KEYWORDS
@@ -458,9 +466,11 @@ os_fchdir(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *k
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(fd), },
};
#undef NUM_KEYWORDS
@@ -544,9 +554,11 @@ os_chmod(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kw
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), &_Py_ID(mode), &_Py_ID(dir_fd), &_Py_ID(follow_symlinks), },
};
#undef NUM_KEYWORDS
@@ -641,9 +653,11 @@ os_fchmod(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *k
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(fd), &_Py_ID(mode), },
};
#undef NUM_KEYWORDS
@@ -712,9 +726,11 @@ os_lchmod(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *k
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), &_Py_ID(mode), },
};
#undef NUM_KEYWORDS
@@ -789,9 +805,11 @@ os_chflags(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), &_Py_ID(flags), &_Py_ID(follow_symlinks), },
};
#undef NUM_KEYWORDS
@@ -873,9 +891,11 @@ os_lchflags(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), &_Py_ID(flags), },
};
#undef NUM_KEYWORDS
@@ -944,9 +964,11 @@ os_chroot(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *k
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), },
};
#undef NUM_KEYWORDS
@@ -1009,9 +1031,11 @@ os_fsync(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kw
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(fd), },
};
#undef NUM_KEYWORDS
@@ -1094,9 +1118,11 @@ os_fdatasync(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(fd), },
};
#undef NUM_KEYWORDS
@@ -1182,9 +1208,11 @@ os_chown(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kw
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), &_Py_ID(uid), &_Py_ID(gid), &_Py_ID(dir_fd), &_Py_ID(follow_symlinks), },
};
#undef NUM_KEYWORDS
@@ -1276,9 +1304,11 @@ os_fchown(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *k
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(fd), &_Py_ID(uid), &_Py_ID(gid), },
};
#undef NUM_KEYWORDS
@@ -1350,9 +1380,11 @@ os_lchown(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *k
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), &_Py_ID(uid), &_Py_ID(gid), },
};
#undef NUM_KEYWORDS
@@ -1471,9 +1503,11 @@ os_link(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwn
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(src), &_Py_ID(dst), &_Py_ID(src_dir_fd), &_Py_ID(dst_dir_fd), &_Py_ID(follow_symlinks), },
};
#undef NUM_KEYWORDS
@@ -1579,9 +1613,11 @@ os_listdir(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), },
};
#undef NUM_KEYWORDS
@@ -1697,9 +1733,11 @@ os_listmounts(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObjec
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(volume), },
};
#undef NUM_KEYWORDS
@@ -1762,9 +1800,11 @@ os__path_isdevdrive(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), },
};
#undef NUM_KEYWORDS
@@ -1928,9 +1968,11 @@ os__getvolumepathname(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), },
};
#undef NUM_KEYWORDS
@@ -1993,9 +2035,11 @@ os__path_splitroot(PyObject *module, PyObject *const *args, Py_ssize_t nargs, Py
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), },
};
#undef NUM_KEYWORDS
@@ -2058,9 +2102,11 @@ os__path_exists(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), },
};
#undef NUM_KEYWORDS
@@ -2128,9 +2174,11 @@ os__path_lexists(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyOb
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), },
};
#undef NUM_KEYWORDS
@@ -2198,9 +2246,11 @@ os__path_isdir(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObje
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('s'), },
};
#undef NUM_KEYWORDS
@@ -2268,9 +2318,11 @@ os__path_isfile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), },
};
#undef NUM_KEYWORDS
@@ -2338,9 +2390,11 @@ os__path_islink(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), },
};
#undef NUM_KEYWORDS
@@ -2408,9 +2462,11 @@ os__path_isjunction(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), },
};
#undef NUM_KEYWORDS
@@ -2478,9 +2534,11 @@ os__path_splitroot_ex(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { _Py_LATIN1_CHR('p'), },
};
#undef NUM_KEYWORDS
@@ -2539,9 +2597,11 @@ os__path_normpath(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyO
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), },
};
#undef NUM_KEYWORDS
@@ -2608,9 +2668,11 @@ os_mkdir(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kw
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), &_Py_ID(mode), &_Py_ID(dir_fd), },
};
#undef NUM_KEYWORDS
@@ -2726,9 +2788,11 @@ os_getpriority(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObje
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(which), &_Py_ID(who), },
};
#undef NUM_KEYWORDS
@@ -2794,9 +2858,11 @@ os_setpriority(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObje
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(which), &_Py_ID(who), &_Py_ID(priority), },
};
#undef NUM_KEYWORDS
@@ -2872,9 +2938,11 @@ os_rename(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *k
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(src), &_Py_ID(dst), &_Py_ID(src_dir_fd), &_Py_ID(dst_dir_fd), },
};
#undef NUM_KEYWORDS
@@ -2964,9 +3032,11 @@ os_replace(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(src), &_Py_ID(dst), &_Py_ID(src_dir_fd), &_Py_ID(dst_dir_fd), },
};
#undef NUM_KEYWORDS
@@ -3054,9 +3124,11 @@ os_rmdir(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kw
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), &_Py_ID(dir_fd), },
};
#undef NUM_KEYWORDS
@@ -3126,9 +3198,11 @@ os_system(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *k
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(command), },
};
#undef NUM_KEYWORDS
@@ -3201,9 +3275,11 @@ os_system(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *k
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(command), },
};
#undef NUM_KEYWORDS
@@ -3306,9 +3382,11 @@ os_unlink(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *k
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), &_Py_ID(dir_fd), },
};
#undef NUM_KEYWORDS
@@ -3381,9 +3459,11 @@ os_remove(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *k
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), &_Py_ID(dir_fd), },
};
#undef NUM_KEYWORDS
@@ -3500,9 +3580,11 @@ os_utime(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kw
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), &_Py_ID(times), &_Py_ID(ns), &_Py_ID(dir_fd), &_Py_ID(follow_symlinks), },
};
#undef NUM_KEYWORDS
@@ -3598,9 +3680,11 @@ os__exit(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kw
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(status), },
};
#undef NUM_KEYWORDS
@@ -3710,9 +3794,11 @@ os_execve(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *k
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), &_Py_ID(argv), &_Py_ID(env), },
};
#undef NUM_KEYWORDS
@@ -3806,9 +3892,11 @@ os_posix_spawn(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObje
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(file_actions), &_Py_ID(setpgroup), &_Py_ID(resetids), &_Py_ID(setsid), &_Py_ID(setsigmask), &_Py_ID(setsigdef), &_Py_ID(scheduler), },
};
#undef NUM_KEYWORDS
@@ -3957,9 +4045,11 @@ os_posix_spawnp(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(file_actions), &_Py_ID(setpgroup), &_Py_ID(resetids), &_Py_ID(setsid), &_Py_ID(setsigmask), &_Py_ID(setsigdef), &_Py_ID(scheduler), },
};
#undef NUM_KEYWORDS
@@ -4201,9 +4291,11 @@ os_register_at_fork(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(before), &_Py_ID(after_in_child), &_Py_ID(after_in_parent), },
};
#undef NUM_KEYWORDS
@@ -4328,9 +4420,11 @@ os_sched_get_priority_max(PyObject *module, PyObject *const *args, Py_ssize_t na
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(policy), },
};
#undef NUM_KEYWORDS
@@ -4391,9 +4485,11 @@ os_sched_get_priority_min(PyObject *module, PyObject *const *args, Py_ssize_t na
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(policy), },
};
#undef NUM_KEYWORDS
@@ -4488,9 +4584,11 @@ os_sched_param(PyTypeObject *type, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(sched_priority), },
};
#undef NUM_KEYWORDS
@@ -5354,9 +5452,11 @@ os_getpgid(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(pid), },
};
#undef NUM_KEYWORDS
@@ -5866,9 +5966,11 @@ os_wait3(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kw
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(options), },
};
#undef NUM_KEYWORDS
@@ -5932,9 +6034,11 @@ os_wait4(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kw
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(pid), &_Py_ID(options), },
};
#undef NUM_KEYWORDS
@@ -6173,9 +6277,11 @@ os_pidfd_open(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObjec
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(pid), &_Py_ID(flags), },
};
#undef NUM_KEYWORDS
@@ -6250,9 +6356,11 @@ os_setns(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kw
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(fd), &_Py_ID(nstype), },
};
#undef NUM_KEYWORDS
@@ -6326,9 +6434,11 @@ os_unshare(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(flags), },
};
#undef NUM_KEYWORDS
@@ -6395,9 +6505,11 @@ os_readlink(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), &_Py_ID(dir_fd), },
};
#undef NUM_KEYWORDS
@@ -6480,9 +6592,11 @@ os_symlink(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(src), &_Py_ID(dst), &_Py_ID(target_is_directory), &_Py_ID(dir_fd), },
};
#undef NUM_KEYWORDS
@@ -6612,9 +6726,11 @@ os_timerfd_create(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyO
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(flags), },
};
#undef NUM_KEYWORDS
@@ -6695,9 +6811,11 @@ os_timerfd_settime(PyObject *module, PyObject *const *args, Py_ssize_t nargs, Py
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(flags), &_Py_ID(initial), &_Py_ID(interval), },
};
#undef NUM_KEYWORDS
@@ -6810,9 +6928,11 @@ os_timerfd_settime_ns(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(flags), &_Py_ID(initial), &_Py_ID(interval), },
};
#undef NUM_KEYWORDS
@@ -7142,9 +7262,11 @@ os_open(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwn
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), &_Py_ID(flags), &_Py_ID(mode), &_Py_ID(dir_fd), },
};
#undef NUM_KEYWORDS
@@ -7236,9 +7358,11 @@ os_close(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kw
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(fd), },
};
#undef NUM_KEYWORDS
@@ -7366,9 +7490,11 @@ os_dup2(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kwn
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(fd), &_Py_ID(fd2), &_Py_ID(inheritable), },
};
#undef NUM_KEYWORDS
@@ -7880,9 +8006,11 @@ os_sendfile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(out_fd), &_Py_ID(in_fd), &_Py_ID(offset), &_Py_ID(count), &_Py_ID(headers), &_Py_ID(trailers), &_Py_ID(flags), },
};
#undef NUM_KEYWORDS
@@ -7983,9 +8111,11 @@ os_sendfile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(out_fd), &_Py_ID(in_fd), &_Py_ID(offset), &_Py_ID(count), &_Py_ID(headers), &_Py_ID(trailers), &_Py_ID(flags), },
};
#undef NUM_KEYWORDS
@@ -8093,9 +8223,11 @@ os_sendfile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(out_fd), &_Py_ID(in_fd), &_Py_ID(offset), &_Py_ID(count), },
};
#undef NUM_KEYWORDS
@@ -8222,9 +8354,11 @@ os_fstat(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kw
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(fd), },
};
#undef NUM_KEYWORDS
@@ -8571,9 +8705,11 @@ os_copy_file_range(PyObject *module, PyObject *const *args, Py_ssize_t nargs, Py
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(src), &_Py_ID(dst), &_Py_ID(count), &_Py_ID(offset_src), &_Py_ID(offset_dst), },
};
#undef NUM_KEYWORDS
@@ -8686,9 +8822,11 @@ os_splice(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *k
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(src), &_Py_ID(dst), &_Py_ID(count), &_Py_ID(offset_src), &_Py_ID(offset_dst), &_Py_ID(flags), },
};
#undef NUM_KEYWORDS
@@ -8795,9 +8933,11 @@ os_mkfifo(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *k
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), &_Py_ID(mode), &_Py_ID(dir_fd), },
};
#undef NUM_KEYWORDS
@@ -8896,9 +9036,11 @@ os_mknod(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *kw
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), &_Py_ID(mode), &_Py_ID(device), &_Py_ID(dir_fd), },
};
#undef NUM_KEYWORDS
@@ -9140,9 +9282,11 @@ os_truncate(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), &_Py_ID(length), },
};
#undef NUM_KEYWORDS
@@ -9533,9 +9677,11 @@ os_WIFCONTINUED(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(status), },
};
#undef NUM_KEYWORDS
@@ -9601,9 +9747,11 @@ os_WIFSTOPPED(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObjec
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(status), },
};
#undef NUM_KEYWORDS
@@ -9669,9 +9817,11 @@ os_WIFSIGNALED(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObje
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(status), },
};
#undef NUM_KEYWORDS
@@ -9737,9 +9887,11 @@ os_WIFEXITED(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(status), },
};
#undef NUM_KEYWORDS
@@ -9805,9 +9957,11 @@ os_WEXITSTATUS(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObje
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(status), },
};
#undef NUM_KEYWORDS
@@ -9873,9 +10027,11 @@ os_WTERMSIG(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(status), },
};
#undef NUM_KEYWORDS
@@ -9941,9 +10097,11 @@ os_WSTOPSIG(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(status), },
};
#undef NUM_KEYWORDS
@@ -10047,9 +10205,11 @@ os_statvfs(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), },
};
#undef NUM_KEYWORDS
@@ -10112,9 +10272,11 @@ os__getdiskusage(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyOb
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), },
};
#undef NUM_KEYWORDS
@@ -10227,9 +10389,11 @@ os_pathconf(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), &_Py_ID(name), },
};
#undef NUM_KEYWORDS
@@ -10417,9 +10581,11 @@ os_startfile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(filepath), &_Py_ID(operation), &_Py_ID(arguments), &_Py_ID(cwd), &_Py_ID(show_cmd), },
};
#undef NUM_KEYWORDS
@@ -10562,9 +10728,11 @@ os_device_encoding(PyObject *module, PyObject *const *args, Py_ssize_t nargs, Py
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(fd), },
};
#undef NUM_KEYWORDS
@@ -10757,9 +10925,11 @@ os_getxattr(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), &_Py_ID(attribute), &_Py_ID(follow_symlinks), },
};
#undef NUM_KEYWORDS
@@ -10845,9 +11015,11 @@ os_setxattr(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), &_Py_ID(attribute), &_Py_ID(value), &_Py_ID(flags), &_Py_ID(follow_symlinks), },
};
#undef NUM_KEYWORDS
@@ -10954,9 +11126,11 @@ os_removexattr(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObje
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), &_Py_ID(attribute), &_Py_ID(follow_symlinks), },
};
#undef NUM_KEYWORDS
@@ -11041,9 +11215,11 @@ os_listxattr(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), &_Py_ID(follow_symlinks), },
};
#undef NUM_KEYWORDS
@@ -11160,9 +11336,11 @@ os_memfd_create(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(name), &_Py_ID(flags), },
};
#undef NUM_KEYWORDS
@@ -11235,9 +11413,11 @@ os_eventfd(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(initval), &_Py_ID(flags), },
};
#undef NUM_KEYWORDS
@@ -11307,9 +11487,11 @@ os_eventfd_read(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(fd), },
};
#undef NUM_KEYWORDS
@@ -11370,9 +11552,11 @@ os_eventfd_write(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyOb
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(fd), &_Py_ID(value), },
};
#undef NUM_KEYWORDS
@@ -11788,9 +11972,11 @@ os_DirEntry_stat(PyObject *self, PyTypeObject *defining_class, PyObject *const *
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(follow_symlinks), },
};
#undef NUM_KEYWORDS
@@ -11853,9 +12039,11 @@ os_DirEntry_is_dir(PyObject *self, PyTypeObject *defining_class, PyObject *const
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(follow_symlinks), },
};
#undef NUM_KEYWORDS
@@ -11923,9 +12111,11 @@ os_DirEntry_is_file(PyObject *self, PyTypeObject *defining_class, PyObject *cons
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(follow_symlinks), },
};
#undef NUM_KEYWORDS
@@ -12034,9 +12224,11 @@ os_scandir(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), },
};
#undef NUM_KEYWORDS
@@ -12104,9 +12296,11 @@ os_fspath(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *k
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), },
};
#undef NUM_KEYWORDS
@@ -12162,9 +12356,11 @@ os_getrandom(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(size), &_Py_ID(flags), },
};
#undef NUM_KEYWORDS
@@ -12250,9 +12446,11 @@ os__add_dll_directory(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(path), },
};
#undef NUM_KEYWORDS
@@ -12319,9 +12517,11 @@ os__remove_dll_directory(PyObject *module, PyObject *const *args, Py_ssize_t nar
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(cookie), },
};
#undef NUM_KEYWORDS
@@ -12391,9 +12591,11 @@ os_waitstatus_to_exitcode(PyObject *module, PyObject *const *args, Py_ssize_t na
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(status), },
};
#undef NUM_KEYWORDS
@@ -13196,4 +13398,4 @@ os__emscripten_debugger(PyObject *module, PyObject *Py_UNUSED(ignored))
#ifndef OS__EMSCRIPTEN_DEBUGGER_METHODDEF
#define OS__EMSCRIPTEN_DEBUGGER_METHODDEF
#endif /* !defined(OS__EMSCRIPTEN_DEBUGGER_METHODDEF) */
-/*[clinic end generated code: output=8318c26fc2cd236c input=a9049054013a1b77]*/
+/*[clinic end generated code: output=35dd8edb53b50537 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/pyexpat.c.h b/Modules/clinic/pyexpat.c.h
index 9eba59731c3..13210e3be0f 100644
--- a/Modules/clinic/pyexpat.c.h
+++ b/Modules/clinic/pyexpat.c.h
@@ -432,9 +432,11 @@ pyexpat_ParserCreate(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(encoding), &_Py_ID(namespace_separator), &_Py_ID(intern), },
};
#undef NUM_KEYWORDS
@@ -550,4 +552,4 @@ exit:
#ifndef PYEXPAT_XMLPARSER_USEFOREIGNDTD_METHODDEF
#define PYEXPAT_XMLPARSER_USEFOREIGNDTD_METHODDEF
#endif /* !defined(PYEXPAT_XMLPARSER_USEFOREIGNDTD_METHODDEF) */
-/*[clinic end generated code: output=7ee30ae5b666d0a8 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=4dbdc959c67dc2d5 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/selectmodule.c.h b/Modules/clinic/selectmodule.c.h
index 8ee291dcca8..253ad8c9e78 100644
--- a/Modules/clinic/selectmodule.c.h
+++ b/Modules/clinic/selectmodule.c.h
@@ -570,9 +570,11 @@ select_epoll(PyTypeObject *type, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(sizehint), &_Py_ID(flags), },
};
#undef NUM_KEYWORDS
@@ -743,9 +745,11 @@ select_epoll_register(PyObject *self, PyObject *const *args, Py_ssize_t nargs, P
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(fd), &_Py_ID(eventmask), },
};
#undef NUM_KEYWORDS
@@ -822,9 +826,11 @@ select_epoll_modify(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyO
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(fd), &_Py_ID(eventmask), },
};
#undef NUM_KEYWORDS
@@ -893,9 +899,11 @@ select_epoll_unregister(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(fd), },
};
#undef NUM_KEYWORDS
@@ -966,9 +974,11 @@ select_epoll_poll(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObj
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(timeout), &_Py_ID(maxevents), },
};
#undef NUM_KEYWORDS
@@ -1365,4 +1375,4 @@ exit:
#ifndef SELECT_KQUEUE_CONTROL_METHODDEF
#define SELECT_KQUEUE_CONTROL_METHODDEF
#endif /* !defined(SELECT_KQUEUE_CONTROL_METHODDEF) */
-/*[clinic end generated code: output=60c3edb2745c9f33 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=6fc20d78802511d1 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/sha1module.c.h b/Modules/clinic/sha1module.c.h
index 792059d9b89..3e5fd1a41ce 100644
--- a/Modules/clinic/sha1module.c.h
+++ b/Modules/clinic/sha1module.c.h
@@ -110,9 +110,11 @@ _sha1_sha1(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject *
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), },
};
#undef NUM_KEYWORDS
@@ -162,4 +164,4 @@ skip_optional_kwonly:
exit:
return return_value;
}
-/*[clinic end generated code: output=3cfa7b6a9f99b5b2 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=06161e87e2d645d4 input=a9049054013a1b77]*/
diff --git a/Modules/clinic/sha2module.c.h b/Modules/clinic/sha2module.c.h
index 5e4b97b8ed3..26612125e75 100644
--- a/Modules/clinic/sha2module.c.h
+++ b/Modules/clinic/sha2module.c.h
@@ -190,9 +190,11 @@ _sha2_sha256(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), },
};
#undef NUM_KEYWORDS
@@ -265,9 +267,11 @@ _sha2_sha224(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), },
};
#undef NUM_KEYWORDS
@@ -340,9 +344,11 @@ _sha2_sha512(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), },
};
#undef NUM_KEYWORDS
@@ -415,9 +421,11 @@ _sha2_sha384(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(string), &_Py_ID(usedforsecurity), },
};
#undef NUM_KEYWORDS
@@ -467,4 +475,4 @@ skip_optional_kwonly:
exit:
return return_value;
}
-/*[clinic end generated code: output=0c2eed5c77ec6987 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=af11090855b7c85a input=a9049054013a1b77]*/
diff --git a/Modules/clinic/sha3module.c.h b/Modules/clinic/sha3module.c.h
index 98d8f10a96e..25f72b74f80 100644
--- a/Modules/clinic/sha3module.c.h
+++ b/Modules/clinic/sha3module.c.h
@@ -28,9 +28,11 @@ py_sha3_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(usedforsecurity), },
};
#undef NUM_KEYWORDS
@@ -208,4 +210,4 @@ _sha3_shake_128_hexdigest(PyObject *self, PyObject *arg)
exit:
return return_value;
}
-/*[clinic end generated code: output=437023d9eac08551 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=5b3ac1c06c6899ea input=a9049054013a1b77]*/
diff --git a/Modules/clinic/signalmodule.c.h b/Modules/clinic/signalmodule.c.h
index dd8da456ce0..3ae8be84ccb 100644
--- a/Modules/clinic/signalmodule.c.h
+++ b/Modules/clinic/signalmodule.c.h
@@ -308,9 +308,11 @@ signal_set_wakeup_fd(PyObject *module, PyObject *const *args, Py_ssize_t nargs,
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(warn_on_full_buffer), },
};
#undef NUM_KEYWORDS
@@ -777,4 +779,4 @@ exit:
#ifndef SIGNAL_PIDFD_SEND_SIGNAL_METHODDEF
#define SIGNAL_PIDFD_SEND_SIGNAL_METHODDEF
#endif /* !defined(SIGNAL_PIDFD_SEND_SIGNAL_METHODDEF) */
-/*[clinic end generated code: output=356e1acc44a4f377 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=a8b1ac2fc44a007e input=a9049054013a1b77]*/
diff --git a/Modules/clinic/socketmodule.c.h b/Modules/clinic/socketmodule.c.h
index dc62c4290d3..174fb46590f 100644
--- a/Modules/clinic/socketmodule.c.h
+++ b/Modules/clinic/socketmodule.c.h
@@ -42,9 +42,11 @@ sock_initobj(PyObject *self, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(family), &_Py_ID(type), &_Py_ID(proto), &_Py_ID(fileno), },
};
#undef NUM_KEYWORDS
@@ -280,4 +282,4 @@ exit:
#ifndef _SOCKET_SOCKET_IF_NAMETOINDEX_METHODDEF
#define _SOCKET_SOCKET_IF_NAMETOINDEX_METHODDEF
#endif /* !defined(_SOCKET_SOCKET_IF_NAMETOINDEX_METHODDEF) */
-/*[clinic end generated code: output=d39efc30d811e74b input=a9049054013a1b77]*/
+/*[clinic end generated code: output=27bc54006551ab0c input=a9049054013a1b77]*/
diff --git a/Modules/clinic/syslogmodule.c.h b/Modules/clinic/syslogmodule.c.h
index 7c3fcd64191..f9034982f3b 100644
--- a/Modules/clinic/syslogmodule.c.h
+++ b/Modules/clinic/syslogmodule.c.h
@@ -33,9 +33,11 @@ syslog_openlog(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObje
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(ident), &_Py_ID(logoption), &_Py_ID(facility), },
};
#undef NUM_KEYWORDS
@@ -263,4 +265,4 @@ syslog_LOG_UPTO(PyObject *module, PyObject *arg)
exit:
return return_value;
}
-/*[clinic end generated code: output=f867a4f7a9267de1 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=f92ac9948fa6131e input=a9049054013a1b77]*/
diff --git a/Modules/clinic/zlibmodule.c.h b/Modules/clinic/zlibmodule.c.h
index 91a3ac76bcf..2710f65a840 100644
--- a/Modules/clinic/zlibmodule.c.h
+++ b/Modules/clinic/zlibmodule.c.h
@@ -38,9 +38,11 @@ zlib_compress(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObjec
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(level), &_Py_ID(wbits), },
};
#undef NUM_KEYWORDS
@@ -129,9 +131,11 @@ zlib_decompress(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(wbits), &_Py_ID(bufsize), },
};
#undef NUM_KEYWORDS
@@ -245,9 +249,11 @@ zlib_compressobj(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyOb
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(level), &_Py_ID(method), &_Py_ID(wbits), &_Py_ID(memLevel), &_Py_ID(strategy), &_Py_ID(zdict), },
};
#undef NUM_KEYWORDS
@@ -369,9 +375,11 @@ zlib_decompressobj(PyObject *module, PyObject *const *args, Py_ssize_t nargs, Py
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(wbits), &_Py_ID(zdict), },
};
#undef NUM_KEYWORDS
@@ -511,9 +519,11 @@ zlib_Decompress_decompress(PyObject *self, PyTypeObject *cls, PyObject *const *a
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(max_length), },
};
#undef NUM_KEYWORDS
@@ -924,9 +934,11 @@ zlib_ZlibDecompressor_decompress(PyObject *self, PyObject *const *args, Py_ssize
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(data), &_Py_ID(max_length), },
};
#undef NUM_KEYWORDS
@@ -1109,4 +1121,4 @@ exit:
#ifndef ZLIB_DECOMPRESS___DEEPCOPY___METHODDEF
#define ZLIB_DECOMPRESS___DEEPCOPY___METHODDEF
#endif /* !defined(ZLIB_DECOMPRESS___DEEPCOPY___METHODDEF) */
-/*[clinic end generated code: output=969872868c303e8a input=a9049054013a1b77]*/
+/*[clinic end generated code: output=33938c7613a8c1c7 input=a9049054013a1b77]*/
diff --git a/Modules/itertoolsmodule.c b/Modules/itertoolsmodule.c
index 9c9a965ce74..c0448efed19 100644
--- a/Modules/itertoolsmodule.c
+++ b/Modules/itertoolsmodule.c
@@ -386,9 +386,7 @@ pairwise_next(PyObject *op)
Py_DECREF(last_new);
// bpo-42536: The GC may have untracked this result tuple. Since we're
// recycling it, make sure it's tracked again:
- if (!_PyObject_GC_IS_TRACKED(result)) {
- _PyObject_GC_TRACK(result);
- }
+ _PyTuple_Recycle(result);
}
else {
result = PyTuple_New(2);
@@ -2126,8 +2124,8 @@ product_next(PyObject *op)
}
// bpo-42536: The GC may have untracked this result tuple. Since we're
// recycling it, make sure it's tracked again:
- else if (!_PyObject_GC_IS_TRACKED(result)) {
- _PyObject_GC_TRACK(result);
+ else {
+ _PyTuple_Recycle(result);
}
/* Now, we've got the only copy so we can update it in-place */
assert (npools==0 || Py_REFCNT(result) == 1);
@@ -2355,8 +2353,8 @@ combinations_next(PyObject *op)
}
// bpo-42536: The GC may have untracked this result tuple. Since we're
// recycling it, make sure it's tracked again:
- else if (!_PyObject_GC_IS_TRACKED(result)) {
- _PyObject_GC_TRACK(result);
+ else {
+ _PyTuple_Recycle(result);
}
/* Now, we've got the only copy so we can update it in-place
* CPython's empty tuple is a singleton and cached in
@@ -2601,8 +2599,8 @@ cwr_next(PyObject *op)
}
// bpo-42536: The GC may have untracked this result tuple. Since we're
// recycling it, make sure it's tracked again:
- else if (!_PyObject_GC_IS_TRACKED(result)) {
- _PyObject_GC_TRACK(result);
+ else {
+ _PyTuple_Recycle(result);
}
/* Now, we've got the only copy so we can update it in-place CPython's
empty tuple is a singleton and cached in PyTuple's freelist. */
@@ -2862,8 +2860,8 @@ permutations_next(PyObject *op)
}
// bpo-42536: The GC may have untracked this result tuple. Since we're
// recycling it, make sure it's tracked again:
- else if (!_PyObject_GC_IS_TRACKED(result)) {
- _PyObject_GC_TRACK(result);
+ else {
+ _PyTuple_Recycle(result);
}
/* Now, we've got the only copy so we can update it in-place */
assert(r == 0 || Py_REFCNT(result) == 1);
@@ -3843,9 +3841,7 @@ zip_longest_next(PyObject *op)
}
// bpo-42536: The GC may have untracked this result tuple. Since we're
// recycling it, make sure it's tracked again:
- if (!_PyObject_GC_IS_TRACKED(result)) {
- _PyObject_GC_TRACK(result);
- }
+ _PyTuple_Recycle(result);
} else {
result = PyTuple_New(tuplesize);
if (result == NULL)
diff --git a/Objects/clinic/bytearrayobject.c.h b/Objects/clinic/bytearrayobject.c.h
index 262438f830a..ffb45ade11f 100644
--- a/Objects/clinic/bytearrayobject.c.h
+++ b/Objects/clinic/bytearrayobject.c.h
@@ -24,9 +24,11 @@ bytearray___init__(PyObject *self, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(source), &_Py_ID(encoding), &_Py_ID(errors), },
};
#undef NUM_KEYWORDS
@@ -658,9 +660,11 @@ bytearray_translate(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyO
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(delete), },
};
#undef NUM_KEYWORDS
@@ -850,9 +854,11 @@ bytearray_split(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObjec
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(sep), &_Py_ID(maxsplit), },
};
#undef NUM_KEYWORDS
@@ -1005,9 +1011,11 @@ bytearray_rsplit(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObje
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(sep), &_Py_ID(maxsplit), },
};
#undef NUM_KEYWORDS
@@ -1420,9 +1428,11 @@ bytearray_decode(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObje
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(encoding), &_Py_ID(errors), },
};
#undef NUM_KEYWORDS
@@ -1545,9 +1555,11 @@ bytearray_splitlines(PyObject *self, PyObject *const *args, Py_ssize_t nargs, Py
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(keepends), },
};
#undef NUM_KEYWORDS
@@ -1653,9 +1665,11 @@ bytearray_hex(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(sep), &_Py_ID(bytes_per_sep), },
};
#undef NUM_KEYWORDS
@@ -1782,4 +1796,4 @@ bytearray_sizeof(PyObject *self, PyObject *Py_UNUSED(ignored))
{
return bytearray_sizeof_impl((PyByteArrayObject *)self);
}
-/*[clinic end generated code: output=0d1d1abc8b701ad9 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=be6d28193bc96a2c input=a9049054013a1b77]*/
diff --git a/Objects/clinic/bytesobject.c.h b/Objects/clinic/bytesobject.c.h
index f1f16de0c8a..00cf13d422d 100644
--- a/Objects/clinic/bytesobject.c.h
+++ b/Objects/clinic/bytesobject.c.h
@@ -57,9 +57,11 @@ bytes_split(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *k
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(sep), &_Py_ID(maxsplit), },
};
#undef NUM_KEYWORDS
@@ -224,9 +226,11 @@ bytes_rsplit(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(sep), &_Py_ID(maxsplit), },
};
#undef NUM_KEYWORDS
@@ -693,9 +697,11 @@ bytes_translate(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObjec
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(delete), },
};
#undef NUM_KEYWORDS
@@ -1055,9 +1061,11 @@ bytes_decode(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(encoding), &_Py_ID(errors), },
};
#undef NUM_KEYWORDS
@@ -1150,9 +1158,11 @@ bytes_splitlines(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObje
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(keepends), },
};
#undef NUM_KEYWORDS
@@ -1256,9 +1266,11 @@ bytes_hex(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwn
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(sep), &_Py_ID(bytes_per_sep), },
};
#undef NUM_KEYWORDS
@@ -1319,9 +1331,11 @@ bytes_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(source), &_Py_ID(encoding), &_Py_ID(errors), },
};
#undef NUM_KEYWORDS
@@ -1397,4 +1411,4 @@ skip_optional_pos:
exit:
return return_value;
}
-/*[clinic end generated code: output=c607024162df3ea8 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=08b9507244f73638 input=a9049054013a1b77]*/
diff --git a/Objects/clinic/codeobject.c.h b/Objects/clinic/codeobject.c.h
index 2184742cc0d..0cd6e0b5662 100644
--- a/Objects/clinic/codeobject.c.h
+++ b/Objects/clinic/codeobject.c.h
@@ -183,9 +183,11 @@ code_replace(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(co_argcount), &_Py_ID(co_posonlyargcount), &_Py_ID(co_kwonlyargcount), &_Py_ID(co_nlocals), &_Py_ID(co_stacksize), &_Py_ID(co_flags), &_Py_ID(co_firstlineno), &_Py_ID(co_code), &_Py_ID(co_consts), &_Py_ID(co_names), &_Py_ID(co_varnames), &_Py_ID(co_freevars), &_Py_ID(co_cellvars), &_Py_ID(co_filename), &_Py_ID(co_name), &_Py_ID(co_qualname), &_Py_ID(co_linetable), &_Py_ID(co_exceptiontable), },
};
#undef NUM_KEYWORDS
@@ -430,9 +432,11 @@ code__varname_from_oparg(PyObject *self, PyObject *const *args, Py_ssize_t nargs
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(oparg), },
};
#undef NUM_KEYWORDS
@@ -466,4 +470,4 @@ code__varname_from_oparg(PyObject *self, PyObject *const *args, Py_ssize_t nargs
exit:
return return_value;
}
-/*[clinic end generated code: output=73861c79e93aaee5 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=c5c6e40fc357defe input=a9049054013a1b77]*/
diff --git a/Objects/clinic/complexobject.c.h b/Objects/clinic/complexobject.c.h
index 2988664317e..c7303380de5 100644
--- a/Objects/clinic/complexobject.c.h
+++ b/Objects/clinic/complexobject.c.h
@@ -114,9 +114,11 @@ complex_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(real), &_Py_ID(imag), },
};
#undef NUM_KEYWORDS
@@ -183,4 +185,4 @@ complex_from_number(PyObject *type, PyObject *number)
return return_value;
}
-/*[clinic end generated code: output=307531cd6d6e7544 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=05d2ff43fc409733 input=a9049054013a1b77]*/
diff --git a/Objects/clinic/descrobject.c.h b/Objects/clinic/descrobject.c.h
index 2f96adb5094..a0cfbeca84d 100644
--- a/Objects/clinic/descrobject.c.h
+++ b/Objects/clinic/descrobject.c.h
@@ -27,9 +27,11 @@ mappingproxy_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(mapping), },
};
#undef NUM_KEYWORDS
@@ -114,9 +116,11 @@ property_init(PyObject *self, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(fget), &_Py_ID(fset), &_Py_ID(fdel), &_Py_ID(doc), },
};
#undef NUM_KEYWORDS
@@ -175,4 +179,4 @@ skip_optional_pos:
exit:
return return_value;
}
-/*[clinic end generated code: output=2f43f9297a36aa40 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=2e8df497abc4f915 input=a9049054013a1b77]*/
diff --git a/Objects/clinic/enumobject.c.h b/Objects/clinic/enumobject.c.h
index 998b2eb121c..29ff11e89b9 100644
--- a/Objects/clinic/enumobject.c.h
+++ b/Objects/clinic/enumobject.c.h
@@ -36,9 +36,11 @@ enum_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(iterable), &_Py_ID(start), },
};
#undef NUM_KEYWORDS
@@ -108,4 +110,4 @@ reversed_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
exit:
return return_value;
}
-/*[clinic end generated code: output=2e339ade8bedb3a0 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=3300305b351674d3 input=a9049054013a1b77]*/
diff --git a/Objects/clinic/funcobject.c.h b/Objects/clinic/funcobject.c.h
index efc579dc259..fec74314646 100644
--- a/Objects/clinic/funcobject.c.h
+++ b/Objects/clinic/funcobject.c.h
@@ -215,9 +215,11 @@ func_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(code), &_Py_ID(globals), &_Py_ID(name), &_Py_ID(argdefs), &_Py_ID(closure), &_Py_ID(kwdefaults), },
};
#undef NUM_KEYWORDS
@@ -288,4 +290,4 @@ skip_optional_pos:
exit:
return return_value;
}
-/*[clinic end generated code: output=3cdce22867efe617 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=12cb900088d41bdb input=a9049054013a1b77]*/
diff --git a/Objects/clinic/listobject.c.h b/Objects/clinic/listobject.c.h
index 3f4e7e72f85..26ba5b95433 100644
--- a/Objects/clinic/listobject.c.h
+++ b/Objects/clinic/listobject.c.h
@@ -224,9 +224,11 @@ list_sort(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwn
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(key), &_Py_ID(reverse), },
};
#undef NUM_KEYWORDS
@@ -466,4 +468,4 @@ list___reversed__(PyObject *self, PyObject *Py_UNUSED(ignored))
{
return list___reversed___impl((PyListObject *)self);
}
-/*[clinic end generated code: output=bc45e43a621ac833 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=ae13fc2b56dc27c2 input=a9049054013a1b77]*/
diff --git a/Objects/clinic/longobject.c.h b/Objects/clinic/longobject.c.h
index 9043ab3d516..a236a32c091 100644
--- a/Objects/clinic/longobject.c.h
+++ b/Objects/clinic/longobject.c.h
@@ -22,9 +22,11 @@ long_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(base), },
};
#undef NUM_KEYWORDS
@@ -291,9 +293,11 @@ int_to_bytes(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(length), &_Py_ID(byteorder), &_Py_ID(signed), },
};
#undef NUM_KEYWORDS
@@ -403,9 +407,11 @@ int_from_bytes(PyObject *type, PyObject *const *args, Py_ssize_t nargs, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(bytes), &_Py_ID(byteorder), &_Py_ID(signed), },
};
#undef NUM_KEYWORDS
@@ -479,4 +485,4 @@ int_is_integer(PyObject *self, PyObject *Py_UNUSED(ignored))
{
return int_is_integer_impl(self);
}
-/*[clinic end generated code: output=591cffa2b80b5184 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=d23f8ce5bdf08a30 input=a9049054013a1b77]*/
diff --git a/Objects/clinic/memoryobject.c.h b/Objects/clinic/memoryobject.c.h
index b3240c7e6c4..28cfd1a2208 100644
--- a/Objects/clinic/memoryobject.c.h
+++ b/Objects/clinic/memoryobject.c.h
@@ -27,9 +27,11 @@ memoryview(PyTypeObject *type, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(object), },
};
#undef NUM_KEYWORDS
@@ -85,9 +87,11 @@ memoryview__from_flags(PyObject *type, PyObject *const *args, Py_ssize_t nargs,
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(object), &_Py_ID(flags), },
};
#undef NUM_KEYWORDS
@@ -165,9 +169,11 @@ memoryview_cast(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObjec
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(format), &_Py_ID(shape), },
};
#undef NUM_KEYWORDS
@@ -274,9 +280,11 @@ memoryview_tobytes(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyOb
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(order), },
};
#undef NUM_KEYWORDS
@@ -370,9 +378,11 @@ memoryview_hex(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(sep), &_Py_ID(bytes_per_sep), },
};
#undef NUM_KEYWORDS
@@ -486,4 +496,4 @@ skip_optional:
exit:
return return_value;
}
-/*[clinic end generated code: output=ae3414e9311c02fb input=a9049054013a1b77]*/
+/*[clinic end generated code: output=154f4c04263ccb24 input=a9049054013a1b77]*/
diff --git a/Objects/clinic/moduleobject.c.h b/Objects/clinic/moduleobject.c.h
index 5535a2f1178..455b883c52e 100644
--- a/Objects/clinic/moduleobject.c.h
+++ b/Objects/clinic/moduleobject.c.h
@@ -29,9 +29,11 @@ module___init__(PyObject *self, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(name), &_Py_ID(doc), },
};
#undef NUM_KEYWORDS
@@ -75,4 +77,4 @@ skip_optional_pos:
exit:
return return_value;
}
-/*[clinic end generated code: output=d7da56d5c2eb6d30 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=523344ad09ab2ea1 input=a9049054013a1b77]*/
diff --git a/Objects/clinic/odictobject.c.h b/Objects/clinic/odictobject.c.h
index 65eee376457..e71c29a1b26 100644
--- a/Objects/clinic/odictobject.c.h
+++ b/Objects/clinic/odictobject.c.h
@@ -30,9 +30,11 @@ OrderedDict_fromkeys(PyObject *type, PyObject *const *args, Py_ssize_t nargs, Py
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(iterable), &_Py_ID(value), },
};
#undef NUM_KEYWORDS
@@ -96,9 +98,11 @@ OrderedDict_setdefault(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(key), &_Py_ID(default), },
};
#undef NUM_KEYWORDS
@@ -163,9 +167,11 @@ OrderedDict_pop(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObjec
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(key), &_Py_ID(default), },
};
#undef NUM_KEYWORDS
@@ -228,9 +234,11 @@ OrderedDict_popitem(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyO
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(last), },
};
#undef NUM_KEYWORDS
@@ -294,9 +302,11 @@ OrderedDict_move_to_end(PyObject *self, PyObject *const *args, Py_ssize_t nargs,
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(key), &_Py_ID(last), },
};
#undef NUM_KEYWORDS
@@ -337,4 +347,4 @@ skip_optional_pos:
exit:
return return_value;
}
-/*[clinic end generated code: output=6f84d0649fcd0c1f input=a9049054013a1b77]*/
+/*[clinic end generated code: output=7d8206823bb1f419 input=a9049054013a1b77]*/
diff --git a/Objects/clinic/structseq.c.h b/Objects/clinic/structseq.c.h
index 0afb21ad918..9642b480fa1 100644
--- a/Objects/clinic/structseq.c.h
+++ b/Objects/clinic/structseq.c.h
@@ -21,9 +21,11 @@ structseq_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(sequence), &_Py_ID(dict), },
};
#undef NUM_KEYWORDS
@@ -63,4 +65,4 @@ skip_optional_pos:
exit:
return return_value;
}
-/*[clinic end generated code: output=ef2406240ce0ad3f input=a9049054013a1b77]*/
+/*[clinic end generated code: output=112d59f5e98d652b input=a9049054013a1b77]*/
diff --git a/Objects/clinic/typevarobject.c.h b/Objects/clinic/typevarobject.c.h
index 87e0fd77203..9ae2f51f758 100644
--- a/Objects/clinic/typevarobject.c.h
+++ b/Objects/clinic/typevarobject.c.h
@@ -30,9 +30,11 @@ typevar_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(name), &_Py_ID(bound), &_Py_ID(default), &_Py_ID(covariant), &_Py_ID(contravariant), &_Py_ID(infer_variance), },
};
#undef NUM_KEYWORDS
@@ -226,9 +228,11 @@ paramspecargs_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(origin), },
};
#undef NUM_KEYWORDS
@@ -281,9 +285,11 @@ paramspeckwargs_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(origin), },
};
#undef NUM_KEYWORDS
@@ -339,9 +345,11 @@ paramspec_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(name), &_Py_ID(bound), &_Py_ID(default), &_Py_ID(covariant), &_Py_ID(contravariant), &_Py_ID(infer_variance), },
};
#undef NUM_KEYWORDS
@@ -528,9 +536,11 @@ typevartuple(PyTypeObject *type, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(name), &_Py_ID(default), },
};
#undef NUM_KEYWORDS
@@ -697,9 +707,11 @@ typealias_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(name), &_Py_ID(value), &_Py_ID(type_params), },
};
#undef NUM_KEYWORDS
@@ -745,4 +757,4 @@ skip_optional_kwonly:
exit:
return return_value;
}
-/*[clinic end generated code: output=d0cdf708e2e315a4 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=9dad71445e079303 input=a9049054013a1b77]*/
diff --git a/Objects/clinic/unicodeobject.c.h b/Objects/clinic/unicodeobject.c.h
index c299cf2cfc8..1819fbaea22 100644
--- a/Objects/clinic/unicodeobject.c.h
+++ b/Objects/clinic/unicodeobject.c.h
@@ -222,9 +222,11 @@ unicode_encode(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(encoding), &_Py_ID(errors), },
};
#undef NUM_KEYWORDS
@@ -316,9 +318,11 @@ unicode_expandtabs(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyOb
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(tabsize), },
};
#undef NUM_KEYWORDS
@@ -934,9 +938,11 @@ unicode_replace(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObjec
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(count), },
};
#undef NUM_KEYWORDS
@@ -1260,9 +1266,11 @@ unicode_split(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(sep), &_Py_ID(maxsplit), },
};
#undef NUM_KEYWORDS
@@ -1383,9 +1391,11 @@ unicode_rsplit(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(sep), &_Py_ID(maxsplit), },
};
#undef NUM_KEYWORDS
@@ -1465,9 +1475,11 @@ unicode_splitlines(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyOb
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(keepends), },
};
#undef NUM_KEYWORDS
@@ -1816,9 +1828,11 @@ unicode_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(object), &_Py_ID(encoding), &_Py_ID(errors), },
};
#undef NUM_KEYWORDS
@@ -1894,4 +1908,4 @@ skip_optional_pos:
exit:
return return_value;
}
-/*[clinic end generated code: output=81d703159f829f1f input=a9049054013a1b77]*/
+/*[clinic end generated code: output=238917fe66120bde input=a9049054013a1b77]*/
diff --git a/Objects/dictobject.c b/Objects/dictobject.c
index f302fc55f4b..25ad525c776 100644
--- a/Objects/dictobject.c
+++ b/Objects/dictobject.c
@@ -129,6 +129,7 @@ As a consequence of this, split keys have a maximum size of 16.
#include "pycore_pyerrors.h" // _PyErr_GetRaisedException()
#include "pycore_pystate.h" // _PyThreadState_GET()
#include "pycore_setobject.h" // _PySet_NextEntry()
+#include "pycore_tuple.h" // _PyTuple_Recycle()
#include "pycore_unicodeobject.h" // _PyUnicode_InternImmortal()
#include "stringlib/eq.h" // unicode_eq()
@@ -5624,9 +5625,7 @@ dictiter_iternextitem(PyObject *self)
Py_DECREF(oldvalue);
// bpo-42536: The GC may have untracked this result tuple. Since we're
// recycling it, make sure it's tracked again:
- if (!_PyObject_GC_IS_TRACKED(result)) {
- _PyObject_GC_TRACK(result);
- }
+ _PyTuple_Recycle(result);
}
else {
result = PyTuple_New(2);
@@ -5749,9 +5748,7 @@ dictreviter_iter_lock_held(PyDictObject *d, PyObject *self)
Py_DECREF(oldvalue);
// bpo-42536: The GC may have untracked this result tuple. Since
// we're recycling it, make sure it's tracked again:
- if (!_PyObject_GC_IS_TRACKED(result)) {
- _PyObject_GC_TRACK(result);
- }
+ _PyTuple_Recycle(result);
}
else {
result = PyTuple_New(2);
diff --git a/Objects/enumobject.c b/Objects/enumobject.c
index f5d9d41262a..1123b140c7f 100644
--- a/Objects/enumobject.c
+++ b/Objects/enumobject.c
@@ -6,6 +6,7 @@
#include "pycore_modsupport.h" // _PyArg_NoKwnames()
#include "pycore_object.h" // _PyObject_GC_TRACK()
#include "pycore_unicodeobject.h" // _PyUnicode_EqualToASCIIString
+#include "pycore_tuple.h" // _PyTuple_Recycle()
#include "clinic/enumobject.c.h"
@@ -220,9 +221,7 @@ enum_next_long(enumobject *en, PyObject* next_item)
Py_DECREF(old_item);
// bpo-42536: The GC may have untracked this result tuple. Since we're
// recycling it, make sure it's tracked again:
- if (!_PyObject_GC_IS_TRACKED(result)) {
- _PyObject_GC_TRACK(result);
- }
+ _PyTuple_Recycle(result);
return result;
}
result = PyTuple_New(2);
@@ -272,9 +271,7 @@ enum_next(PyObject *op)
Py_DECREF(old_item);
// bpo-42536: The GC may have untracked this result tuple. Since we're
// recycling it, make sure it's tracked again:
- if (!_PyObject_GC_IS_TRACKED(result)) {
- _PyObject_GC_TRACK(result);
- }
+ _PyTuple_Recycle(result);
return result;
}
result = PyTuple_New(2);
diff --git a/Objects/odictobject.c b/Objects/odictobject.c
index c1126220006..1412acb50ac 100644
--- a/Objects/odictobject.c
+++ b/Objects/odictobject.c
@@ -471,6 +471,7 @@ later:
#include "pycore_dict.h" // _Py_dict_lookup()
#include "pycore_object.h" // _PyObject_GC_UNTRACK()
#include "pycore_pyerrors.h" // _PyErr_ChainExceptions1()
+#include "pycore_tuple.h" // _PyTuple_Recycle()
#include <stddef.h> // offsetof()
#include "clinic/odictobject.c.h"
@@ -1762,9 +1763,7 @@ odictiter_iternext(PyObject *op)
Py_DECREF(PyTuple_GET_ITEM(result, 1)); /* borrowed */
// bpo-42536: The GC may have untracked this result tuple. Since we're
// recycling it, make sure it's tracked again:
- if (!_PyObject_GC_IS_TRACKED(result)) {
- _PyObject_GC_TRACK(result);
- }
+ _PyTuple_Recycle(result);
}
else {
result = PyTuple_New(2);
diff --git a/Objects/stringlib/clinic/transmogrify.h.h b/Objects/stringlib/clinic/transmogrify.h.h
index 5b82c2de737..588fc101dbb 100644
--- a/Objects/stringlib/clinic/transmogrify.h.h
+++ b/Objects/stringlib/clinic/transmogrify.h.h
@@ -33,9 +33,11 @@ stringlib_expandtabs(PyObject *self, PyObject *const *args, Py_ssize_t nargs, Py
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(tabsize), },
};
#undef NUM_KEYWORDS
@@ -322,4 +324,4 @@ stringlib_zfill(PyObject *self, PyObject *arg)
exit:
return return_value;
}
-/*[clinic end generated code: output=0e24a10bac3ec053 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=8363b4b6cdaad556 input=a9049054013a1b77]*/
diff --git a/Objects/structseq.c b/Objects/structseq.c
index a1b6dd624b3..c05bcde24c4 100644
--- a/Objects/structseq.c
+++ b/Objects/structseq.c
@@ -73,6 +73,7 @@ PyStructSequence_New(PyTypeObject *type)
obj = PyObject_GC_NewVar(PyStructSequence, type, size);
if (obj == NULL)
return NULL;
+ _PyTuple_RESET_HASH_CACHE(obj);
/* Hack the size of the variable object, so invisible fields don't appear
to Python code. */
Py_SET_SIZE(obj, vsize);
diff --git a/Objects/tupleobject.c b/Objects/tupleobject.c
index 78ee3fa1fc3..737c4e6d977 100644
--- a/Objects/tupleobject.c
+++ b/Objects/tupleobject.c
@@ -45,6 +45,7 @@ tuple_alloc(Py_ssize_t size)
if (index < PyTuple_MAXSAVESIZE) {
PyTupleObject *op = _Py_FREELIST_POP(PyTupleObject, tuples[index]);
if (op != NULL) {
+ _PyTuple_RESET_HASH_CACHE(op);
return op;
}
}
@@ -53,7 +54,11 @@ tuple_alloc(Py_ssize_t size)
sizeof(PyObject *))) / sizeof(PyObject *)) {
return (PyTupleObject *)PyErr_NoMemory();
}
- return PyObject_GC_NewVar(PyTupleObject, &PyTuple_Type, size);
+ PyTupleObject *result = PyObject_GC_NewVar(PyTupleObject, &PyTuple_Type, size);
+ if (result != NULL) {
+ _PyTuple_RESET_HASH_CACHE(result);
+ }
+ return result;
}
// The empty tuple singleton is not tracked by the GC.
@@ -296,50 +301,41 @@ error:
For the xxHash specification, see
https://github.com/Cyan4973/xxHash/blob/master/doc/xxhash_spec.md
- Below are the official constants from the xxHash specification. Optimizing
- compilers should emit a single "rotate" instruction for the
- _PyHASH_XXROTATE() expansion. If that doesn't happen for some important
- platform, the macro could be changed to expand to a platform-specific rotate
- spelling instead.
+ The constants for the hash function are defined in pycore_tuple.h.
*/
-#if SIZEOF_PY_UHASH_T > 4
-#define _PyHASH_XXPRIME_1 ((Py_uhash_t)11400714785074694791ULL)
-#define _PyHASH_XXPRIME_2 ((Py_uhash_t)14029467366897019727ULL)
-#define _PyHASH_XXPRIME_5 ((Py_uhash_t)2870177450012600261ULL)
-#define _PyHASH_XXROTATE(x) ((x << 31) | (x >> 33)) /* Rotate left 31 bits */
-#else
-#define _PyHASH_XXPRIME_1 ((Py_uhash_t)2654435761UL)
-#define _PyHASH_XXPRIME_2 ((Py_uhash_t)2246822519UL)
-#define _PyHASH_XXPRIME_5 ((Py_uhash_t)374761393UL)
-#define _PyHASH_XXROTATE(x) ((x << 13) | (x >> 19)) /* Rotate left 13 bits */
-#endif
-/* Tests have shown that it's not worth to cache the hash value, see
- https://bugs.python.org/issue9685 */
static Py_hash_t
tuple_hash(PyObject *op)
{
PyTupleObject *v = _PyTuple_CAST(op);
+
+ Py_uhash_t acc = FT_ATOMIC_LOAD_SSIZE_RELAXED(v->ob_hash);
+ if (acc != (Py_uhash_t)-1) {
+ return acc;
+ }
+
Py_ssize_t len = Py_SIZE(v);
PyObject **item = v->ob_item;
-
- Py_uhash_t acc = _PyHASH_XXPRIME_5;
+ acc = _PyTuple_HASH_XXPRIME_5;
for (Py_ssize_t i = 0; i < len; i++) {
Py_uhash_t lane = PyObject_Hash(item[i]);
if (lane == (Py_uhash_t)-1) {
return -1;
}
- acc += lane * _PyHASH_XXPRIME_2;
- acc = _PyHASH_XXROTATE(acc);
- acc *= _PyHASH_XXPRIME_1;
+ acc += lane * _PyTuple_HASH_XXPRIME_2;
+ acc = _PyTuple_HASH_XXROTATE(acc);
+ acc *= _PyTuple_HASH_XXPRIME_1;
}
/* Add input length, mangled to keep the historical value of hash(()). */
- acc += len ^ (_PyHASH_XXPRIME_5 ^ 3527539UL);
+ acc += len ^ (_PyTuple_HASH_XXPRIME_5 ^ 3527539UL);
if (acc == (Py_uhash_t)-1) {
- return 1546275796;
+ acc = 1546275796;
}
+
+ FT_ATOMIC_STORE_SSIZE_RELAXED(v->ob_hash, acc);
+
return acc;
}
@@ -764,6 +760,8 @@ tuple_subtype_new(PyTypeObject *type, PyObject *iterable)
}
Py_DECREF(tmp);
+ _PyTuple_RESET_HASH_CACHE(newobj);
+
// Don't track if a subclass tp_alloc is PyType_GenericAlloc()
if (!_PyObject_GC_IS_TRACKED(newobj)) {
_PyObject_GC_TRACK(newobj);
diff --git a/PC/clinic/_wmimodule.cpp.h b/PC/clinic/_wmimodule.cpp.h
index f0be691173a..38d52d0329d 100644
--- a/PC/clinic/_wmimodule.cpp.h
+++ b/PC/clinic/_wmimodule.cpp.h
@@ -33,9 +33,11 @@ _wmi_exec_query(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(query), },
};
#undef NUM_KEYWORDS
@@ -70,4 +72,4 @@ _wmi_exec_query(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj
exit:
return return_value;
}
-/*[clinic end generated code: output=9ac5fd7faf889e52 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=802bcbcba69e8d0e input=a9049054013a1b77]*/
diff --git a/PC/clinic/winreg.c.h b/PC/clinic/winreg.c.h
index 00fa6a75ec1..45d54e3c902 100644
--- a/PC/clinic/winreg.c.h
+++ b/PC/clinic/winreg.c.h
@@ -324,9 +324,11 @@ winreg_CreateKeyEx(PyObject *module, PyObject *const *args, Py_ssize_t nargs, Py
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(key), &_Py_ID(sub_key), &_Py_ID(reserved), &_Py_ID(access), },
};
#undef NUM_KEYWORDS
@@ -509,9 +511,11 @@ winreg_DeleteKeyEx(PyObject *module, PyObject *const *args, Py_ssize_t nargs, Py
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(key), &_Py_ID(sub_key), &_Py_ID(access), &_Py_ID(reserved), },
};
#undef NUM_KEYWORDS
@@ -941,9 +945,11 @@ winreg_OpenKey(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObje
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(key), &_Py_ID(sub_key), &_Py_ID(reserved), &_Py_ID(access), },
};
#undef NUM_KEYWORDS
@@ -1059,9 +1065,11 @@ winreg_OpenKeyEx(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyOb
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(key), &_Py_ID(sub_key), &_Py_ID(reserved), &_Py_ID(access), },
};
#undef NUM_KEYWORDS
@@ -1766,4 +1774,4 @@ exit:
#ifndef WINREG_QUERYREFLECTIONKEY_METHODDEF
#define WINREG_QUERYREFLECTIONKEY_METHODDEF
#endif /* !defined(WINREG_QUERYREFLECTIONKEY_METHODDEF) */
-/*[clinic end generated code: output=fbe9b075cd2fa833 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=be4b6857b95558b5 input=a9049054013a1b77]*/
diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c
index 7a12a86e22e..10e415fa052 100644
--- a/Python/bltinmodule.c
+++ b/Python/bltinmodule.c
@@ -3121,9 +3121,7 @@ zip_next(PyObject *self)
}
// bpo-42536: The GC may have untracked this result tuple. Since we're
// recycling it, make sure it's tracked again:
- if (!_PyObject_GC_IS_TRACKED(result)) {
- _PyObject_GC_TRACK(result);
- }
+ _PyTuple_Recycle(result);
} else {
result = PyTuple_New(tuplesize);
if (result == NULL)
diff --git a/Python/clinic/Python-tokenize.c.h b/Python/clinic/Python-tokenize.c.h
index 2a0d50bda65..9e64c2055a8 100644
--- a/Python/clinic/Python-tokenize.c.h
+++ b/Python/clinic/Python-tokenize.c.h
@@ -22,9 +22,11 @@ tokenizeriter_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(extra_tokens), &_Py_ID(encoding), },
};
#undef NUM_KEYWORDS
@@ -81,4 +83,4 @@ skip_optional_kwonly:
exit:
return return_value;
}
-/*[clinic end generated code: output=831a75133d4a5034 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=4c448f34d9c835c0 input=a9049054013a1b77]*/
diff --git a/Python/clinic/_warnings.c.h b/Python/clinic/_warnings.c.h
index bcb4b344fa4..8bda830ccb9 100644
--- a/Python/clinic/_warnings.c.h
+++ b/Python/clinic/_warnings.c.h
@@ -81,9 +81,11 @@ warnings_warn(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObjec
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(message), &_Py_ID(category), &_Py_ID(stacklevel), &_Py_ID(source), &_Py_ID(skip_file_prefixes), },
};
#undef NUM_KEYWORDS
@@ -189,9 +191,11 @@ warnings_warn_explicit(PyObject *module, PyObject *const *args, Py_ssize_t nargs
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(message), &_Py_ID(category), &_Py_ID(filename), &_Py_ID(lineno), &_Py_ID(module), &_Py_ID(registry), &_Py_ID(module_globals), &_Py_ID(source), },
};
#undef NUM_KEYWORDS
@@ -280,4 +284,4 @@ warnings_filters_mutated_lock_held(PyObject *module, PyObject *Py_UNUSED(ignored
{
return warnings_filters_mutated_lock_held_impl(module);
}
-/*[clinic end generated code: output=d9d32a8b59a30683 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=610ed5764bf40bb5 input=a9049054013a1b77]*/
diff --git a/Python/clinic/bltinmodule.c.h b/Python/clinic/bltinmodule.c.h
index e5f634e34cb..c826a5724f7 100644
--- a/Python/clinic/bltinmodule.c.h
+++ b/Python/clinic/bltinmodule.c.h
@@ -46,9 +46,11 @@ builtin___import__(PyObject *module, PyObject *const *args, Py_ssize_t nargs, Py
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(name), &_Py_ID(globals), &_Py_ID(locals), &_Py_ID(fromlist), &_Py_ID(level), },
};
#undef NUM_KEYWORDS
@@ -270,9 +272,11 @@ builtin_compile(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObj
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(source), &_Py_ID(filename), &_Py_ID(mode), &_Py_ID(flags), &_Py_ID(dont_inherit), &_Py_ID(optimize), &_Py_ID(_feature_version), },
};
#undef NUM_KEYWORDS
@@ -425,9 +429,11 @@ builtin_eval(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(globals), &_Py_ID(locals), },
};
#undef NUM_KEYWORDS
@@ -504,9 +510,11 @@ builtin_exec(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(globals), &_Py_ID(locals), &_Py_ID(closure), },
};
#undef NUM_KEYWORDS
@@ -857,9 +865,11 @@ builtin_pow(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(base), &_Py_ID(exp), &_Py_ID(mod), },
};
#undef NUM_KEYWORDS
@@ -933,9 +943,11 @@ builtin_print(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObjec
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(sep), &_Py_ID(end), &_Py_ID(file), &_Py_ID(flush), },
};
#undef NUM_KEYWORDS
@@ -1075,9 +1087,11 @@ builtin_round(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObjec
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(number), &_Py_ID(ndigits), },
};
#undef NUM_KEYWORDS
@@ -1142,9 +1156,11 @@ builtin_sum(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(start), },
};
#undef NUM_KEYWORDS
@@ -1252,4 +1268,4 @@ builtin_issubclass(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
exit:
return return_value;
}
-/*[clinic end generated code: output=c08e0e086a791ff0 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=e7a5d0851d7f2cfb input=a9049054013a1b77]*/
diff --git a/Python/clinic/import.c.h b/Python/clinic/import.c.h
index 0e6a560d57c..9bbb13f7566 100644
--- a/Python/clinic/import.c.h
+++ b/Python/clinic/import.c.h
@@ -199,9 +199,11 @@ _imp_find_frozen(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyOb
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(withdata), },
};
#undef NUM_KEYWORDS
@@ -572,9 +574,11 @@ _imp_source_hash(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyOb
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(key), &_Py_ID(source), },
};
#undef NUM_KEYWORDS
@@ -625,4 +629,4 @@ exit:
#ifndef _IMP_EXEC_DYNAMIC_METHODDEF
#define _IMP_EXEC_DYNAMIC_METHODDEF
#endif /* !defined(_IMP_EXEC_DYNAMIC_METHODDEF) */
-/*[clinic end generated code: output=d0e278351d6adbb1 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=24f597d6b0f3feed input=a9049054013a1b77]*/
diff --git a/Python/clinic/instruction_sequence.c.h b/Python/clinic/instruction_sequence.c.h
index 41ab2de44e4..f780627bae6 100644
--- a/Python/clinic/instruction_sequence.c.h
+++ b/Python/clinic/instruction_sequence.c.h
@@ -60,9 +60,11 @@ InstructionSequenceType_use_label(PyObject *self, PyObject *const *args, Py_ssiz
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(label), },
};
#undef NUM_KEYWORDS
@@ -122,9 +124,11 @@ InstructionSequenceType_addop(PyObject *self, PyObject *const *args, Py_ssize_t
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(opcode), &_Py_ID(oparg), &_Py_ID(lineno), &_Py_ID(col_offset), &_Py_ID(end_lineno), &_Py_ID(end_col_offset), },
};
#undef NUM_KEYWORDS
@@ -235,9 +239,11 @@ InstructionSequenceType_add_nested(PyObject *self, PyObject *const *args, Py_ssi
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(nested), },
};
#undef NUM_KEYWORDS
@@ -304,4 +310,4 @@ InstructionSequenceType_get_instructions(PyObject *self, PyObject *Py_UNUSED(ign
{
return InstructionSequenceType_get_instructions_impl((_PyInstructionSequence *)self);
}
-/*[clinic end generated code: output=e6b5d05bde008cc2 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=c80501a59a1a1103 input=a9049054013a1b77]*/
diff --git a/Python/clinic/marshal.c.h b/Python/clinic/marshal.c.h
index d9bbb052741..6c00b2b31b0 100644
--- a/Python/clinic/marshal.c.h
+++ b/Python/clinic/marshal.c.h
@@ -44,9 +44,11 @@ marshal_dump(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(allow_code), },
};
#undef NUM_KEYWORDS
@@ -134,9 +136,11 @@ marshal_load(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObject
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(allow_code), },
};
#undef NUM_KEYWORDS
@@ -211,9 +215,11 @@ marshal_dumps(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObjec
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(allow_code), },
};
#undef NUM_KEYWORDS
@@ -293,9 +299,11 @@ marshal_loads(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyObjec
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(allow_code), },
};
#undef NUM_KEYWORDS
@@ -343,4 +351,4 @@ exit:
return return_value;
}
-/*[clinic end generated code: output=c7ef4f599658d8ab input=a9049054013a1b77]*/
+/*[clinic end generated code: output=3e4bfc070a3c78ac input=a9049054013a1b77]*/
diff --git a/Python/clinic/sysmodule.c.h b/Python/clinic/sysmodule.c.h
index 1e53624d4d4..d274b0c924c 100644
--- a/Python/clinic/sysmodule.c.h
+++ b/Python/clinic/sysmodule.c.h
@@ -31,9 +31,11 @@ sys_addaudithook(PyObject *module, PyObject *const *args, Py_ssize_t nargs, PyOb
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(hook), },
};
#undef NUM_KEYWORDS
@@ -619,9 +621,11 @@ sys_set_coroutine_origin_tracking_depth(PyObject *module, PyObject *const *args,
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(depth), },
};
#undef NUM_KEYWORDS
@@ -921,9 +925,11 @@ sys_set_int_max_str_digits(PyObject *module, PyObject *const *args, Py_ssize_t n
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(maxdigits), },
};
#undef NUM_KEYWORDS
@@ -1071,9 +1077,11 @@ sys_getunicodeinternedsize(PyObject *module, PyObject *const *args, Py_ssize_t n
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(_only_immortal), },
};
#undef NUM_KEYWORDS
@@ -1533,9 +1541,11 @@ sys__dump_tracelets(PyObject *module, PyObject *const *args, Py_ssize_t nargs, P
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(outpath), },
};
#undef NUM_KEYWORDS
@@ -1595,9 +1605,11 @@ sys__getframemodulename(PyObject *module, PyObject *const *args, Py_ssize_t narg
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(depth), },
};
#undef NUM_KEYWORDS
@@ -1754,4 +1766,4 @@ exit:
#ifndef SYS_GETANDROIDAPILEVEL_METHODDEF
#define SYS_GETANDROIDAPILEVEL_METHODDEF
#endif /* !defined(SYS_GETANDROIDAPILEVEL_METHODDEF) */
-/*[clinic end generated code: output=1e5f608092c12636 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=75e202eec4450f50 input=a9049054013a1b77]*/
diff --git a/Python/clinic/traceback.c.h b/Python/clinic/traceback.c.h
index 5eb31a18946..deae2efa3eb 100644
--- a/Python/clinic/traceback.c.h
+++ b/Python/clinic/traceback.c.h
@@ -29,9 +29,11 @@ tb_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
static struct {
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
} _kwtuple = {
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = { &_Py_ID(tb_next), &_Py_ID(tb_frame), &_Py_ID(tb_lasti), &_Py_ID(tb_lineno), },
};
#undef NUM_KEYWORDS
@@ -130,4 +132,4 @@ traceback_tb_next_set(PyObject *self, PyObject *value, void *Py_UNUSED(context))
return return_value;
}
-/*[clinic end generated code: output=ca43786e235e38f4 input=a9049054013a1b77]*/
+/*[clinic end generated code: output=5361141395da963e input=a9049054013a1b77]*/
diff --git a/Tools/clinic/libclinic/parse_args.py b/Tools/clinic/libclinic/parse_args.py
index 3a08f37afab..978e2f4263b 100644
--- a/Tools/clinic/libclinic/parse_args.py
+++ b/Tools/clinic/libclinic/parse_args.py
@@ -65,9 +65,11 @@ def declare_parser(
static struct {{
PyGC_Head _this_is_not_used;
PyObject_VAR_HEAD
+ Py_hash_t ob_hash;
PyObject *ob_item[NUM_KEYWORDS];
}} _kwtuple = {{
.ob_base = PyVarObject_HEAD_INIT(&PyTuple_Type, NUM_KEYWORDS)
+ .ob_hash = -1,
.ob_item = {{ {keywords_py} }},
}};
#undef NUM_KEYWORDS