
Hi,
Backwards Compatibility =======================
Since the ``PyDictObject`` structure is not part of the stable ABI and the new dictionary version not exposed at the Python scope, changes are backward compatible.
My current implementation inserts the new ma_version_tag field in the middle of the PyDictObject structure, so it obviously changes the ABI. Can someone please confirm (double check) that the PyDictObject structure is explicitly excluded from the stable ABI? I'm talking about about the "#ifndef Py_LIMITED_API" in Include/dictobject.h. I understood what is an ABI in the hard way. When I ran the perf.py benchmark, I got a crash in ctypes on django_v3. The ctypes module uses a C type which inherits from the dict type. I compiled Python with and without my patch in the same directory and then I renamed the ./python binary, but the _ctypes.so was shared between the two binaries. Victor