https://github.com/python/cpython/commit/4d0ae4cba98597ed18cd65b15954be267f7974c1
commit: 4d0ae4cba98597ed18cd65b15954be267f7974c1
branch: 3.14
author: Sergey Miryanov <[email protected]>
committer: hugovk <[email protected]>
date: 2026-04-29T13:04:11+03:00
summary:

[3.14] GH-148726: Add heap_size to _gc_runtime_state (#149025)

files:
M Doc/data/python3.14.abi
M Include/internal/pycore_gc.h
M Include/internal/pycore_interp_structs.h
M Lib/test/test_gc.py
M Modules/_testinternalcapi.c
M Python/gc.c

diff --git a/Doc/data/python3.14.abi b/Doc/data/python3.14.abi
index 7dc43dd58ce2d5..78f380ee46d4a5 100644
--- a/Doc/data/python3.14.abi
+++ b/Doc/data/python3.14.abi
@@ -1817,7 +1817,7 @@
     <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'/>
@@ -4202,30 +4202,30 @@
       <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'/>
@@ -8404,7 +8404,7 @@
       <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'/>
@@ -21024,7 +21024,7 @@
         <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>
@@ -21059,324 +21059,327 @@
         <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'/>
@@ -21388,385 +21391,385 @@
       <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'>
@@ -22235,7 +22238,7 @@
         <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>
@@ -25879,7 +25882,7 @@
     <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>
@@ -26900,21 +26903,21 @@
       <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>
@@ -27832,6 +27835,20 @@
     </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'/>
@@ -27842,16 +27859,16 @@
       <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>
@@ -27987,7 +28004,7 @@
       <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'/>
@@ -28099,7 +28116,7 @@
       <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>
@@ -28124,17 +28141,17 @@
       <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>
@@ -28246,15 +28263,6 @@
   <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'/>
@@ -28270,11 +28278,6 @@
       <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'/>
@@ -30087,7 +30090,7 @@
       <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>
@@ -30636,7 +30639,7 @@
       <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>
diff --git a/Include/internal/pycore_gc.h b/Include/internal/pycore_gc.h
index e105677cd2e674..bfe52f42f1141c 100644
--- a/Include/internal/pycore_gc.h
+++ b/Include/internal/pycore_gc.h
@@ -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
 }
 
diff --git a/Include/internal/pycore_interp_structs.h 
b/Include/internal/pycore_interp_structs.h
index f186caab42bbf6..972bf7bf6e8054 100644
--- a/Include/internal/pycore_interp_structs.h
+++ b/Include/internal/pycore_interp_structs.h
@@ -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, }, \
diff --git a/Lib/test/test_gc.py b/Lib/test/test_gc.py
index cd9b34cb79da51..0fe63332d15c9c 100644
--- a/Lib/test/test_gc.py
+++ b/Lib/test/test_gc.py
@@ -1220,6 +1220,15 @@ def test_tuple_untrack_counts(self):
         # 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):
diff --git a/Modules/_testinternalcapi.c b/Modules/_testinternalcapi.c
index ae4da5fa55e487..158c26d442ed13 100644
--- a/Modules/_testinternalcapi.c
+++ b/Modules/_testinternalcapi.c
@@ -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 *
diff --git a/Python/gc.c b/Python/gc.c
index 0559dfb11f0e41..469282683604b8 100644
--- a/Python/gc.c
+++ b/Python/gc.c
@@ -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,

_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]

Reply via email to