+PERLVAR(I, stack_sp, SV **) /* top of the stack */
+PERLVAR(I, op, OP *) /* currently executing op */
+PERLVAR(I, curpad, SV **) /* active pad (lexicals+tmps) */
+
+PERLVAR(I, stack_base, SV **)
+PERLVAR(I, stack_max, SV **)
+
+PERLVAR(I, savestack, ANY *) /* items that need to be restored when
+ LEAVEing scopes we've ENTERed */
+PERLVAR(I, savestack_ix, I32)
+PERLVAR(I, savestack_max, I32)
+
+PERLVAR(I, scopestack, I32 *) /* scopes we've ENTERed */
+PERLVAR(I, scopestack_ix, I32)
+PERLVAR(I, scopestack_max, I32)
+
+PERLVAR(I, tmps_stack, SV **) /* mortals we've made */
+PERLVARI(I, tmps_ix, SSize_t, -1)
+PERLVARI(I, tmps_floor, SSize_t, -1)
+PERLVAR(I, tmps_max, SSize_t)
+
+PERLVARI(I, sub_generation, U32, 1) /* incr to invalidate method cache */
+
+PERLVAR(I, markstack, I32 *) /* stack_sp locations we're
+ remembering */
+PERLVAR(I, markstack_ptr, I32 *)
+PERLVAR(I, markstack_max, I32 *)
+
+#ifdef PERL_HASH_RANDOMIZE_KEYS
+#ifdef USE_PERL_PERTURB_KEYS
+PERLVARI(I, hash_rand_bits_enabled, U8, 1) /* used to randomize hash stuff 0 == no-random, 1 == random, 2 == determinsitic */
+#endif
+PERLVARI(I, hash_rand_bits, UV, 0) /* used to randomize hash stuff */
+#endif
+PERLVAR(I, strtab, HV *) /* shared string table */
+
+/* Fields used by magic variables such as $@, $/ and so on */
+PERLVAR(I, curpm, PMOP *) /* what to do \ interps in REs from */
+
+PERLVAR(I, tainting, bool) /* doing taint checks */
+PERLVAR(I, tainted, bool) /* using variables controlled by $< */
+PERLVAR(I, delaymagic, U16) /* ($<,$>) = ... */
+PERLVAR(I, localizing, U8) /* are we processing a local() list? */
+PERLVAR(I, in_eval, U8) /* trap "fatal" errors? */
+/*
+
+=for apidoc mn|bool|PL_dowarn
+
+The C variable which corresponds to Perl's $^W warning variable.
+
+=cut
+*/
+
+PERLVAR(I, dowarn, U8)
+
+#if defined (PERL_UTF8_CACHE_ASSERT) || defined (DEBUGGING)
+# define PERL___I -1