This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update to Storable 1.0.13.
[perl5.git] / embedvar.h
index f6d6aac..92e9e91 100644 (file)
@@ -6,14 +6,13 @@
 /* (Doing namespace management portably in C is really gross.) */
 
 /*
-   The following combinations of MULTIPLICITY, USE_THREADS, PERL_OBJECT
+   The following combinations of MULTIPLICITY, USE_5005THREADS
    and PERL_IMPLICIT_CONTEXT are supported:
      1) none
      2) MULTIPLICITY   # supported for compatibility
      3) MULTIPLICITY && PERL_IMPLICIT_CONTEXT
-     4) USE_THREADS && PERL_IMPLICIT_CONTEXT
-     5) MULTIPLICITY && USE_THREADS && PERL_IMPLICIT_CONTEXT
-     6) PERL_OBJECT && PERL_IMPLICIT_CONTEXT
+     4) USE_5005THREADS && PERL_IMPLICIT_CONTEXT
+     5) MULTIPLICITY && USE_5005THREADS && PERL_IMPLICIT_CONTEXT
 
    All other combinations of these flags are errors.
 
@@ -82,6 +81,7 @@
 #define PL_reg_ganch           (vTHX->Treg_ganch)
 #define PL_reg_leftiter                (vTHX->Treg_leftiter)
 #define PL_reg_magic           (vTHX->Treg_magic)
+#define PL_reg_match_utf8      (vTHX->Treg_match_utf8)
 #define PL_reg_maxiter         (vTHX->Treg_maxiter)
 #define PL_reg_oldcurpm                (vTHX->Treg_oldcurpm)
 #define PL_reg_oldpos          (vTHX->Treg_oldpos)
 #define PL_watchaddr           (vTHX->Twatchaddr)
 #define PL_watchok             (vTHX->Twatchok)
 
-#  if defined(PERL_OBJECT)
-#    include "error: PERL_OBJECT + MULTIPLICITY don't go together"
-#  endif
-
-#  if defined(USE_THREADS)
+#  if defined(USE_5005THREADS)
 /* case 5 above */
 
 #define PL_Argv                        (PERL_GET_INTERP->IArgv)
 #define PL_curcopdb            (PERL_GET_INTERP->Icurcopdb)
 #define PL_curstname           (PERL_GET_INTERP->Icurstname)
 #define PL_curthr              (PERL_GET_INTERP->Icurthr)
+#define PL_custom_op_descs     (PERL_GET_INTERP->Icustom_op_descs)
+#define PL_custom_op_names     (PERL_GET_INTERP->Icustom_op_names)
 #define PL_dbargs              (PERL_GET_INTERP->Idbargs)
 #define PL_debstash            (PERL_GET_INTERP->Idebstash)
 #define PL_debug               (PERL_GET_INTERP->Idebug)
 #define PL_rsfp                        (PERL_GET_INTERP->Irsfp)
 #define PL_rsfp_filters                (PERL_GET_INTERP->Irsfp_filters)
 #define PL_runops              (PERL_GET_INTERP->Irunops)
+#define PL_savebegin           (PERL_GET_INTERP->Isavebegin)
 #define PL_sawampersand                (PERL_GET_INTERP->Isawampersand)
 #define PL_sh_path             (PERL_GET_INTERP->Ish_path)
 #define PL_sig_pending         (PERL_GET_INTERP->Isig_pending)
 #define PL_yynerrs             (PERL_GET_INTERP->Iyynerrs)
 #define PL_yyval               (PERL_GET_INTERP->Iyyval)
 
-#  else                /* !USE_THREADS */
+#  else                /* !USE_5005THREADS */
 /* cases 2 and 3 above */
 
 #define PL_Argv                        (vTHX->IArgv)
 #define PL_curcopdb            (vTHX->Icurcopdb)
 #define PL_curstname           (vTHX->Icurstname)
 #define PL_curthr              (vTHX->Icurthr)
+#define PL_custom_op_descs     (vTHX->Icustom_op_descs)
+#define PL_custom_op_names     (vTHX->Icustom_op_names)
 #define PL_dbargs              (vTHX->Idbargs)
 #define PL_debstash            (vTHX->Idebstash)
 #define PL_debug               (vTHX->Idebug)
 #define PL_rsfp                        (vTHX->Irsfp)
 #define PL_rsfp_filters                (vTHX->Irsfp_filters)
 #define PL_runops              (vTHX->Irunops)
+#define PL_savebegin           (vTHX->Isavebegin)
 #define PL_sawampersand                (vTHX->Isawampersand)
 #define PL_sh_path             (vTHX->Ish_path)
 #define PL_sig_pending         (vTHX->Isig_pending)
 #define PL_yynerrs             (vTHX->Iyynerrs)
 #define PL_yyval               (vTHX->Iyyval)
 
-#  endif       /* USE_THREADS */
+#  endif       /* USE_5005THREADS */
 
 #else  /* !MULTIPLICITY */
 
-#  if defined(PERL_OBJECT)
-/* case 6 above */
-
-#define PL_Sv                  (aTHXo->interp.TSv)
-#define PL_Xpv                 (aTHXo->interp.TXpv)
-#define PL_av_fetch_sv         (aTHXo->interp.Tav_fetch_sv)
-#define PL_bodytarget          (aTHXo->interp.Tbodytarget)
-#define PL_bostr               (aTHXo->interp.Tbostr)
-#define PL_chopset             (aTHXo->interp.Tchopset)
-#define PL_colors              (aTHXo->interp.Tcolors)
-#define PL_colorset            (aTHXo->interp.Tcolorset)
-#define PL_curcop              (aTHXo->interp.Tcurcop)
-#define PL_curpad              (aTHXo->interp.Tcurpad)
-#define PL_curpm               (aTHXo->interp.Tcurpm)
-#define PL_curstack            (aTHXo->interp.Tcurstack)
-#define PL_curstackinfo                (aTHXo->interp.Tcurstackinfo)
-#define PL_curstash            (aTHXo->interp.Tcurstash)
-#define PL_defoutgv            (aTHXo->interp.Tdefoutgv)
-#define PL_defstash            (aTHXo->interp.Tdefstash)
-#define PL_delaymagic          (aTHXo->interp.Tdelaymagic)
-#define PL_dirty               (aTHXo->interp.Tdirty)
-#define PL_dumpindent          (aTHXo->interp.Tdumpindent)
-#define PL_efloatbuf           (aTHXo->interp.Tefloatbuf)
-#define PL_efloatsize          (aTHXo->interp.Tefloatsize)
-#define PL_errors              (aTHXo->interp.Terrors)
-#define PL_extralen            (aTHXo->interp.Textralen)
-#define PL_firstgv             (aTHXo->interp.Tfirstgv)
-#define PL_formtarget          (aTHXo->interp.Tformtarget)
-#define PL_hv_fetch_ent_mh     (aTHXo->interp.Thv_fetch_ent_mh)
-#define PL_hv_fetch_sv         (aTHXo->interp.Thv_fetch_sv)
-#define PL_in_eval             (aTHXo->interp.Tin_eval)
-#define PL_last_in_gv          (aTHXo->interp.Tlast_in_gv)
-#define PL_lastgotoprobe       (aTHXo->interp.Tlastgotoprobe)
-#define PL_lastscream          (aTHXo->interp.Tlastscream)
-#define PL_localizing          (aTHXo->interp.Tlocalizing)
-#define PL_mainstack           (aTHXo->interp.Tmainstack)
-#define PL_markstack           (aTHXo->interp.Tmarkstack)
-#define PL_markstack_max       (aTHXo->interp.Tmarkstack_max)
-#define PL_markstack_ptr       (aTHXo->interp.Tmarkstack_ptr)
-#define PL_maxscream           (aTHXo->interp.Tmaxscream)
-#define PL_modcount            (aTHXo->interp.Tmodcount)
-#define PL_na                  (aTHXo->interp.Tna)
-#define PL_nrs                 (aTHXo->interp.Tnrs)
-#define PL_ofs_sv              (aTHXo->interp.Tofs_sv)
-#define PL_op                  (aTHXo->interp.Top)
-#define PL_opsave              (aTHXo->interp.Topsave)
-#define PL_peepp               (aTHXo->interp.Tpeepp)
-#define PL_protect             (aTHXo->interp.Tprotect)
-#define PL_reg_call_cc         (aTHXo->interp.Treg_call_cc)
-#define PL_reg_curpm           (aTHXo->interp.Treg_curpm)
-#define PL_reg_eval_set                (aTHXo->interp.Treg_eval_set)
-#define PL_reg_flags           (aTHXo->interp.Treg_flags)
-#define PL_reg_ganch           (aTHXo->interp.Treg_ganch)
-#define PL_reg_leftiter                (aTHXo->interp.Treg_leftiter)
-#define PL_reg_magic           (aTHXo->interp.Treg_magic)
-#define PL_reg_maxiter         (aTHXo->interp.Treg_maxiter)
-#define PL_reg_oldcurpm                (aTHXo->interp.Treg_oldcurpm)
-#define PL_reg_oldpos          (aTHXo->interp.Treg_oldpos)
-#define PL_reg_oldsaved                (aTHXo->interp.Treg_oldsaved)
-#define PL_reg_oldsavedlen     (aTHXo->interp.Treg_oldsavedlen)
-#define PL_reg_poscache                (aTHXo->interp.Treg_poscache)
-#define PL_reg_poscache_size   (aTHXo->interp.Treg_poscache_size)
-#define PL_reg_re              (aTHXo->interp.Treg_re)
-#define PL_reg_start_tmp       (aTHXo->interp.Treg_start_tmp)
-#define PL_reg_start_tmpl      (aTHXo->interp.Treg_start_tmpl)
-#define PL_reg_starttry                (aTHXo->interp.Treg_starttry)
-#define PL_reg_sv              (aTHXo->interp.Treg_sv)
-#define PL_reg_whilem_seen     (aTHXo->interp.Treg_whilem_seen)
-#define PL_regbol              (aTHXo->interp.Tregbol)
-#define PL_regcc               (aTHXo->interp.Tregcc)
-#define PL_regcode             (aTHXo->interp.Tregcode)
-#define PL_regcomp_parse       (aTHXo->interp.Tregcomp_parse)
-#define PL_regcomp_rx          (aTHXo->interp.Tregcomp_rx)
-#define PL_regcompat1          (aTHXo->interp.Tregcompat1)
-#define PL_regcompp            (aTHXo->interp.Tregcompp)
-#define PL_regdata             (aTHXo->interp.Tregdata)
-#define PL_regdummy            (aTHXo->interp.Tregdummy)
-#define PL_regendp             (aTHXo->interp.Tregendp)
-#define PL_regeol              (aTHXo->interp.Tregeol)
-#define PL_regexecp            (aTHXo->interp.Tregexecp)
-#define PL_regflags            (aTHXo->interp.Tregflags)
-#define PL_regfree             (aTHXo->interp.Tregfree)
-#define PL_regindent           (aTHXo->interp.Tregindent)
-#define PL_reginput            (aTHXo->interp.Treginput)
-#define PL_regint_start                (aTHXo->interp.Tregint_start)
-#define PL_regint_string       (aTHXo->interp.Tregint_string)
-#define PL_reginterp_cnt       (aTHXo->interp.Treginterp_cnt)
-#define PL_reglastcloseparen   (aTHXo->interp.Treglastcloseparen)
-#define PL_reglastparen                (aTHXo->interp.Treglastparen)
-#define PL_regnarrate          (aTHXo->interp.Tregnarrate)
-#define PL_regnaughty          (aTHXo->interp.Tregnaughty)
-#define PL_regnpar             (aTHXo->interp.Tregnpar)
-#define PL_regprecomp          (aTHXo->interp.Tregprecomp)
-#define PL_regprogram          (aTHXo->interp.Tregprogram)
-#define PL_regsawback          (aTHXo->interp.Tregsawback)
-#define PL_regseen             (aTHXo->interp.Tregseen)
-#define PL_regsize             (aTHXo->interp.Tregsize)
-#define PL_regstartp           (aTHXo->interp.Tregstartp)
-#define PL_regtill             (aTHXo->interp.Tregtill)
-#define PL_regxend             (aTHXo->interp.Tregxend)
-#define PL_restartop           (aTHXo->interp.Trestartop)
-#define PL_retstack            (aTHXo->interp.Tretstack)
-#define PL_retstack_ix         (aTHXo->interp.Tretstack_ix)
-#define PL_retstack_max                (aTHXo->interp.Tretstack_max)
-#define PL_rs                  (aTHXo->interp.Trs)
-#define PL_savestack           (aTHXo->interp.Tsavestack)
-#define PL_savestack_ix                (aTHXo->interp.Tsavestack_ix)
-#define PL_savestack_max       (aTHXo->interp.Tsavestack_max)
-#define PL_scopestack          (aTHXo->interp.Tscopestack)
-#define PL_scopestack_ix       (aTHXo->interp.Tscopestack_ix)
-#define PL_scopestack_max      (aTHXo->interp.Tscopestack_max)
-#define PL_screamfirst         (aTHXo->interp.Tscreamfirst)
-#define PL_screamnext          (aTHXo->interp.Tscreamnext)
-#define PL_secondgv            (aTHXo->interp.Tsecondgv)
-#define PL_seen_evals          (aTHXo->interp.Tseen_evals)
-#define PL_seen_zerolen                (aTHXo->interp.Tseen_zerolen)
-#define PL_sortcop             (aTHXo->interp.Tsortcop)
-#define PL_sortcxix            (aTHXo->interp.Tsortcxix)
-#define PL_sortstash           (aTHXo->interp.Tsortstash)
-#define PL_stack_base          (aTHXo->interp.Tstack_base)
-#define PL_stack_max           (aTHXo->interp.Tstack_max)
-#define PL_stack_sp            (aTHXo->interp.Tstack_sp)
-#define PL_start_env           (aTHXo->interp.Tstart_env)
-#define PL_statbuf             (aTHXo->interp.Tstatbuf)
-#define PL_statcache           (aTHXo->interp.Tstatcache)
-#define PL_statgv              (aTHXo->interp.Tstatgv)
-#define PL_statname            (aTHXo->interp.Tstatname)
-#define PL_tainted             (aTHXo->interp.Ttainted)
-#define PL_timesbuf            (aTHXo->interp.Ttimesbuf)
-#define PL_tmps_floor          (aTHXo->interp.Ttmps_floor)
-#define PL_tmps_ix             (aTHXo->interp.Ttmps_ix)
-#define PL_tmps_max            (aTHXo->interp.Ttmps_max)
-#define PL_tmps_stack          (aTHXo->interp.Ttmps_stack)
-#define PL_top_env             (aTHXo->interp.Ttop_env)
-#define PL_toptarget           (aTHXo->interp.Ttoptarget)
-#define PL_watchaddr           (aTHXo->interp.Twatchaddr)
-#define PL_watchok             (aTHXo->interp.Twatchok)
-#define PL_Argv                        (aTHXo->interp.IArgv)
-#define PL_Cmd                 (aTHXo->interp.ICmd)
-#define PL_DBcv                        (aTHXo->interp.IDBcv)
-#define PL_DBgv                        (aTHXo->interp.IDBgv)
-#define PL_DBline              (aTHXo->interp.IDBline)
-#define PL_DBsignal            (aTHXo->interp.IDBsignal)
-#define PL_DBsingle            (aTHXo->interp.IDBsingle)
-#define PL_DBsub               (aTHXo->interp.IDBsub)
-#define PL_DBtrace             (aTHXo->interp.IDBtrace)
-#define PL_Dir                 (aTHXo->interp.IDir)
-#define PL_Env                 (aTHXo->interp.IEnv)
-#define PL_LIO                 (aTHXo->interp.ILIO)
-#define PL_Mem                 (aTHXo->interp.IMem)
-#define PL_MemParse            (aTHXo->interp.IMemParse)
-#define PL_MemShared           (aTHXo->interp.IMemShared)
-#define PL_Proc                        (aTHXo->interp.IProc)
-#define PL_Sock                        (aTHXo->interp.ISock)
-#define PL_StdIO               (aTHXo->interp.IStdIO)
-#define PL_amagic_generation   (aTHXo->interp.Iamagic_generation)
-#define PL_an                  (aTHXo->interp.Ian)
-#define PL_argvgv              (aTHXo->interp.Iargvgv)
-#define PL_argvout_stack       (aTHXo->interp.Iargvout_stack)
-#define PL_argvoutgv           (aTHXo->interp.Iargvoutgv)
-#define PL_basetime            (aTHXo->interp.Ibasetime)
-#define PL_beginav             (aTHXo->interp.Ibeginav)
-#define PL_beginav_save                (aTHXo->interp.Ibeginav_save)
-#define PL_bitcount            (aTHXo->interp.Ibitcount)
-#define PL_bufend              (aTHXo->interp.Ibufend)
-#define PL_bufptr              (aTHXo->interp.Ibufptr)
-#define PL_checkav             (aTHXo->interp.Icheckav)
-#define PL_collation_ix                (aTHXo->interp.Icollation_ix)
-#define PL_collation_name      (aTHXo->interp.Icollation_name)
-#define PL_collation_standard  (aTHXo->interp.Icollation_standard)
-#define PL_collxfrm_base       (aTHXo->interp.Icollxfrm_base)
-#define PL_collxfrm_mult       (aTHXo->interp.Icollxfrm_mult)
-#define PL_compcv              (aTHXo->interp.Icompcv)
-#define PL_compiling           (aTHXo->interp.Icompiling)
-#define PL_comppad             (aTHXo->interp.Icomppad)
-#define PL_comppad_name                (aTHXo->interp.Icomppad_name)
-#define PL_comppad_name_fill   (aTHXo->interp.Icomppad_name_fill)
-#define PL_comppad_name_floor  (aTHXo->interp.Icomppad_name_floor)
-#define PL_cop_seqmax          (aTHXo->interp.Icop_seqmax)
-#define PL_copline             (aTHXo->interp.Icopline)
-#define PL_cred_mutex          (aTHXo->interp.Icred_mutex)
-#define PL_cryptseen           (aTHXo->interp.Icryptseen)
-#define PL_cshlen              (aTHXo->interp.Icshlen)
-#define PL_cshname             (aTHXo->interp.Icshname)
-#define PL_curcopdb            (aTHXo->interp.Icurcopdb)
-#define PL_curstname           (aTHXo->interp.Icurstname)
-#define PL_curthr              (aTHXo->interp.Icurthr)
-#define PL_dbargs              (aTHXo->interp.Idbargs)
-#define PL_debstash            (aTHXo->interp.Idebstash)
-#define PL_debug               (aTHXo->interp.Idebug)
-#define PL_defgv               (aTHXo->interp.Idefgv)
-#define PL_diehook             (aTHXo->interp.Idiehook)
-#define PL_doextract           (aTHXo->interp.Idoextract)
-#define PL_doswitches          (aTHXo->interp.Idoswitches)
-#define PL_dowarn              (aTHXo->interp.Idowarn)
-#define PL_e_script            (aTHXo->interp.Ie_script)
-#define PL_egid                        (aTHXo->interp.Iegid)
-#define PL_endav               (aTHXo->interp.Iendav)
-#define PL_envgv               (aTHXo->interp.Ienvgv)
-#define PL_errgv               (aTHXo->interp.Ierrgv)
-#define PL_error_count         (aTHXo->interp.Ierror_count)
-#define PL_euid                        (aTHXo->interp.Ieuid)
-#define PL_eval_cond           (aTHXo->interp.Ieval_cond)
-#define PL_eval_mutex          (aTHXo->interp.Ieval_mutex)
-#define PL_eval_owner          (aTHXo->interp.Ieval_owner)
-#define PL_eval_root           (aTHXo->interp.Ieval_root)
-#define PL_eval_start          (aTHXo->interp.Ieval_start)
-#define PL_evalseq             (aTHXo->interp.Ievalseq)
-#define PL_exit_flags          (aTHXo->interp.Iexit_flags)
-#define PL_exitlist            (aTHXo->interp.Iexitlist)
-#define PL_exitlistlen         (aTHXo->interp.Iexitlistlen)
-#define PL_expect              (aTHXo->interp.Iexpect)
-#define PL_fdpid               (aTHXo->interp.Ifdpid)
-#define PL_fdpid_mutex         (aTHXo->interp.Ifdpid_mutex)
-#define PL_filemode            (aTHXo->interp.Ifilemode)
-#define PL_forkprocess         (aTHXo->interp.Iforkprocess)
-#define PL_formfeed            (aTHXo->interp.Iformfeed)
-#define PL_generation          (aTHXo->interp.Igeneration)
-#define PL_gensym              (aTHXo->interp.Igensym)
-#define PL_gid                 (aTHXo->interp.Igid)
-#define PL_glob_index          (aTHXo->interp.Iglob_index)
-#define PL_globalstash         (aTHXo->interp.Iglobalstash)
-#define PL_he_arenaroot                (aTHXo->interp.Ihe_arenaroot)
-#define PL_he_root             (aTHXo->interp.Ihe_root)
-#define PL_hintgv              (aTHXo->interp.Ihintgv)
-#define PL_hints               (aTHXo->interp.Ihints)
-#define PL_in_clean_all                (aTHXo->interp.Iin_clean_all)
-#define PL_in_clean_objs       (aTHXo->interp.Iin_clean_objs)
-#define PL_in_my               (aTHXo->interp.Iin_my)
-#define PL_in_my_stash         (aTHXo->interp.Iin_my_stash)
-#define PL_incgv               (aTHXo->interp.Iincgv)
-#define PL_initav              (aTHXo->interp.Iinitav)
-#define PL_inplace             (aTHXo->interp.Iinplace)
-#define PL_last_lop            (aTHXo->interp.Ilast_lop)
-#define PL_last_lop_op         (aTHXo->interp.Ilast_lop_op)
-#define PL_last_swash_hv       (aTHXo->interp.Ilast_swash_hv)
-#define PL_last_swash_key      (aTHXo->interp.Ilast_swash_key)
-#define PL_last_swash_klen     (aTHXo->interp.Ilast_swash_klen)
-#define PL_last_swash_slen     (aTHXo->interp.Ilast_swash_slen)
-#define PL_last_swash_tmps     (aTHXo->interp.Ilast_swash_tmps)
-#define PL_last_uni            (aTHXo->interp.Ilast_uni)
-#define PL_lastfd              (aTHXo->interp.Ilastfd)
-#define PL_laststatval         (aTHXo->interp.Ilaststatval)
-#define PL_laststype           (aTHXo->interp.Ilaststype)
-#define PL_lex_brackets                (aTHXo->interp.Ilex_brackets)
-#define PL_lex_brackstack      (aTHXo->interp.Ilex_brackstack)
-#define PL_lex_casemods                (aTHXo->interp.Ilex_casemods)
-#define PL_lex_casestack       (aTHXo->interp.Ilex_casestack)
-#define PL_lex_defer           (aTHXo->interp.Ilex_defer)
-#define PL_lex_dojoin          (aTHXo->interp.Ilex_dojoin)
-#define PL_lex_expect          (aTHXo->interp.Ilex_expect)
-#define PL_lex_formbrack       (aTHXo->interp.Ilex_formbrack)
-#define PL_lex_inpat           (aTHXo->interp.Ilex_inpat)
-#define PL_lex_inwhat          (aTHXo->interp.Ilex_inwhat)
-#define PL_lex_op              (aTHXo->interp.Ilex_op)
-#define PL_lex_repl            (aTHXo->interp.Ilex_repl)
-#define PL_lex_starts          (aTHXo->interp.Ilex_starts)
-#define PL_lex_state           (aTHXo->interp.Ilex_state)
-#define PL_lex_stuff           (aTHXo->interp.Ilex_stuff)
-#define PL_lineary             (aTHXo->interp.Ilineary)
-#define PL_linestart           (aTHXo->interp.Ilinestart)
-#define PL_linestr             (aTHXo->interp.Ilinestr)
-#define PL_localpatches                (aTHXo->interp.Ilocalpatches)
-#define PL_main_cv             (aTHXo->interp.Imain_cv)
-#define PL_main_root           (aTHXo->interp.Imain_root)
-#define PL_main_start          (aTHXo->interp.Imain_start)
-#define PL_max_intro_pending   (aTHXo->interp.Imax_intro_pending)
-#define PL_maxo                        (aTHXo->interp.Imaxo)
-#define PL_maxsysfd            (aTHXo->interp.Imaxsysfd)
-#define PL_mess_sv             (aTHXo->interp.Imess_sv)
-#define PL_min_intro_pending   (aTHXo->interp.Imin_intro_pending)
-#define PL_minus_F             (aTHXo->interp.Iminus_F)
-#define PL_minus_a             (aTHXo->interp.Iminus_a)
-#define PL_minus_c             (aTHXo->interp.Iminus_c)
-#define PL_minus_l             (aTHXo->interp.Iminus_l)
-#define PL_minus_n             (aTHXo->interp.Iminus_n)
-#define PL_minus_p             (aTHXo->interp.Iminus_p)
-#define PL_modglobal           (aTHXo->interp.Imodglobal)
-#define PL_multi_close         (aTHXo->interp.Imulti_close)
-#define PL_multi_end           (aTHXo->interp.Imulti_end)
-#define PL_multi_open          (aTHXo->interp.Imulti_open)
-#define PL_multi_start         (aTHXo->interp.Imulti_start)
-#define PL_multiline           (aTHXo->interp.Imultiline)
-#define PL_nexttoke            (aTHXo->interp.Inexttoke)
-#define PL_nexttype            (aTHXo->interp.Inexttype)
-#define PL_nextval             (aTHXo->interp.Inextval)
-#define PL_nice_chunk          (aTHXo->interp.Inice_chunk)
-#define PL_nice_chunk_size     (aTHXo->interp.Inice_chunk_size)
-#define PL_nomemok             (aTHXo->interp.Inomemok)
-#define PL_nthreads            (aTHXo->interp.Inthreads)
-#define PL_nthreads_cond       (aTHXo->interp.Inthreads_cond)
-#define PL_nullstash           (aTHXo->interp.Inullstash)
-#define PL_numeric_compat1     (aTHXo->interp.Inumeric_compat1)
-#define PL_numeric_local       (aTHXo->interp.Inumeric_local)
-#define PL_numeric_name                (aTHXo->interp.Inumeric_name)
-#define PL_numeric_radix_sv    (aTHXo->interp.Inumeric_radix_sv)
-#define PL_numeric_standard    (aTHXo->interp.Inumeric_standard)
-#define PL_ofmt                        (aTHXo->interp.Iofmt)
-#define PL_oldbufptr           (aTHXo->interp.Ioldbufptr)
-#define PL_oldname             (aTHXo->interp.Ioldname)
-#define PL_oldoldbufptr                (aTHXo->interp.Ioldoldbufptr)
-#define PL_op_mask             (aTHXo->interp.Iop_mask)
-#define PL_op_seqmax           (aTHXo->interp.Iop_seqmax)
-#define PL_origalen            (aTHXo->interp.Iorigalen)
-#define PL_origargc            (aTHXo->interp.Iorigargc)
-#define PL_origargv            (aTHXo->interp.Iorigargv)
-#define PL_origenviron         (aTHXo->interp.Iorigenviron)
-#define PL_origfilename                (aTHXo->interp.Iorigfilename)
-#define PL_ors_sv              (aTHXo->interp.Iors_sv)
-#define PL_osname              (aTHXo->interp.Iosname)
-#define PL_pad_reset_pending   (aTHXo->interp.Ipad_reset_pending)
-#define PL_padix               (aTHXo->interp.Ipadix)
-#define PL_padix_floor         (aTHXo->interp.Ipadix_floor)
-#define PL_patchlevel          (aTHXo->interp.Ipatchlevel)
-#define PL_pending_ident       (aTHXo->interp.Ipending_ident)
-#define PL_perl_destruct_level (aTHXo->interp.Iperl_destruct_level)
-#define PL_perldb              (aTHXo->interp.Iperldb)
-#define PL_pidstatus           (aTHXo->interp.Ipidstatus)
-#define PL_preambleav          (aTHXo->interp.Ipreambleav)
-#define PL_preambled           (aTHXo->interp.Ipreambled)
-#define PL_preprocess          (aTHXo->interp.Ipreprocess)
-#define PL_profiledata         (aTHXo->interp.Iprofiledata)
-#define PL_psig_name           (aTHXo->interp.Ipsig_name)
-#define PL_psig_pend           (aTHXo->interp.Ipsig_pend)
-#define PL_psig_ptr            (aTHXo->interp.Ipsig_ptr)
-#define PL_ptr_table           (aTHXo->interp.Iptr_table)
-#define PL_reentrant_buffer    (aTHXo->interp.Ireentrant_buffer)
-#define PL_regex_pad           (aTHXo->interp.Iregex_pad)
-#define PL_regex_padav         (aTHXo->interp.Iregex_padav)
-#define PL_replgv              (aTHXo->interp.Ireplgv)
-#define PL_rsfp                        (aTHXo->interp.Irsfp)
-#define PL_rsfp_filters                (aTHXo->interp.Irsfp_filters)
-#define PL_runops              (aTHXo->interp.Irunops)
-#define PL_sawampersand                (aTHXo->interp.Isawampersand)
-#define PL_sh_path             (aTHXo->interp.Ish_path)
-#define PL_sig_pending         (aTHXo->interp.Isig_pending)
-#define PL_sighandlerp         (aTHXo->interp.Isighandlerp)
-#define PL_splitstr            (aTHXo->interp.Isplitstr)
-#define PL_srand_called                (aTHXo->interp.Isrand_called)
-#define PL_statusvalue         (aTHXo->interp.Istatusvalue)
-#define PL_statusvalue_vms     (aTHXo->interp.Istatusvalue_vms)
-#define PL_stderrgv            (aTHXo->interp.Istderrgv)
-#define PL_stdingv             (aTHXo->interp.Istdingv)
-#define PL_strtab              (aTHXo->interp.Istrtab)
-#define PL_strtab_mutex                (aTHXo->interp.Istrtab_mutex)
-#define PL_sub_generation      (aTHXo->interp.Isub_generation)
-#define PL_sublex_info         (aTHXo->interp.Isublex_info)
-#define PL_subline             (aTHXo->interp.Isubline)
-#define PL_subname             (aTHXo->interp.Isubname)
-#define PL_sv_arenaroot                (aTHXo->interp.Isv_arenaroot)
-#define PL_sv_count            (aTHXo->interp.Isv_count)
-#define PL_sv_lock_mutex       (aTHXo->interp.Isv_lock_mutex)
-#define PL_sv_mutex            (aTHXo->interp.Isv_mutex)
-#define PL_sv_no               (aTHXo->interp.Isv_no)
-#define PL_sv_objcount         (aTHXo->interp.Isv_objcount)
-#define PL_sv_root             (aTHXo->interp.Isv_root)
-#define PL_sv_undef            (aTHXo->interp.Isv_undef)
-#define PL_sv_yes              (aTHXo->interp.Isv_yes)
-#define PL_svref_mutex         (aTHXo->interp.Isvref_mutex)
-#define PL_sys_intern          (aTHXo->interp.Isys_intern)
-#define PL_tainting            (aTHXo->interp.Itainting)
-#define PL_threadnum           (aTHXo->interp.Ithreadnum)
-#define PL_threads_mutex       (aTHXo->interp.Ithreads_mutex)
-#define PL_threadsv_names      (aTHXo->interp.Ithreadsv_names)
-#define PL_thrsv               (aTHXo->interp.Ithrsv)
-#define PL_tokenbuf            (aTHXo->interp.Itokenbuf)
-#define PL_uid                 (aTHXo->interp.Iuid)
-#define PL_unsafe              (aTHXo->interp.Iunsafe)
-#define PL_utf8_alnum          (aTHXo->interp.Iutf8_alnum)
-#define PL_utf8_alnumc         (aTHXo->interp.Iutf8_alnumc)
-#define PL_utf8_alpha          (aTHXo->interp.Iutf8_alpha)
-#define PL_utf8_ascii          (aTHXo->interp.Iutf8_ascii)
-#define PL_utf8_cntrl          (aTHXo->interp.Iutf8_cntrl)
-#define PL_utf8_digit          (aTHXo->interp.Iutf8_digit)
-#define PL_utf8_graph          (aTHXo->interp.Iutf8_graph)
-#define PL_utf8_lower          (aTHXo->interp.Iutf8_lower)
-#define PL_utf8_mark           (aTHXo->interp.Iutf8_mark)
-#define PL_utf8_print          (aTHXo->interp.Iutf8_print)
-#define PL_utf8_punct          (aTHXo->interp.Iutf8_punct)
-#define PL_utf8_space          (aTHXo->interp.Iutf8_space)
-#define PL_utf8_tolower                (aTHXo->interp.Iutf8_tolower)
-#define PL_utf8_totitle                (aTHXo->interp.Iutf8_totitle)
-#define PL_utf8_toupper                (aTHXo->interp.Iutf8_toupper)
-#define PL_utf8_upper          (aTHXo->interp.Iutf8_upper)
-#define PL_utf8_xdigit         (aTHXo->interp.Iutf8_xdigit)
-#define PL_uudmap              (aTHXo->interp.Iuudmap)
-#define PL_warnhook            (aTHXo->interp.Iwarnhook)
-#define PL_widesyscalls                (aTHXo->interp.Iwidesyscalls)
-#define PL_xiv_arenaroot       (aTHXo->interp.Ixiv_arenaroot)
-#define PL_xiv_root            (aTHXo->interp.Ixiv_root)
-#define PL_xnv_arenaroot       (aTHXo->interp.Ixnv_arenaroot)
-#define PL_xnv_root            (aTHXo->interp.Ixnv_root)
-#define PL_xpv_arenaroot       (aTHXo->interp.Ixpv_arenaroot)
-#define PL_xpv_root            (aTHXo->interp.Ixpv_root)
-#define PL_xpvav_arenaroot     (aTHXo->interp.Ixpvav_arenaroot)
-#define PL_xpvav_root          (aTHXo->interp.Ixpvav_root)
-#define PL_xpvbm_arenaroot     (aTHXo->interp.Ixpvbm_arenaroot)
-#define PL_xpvbm_root          (aTHXo->interp.Ixpvbm_root)
-#define PL_xpvcv_arenaroot     (aTHXo->interp.Ixpvcv_arenaroot)
-#define PL_xpvcv_root          (aTHXo->interp.Ixpvcv_root)
-#define PL_xpvhv_arenaroot     (aTHXo->interp.Ixpvhv_arenaroot)
-#define PL_xpvhv_root          (aTHXo->interp.Ixpvhv_root)
-#define PL_xpviv_arenaroot     (aTHXo->interp.Ixpviv_arenaroot)
-#define PL_xpviv_root          (aTHXo->interp.Ixpviv_root)
-#define PL_xpvlv_arenaroot     (aTHXo->interp.Ixpvlv_arenaroot)
-#define PL_xpvlv_root          (aTHXo->interp.Ixpvlv_root)
-#define PL_xpvmg_arenaroot     (aTHXo->interp.Ixpvmg_arenaroot)
-#define PL_xpvmg_root          (aTHXo->interp.Ixpvmg_root)
-#define PL_xpvnv_arenaroot     (aTHXo->interp.Ixpvnv_arenaroot)
-#define PL_xpvnv_root          (aTHXo->interp.Ixpvnv_root)
-#define PL_xrv_arenaroot       (aTHXo->interp.Ixrv_arenaroot)
-#define PL_xrv_root            (aTHXo->interp.Ixrv_root)
-#define PL_yychar              (aTHXo->interp.Iyychar)
-#define PL_yydebug             (aTHXo->interp.Iyydebug)
-#define PL_yyerrflag           (aTHXo->interp.Iyyerrflag)
-#define PL_yylval              (aTHXo->interp.Iyylval)
-#define PL_yynerrs             (aTHXo->interp.Iyynerrs)
-#define PL_yyval               (aTHXo->interp.Iyyval)
-
-#  else        /* !PERL_OBJECT */
-
 /* cases 1 and 4 above */
 
 #define PL_IArgv               PL_Argv
 #define PL_Icurcopdb           PL_curcopdb
 #define PL_Icurstname          PL_curstname
 #define PL_Icurthr             PL_curthr
+#define PL_Icustom_op_descs    PL_custom_op_descs
+#define PL_Icustom_op_names    PL_custom_op_names
 #define PL_Idbargs             PL_dbargs
 #define PL_Idebstash           PL_debstash
 #define PL_Idebug              PL_debug
 #define PL_Irsfp               PL_rsfp
 #define PL_Irsfp_filters       PL_rsfp_filters
 #define PL_Irunops             PL_runops
+#define PL_Isavebegin          PL_savebegin
 #define PL_Isawampersand       PL_sawampersand
 #define PL_Ish_path            PL_sh_path
 #define PL_Isig_pending                PL_sig_pending
 #define PL_Iyynerrs            PL_yynerrs
 #define PL_Iyyval              PL_yyval
 
-#    if defined(USE_THREADS)
+#  if defined(USE_5005THREADS)
 /* case 4 above */
 
 #define PL_Sv                  (aTHX->TSv)
 #define PL_reg_ganch           (aTHX->Treg_ganch)
 #define PL_reg_leftiter                (aTHX->Treg_leftiter)
 #define PL_reg_magic           (aTHX->Treg_magic)
+#define PL_reg_match_utf8      (aTHX->Treg_match_utf8)
 #define PL_reg_maxiter         (aTHX->Treg_maxiter)
 #define PL_reg_oldcurpm                (aTHX->Treg_oldcurpm)
 #define PL_reg_oldpos          (aTHX->Treg_oldpos)
 #define PL_watchaddr           (aTHX->Twatchaddr)
 #define PL_watchok             (aTHX->Twatchok)
 
-#    else      /* !USE_THREADS */
+#  else        /* !USE_5005THREADS */
 /* case 1 above */
 
 #define PL_TSv                 PL_Sv
 #define PL_Treg_ganch          PL_reg_ganch
 #define PL_Treg_leftiter       PL_reg_leftiter
 #define PL_Treg_magic          PL_reg_magic
+#define PL_Treg_match_utf8     PL_reg_match_utf8
 #define PL_Treg_maxiter                PL_reg_maxiter
 #define PL_Treg_oldcurpm       PL_reg_oldcurpm
 #define PL_Treg_oldpos         PL_reg_oldpos
 #define PL_Twatchaddr          PL_watchaddr
 #define PL_Twatchok            PL_watchok
 
-#    endif     /* USE_THREADS */
-#  endif       /* PERL_OBJECT */
+#  endif       /* USE_5005THREADS */
 #endif /* MULTIPLICITY */
 
 #if defined(PERL_GLOBAL_STRUCT)