]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
[3.14] GH-148726: Add heap_size to _gc_runtime_state (#149025)
authorSergey Miryanov <sergey.miryanov@gmail.com>
Wed, 29 Apr 2026 10:04:11 +0000 (15:04 +0500)
committerGitHub <noreply@github.com>
Wed, 29 Apr 2026 10:04:11 +0000 (13:04 +0300)
Doc/data/python3.14.abi
Include/internal/pycore_gc.h
Include/internal/pycore_interp_structs.h
Lib/test/test_gc.py
Modules/_testinternalcapi.c
Python/gc.c

index 7dc43dd58ce2d5f3da39f48215bd73c9b3db27d6..78f380ee46d4a5e5d87788ec7b10c5b0512e39f1 100644 (file)
     <elf-symbol name='_PyNotImplemented_Type' size='416' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
     <elf-symbol name='_PyOS_ReadlineTState' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
     <elf-symbol name='_PyParser_TokenNames' size='560' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
-    <elf-symbol name='_PyRuntime' size='316592' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
+    <elf-symbol name='_PyRuntime' size='316600' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
     <elf-symbol name='_PySet_Dummy' size='8' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
     <elf-symbol name='_PyUnion_Type' size='416' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
     <elf-symbol name='_PyWeakref_CallableProxyType' size='416' type='object-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
       <enumerator name='_Py_GC_REASON_MANUAL' value='2'/>
     </enum-decl>
     <typedef-decl name='_PyGC_Reason' type-id='type-id-248' filepath='./Include/internal/pycore_gc.h' line='142' column='1' id='type-id-247'/>
-    <function-decl name='_PyGC_Collect' filepath='./Include/internal/pycore_gc.h' line='314' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_PyGC_Collect' filepath='./Include/internal/pycore_gc.h' line='318' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-40'/>
       <parameter type-id='type-id-5'/>
       <parameter type-id='type-id-247'/>
       <return type-id='type-id-7'/>
     </function-decl>
-    <function-decl name='_PyGC_Freeze' filepath='./Include/internal/pycore_gc.h' line='318' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_PyGC_Freeze' filepath='./Include/internal/pycore_gc.h' line='322' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-42'/>
       <return type-id='type-id-3'/>
     </function-decl>
-    <function-decl name='_PyGC_Unfreeze' filepath='./Include/internal/pycore_gc.h' line='320' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_PyGC_Unfreeze' filepath='./Include/internal/pycore_gc.h' line='324' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-42'/>
       <return type-id='type-id-3'/>
     </function-decl>
-    <function-decl name='_PyGC_GetFreezeCount' filepath='./Include/internal/pycore_gc.h' line='322' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_PyGC_GetFreezeCount' filepath='./Include/internal/pycore_gc.h' line='326' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-42'/>
       <return type-id='type-id-7'/>
     </function-decl>
-    <function-decl name='_PyGC_GetObjects' filepath='./Include/internal/pycore_gc.h' line='324' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_PyGC_GetObjects' filepath='./Include/internal/pycore_gc.h' line='328' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-42'/>
       <parameter type-id='type-id-5'/>
       <return type-id='type-id-6'/>
     </function-decl>
-    <function-decl name='_PyGC_GetReferrers' filepath='./Include/internal/pycore_gc.h' line='325' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_PyGC_GetReferrers' filepath='./Include/internal/pycore_gc.h' line='329' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-42'/>
       <parameter type-id='type-id-6'/>
       <return type-id='type-id-6'/>
       <parameter type-id='type-id-40'/>
       <return type-id='type-id-346'/>
     </function-decl>
-    <function-decl name='_PyGC_VisitStackRef' filepath='./Include/internal/pycore_gc.h' line='335' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_PyGC_VisitStackRef' filepath='./Include/internal/pycore_gc.h' line='339' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-432'/>
       <parameter type-id='type-id-398'/>
       <parameter type-id='type-id-44'/>
         <var-decl name='uncollectable' type-id='type-id-7' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='195' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='_gc_runtime_state' size-in-bits='1920' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='202' column='1' id='type-id-1254'>
+    <class-decl name='_gc_runtime_state' size-in-bits='1984' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='202' column='1' id='type-id-1254'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='trash_delete_later' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='205' column='1'/>
       </data-member>
         <var-decl name='callbacks' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='228' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1792'>
-        <var-decl name='long_lived_total' type-id='type-id-7' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='236' column='1'/>
+        <var-decl name='heap_size' type-id='type-id-7' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='231' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1856'>
-        <var-decl name='long_lived_pending' type-id='type-id-7' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='240' column='1'/>
+        <var-decl name='long_lived_total' type-id='type-id-7' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='239' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1920'>
+        <var-decl name='long_lived_pending' type-id='type-id-7' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='243' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='_import_runtime_state' size-in-bits='320' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='278' column='1' id='type-id-1256'>
+    <class-decl name='_import_runtime_state' size-in-bits='320' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='282' column='1' id='type-id-1256'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='inittab' type-id='type-id-1257' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='280' column='1'/>
+        <var-decl name='inittab' type-id='type-id-1257' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='284' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='last_module_index' type-id='type-id-7' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='285' column='1'/>
+        <var-decl name='last_module_index' type-id='type-id-7' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='289' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='extensions' type-id='type-id-1258' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='296' column='1'/>
+        <var-decl name='extensions' type-id='type-id-1258' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='300' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='pkgcontext' type-id='type-id-4' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='298' column='1'/>
+        <var-decl name='pkgcontext' type-id='type-id-4' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='302' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__40' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='286' column='1' id='type-id-1258'>
+    <class-decl name='__anonymous_struct__40' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='290' column='1' id='type-id-1258'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='mutex' type-id='type-id-753' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='288' column='1'/>
+        <var-decl name='mutex' type-id='type-id-753' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='292' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='hashtable' type-id='type-id-619' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='295' column='1'/>
+        <var-decl name='hashtable' type-id='type-id-619' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='299' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='_import_state' size-in-bits='768' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='301' column='1' id='type-id-1259'>
+    <class-decl name='_import_state' size-in-bits='768' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='305' column='1' id='type-id-1259'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='modules' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='303' column='1'/>
+        <var-decl name='modules' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='307' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='modules_by_index' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='323' column='1'/>
+        <var-decl name='modules_by_index' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='327' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='importlib' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='325' column='1'/>
+        <var-decl name='importlib' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='329' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='override_frozen_modules' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='328' column='1'/>
+        <var-decl name='override_frozen_modules' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='332' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='224'>
-        <var-decl name='override_multi_interp_extensions_check' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='329' column='1'/>
+        <var-decl name='override_multi_interp_extensions_check' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='333' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='dlopenflags' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='331' column='1'/>
+        <var-decl name='dlopenflags' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='335' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='import_func' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='333' column='1'/>
+        <var-decl name='import_func' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='337' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='lock' type-id='type-id-1260' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='335' column='1'/>
+        <var-decl name='lock' type-id='type-id-1260' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='339' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='576'>
-        <var-decl name='find_and_load' type-id='type-id-1261' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='341' column='1'/>
+        <var-decl name='find_and_load' type-id='type-id-1261' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='345' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__841' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='337' column='1' id='type-id-1261'>
+    <class-decl name='__anonymous_struct__841' size-in-bits='192' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='341' column='1' id='type-id-1261'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='import_level' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='338' column='1'/>
+        <var-decl name='import_level' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='342' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='accumulated' type-id='type-id-37' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='339' column='1'/>
+        <var-decl name='accumulated' type-id='type-id-37' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='343' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='header' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='340' column='1'/>
+        <var-decl name='header' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='344' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='_Py_long_state' size-in-bits='32' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='352' column='1' id='type-id-1262'>
+    <class-decl name='_Py_long_state' size-in-bits='32' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='356' column='1' id='type-id-1262'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='max_str_digits' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='353' column='1'/>
+        <var-decl name='max_str_digits' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='357' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='codecs_state' size-in-bits='256' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='356' column='1' id='type-id-1263'>
+    <class-decl name='codecs_state' size-in-bits='256' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='360' column='1' id='type-id-1263'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='search_path' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='358' column='1'/>
+        <var-decl name='search_path' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='362' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='search_cache' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='362' column='1'/>
+        <var-decl name='search_cache' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='366' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='error_registry' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='365' column='1'/>
+        <var-decl name='error_registry' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='369' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='initialized' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='373' column='1'/>
+        <var-decl name='initialized' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='377' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='_stoptheworld_state' size-in-bits='192' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='378' column='1' id='type-id-1264'>
+    <class-decl name='_stoptheworld_state' size-in-bits='192' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='382' column='1' id='type-id-1264'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='mutex' type-id='type-id-753' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='379' column='1'/>
+        <var-decl name='mutex' type-id='type-id-753' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='383' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='8'>
-        <var-decl name='requested' type-id='type-id-346' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='383' column='1'/>
+        <var-decl name='requested' type-id='type-id-346' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='387' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='16'>
-        <var-decl name='world_stopped' type-id='type-id-346' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='384' column='1'/>
+        <var-decl name='world_stopped' type-id='type-id-346' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='388' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='24'>
-        <var-decl name='is_global' type-id='type-id-346' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='385' column='1'/>
+        <var-decl name='is_global' type-id='type-id-346' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='389' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='32'>
-        <var-decl name='stop_event' type-id='type-id-1265' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='387' column='1'/>
+        <var-decl name='stop_event' type-id='type-id-1265' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='391' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='thread_countdown' type-id='type-id-7' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='388' column='1'/>
+        <var-decl name='thread_countdown' type-id='type-id-7' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='392' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='requester' type-id='type-id-40' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='390' column='1'/>
+        <var-decl name='requester' type-id='type-id-40' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='394' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='_rare_events' size-in-bits='40' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='395' column='1' id='type-id-1266'>
+    <class-decl name='_rare_events' size-in-bits='40' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='399' column='1' id='type-id-1266'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='set_class' type-id='type-id-310' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='397' column='1'/>
+        <var-decl name='set_class' type-id='type-id-310' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='401' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='8'>
-        <var-decl name='set_bases' type-id='type-id-310' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='399' column='1'/>
+        <var-decl name='set_bases' type-id='type-id-310' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='403' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='16'>
-        <var-decl name='set_eval_frame_func' type-id='type-id-310' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='401' column='1'/>
+        <var-decl name='set_eval_frame_func' type-id='type-id-310' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='405' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='24'>
-        <var-decl name='builtin_dict' type-id='type-id-310' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='403' column='1'/>
+        <var-decl name='builtin_dict' type-id='type-id-310' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='407' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='32'>
-        <var-decl name='func_modification' type-id='type-id-310' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='405' column='1'/>
+        <var-decl name='func_modification' type-id='type-id-310' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='409' column='1'/>
       </data-member>
     </class-decl>
-    <typedef-decl name='_rare_events' type-id='type-id-1266' filepath='./Include/internal/pycore_interp_structs.h' line='406' column='1' id='type-id-1267'/>
-    <class-decl name='Bigint' size-in-bits='256' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='409' column='1' id='type-id-1268'>
+    <typedef-decl name='_rare_events' type-id='type-id-1266' filepath='./Include/internal/pycore_interp_structs.h' line='410' column='1' id='type-id-1267'/>
+    <class-decl name='Bigint' size-in-bits='256' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='413' column='1' id='type-id-1268'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='next' type-id='type-id-807' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='410' column='1'/>
+        <var-decl name='next' type-id='type-id-807' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='414' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='k' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='411' column='1'/>
+        <var-decl name='k' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='415' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='96'>
-        <var-decl name='maxwds' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='411' column='1'/>
+        <var-decl name='maxwds' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='415' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='sign' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='411' column='1'/>
+        <var-decl name='sign' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='415' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='160'>
-        <var-decl name='wds' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='411' column='1'/>
+        <var-decl name='wds' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='415' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='x' type-id='type-id-907' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='412' column='1'/>
+        <var-decl name='x' type-id='type-id-907' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='416' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='_dtoa_state' size-in-bits='19520' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='435' column='1' id='type-id-1269'>
+    <class-decl name='_dtoa_state' size-in-bits='19520' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='439' column='1' id='type-id-1269'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='p5s' type-id='type-id-808' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='438' column='1'/>
+        <var-decl name='p5s' type-id='type-id-808' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='442' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='512'>
-        <var-decl name='freelist' type-id='type-id-808' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='440' column='1'/>
+        <var-decl name='freelist' type-id='type-id-808' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='444' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1024'>
-        <var-decl name='preallocated' type-id='type-id-875' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='441' column='1'/>
+        <var-decl name='preallocated' type-id='type-id-875' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='445' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='19456'>
-        <var-decl name='preallocated_next' type-id='type-id-189' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='442' column='1'/>
+        <var-decl name='preallocated_next' type-id='type-id-189' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='446' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='_py_code_state' size-in-bits='128' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='447' column='1' id='type-id-1270'>
+    <class-decl name='_py_code_state' size-in-bits='128' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='451' column='1' id='type-id-1270'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='mutex' type-id='type-id-753' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='448' column='1'/>
+        <var-decl name='mutex' type-id='type-id-753' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='452' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='constants' type-id='type-id-619' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='450' column='1'/>
+        <var-decl name='constants' type-id='type-id-619' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='454' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='_func_version_cache_item' size-in-bits='128' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='455' column='1' id='type-id-838'>
+    <class-decl name='_func_version_cache_item' size-in-bits='128' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='459' column='1' id='type-id-838'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='func' type-id='type-id-313' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='456' column='1'/>
+        <var-decl name='func' type-id='type-id-313' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='460' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='code' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='457' column='1'/>
+        <var-decl name='code' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='461' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='_py_func_state' size-in-bits='524352' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='460' column='1' id='type-id-1271'>
+    <class-decl name='_py_func_state' size-in-bits='524352' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='464' column='1' id='type-id-1271'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='next_version' type-id='type-id-324' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='466' column='1'/>
+        <var-decl name='next_version' type-id='type-id-324' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='470' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='func_version_cache' type-id='type-id-839' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='471' column='1'/>
+        <var-decl name='func_version_cache' type-id='type-id-839' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='475' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='_types_runtime_state' size-in-bits='26944' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='487' column='1' id='type-id-1272'>
+    <class-decl name='_types_runtime_state' size-in-bits='26944' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='491' column='1' id='type-id-1272'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='next_version_tag' type-id='type-id-114' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='491' column='1'/>
+        <var-decl name='next_version_tag' type-id='type-id-114' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='495' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='managed_static' type-id='type-id-1273' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='498' column='1'/>
+        <var-decl name='managed_static' type-id='type-id-1273' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='502' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__54' size-in-bits='26880' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='493' column='1' id='type-id-1273'>
+    <class-decl name='__anonymous_struct__54' size-in-bits='26880' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='497' column='1' id='type-id-1273'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='types' type-id='type-id-832' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='497' column='1'/>
+        <var-decl name='types' type-id='type-id-832' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='501' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__55' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='494' column='1' id='type-id-831'>
+    <class-decl name='__anonymous_struct__55' size-in-bits='128' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='498' column='1' id='type-id-831'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='type' type-id='type-id-1' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='495' column='1'/>
+        <var-decl name='type' type-id='type-id-1' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='499' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='interp_count' type-id='type-id-410' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='496' column='1'/>
+        <var-decl name='interp_count' type-id='type-id-410' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='500' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='type_cache_entry' size-in-bits='192' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='504' column='1' id='type-id-905'>
+    <class-decl name='type_cache_entry' size-in-bits='192' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='508' column='1' id='type-id-905'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='version' type-id='type-id-114' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='505' column='1'/>
+        <var-decl name='version' type-id='type-id-114' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='509' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='name' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='509' column='1'/>
+        <var-decl name='name' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='513' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='value' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='510' column='1'/>
+        <var-decl name='value' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='514' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='type_cache' size-in-bits='786432' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='515' column='1' id='type-id-1274'>
+    <class-decl name='type_cache' size-in-bits='786432' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='519' column='1' id='type-id-1274'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='hashtable' type-id='type-id-906' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='516' column='1'/>
+        <var-decl name='hashtable' type-id='type-id-906' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='520' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='managed_static_type_state' size-in-bits='384' is-struct='yes' naming-typedef-id='type-id-485' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='519' column='1' id='type-id-1275'>
+    <class-decl name='managed_static_type_state' size-in-bits='384' is-struct='yes' naming-typedef-id='type-id-485' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='523' column='1' id='type-id-1275'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='type' type-id='type-id-1' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='520' column='1'/>
+        <var-decl name='type' type-id='type-id-1' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='524' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='isbuiltin' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='521' column='1'/>
+        <var-decl name='isbuiltin' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='525' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='96'>
-        <var-decl name='readying' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='522' column='1'/>
+        <var-decl name='readying' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='526' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='ready' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='523' column='1'/>
+        <var-decl name='ready' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='527' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='tp_dict' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='526' column='1'/>
+        <var-decl name='tp_dict' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='530' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='tp_subclasses' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='527' column='1'/>
+        <var-decl name='tp_subclasses' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='531' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='tp_weaklist' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='532' column='1'/>
+        <var-decl name='tp_weaklist' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='536' column='1'/>
       </data-member>
     </class-decl>
-    <typedef-decl name='managed_static_type_state' type-id='type-id-1275' filepath='./Include/internal/pycore_interp_structs.h' line='533' column='1' id='type-id-485'/>
-    <class-decl name='types_state' size-in-bits='1129536' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='537' column='1' id='type-id-1276'>
+    <typedef-decl name='managed_static_type_state' type-id='type-id-1275' filepath='./Include/internal/pycore_interp_structs.h' line='537' column='1' id='type-id-485'/>
+    <class-decl name='types_state' size-in-bits='1129536' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='541' column='1' id='type-id-1276'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='next_version_tag' type-id='type-id-114' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='541' column='1'/>
+        <var-decl name='next_version_tag' type-id='type-id-114' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='545' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='type_cache' type-id='type-id-1274' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='543' column='1'/>
+        <var-decl name='type_cache' type-id='type-id-1274' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='547' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='786496'>
-        <var-decl name='builtins' type-id='type-id-1277' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='584' column='1'/>
+        <var-decl name='builtins' type-id='type-id-1277' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='588' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='863360'>
-        <var-decl name='for_extensions' type-id='type-id-1278' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='590' column='1'/>
+        <var-decl name='for_extensions' type-id='type-id-1278' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='594' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='867328'>
-        <var-decl name='mutex' type-id='type-id-753' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='591' column='1'/>
+        <var-decl name='mutex' type-id='type-id-753' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='595' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='867392'>
-        <var-decl name='type_version_cache' type-id='type-id-821' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='597' column='1'/>
+        <var-decl name='type_version_cache' type-id='type-id-821' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='601' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__842' size-in-bits='76864' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='581' column='1' id='type-id-1277'>
+    <class-decl name='__anonymous_struct__842' size-in-bits='76864' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='585' column='1' id='type-id-1277'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='num_initialized' type-id='type-id-14' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='582' column='1'/>
+        <var-decl name='num_initialized' type-id='type-id-14' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='586' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='initialized' type-id='type-id-894' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='583' column='1'/>
+        <var-decl name='initialized' type-id='type-id-894' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='587' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__843' size-in-bits='3968' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='586' column='1' id='type-id-1278'>
+    <class-decl name='__anonymous_struct__843' size-in-bits='3968' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='590' column='1' id='type-id-1278'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='num_initialized' type-id='type-id-14' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='587' column='1'/>
+        <var-decl name='num_initialized' type-id='type-id-14' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='591' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='next_index' type-id='type-id-14' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='588' column='1'/>
+        <var-decl name='next_index' type-id='type-id-14' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='592' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='initialized' type-id='type-id-892' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='589' column='1'/>
+        <var-decl name='initialized' type-id='type-id-892' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='593' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='_warnings_runtime_state' size-in-bits='512' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='600' column='1' id='type-id-1279'>
+    <class-decl name='_warnings_runtime_state' size-in-bits='512' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='604' column='1' id='type-id-1279'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='filters' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='603' column='1'/>
+        <var-decl name='filters' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='607' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='once_registry' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='604' column='1'/>
+        <var-decl name='once_registry' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='608' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='default_action' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='605' column='1'/>
+        <var-decl name='default_action' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='609' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='lock' type-id='type-id-1260' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='606' column='1'/>
+        <var-decl name='lock' type-id='type-id-1260' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='610' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='384'>
-        <var-decl name='filters_version' type-id='type-id-191' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='607' column='1'/>
+        <var-decl name='filters_version' type-id='type-id-191' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='611' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='448'>
-        <var-decl name='context' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='608' column='1'/>
+        <var-decl name='context' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='612' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='_Py_mem_interp_free_queue' size-in-bits='192' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='611' column='1' id='type-id-1280'>
+    <class-decl name='_Py_mem_interp_free_queue' size-in-bits='192' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='615' column='1' id='type-id-1280'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='has_work' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='612' column='1'/>
+        <var-decl name='has_work' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='616' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='32'>
-        <var-decl name='mutex' type-id='type-id-753' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='613' column='1'/>
+        <var-decl name='mutex' type-id='type-id-753' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='617' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='head' type-id='type-id-1281' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='614' column='1'/>
+        <var-decl name='head' type-id='type-id-1281' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='618' column='1'/>
       </data-member>
     </class-decl>
-    <enum-decl name='_Py_error_handler' naming-typedef-id='type-id-615' filepath='./Include/internal/pycore_interp_structs.h' line='620' column='1' id='type-id-1282'>
+    <enum-decl name='_Py_error_handler' naming-typedef-id='type-id-615' filepath='./Include/internal/pycore_interp_structs.h' line='624' column='1' id='type-id-1282'>
       <underlying-type type-id='type-id-46'/>
       <enumerator name='_Py_ERROR_UNKNOWN' value='0'/>
       <enumerator name='_Py_ERROR_STRICT' value='1'/>
       <enumerator name='_Py_ERROR_XMLCHARREFREPLACE' value='7'/>
       <enumerator name='_Py_ERROR_OTHER' value='8'/>
     </enum-decl>
-    <typedef-decl name='_Py_error_handler' type-id='type-id-1282' filepath='./Include/internal/pycore_interp_structs.h' line='630' column='1' id='type-id-615'/>
-    <class-decl name='_Py_unicode_runtime_ids' size-in-bits='128' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='632' column='1' id='type-id-1283'>
+    <typedef-decl name='_Py_error_handler' type-id='type-id-1282' filepath='./Include/internal/pycore_interp_structs.h' line='634' column='1' id='type-id-615'/>
+    <class-decl name='_Py_unicode_runtime_ids' size-in-bits='128' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='636' column='1' id='type-id-1283'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='mutex' type-id='type-id-753' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='633' column='1'/>
+        <var-decl name='mutex' type-id='type-id-753' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='637' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='next_index' type-id='type-id-7' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='636' column='1'/>
+        <var-decl name='next_index' type-id='type-id-7' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='640' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='_Py_unicode_runtime_state' size-in-bits='128' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='639' column='1' id='type-id-1284'>
+    <class-decl name='_Py_unicode_runtime_state' size-in-bits='128' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='643' column='1' id='type-id-1284'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ids' type-id='type-id-1283' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='640' column='1'/>
+        <var-decl name='ids' type-id='type-id-1283' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='644' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='_Py_unicode_fs_codec' size-in-bits='256' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='645' column='1' id='type-id-1285'>
+    <class-decl name='_Py_unicode_fs_codec' size-in-bits='256' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='649' column='1' id='type-id-1285'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='encoding' type-id='type-id-27' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='646' column='1'/>
+        <var-decl name='encoding' type-id='type-id-27' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='650' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='utf8' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='647' column='1'/>
+        <var-decl name='utf8' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='651' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='errors' type-id='type-id-27' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='648' column='1'/>
+        <var-decl name='errors' type-id='type-id-27' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='652' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='error_handler' type-id='type-id-615' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='649' column='1'/>
+        <var-decl name='error_handler' type-id='type-id-615' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='653' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='_Py_unicode_ids' size-in-bits='128' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='652' column='1' id='type-id-1286'>
+    <class-decl name='_Py_unicode_ids' size-in-bits='128' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='656' column='1' id='type-id-1286'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='size' type-id='type-id-7' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='653' column='1'/>
+        <var-decl name='size' type-id='type-id-7' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='657' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='array' type-id='type-id-18' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='654' column='1'/>
+        <var-decl name='array' type-id='type-id-18' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='658' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='_Py_unicode_state' size-in-bits='448' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='659' column='1' id='type-id-1287'>
+    <class-decl name='_Py_unicode_state' size-in-bits='448' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='663' column='1' id='type-id-1287'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='fs_codec' type-id='type-id-1285' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='660' column='1'/>
+        <var-decl name='fs_codec' type-id='type-id-1285' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='664' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='ucnhash_capi' type-id='type-id-1288' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='662' column='1'/>
+        <var-decl name='ucnhash_capi' type-id='type-id-1288' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='666' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='ids' type-id='type-id-1286' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='665' column='1'/>
+        <var-decl name='ids' type-id='type-id-1286' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='669' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='callable_cache' size-in-bits='256' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='669' column='1' id='type-id-1289'>
+    <class-decl name='callable_cache' size-in-bits='256' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='673' column='1' id='type-id-1289'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='isinstance' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='670' column='1'/>
+        <var-decl name='isinstance' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='674' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='len' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='671' column='1'/>
+        <var-decl name='len' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='675' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='list_append' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='672' column='1'/>
+        <var-decl name='list_append' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='676' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='object__getattribute__' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='673' column='1'/>
+        <var-decl name='object__getattribute__' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='677' column='1'/>
       </data-member>
     </class-decl>
-    <typedef-decl name='pytype_slotdef' type-id='type-id-383' filepath='./Include/internal/pycore_interp_structs.h' line='682' column='1' id='type-id-1290'/>
-    <class-decl name='_Py_interp_cached_objects' size-in-bits='1280' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='685' column='1' id='type-id-1291'>
+    <typedef-decl name='pytype_slotdef' type-id='type-id-383' filepath='./Include/internal/pycore_interp_structs.h' line='686' column='1' id='type-id-1290'/>
+    <class-decl name='_Py_interp_cached_objects' size-in-bits='1280' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='689' column='1' id='type-id-1291'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='interned_strings' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='689' column='1'/>
+        <var-decl name='interned_strings' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='693' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='objreduce' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='692' column='1'/>
+        <var-decl name='objreduce' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='696' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='type_slots_pname' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='693' column='1'/>
+        <var-decl name='type_slots_pname' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='697' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='type_slots_ptrs' type-id='type-id-899' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='694' column='1'/>
+        <var-decl name='type_slots_ptrs' type-id='type-id-899' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='698' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='832'>
-        <var-decl name='generic_type' type-id='type-id-1' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='697' column='1'/>
+        <var-decl name='generic_type' type-id='type-id-1' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='701' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='896'>
-        <var-decl name='typevar_type' type-id='type-id-1' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='698' column='1'/>
+        <var-decl name='typevar_type' type-id='type-id-1' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='702' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='960'>
-        <var-decl name='typevartuple_type' type-id='type-id-1' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='699' column='1'/>
+        <var-decl name='typevartuple_type' type-id='type-id-1' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='703' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1024'>
-        <var-decl name='paramspec_type' type-id='type-id-1' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='700' column='1'/>
+        <var-decl name='paramspec_type' type-id='type-id-1' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='704' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1088'>
-        <var-decl name='paramspecargs_type' type-id='type-id-1' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='701' column='1'/>
+        <var-decl name='paramspecargs_type' type-id='type-id-1' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='705' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1152'>
-        <var-decl name='paramspeckwargs_type' type-id='type-id-1' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='702' column='1'/>
+        <var-decl name='paramspeckwargs_type' type-id='type-id-1' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='706' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1216'>
-        <var-decl name='constevaluator_type' type-id='type-id-1' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='703' column='1'/>
+        <var-decl name='constevaluator_type' type-id='type-id-1' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='707' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='_Py_interp_static_objects' size-in-bits='1088' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='706' column='1' id='type-id-1292'>
+    <class-decl name='_Py_interp_static_objects' size-in-bits='1088' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='710' column='1' id='type-id-1292'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='singletons' type-id='type-id-1293' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='713' column='1'/>
+        <var-decl name='singletons' type-id='type-id-1293' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='717' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='__anonymous_struct__844' size-in-bits='1088' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='707' column='1' id='type-id-1293'>
+    <class-decl name='__anonymous_struct__844' size-in-bits='1088' is-struct='yes' is-anonymous='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='711' column='1' id='type-id-1293'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='_not_used' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='708' column='1'/>
+        <var-decl name='_not_used' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='712' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='_hamt_empty_gc_not_used' type-id='type-id-1252' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='710' column='1'/>
+        <var-decl name='_hamt_empty_gc_not_used' type-id='type-id-1252' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='714' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='hamt_empty' type-id='type-id-1294' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='711' column='1'/>
+        <var-decl name='hamt_empty' type-id='type-id-1294' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='715' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='512'>
-        <var-decl name='last_resort_memory_error' type-id='type-id-1035' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='712' column='1'/>
+        <var-decl name='last_resort_memory_error' type-id='type-id-1035' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='716' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='_is' size-in-bits='1806720' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='777' column='1' id='type-id-1295'>
+    <class-decl name='_is' size-in-bits='1806784' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='781' column='1' id='type-id-1295'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='ceval' type-id='type-id-1245' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='782' column='1'/>
+        <var-decl name='ceval' type-id='type-id-1245' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='786' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='58112'>
-        <var-decl name='_malloced' type-id='type-id-44' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='785' column='1'/>
+        <var-decl name='_malloced' type-id='type-id-44' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='789' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='58176'>
-        <var-decl name='next' type-id='type-id-42' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='787' column='1'/>
+        <var-decl name='next' type-id='type-id-42' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='791' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='58240'>
-        <var-decl name='id' type-id='type-id-410' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='789' column='1'/>
+        <var-decl name='id' type-id='type-id-410' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='793' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='58304'>
-        <var-decl name='id_refcount' type-id='type-id-7' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='790' column='1'/>
+        <var-decl name='id_refcount' type-id='type-id-7' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='794' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='58368'>
-        <var-decl name='requires_idref' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='791' column='1'/>
+        <var-decl name='requires_idref' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='795' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='58432'>
-        <var-decl name='_whence' type-id='type-id-191' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='793' column='1'/>
+        <var-decl name='_whence' type-id='type-id-191' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='797' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='58496'>
-        <var-decl name='_initialized' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='799' column='1'/>
+        <var-decl name='_initialized' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='803' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='58528'>
-        <var-decl name='_ready' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='801' column='1'/>
+        <var-decl name='_ready' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='805' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='58560'>
-        <var-decl name='finalizing' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='802' column='1'/>
+        <var-decl name='finalizing' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='806' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='58624'>
-        <var-decl name='last_restart_version' type-id='type-id-372' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='804' column='1'/>
+        <var-decl name='last_restart_version' type-id='type-id-372' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='808' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='58688'>
-        <var-decl name='threads' type-id='type-id-1296' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='819' column='1'/>
+        <var-decl name='threads' type-id='type-id-1296' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='823' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='59072'>
-        <var-decl name='runtime' type-id='type-id-180' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='824' column='1'/>
+        <var-decl name='runtime' type-id='type-id-180' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='828' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='59136'>
-        <var-decl name='_finalizing' type-id='type-id-40' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='831' column='1'/>
+        <var-decl name='_finalizing' type-id='type-id-40' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='835' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='59200'>
-        <var-decl name='_finalizing_id' type-id='type-id-2' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='833' column='1'/>
+        <var-decl name='_finalizing_id' type-id='type-id-2' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='837' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='59264'>
-        <var-decl name='gc' type-id='type-id-1254' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='835' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='61184'>
-        <var-decl name='sysdict' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='850' column='1'/>
+        <var-decl name='gc' type-id='type-id-1254' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='839' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='61248'>
-        <var-decl name='builtins' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='853' column='1'/>
+        <var-decl name='sysdict' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='854' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='61312'>
-        <var-decl name='imports' type-id='type-id-1259' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='855' column='1'/>
+        <var-decl name='builtins' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='857' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='62080'>
-        <var-decl name='_gil' type-id='type-id-1176' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='858' column='1'/>
+      <data-member access='public' layout-offset-in-bits='61376'>
+        <var-decl name='imports' type-id='type-id-1259' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='859' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='63744'>
-        <var-decl name='_code_object_generation' type-id='type-id-120' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='860' column='1'/>
+      <data-member access='public' layout-offset-in-bits='62144'>
+        <var-decl name='_gil' type-id='type-id-1176' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='862' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='63808'>
-        <var-decl name='codecs' type-id='type-id-1263' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='867' column='1'/>
+        <var-decl name='_code_object_generation' type-id='type-id-120' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='864' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='64064'>
-        <var-decl name='config' type-id='type-id-274' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='869' column='1'/>
+      <data-member access='public' layout-offset-in-bits='63872'>
+        <var-decl name='codecs' type-id='type-id-1263' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='871' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='67712'>
-        <var-decl name='feature_flags' type-id='type-id-2' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='870' column='1'/>
+      <data-member access='public' layout-offset-in-bits='64128'>
+        <var-decl name='config' type-id='type-id-274' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='873' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='67776'>
-        <var-decl name='dict' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='872' column='1'/>
+        <var-decl name='feature_flags' type-id='type-id-2' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='874' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='67840'>
-        <var-decl name='sysdict_copy' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='874' column='1'/>
+        <var-decl name='dict' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='876' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='67904'>
-        <var-decl name='builtins_copy' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='875' column='1'/>
+        <var-decl name='sysdict_copy' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='878' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='67968'>
-        <var-decl name='eval_frame' type-id='type-id-1054' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='877' column='1'/>
+        <var-decl name='builtins_copy' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='879' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='68032'>
-        <var-decl name='func_watchers' type-id='type-id-813' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='879' column='1'/>
+        <var-decl name='eval_frame' type-id='type-id-1054' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='881' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='68544'>
-        <var-decl name='active_func_watchers' type-id='type-id-310' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='881' column='1'/>
+      <data-member access='public' layout-offset-in-bits='68096'>
+        <var-decl name='func_watchers' type-id='type-id-813' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='883' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='68608'>
-        <var-decl name='co_extra_user_count' type-id='type-id-7' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='883' column='1'/>
+        <var-decl name='active_func_watchers' type-id='type-id-310' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='885' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='68672'>
-        <var-decl name='co_extra_freefuncs' type-id='type-id-878' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='884' column='1'/>
+        <var-decl name='co_extra_user_count' type-id='type-id-7' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='887' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='84992'>
-        <var-decl name='xi' type-id='type-id-1135' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='887' column='1'/>
+      <data-member access='public' layout-offset-in-bits='68736'>
+        <var-decl name='co_extra_freefuncs' type-id='type-id-878' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='888' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='85376'>
-        <var-decl name='before_forkers' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='890' column='1'/>
+      <data-member access='public' layout-offset-in-bits='85056'>
+        <var-decl name='xi' type-id='type-id-1135' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='891' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='85440'>
-        <var-decl name='after_forkers_parent' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='891' column='1'/>
+        <var-decl name='before_forkers' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='894' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='85504'>
-        <var-decl name='after_forkers_child' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='892' column='1'/>
+        <var-decl name='after_forkers_parent' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='895' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='85568'>
-        <var-decl name='warnings' type-id='type-id-1279' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='895' column='1'/>
+        <var-decl name='after_forkers_child' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='896' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='86080'>
-        <var-decl name='atexit' type-id='type-id-1251' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='896' column='1'/>
+      <data-member access='public' layout-offset-in-bits='85632'>
+        <var-decl name='warnings' type-id='type-id-1279' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='899' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='86208'>
-        <var-decl name='stoptheworld' type-id='type-id-1264' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='897' column='1'/>
+      <data-member access='public' layout-offset-in-bits='86144'>
+        <var-decl name='atexit' type-id='type-id-1251' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='900' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='86400'>
-        <var-decl name='qsbr' type-id='type-id-1297' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='898' column='1'/>
+      <data-member access='public' layout-offset-in-bits='86272'>
+        <var-decl name='stoptheworld' type-id='type-id-1264' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='901' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='86848'>
-        <var-decl name='asyncio_tasks_head' type-id='type-id-1281' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='910' column='1'/>
+      <data-member access='public' layout-offset-in-bits='86464'>
+        <var-decl name='qsbr' type-id='type-id-1297' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='902' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='86976'>
-        <var-decl name='asyncio_tasks_lock' type-id='type-id-753' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='913' column='1'/>
+      <data-member access='public' layout-offset-in-bits='86912'>
+        <var-decl name='asyncio_tasks_head' type-id='type-id-1281' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='914' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='87040'>
-        <var-decl name='obmalloc' type-id='type-id-1298' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='925' column='1'/>
+        <var-decl name='asyncio_tasks_lock' type-id='type-id-753' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='917' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='87104'>
-        <var-decl name='audit_hooks' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='927' column='1'/>
+        <var-decl name='obmalloc' type-id='type-id-1298' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='929' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='87168'>
-        <var-decl name='type_watchers' type-id='type-id-823' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='928' column='1'/>
+        <var-decl name='audit_hooks' type-id='type-id-6' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='931' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='87680'>
-        <var-decl name='code_watchers' type-id='type-id-809' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='929' column='1'/>
+      <data-member access='public' layout-offset-in-bits='87232'>
+        <var-decl name='type_watchers' type-id='type-id-823' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='932' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='88192'>
-        <var-decl name='context_watchers' type-id='type-id-811' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='930' column='1'/>
+      <data-member access='public' layout-offset-in-bits='87744'>
+        <var-decl name='code_watchers' type-id='type-id-809' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='933' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='88704'>
-        <var-decl name='active_code_watchers' type-id='type-id-310' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='932' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='88712'>
-        <var-decl name='active_context_watchers' type-id='type-id-310' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='933' column='1'/>
+      <data-member access='public' layout-offset-in-bits='88256'>
+        <var-decl name='context_watchers' type-id='type-id-811' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='934' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='88768'>
-        <var-decl name='object_state' type-id='type-id-1299' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='935' column='1'/>
+        <var-decl name='active_code_watchers' type-id='type-id-310' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='936' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='88776'>
+        <var-decl name='active_context_watchers' type-id='type-id-310' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='937' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='93824'>
-        <var-decl name='unicode' type-id='type-id-1287' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='936' column='1'/>
+      <data-member access='public' layout-offset-in-bits='88832'>
+        <var-decl name='object_state' type-id='type-id-1299' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='939' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='94272'>
-        <var-decl name='long_state' type-id='type-id-1262' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='937' column='1'/>
+      <data-member access='public' layout-offset-in-bits='93888'>
+        <var-decl name='unicode' type-id='type-id-1287' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='940' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='94336'>
-        <var-decl name='dtoa' type-id='type-id-1269' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='938' column='1'/>
+        <var-decl name='long_state' type-id='type-id-1262' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='941' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='113856'>
-        <var-decl name='func_state' type-id='type-id-1271' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='939' column='1'/>
+      <data-member access='public' layout-offset-in-bits='94400'>
+        <var-decl name='dtoa' type-id='type-id-1269' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='942' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='638208'>
-        <var-decl name='code_state' type-id='type-id-1270' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='940' column='1'/>
+      <data-member access='public' layout-offset-in-bits='113920'>
+        <var-decl name='func_state' type-id='type-id-1271' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='943' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='638336'>
-        <var-decl name='dict_state' type-id='type-id-1165' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='942' column='1'/>
+      <data-member access='public' layout-offset-in-bits='638272'>
+        <var-decl name='code_state' type-id='type-id-1270' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='944' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='638912'>
-        <var-decl name='exc_state' type-id='type-id-1166' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='943' column='1'/>
+      <data-member access='public' layout-offset-in-bits='638400'>
+        <var-decl name='dict_state' type-id='type-id-1165' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='946' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='639168'>
-        <var-decl name='mem_free_queue' type-id='type-id-1280' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='944' column='1'/>
+      <data-member access='public' layout-offset-in-bits='638976'>
+        <var-decl name='exc_state' type-id='type-id-1166' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='947' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='639360'>
-        <var-decl name='ast' type-id='type-id-1116' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='946' column='1'/>
+      <data-member access='public' layout-offset-in-bits='639232'>
+        <var-decl name='mem_free_queue' type-id='type-id-1280' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='948' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='655168'>
-        <var-decl name='types' type-id='type-id-1276' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='947' column='1'/>
+      <data-member access='public' layout-offset-in-bits='639424'>
+        <var-decl name='ast' type-id='type-id-1116' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='950' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='1784704'>
-        <var-decl name='callable_cache' type-id='type-id-1289' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='948' column='1'/>
+      <data-member access='public' layout-offset-in-bits='655232'>
+        <var-decl name='types' type-id='type-id-1276' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='951' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='1784960'>
-        <var-decl name='common_consts' type-id='type-id-816' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='949' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1784768'>
+        <var-decl name='callable_cache' type-id='type-id-1289' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='952' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='1785280'>
-        <var-decl name='jit' type-id='type-id-346' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='950' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1785024'>
+        <var-decl name='common_consts' type-id='type-id-816' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='953' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1785344'>
-        <var-decl name='executor_list_head' type-id='type-id-340' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='951' column='1'/>
+        <var-decl name='jit' type-id='type-id-346' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='954' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1785408'>
-        <var-decl name='executor_deletion_list_head' type-id='type-id-340' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='952' column='1'/>
+        <var-decl name='executor_list_head' type-id='type-id-340' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='955' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1785472'>
-        <var-decl name='executor_deletion_list_remaining_capacity' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='953' column='1'/>
+        <var-decl name='executor_deletion_list_head' type-id='type-id-340' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='956' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1785536'>
-        <var-decl name='trace_run_counter' type-id='type-id-14' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='954' column='1'/>
+        <var-decl name='executor_deletion_list_remaining_capacity' type-id='type-id-5' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='957' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1785600'>
-        <var-decl name='rare_events' type-id='type-id-1267' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='955' column='1'/>
+        <var-decl name='trace_run_counter' type-id='type-id-14' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='958' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1785664'>
-        <var-decl name='builtins_dict_watcher' type-id='type-id-399' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='956' column='1'/>
+        <var-decl name='rare_events' type-id='type-id-1267' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='959' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1785728'>
-        <var-decl name='monitors' type-id='type-id-1230' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='958' column='1'/>
-      </data-member>
-      <data-member access='public' layout-offset-in-bits='1785856'>
-        <var-decl name='sys_profile_once_flag' type-id='type-id-987' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='959' column='1'/>
+        <var-decl name='builtins_dict_watcher' type-id='type-id-399' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='960' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='1785864'>
-        <var-decl name='sys_trace_once_flag' type-id='type-id-987' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='960' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1785792'>
+        <var-decl name='monitors' type-id='type-id-1230' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='962' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1785920'>
-        <var-decl name='sys_profiling_threads' type-id='type-id-7' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='961' column='1'/>
+        <var-decl name='sys_profile_once_flag' type-id='type-id-987' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='963' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1785928'>
+        <var-decl name='sys_trace_once_flag' type-id='type-id-987' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='964' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1785984'>
-        <var-decl name='sys_tracing_threads' type-id='type-id-7' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='962' column='1'/>
+        <var-decl name='sys_profiling_threads' type-id='type-id-7' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='965' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1786048'>
-        <var-decl name='monitoring_callables' type-id='type-id-819' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='963' column='1'/>
+        <var-decl name='sys_tracing_threads' type-id='type-id-7' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='966' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='1795776'>
-        <var-decl name='monitoring_tool_names' type-id='type-id-818' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='964' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1786112'>
+        <var-decl name='monitoring_callables' type-id='type-id-819' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='967' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='1796288'>
-        <var-decl name='monitoring_tool_versions' type-id='type-id-953' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='965' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1795840'>
+        <var-decl name='monitoring_tool_names' type-id='type-id-818' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='968' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='1796800'>
-        <var-decl name='cached_objects' type-id='type-id-1291' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='967' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1796352'>
+        <var-decl name='monitoring_tool_versions' type-id='type-id-953' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='969' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='1798080'>
-        <var-decl name='static_objects' type-id='type-id-1292' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='968' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1796864'>
+        <var-decl name='cached_objects' type-id='type-id-1291' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='971' column='1'/>
       </data-member>
-      <data-member access='public' layout-offset-in-bits='1799168'>
-        <var-decl name='_interactive_src_count' type-id='type-id-7' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='970' column='1'/>
+      <data-member access='public' layout-offset-in-bits='1798144'>
+        <var-decl name='static_objects' type-id='type-id-1292' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='972' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='1799232'>
-        <var-decl name='_initial_thread' type-id='type-id-1300' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='981' column='1'/>
+        <var-decl name='_interactive_src_count' type-id='type-id-7' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='974' column='1'/>
+      </data-member>
+      <data-member access='public' layout-offset-in-bits='1799296'>
+        <var-decl name='_initial_thread' type-id='type-id-1300' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='985' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='pythreads' size-in-bits='384' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='805' column='1' id='type-id-1296'>
+    <class-decl name='pythreads' size-in-bits='384' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='809' column='1' id='type-id-1296'>
       <data-member access='public' layout-offset-in-bits='0'>
-        <var-decl name='next_unique_id' type-id='type-id-120' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='806' column='1'/>
+        <var-decl name='next_unique_id' type-id='type-id-120' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='810' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='64'>
-        <var-decl name='head' type-id='type-id-40' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='808' column='1'/>
+        <var-decl name='head' type-id='type-id-40' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='812' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='128'>
-        <var-decl name='preallocated' type-id='type-id-1301' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='809' column='1'/>
+        <var-decl name='preallocated' type-id='type-id-1301' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='813' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='192'>
-        <var-decl name='main' type-id='type-id-40' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='811' column='1'/>
+        <var-decl name='main' type-id='type-id-40' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='815' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='256'>
-        <var-decl name='count' type-id='type-id-7' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='813' column='1'/>
+        <var-decl name='count' type-id='type-id-7' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='817' column='1'/>
       </data-member>
       <data-member access='public' layout-offset-in-bits='320'>
-        <var-decl name='stacksize' type-id='type-id-14' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='818' column='1'/>
+        <var-decl name='stacksize' type-id='type-id-14' visibility='default' filepath='./Include/internal/pycore_interp_structs.h' line='822' column='1'/>
       </data-member>
     </class-decl>
     <class-decl name='_PyInterpreterFrame' size-in-bits='704' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_interpframe_structs.h' line='30' column='1' id='type-id-425'>
         <var-decl name='eos' type-id='type-id-67' visibility='default' filepath='./Include/internal/pycore_runtime_structs.h' line='126' column='1'/>
       </data-member>
     </class-decl>
-    <class-decl name='pyruntimestate' size-in-bits='2532736' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_runtime_structs.h' line='146' column='1' id='type-id-1353'>
+    <class-decl name='pyruntimestate' size-in-bits='2532800' is-struct='yes' visibility='default' filepath='./Include/internal/pycore_runtime_structs.h' line='146' column='1' id='type-id-1353'>
       <data-member access='public' layout-offset-in-bits='0'>
         <var-decl name='debug_offsets' type-id='type-id-1164' visibility='default' filepath='./Include/internal/pycore_runtime_structs.h' line='159' column='1'/>
       </data-member>
     <qualified-type-def type-id='type-id-1599' restrict='yes' id='type-id-1600'/>
     <pointer-type-def type-id='type-id-1178' size-in-bits='64' id='type-id-1601'/>
     <qualified-type-def type-id='type-id-1601' restrict='yes' id='type-id-1602'/>
-    <function-decl name='_Py_RunGC' filepath='./Include/internal/pycore_gc.h' line='329' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_Py_RunGC' filepath='./Include/internal/pycore_gc.h' line='333' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-40'/>
       <return type-id='type-id-3'/>
     </function-decl>
       <parameter type-id='type-id-5' name='compile_mode' filepath='Python/compile.c' line='1609' column='1'/>
       <return type-id='type-id-6'/>
     </function-decl>
-    <function-decl name='_PyCfg_JumpLabelsToTargets' filepath='Python/compile.c' line='1680' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_PyCfg_JumpLabelsToTargets' filepath='Python/compile.c' line='1692' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-1657'/>
       <return type-id='type-id-5'/>
     </function-decl>
-    <function-decl name='_PyCompile_Assemble' mangled-name='_PyCompile_Assemble' filepath='Python/compile.c' line='1683' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCompile_Assemble'>
-      <parameter type-id='type-id-1645' name='umd' filepath='Python/compile.c' line='1683' column='1'/>
-      <parameter type-id='type-id-6' name='filename' filepath='Python/compile.c' line='1683' column='1'/>
-      <parameter type-id='type-id-6' name='seq' filepath='Python/compile.c' line='1684' column='1'/>
+    <function-decl name='_PyCompile_Assemble' mangled-name='_PyCompile_Assemble' filepath='Python/compile.c' line='1695' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCompile_Assemble'>
+      <parameter type-id='type-id-1645' name='umd' filepath='Python/compile.c' line='1695' column='1'/>
+      <parameter type-id='type-id-6' name='filename' filepath='Python/compile.c' line='1695' column='1'/>
+      <parameter type-id='type-id-6' name='seq' filepath='Python/compile.c' line='1696' column='1'/>
       <return type-id='type-id-347'/>
     </function-decl>
-    <function-decl name='PyCode_Optimize' mangled-name='PyCode_Optimize' filepath='Python/compile.c' line='1737' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCode_Optimize'>
-      <parameter type-id='type-id-6' name='code' filepath='Python/compile.c' line='1737' column='1'/>
-      <parameter type-id='type-id-6' name='_unused_consts' filepath='Python/compile.c' line='1737' column='1'/>
-      <parameter type-id='type-id-6' name='_unused_names' filepath='Python/compile.c' line='1738' column='1'/>
-      <parameter type-id='type-id-6' name='_unused_lnotab_obj' filepath='Python/compile.c' line='1738' column='1'/>
+    <function-decl name='PyCode_Optimize' mangled-name='PyCode_Optimize' filepath='Python/compile.c' line='1749' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCode_Optimize'>
+      <parameter type-id='type-id-6' name='code' filepath='Python/compile.c' line='1749' column='1'/>
+      <parameter type-id='type-id-6' name='_unused_consts' filepath='Python/compile.c' line='1749' column='1'/>
+      <parameter type-id='type-id-6' name='_unused_names' filepath='Python/compile.c' line='1750' column='1'/>
+      <parameter type-id='type-id-6' name='_unused_lnotab_obj' filepath='Python/compile.c' line='1750' column='1'/>
       <return type-id='type-id-6'/>
     </function-decl>
   </abi-instr>
     </function-decl>
   </abi-instr>
   <abi-instr address-size='64' path='Python/flowgraph.c' comp-dir-path='/src' language='LANG_C11'>
+    <function-decl name='_Py_hashtable_new' mangled-name='_Py_hashtable_new' filepath='./Include/internal/pycore_hashtable.h' line='74' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_hashtable_new'>
+      <parameter type-id='type-id-616'/>
+      <parameter type-id='type-id-617'/>
+      <return type-id='type-id-619'/>
+    </function-decl>
+    <function-decl name='_Py_hashtable_hash_ptr' mangled-name='_Py_hashtable_hash_ptr' filepath='./Include/internal/pycore_hashtable.h' line='79' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_hashtable_hash_ptr'>
+      <parameter type-id='type-id-44'/>
+      <return type-id='type-id-1218'/>
+    </function-decl>
+    <function-decl name='_Py_hashtable_compare_direct' mangled-name='_Py_hashtable_compare_direct' filepath='./Include/internal/pycore_hashtable.h' line='82' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_hashtable_compare_direct'>
+      <parameter type-id='type-id-44'/>
+      <parameter type-id='type-id-44'/>
+      <return type-id='type-id-5'/>
+    </function-decl>
     <function-decl name='_PyOpcode_num_popped' filepath='./Include/internal/pycore_opcode_metadata.h' line='35' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-5'/>
       <parameter type-id='type-id-5'/>
       <parameter type-id='type-id-5'/>
       <return type-id='type-id-5'/>
     </function-decl>
-    <function-decl name='PyCompile_OpcodeStackEffectWithJump' mangled-name='PyCompile_OpcodeStackEffectWithJump' filepath='Python/flowgraph.c' line='4030' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCompile_OpcodeStackEffectWithJump'>
-      <parameter type-id='type-id-5' name='opcode' filepath='Python/flowgraph.c' line='4030' column='1'/>
-      <parameter type-id='type-id-5' name='oparg' filepath='Python/flowgraph.c' line='4030' column='1'/>
-      <parameter type-id='type-id-5' name='jump' filepath='Python/flowgraph.c' line='4030' column='1'/>
+    <function-decl name='PyCompile_OpcodeStackEffectWithJump' mangled-name='PyCompile_OpcodeStackEffectWithJump' filepath='Python/flowgraph.c' line='4086' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyCompile_OpcodeStackEffectWithJump'>
+      <parameter type-id='type-id-5' name='opcode' filepath='Python/flowgraph.c' line='4086' column='1'/>
+      <parameter type-id='type-id-5' name='oparg' filepath='Python/flowgraph.c' line='4086' column='1'/>
+      <parameter type-id='type-id-5' name='jump' filepath='Python/flowgraph.c' line='4086' column='1'/>
       <return type-id='type-id-5'/>
     </function-decl>
-    <function-decl name='_PyCompile_OptimizeCfg' mangled-name='_PyCompile_OptimizeCfg' filepath='Python/flowgraph.c' line='4070' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCompile_OptimizeCfg'>
-      <parameter type-id='type-id-6' name='seq' filepath='Python/flowgraph.c' line='4070' column='1'/>
-      <parameter type-id='type-id-6' name='consts' filepath='Python/flowgraph.c' line='4070' column='1'/>
-      <parameter type-id='type-id-5' name='nlocals' filepath='Python/flowgraph.c' line='4070' column='1'/>
+    <function-decl name='_PyCompile_OptimizeCfg' mangled-name='_PyCompile_OptimizeCfg' filepath='Python/flowgraph.c' line='4126' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_PyCompile_OptimizeCfg'>
+      <parameter type-id='type-id-6' name='seq' filepath='Python/flowgraph.c' line='4126' column='1'/>
+      <parameter type-id='type-id-6' name='consts' filepath='Python/flowgraph.c' line='4126' column='1'/>
+      <parameter type-id='type-id-5' name='nlocals' filepath='Python/flowgraph.c' line='4126' column='1'/>
       <return type-id='type-id-6'/>
     </function-decl>
   </abi-instr>
       <parameter type-id='type-id-347'/>
       <return type-id='type-id-415'/>
     </function-decl>
-    <function-decl name='_PyGC_VisitFrameStack' filepath='./Include/internal/pycore_gc.h' line='334' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_PyGC_VisitFrameStack' filepath='./Include/internal/pycore_gc.h' line='338' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-430'/>
       <parameter type-id='type-id-398'/>
       <parameter type-id='type-id-44'/>
       <parameter type-id='type-id-183'/>
       <return type-id='type-id-5'/>
     </function-decl>
-    <function-decl name='_PyGC_ClearAllFreeLists' filepath='./Include/internal/pycore_gc.h' line='328' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_PyGC_ClearAllFreeLists' filepath='./Include/internal/pycore_gc.h' line='332' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-42'/>
       <return type-id='type-id-3'/>
     </function-decl>
       <parameter type-id='type-id-14' name='extra_size' filepath='Python/gc.c' line='1945' column='1'/>
       <return type-id='type-id-6'/>
     </function-decl>
-    <function-decl name='PyObject_GC_IsTracked' mangled-name='PyObject_GC_IsTracked' filepath='Python/gc.c' line='2005' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GC_IsTracked'>
-      <parameter type-id='type-id-6' name='obj' filepath='Python/gc.c' line='2005' column='1'/>
+    <function-decl name='PyObject_GC_IsTracked' mangled-name='PyObject_GC_IsTracked' filepath='Python/gc.c' line='2007' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GC_IsTracked'>
+      <parameter type-id='type-id-6' name='obj' filepath='Python/gc.c' line='2007' column='1'/>
       <return type-id='type-id-5'/>
     </function-decl>
-    <function-decl name='PyObject_GC_IsFinalized' mangled-name='PyObject_GC_IsFinalized' filepath='Python/gc.c' line='2014' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GC_IsFinalized'>
-      <parameter type-id='type-id-6' name='obj' filepath='Python/gc.c' line='2014' column='1'/>
+    <function-decl name='PyObject_GC_IsFinalized' mangled-name='PyObject_GC_IsFinalized' filepath='Python/gc.c' line='2016' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyObject_GC_IsFinalized'>
+      <parameter type-id='type-id-6' name='obj' filepath='Python/gc.c' line='2016' column='1'/>
       <return type-id='type-id-5'/>
     </function-decl>
-    <function-decl name='PyUnstable_GC_VisitObjects' mangled-name='PyUnstable_GC_VisitObjects' filepath='Python/gc.c' line='2040' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnstable_GC_VisitObjects'>
-      <parameter type-id='type-id-1709' name='callback' filepath='Python/gc.c' line='2040' column='1'/>
-      <parameter type-id='type-id-44' name='arg' filepath='Python/gc.c' line='2040' column='1'/>
+    <function-decl name='PyUnstable_GC_VisitObjects' mangled-name='PyUnstable_GC_VisitObjects' filepath='Python/gc.c' line='2042' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='PyUnstable_GC_VisitObjects'>
+      <parameter type-id='type-id-1709' name='callback' filepath='Python/gc.c' line='2042' column='1'/>
+      <parameter type-id='type-id-44' name='arg' filepath='Python/gc.c' line='2042' column='1'/>
       <return type-id='type-id-3'/>
     </function-decl>
   </abi-instr>
   <abi-instr address-size='64' path='Python/hashtable.c' comp-dir-path='/src' language='LANG_C11'>
     <typedef-decl name='_Py_hashtable_foreach_func' type-id='type-id-1712' filepath='./Include/internal/pycore_hashtable.h' line='97' column='1' id='type-id-1713'/>
     <pointer-type-def type-id='type-id-1714' size-in-bits='64' id='type-id-1712'/>
-    <function-decl name='_Py_hashtable_hash_ptr' mangled-name='_Py_hashtable_hash_ptr' filepath='Python/hashtable.c' line='93' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_hashtable_hash_ptr'>
-      <parameter type-id='type-id-44' name='key' filepath='Python/hashtable.c' line='93' column='1'/>
-      <return type-id='type-id-1218'/>
-    </function-decl>
-    <function-decl name='_Py_hashtable_compare_direct' mangled-name='_Py_hashtable_compare_direct' filepath='Python/hashtable.c' line='100' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_hashtable_compare_direct'>
-      <parameter type-id='type-id-44' name='key1' filepath='Python/hashtable.c' line='100' column='1'/>
-      <parameter type-id='type-id-44' name='key2' filepath='Python/hashtable.c' line='100' column='1'/>
-      <return type-id='type-id-5'/>
-    </function-decl>
     <function-decl name='_Py_hashtable_size' mangled-name='_Py_hashtable_size' filepath='Python/hashtable.c' line='121' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_hashtable_size'>
       <parameter type-id='type-id-613' name='ht' filepath='Python/hashtable.c' line='121' column='1'/>
       <return type-id='type-id-14'/>
       <parameter type-id='type-id-44' name='user_data' filepath='Python/hashtable.c' line='270' column='1'/>
       <return type-id='type-id-5'/>
     </function-decl>
-    <function-decl name='_Py_hashtable_new' mangled-name='_Py_hashtable_new' filepath='Python/hashtable.c' line='370' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_hashtable_new'>
-      <parameter type-id='type-id-616' name='hash_func' filepath='Python/hashtable.c' line='370' column='1'/>
-      <parameter type-id='type-id-617' name='compare_func' filepath='Python/hashtable.c' line='371' column='1'/>
-      <return type-id='type-id-619'/>
-    </function-decl>
     <function-decl name='_Py_hashtable_clear' mangled-name='_Py_hashtable_clear' filepath='Python/hashtable.c' line='392' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='_Py_hashtable_clear'>
       <parameter type-id='type-id-619' name='ht' filepath='Python/hashtable.c' line='392' column='1'/>
       <return type-id='type-id-3'/>
       <parameter type-id='type-id-42'/>
       <return type-id='type-id-3'/>
     </function-decl>
-    <function-decl name='_PyGC_CollectNoFail' filepath='./Include/internal/pycore_gc.h' line='315' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_PyGC_CollectNoFail' filepath='./Include/internal/pycore_gc.h' line='319' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-40'/>
       <return type-id='type-id-3'/>
     </function-decl>
       <parameter type-id='type-id-42'/>
       <return type-id='type-id-3'/>
     </function-decl>
-    <function-decl name='_PyGC_InitState' filepath='./Include/internal/pycore_gc.h' line='312' column='1' visibility='default' binding='global' size-in-bits='64'>
+    <function-decl name='_PyGC_InitState' filepath='./Include/internal/pycore_gc.h' line='316' column='1' visibility='default' binding='global' size-in-bits='64'>
       <parameter type-id='type-id-1828'/>
       <return type-id='type-id-3'/>
     </function-decl>
index e105677cd2e674a4a84cf6a2ef60f4ee67495782..bfe52f42f1141ccb7a33bdb6cb6e6d011e7d5e9e 100644 (file)
@@ -223,12 +223,14 @@ static inline void _PyObject_GC_TRACK(
                           "object is in generation which is garbage collected",
                           filename, lineno, __func__);
 
-    PyGC_Head *generation0 = _PyInterpreterState_GET()->gc.generation0;
+    struct _gc_runtime_state *gcstate = &_PyInterpreterState_GET()->gc;
+    PyGC_Head *generation0 = gcstate->generation0;
     PyGC_Head *last = (PyGC_Head*)(generation0->_gc_prev);
     _PyGCHead_SET_NEXT(last, gc);
     _PyGCHead_SET_PREV(gc, last);
     _PyGCHead_SET_NEXT(gc, generation0);
     generation0->_gc_prev = (uintptr_t)gc;
+    gcstate->heap_size++;
 #endif
 }
 
@@ -263,6 +265,8 @@ static inline void _PyObject_GC_UNTRACK(
     _PyGCHead_SET_PREV(next, prev);
     gc->_gc_next = 0;
     gc->_gc_prev &= _PyGC_PREV_MASK_FINALIZED;
+    struct _gc_runtime_state *gcstate = &_PyInterpreterState_GET()->gc;
+    gcstate->heap_size--;
 #endif
 }
 
index f186caab42bbf6ba27050ae8f1cc8580784d0fb7..972bf7bf6e805418aa6cdf7dda8c2e5fe813f0e9 100644 (file)
@@ -227,6 +227,9 @@ struct _gc_runtime_state {
     /* a list of callbacks to be invoked when collection is performed */
     PyObject *callbacks;
 
+    /* The number of live objects. */
+    Py_ssize_t heap_size;
+
     /* This is the number of objects that survived the last full
        collection. It approximates the number of long lived objects
        tracked by the GC.
@@ -261,7 +264,8 @@ struct _gc_runtime_state {
         { .threshold = 2000, }, \
         { .threshold = 10, }, \
         { .threshold = 10, }, \
-    },
+    }, \
+    .heap_size = 0,
 #else
 #define GC_GENERATION_INIT \
     .young = { .threshold = 2000, }, \
index cd9b34cb79da51a19518a8a7fe7bb3f5248a6216..0fe63332d15c9cd56b09f1ab20d7c7fb125b8991 100644 (file)
@@ -1220,6 +1220,15 @@ class GCTests(unittest.TestCase):
         # Use n // 2 just in case some other objects were collected.
         self.assertTrue(new_count - count > (n // 2))
 
+    @requires_gil_enabled('need generational GC')
+    @unittest.skipIf(_testinternalcapi is None, "requires _testinternalcapi")
+    def test_heap_size(self):
+        count = _testinternalcapi.get_tracked_heap_size()
+        l = []
+        self.assertEqual(count + 1, _testinternalcapi.get_tracked_heap_size())
+        del l
+        self.assertEqual(count, _testinternalcapi.get_tracked_heap_size())
+
 
 class GCCallbackTests(unittest.TestCase):
     def setUp(self):
index ae4da5fa55e4871e0ad27625977ee8c63b7120d6..158c26d442ed133163b8116e6455a8a75e9c47a2 100644 (file)
@@ -2353,8 +2353,7 @@ has_deferred_refcount(PyObject *self, PyObject *op)
 static PyObject *
 get_tracked_heap_size(PyObject *self, PyObject *Py_UNUSED(ignored))
 {
-    // Generational GC doesn't track heap_size, return -1.
-    return PyLong_FromInt64(-1);
+    return PyLong_FromInt64(PyInterpreterState_Get()->gc.heap_size);
 }
 
 static PyObject *
index 0559dfb11f0e419568f13f45ef58a0eace543e44..469282683604b83ba0f0521554c9a893c46a0749 100644 (file)
@@ -1981,6 +1981,8 @@ PyObject_GC_Del(void *op)
     PyGC_Head *g = AS_GC(op);
     if (_PyObject_GC_IS_TRACKED(op)) {
         gc_list_remove(g);
+        GCState *gcstate = get_gc_state();
+        gcstate->heap_size--;
 #ifdef Py_DEBUG
         PyObject *exc = PyErr_GetRaisedException();
         if (PyErr_WarnExplicitFormat(PyExc_ResourceWarning, "gc", 0,