Before, the Python implementation emitted :exc:`FutureWarning`, and the C
implementation emitted nothing.
+* In accordance with :pep:`699`, the ``ma_version_tag`` field in :c:type:`PyDictObject`
+ is deprecated for extension modules. Accessing this field will generate a compiler
+ warning at compile time. This field will be removed in Python 3.14.
+ (Contributed by Ramvikrams and Kumar Aditya in :gh:`101193`. PEP by Ken Jin.)
+
Pending Removal in Python 3.13
------------------------------
/* Dictionary version: globally unique, value change each time
the dictionary is modified */
+#ifdef Py_BUILD_CORE
uint64_t ma_version_tag;
+#else
+ Py_DEPRECATED(3.12) uint64_t ma_version_tag;
+#endif
PyDictKeysObject *ma_keys;
--- /dev/null
+In accordance with :PEP:`699`, the ``ma_version_tag`` field in :c:type:`PyDictObject`
+is deprecated for extension modules. Accessing this field will generate a compiler
+warning at compile time. This field will be removed in Python 3.14.
if (!PyArg_ParseTuple(args, "O!", &PyDict_Type, &dict))
return NULL;
+ _Py_COMP_DIAG_PUSH
+ _Py_COMP_DIAG_IGNORE_DEPR_DECLS
version = dict->ma_version_tag;
+ _Py_COMP_DIAG_POP
static_assert(sizeof(unsigned long long) >= sizeof(version),
"version is larger than unsigned long long");