This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Introduce save_hdelete() and SAVEHDELETE()
[perl5.git] / embed.h
diff --git a/embed.h b/embed.h
index 9caec1d..dd7f269 100644 (file)
--- a/embed.h
+++ b/embed.h
@@ -3,7 +3,7 @@
  *    embed.h
  *
  *    Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999,
- *    2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, by Larry Wall and others
+ *    2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, by Larry Wall and others
  *
  *    You may distribute under the terms of either the GNU General Public
  *    License or the Artistic License, as specified in the README file.
@@ -56,9 +56,6 @@
 #define av_delete              Perl_av_delete
 #define av_exists              Perl_av_exists
 #define av_extend              Perl_av_extend
-#ifdef PERL_CORE
-#define av_fake                        Perl_av_fake
-#endif
 #define av_fetch               Perl_av_fetch
 #define av_fill                        Perl_av_fill
 #define av_len                 Perl_av_len
 #define printf_nocontext       Perl_printf_nocontext
 #endif
 #ifdef PERL_CORE
-#define cv_ckproto             Perl_cv_ckproto
 #define cv_ckproto_len         Perl_cv_ckproto_len
 #define cv_clone               Perl_cv_clone
 #endif
 #define deprecate_old          Perl_deprecate_old
 #endif
 #define die                    Perl_die
+#if defined(PERL_IN_UTIL_C) || defined(PERL_DECL_PROT)
+#ifdef PERL_CORE
+#define vdie                   S_vdie
+#endif
+#endif
 #ifdef PERL_CORE
-#define vdie                   Perl_vdie
 #define die_where              Perl_die_where
 #endif
 #define dounwind               Perl_dounwind
 #ifdef PERL_CORE
 #define do_execfree            Perl_do_execfree
 #endif
-#ifdef PERL_IN_DOIO_C
+#if defined(PERL_IN_DOIO_C) || defined(PERL_DECL_PROT)
 #ifdef PERL_CORE
 #define exec_failed            S_exec_failed
 #endif
 #define fbm_instr              Perl_fbm_instr
 #ifdef PERL_CORE
 #define find_script            Perl_find_script
-#define force_list             Perl_force_list
-#define fold_constants         Perl_fold_constants
+#endif
+#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
+#ifdef PERL_CORE
+#define force_list             S_force_list
+#define fold_constants         S_fold_constants
+#endif
 #endif
 #define form                   Perl_form
 #define vform                  Perl_vform
 #define free_tmps              Perl_free_tmps
+#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
 #ifdef PERL_CORE
-#define gen_constant_list      Perl_gen_constant_list
+#define gen_constant_list      S_gen_constant_list
+#endif
 #endif
 #if !defined(HAS_GETENV_LEN)
 #ifdef PERL_CORE
 #define ibcmp                  Perl_ibcmp
 #define ibcmp_locale           Perl_ibcmp_locale
 #define ibcmp_utf8             Perl_ibcmp_utf8
+#if defined(PERL_IN_DOIO_C) || defined(PERL_DECL_PROT)
+#ifdef PERL_CORE
+#define ingroup                        S_ingroup
+#endif
+#endif
 #ifdef PERL_CORE
-#define ingroup                        Perl_ingroup
 #define init_argv_symbols      Perl_init_argv_symbols
 #define init_debugger          Perl_init_debugger
 #endif
 #ifdef PERL_CORE
 #define io_close               Perl_io_close
 #define invert                 Perl_invert
-#define is_gv_magical          Perl_is_gv_magical
 #endif
 #define is_lvalue_sub          Perl_is_lvalue_sub
 #define to_uni_upper_lc                Perl_to_uni_upper_lc
 #endif
 #define op_refcnt_lock         Perl_op_refcnt_lock
 #define op_refcnt_unlock       Perl_op_refcnt_unlock
+#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
+#ifdef PERL_CORE
+#define linklist               S_linklist
+#define listkids               S_listkids
+#endif
+#endif
 #ifdef PERL_CORE
-#define linklist               Perl_linklist
 #define list                   Perl_list
-#define listkids               Perl_listkids
 #endif
 #define load_module            Perl_load_module
 #define vload_module           Perl_vload_module
 #define magic_set_all_env      Perl_magic_set_all_env
 #define magic_sizepack         Perl_magic_sizepack
 #define magic_wipepack         Perl_magic_wipepack
-#define magicname              Perl_magicname
 #endif
 #define markstack_grow         Perl_markstack_grow
 #if defined(USE_LOCALE_COLLATE)
 #define mode_from_discipline   Perl_mode_from_discipline
 #endif
 #define moreswitches           Perl_moreswitches
-#ifdef PERL_CORE
-#define my                     Perl_my
-#endif
 #define my_atof                        Perl_my_atof
 #if (!defined(HAS_MEMCPY) && !defined(HAS_BCOPY)) || (!defined(HAS_MEMMOVE) && !defined(HAS_SAFE_MEMCPY) && !defined(HAS_SAFE_BCOPY))
 #define my_bcopy               Perl_my_bcopy
 #define nextargv               Perl_nextargv
 #endif
 #define ninstr                 Perl_ninstr
-#ifdef PERL_CORE
-#define oopsCV                 Perl_oopsCV
-#endif
 #define op_free                        Perl_op_free
 #ifdef PERL_MAD
 #ifdef PERL_CORE
 #define pad_sv                 Perl_pad_sv
 #ifdef PERL_CORE
 #define pad_free               Perl_pad_free
-#define pad_reset              Perl_pad_reset
+#endif
+#if defined(PERL_IN_PAD_C) || defined(PERL_DECL_PROT)
+#ifdef PERL_CORE
+#define pad_reset              S_pad_reset
+#endif
+#endif
+#ifdef PERL_CORE
 #define pad_swipe              Perl_pad_swipe
 #define peep                   Perl_peep
 #endif
 #define require_pv             Perl_require_pv
 #define pack_cat               Perl_pack_cat
 #define packlist               Perl_packlist
-#ifdef PERL_USES_PL_PIDSTATUS
+#if defined(PERL_USES_PL_PIDSTATUS) && defined(PERL_IN_UTIL_C)
 #ifdef PERL_CORE
-#define pidgone                        Perl_pidgone
+#define pidgone                        S_pidgone
 #endif
 #endif
 #define pmflag                 Perl_pmflag
 #ifdef PERL_CORE
 #define pmruntime              Perl_pmruntime
-#define pmtrans                        Perl_pmtrans
+#endif
+#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
+#ifdef PERL_CORE
+#define pmtrans                        S_pmtrans
+#endif
 #endif
 #define pop_scope              Perl_pop_scope
 #ifdef PERL_CORE
 #define prepend_elem           Perl_prepend_elem
 #endif
 #define push_scope             Perl_push_scope
+#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
 #ifdef PERL_CORE
-#define refkids                        Perl_refkids
+#define refkids                        S_refkids
+#endif
 #endif
 #define regdump                        Perl_regdump
 #define regdump                        Perl_regdump
 #define rsignal_save           Perl_rsignal_save
 #endif
 #define rsignal_state          Perl_rsignal_state
+#if defined(PERL_IN_PP_CTL_C) || defined(PERL_DECL_PROT)
+#ifdef PERL_CORE
+#define rxres_free             S_rxres_free
+#define rxres_restore          S_rxres_restore
+#endif
+#endif
 #ifdef PERL_CORE
-#define rxres_free             Perl_rxres_free
-#define rxres_restore          Perl_rxres_restore
 #define rxres_save             Perl_rxres_save
 #endif
 #if !defined(HAS_RENAME)
 #define savesvpv               Perl_savesvpv
 #define savestack_grow         Perl_savestack_grow
 #define savestack_grow_cnt     Perl_savestack_grow_cnt
-#define save_aelem             Perl_save_aelem
+#define save_aelem_flags       Perl_save_aelem_flags
 #define save_alloc             Perl_save_alloc
 #define save_aptr              Perl_save_aptr
 #define save_ary               Perl_save_ary
 #define save_bool              Perl_save_bool
 #define save_clearsv           Perl_save_clearsv
 #define save_delete            Perl_save_delete
+#define save_hdelete           Perl_save_hdelete
+#define save_adelete           Perl_save_adelete
 #define save_destructor                Perl_save_destructor
 #define save_destructor_x      Perl_save_destructor_x
-#define save_freesv            Perl_save_freesv
-#ifdef PERL_CORE
-#define save_freeop            Perl_save_freeop
-#endif
-#define save_freepv            Perl_save_freepv
 #define save_generic_svref     Perl_save_generic_svref
 #define save_generic_pvref     Perl_save_generic_pvref
 #define save_shared_pvref      Perl_save_shared_pvref
 #define save_gp                        Perl_save_gp
 #define save_hash              Perl_save_hash
-#define save_helem             Perl_save_helem
+#ifdef PERL_CORE
+#define save_hints             Perl_save_hints
+#endif
+#define save_helem_flags       Perl_save_helem_flags
 #define save_hptr              Perl_save_hptr
 #define save_I16               Perl_save_I16
 #define save_I32               Perl_save_I32
 #define save_iv                        Perl_save_iv
 #define save_list              Perl_save_list
 #define save_long              Perl_save_long
-#define save_mortalizesv       Perl_save_mortalizesv
 #define save_nogv              Perl_save_nogv
-#ifdef PERL_CORE
-#define save_op                        Perl_save_op
-#endif
 #define save_scalar            Perl_save_scalar
 #define save_pptr              Perl_save_pptr
 #define save_vptr              Perl_save_vptr
 #define save_padsv_and_mortalize       Perl_save_padsv_and_mortalize
 #define save_sptr              Perl_save_sptr
 #define save_svref             Perl_save_svref
+#define save_pushptr           Perl_save_pushptr
+#ifdef PERL_CORE
+#define save_pushi32ptr                Perl_save_pushi32ptr
+#define save_pushptrptr                Perl_save_pushptrptr
+#endif
+#if defined(PERL_IN_SCOPE_C) || defined(PERL_DECL_PROT)
+#ifdef PERL_CORE
+#define save_pushptri32ptr     S_save_pushptri32ptr
+#endif
+#endif
 #ifdef PERL_CORE
 #define sawparens              Perl_sawparens
 #define scalar                 Perl_scalar
-#define scalarkids             Perl_scalarkids
-#define scalarseq              Perl_scalarseq
+#endif
+#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
+#ifdef PERL_CORE
+#define scalarkids             S_scalarkids
+#define scalarseq              S_scalarseq
+#endif
+#endif
+#ifdef PERL_CORE
 #define scalarvoid             Perl_scalarvoid
 #endif
 #define scan_bin               Perl_scan_bin
 #define scope                  Perl_scope
 #endif
 #define screaminstr            Perl_screaminstr
-#if !defined(VMS)
-#ifdef PERL_CORE
-#define setenv_getix           Perl_setenv_getix
-#endif
-#endif
-#if defined(PERL_CORE) || defined(PERL_EXT)
 #define setdefout              Perl_setdefout
-#endif
 #define share_hek              Perl_share_hek
 #if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
 #ifdef PERL_CORE
 #define sv_2bool               Perl_sv_2bool
 #define sv_2cv                 Perl_sv_2cv
 #define sv_2io                 Perl_sv_2io
-#ifdef PERL_IN_SV_C
+#if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
 #ifdef PERL_CORE
 #define glob_2number           S_glob_2number
-#define glob_2pv               S_glob_2pv
 #endif
 #endif
 #define sv_2iv_flags           Perl_sv_2iv_flags
 #define sv_pvutf8n             Perl_sv_pvutf8n
 #define sv_pvbyten             Perl_sv_pvbyten
 #define sv_true                        Perl_sv_true
+#if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
 #ifdef PERL_CORE
-#define sv_add_arena           Perl_sv_add_arena
+#define sv_add_arena           S_sv_add_arena
+#endif
 #endif
 #define sv_backoff             Perl_sv_backoff
 #define sv_bless               Perl_sv_bless
 #ifdef PERL_CORE
 #define yyparse                        Perl_yyparse
 #define parser_free            Perl_parser_free
-#define yywarn                 Perl_yywarn
+#endif
+#if defined(PERL_IN_TOKE_C) || defined(PERL_DECL_PROT)
+#ifdef PERL_CORE
+#define yywarn                 S_yywarn
+#endif
 #endif
 #if defined(MYMALLOC)
 #define dump_mstats            Perl_dump_mstats
 #endif
 #ifdef PERL_CORE
 #define my_attrs               Perl_my_attrs
-#define boot_core_xsutils      Perl_boot_core_xsutils
 #endif
 #if defined(USE_ITHREADS)
 #define cx_dup                 Perl_cx_dup
 #define dirp_dup               Perl_dirp_dup
 #define gp_dup                 Perl_gp_dup
 #define mg_dup                 Perl_mg_dup
+#if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
+#ifdef PERL_CORE
+#define sv_dup_inc_multiple    S_sv_dup_inc_multiple
+#endif
+#endif
 #define sv_dup                 Perl_sv_dup
 #define rvpv_dup               Perl_rvpv_dup
 #define parser_dup             Perl_parser_dup
 #ifdef PERL_CORE
 #define hsplit                 S_hsplit
 #define hfreeentries           S_hfreeentries
+#define anonymise_cv           S_anonymise_cv
 #define new_he                 S_new_he
 #define save_hek_flags         S_save_hek_flags
 #define hv_magic_check         S_hv_magic_check
 #define modkids                        S_modkids
 #define scalarboolean          S_scalarboolean
 #define newDEFSVOP             S_newDEFSVOP
+#define search_const           S_search_const
 #define new_logop              S_new_logop
 #define simplify_sort          S_simplify_sort
 #define gv_ename               S_gv_ename
 #define find_beginning         S_find_beginning
 #define forbid_setid           S_forbid_setid
 #define incpush                        S_incpush
+#define incpush_use_sep                S_incpush_use_sep
 #define init_interp            S_init_interp
 #define init_ids               S_init_ids
 #define init_main_stash                S_init_main_stash
 #define open_script            S_open_script
 #define usage                  S_usage
 #endif
-#ifdef DOSUID
-#  ifdef IAMSUID
-#  else
-#  endif
-#else
-#  ifndef SETUID_SCRIPTS_ARE_SECURE_NOW
-#  endif
-#endif
-#  if defined(IAMSUID)
-#ifdef PERL_CORE
-#define fd_on_nosuid_fs                S_fd_on_nosuid_fs
+#ifndef SETUID_SCRIPTS_ARE_SECURE_NOW
 #endif
-#  endif
 #ifdef PERL_CORE
 #define parse_body             S_parse_body
 #define run_body               S_run_body
 #define vdie_common            S_vdie_common
 #define write_no_mem           S_write_no_mem
 #endif
+#if defined(PERL_MEM_LOG) && !defined(PERL_MEM_LOG_NOIMPL)
+#ifdef PERL_CORE
+#define mem_log_common         S_mem_log_common
+#endif
+#endif
 #endif
 #if defined(PERL_IN_NUMERIC_C) || defined(PERL_DECL_PROT)
 #ifdef PERL_CORE
 #define sv_setsv_flags         Perl_sv_setsv_flags
 #define sv_catpvn_flags                Perl_sv_catpvn_flags
 #define sv_catsv_flags         Perl_sv_catsv_flags
-#define sv_utf8_upgrade_flags  Perl_sv_utf8_upgrade_flags
+#define sv_utf8_upgrade_flags_grow     Perl_sv_utf8_upgrade_flags_grow
 #define sv_pvn_force_flags     Perl_sv_pvn_force_flags
 #define sv_copypv              Perl_sv_copypv
 #define my_atof2               Perl_my_atof2
 #ifdef PERL_CORE
 #define deb_stack_all          Perl_deb_stack_all
 #endif
-#ifdef PERL_IN_DEB_C
+#if defined(PERL_IN_DEB_C) || defined(PERL_DECL_PROT)
 #ifdef PERL_CORE
 #define deb_stack_n            S_deb_stack_n
 #endif
 #endif
 #if !defined(HAS_SIGNBIT)
 #endif
-#ifdef PERL_CORE
-#define mro_meta_init          Perl_mro_meta_init
-#endif
 #if defined(USE_ITHREADS)
 #ifdef PERL_CORE
 #define mro_meta_dup           Perl_mro_meta_dup
 #define mro_get_linear_isa     Perl_mro_get_linear_isa
 #if defined(PERL_IN_MRO_C) || defined(PERL_DECL_PROT)
 #ifdef PERL_CORE
-#define mro_get_linear_isa_c3  S_mro_get_linear_isa_c3
 #define mro_get_linear_isa_dfs S_mro_get_linear_isa_dfs
 #endif
 #endif
 #define get_context            Perl_get_context
 #define set_context            Perl_set_context
 #define amagic_call(a,b,c,d)   Perl_amagic_call(aTHX_ a,b,c,d)
-#define Gv_AMupdate(a)         Perl_Gv_AMupdate(aTHX_ a)
+#define Gv_AMupdate(a,b)       Perl_Gv_AMupdate(aTHX_ a,b)
 #define gv_handler(a,b)                Perl_gv_handler(aTHX_ a,b)
 #ifdef PERL_CORE
 #define append_elem(a,b,c)     Perl_append_elem(aTHX_ a,b,c)
 #define av_delete(a,b,c)       Perl_av_delete(aTHX_ a,b,c)
 #define av_exists(a,b)         Perl_av_exists(aTHX_ a,b)
 #define av_extend(a,b)         Perl_av_extend(aTHX_ a,b)
-#ifdef PERL_CORE
-#define av_fake(a,b)           Perl_av_fake(aTHX_ a,b)
-#endif
 #define av_fetch(a,b,c)                Perl_av_fetch(aTHX_ a,b,c)
 #define av_fill(a,b)           Perl_av_fill(aTHX_ a,b)
 #define av_len(a)              Perl_av_len(aTHX_ a)
 #if defined(PERL_IMPLICIT_CONTEXT)
 #endif
 #ifdef PERL_CORE
-#define cv_ckproto(a,b,c)      Perl_cv_ckproto(aTHX_ a,b,c)
 #define cv_ckproto_len(a,b,c,d)        Perl_cv_ckproto_len(aTHX_ a,b,c,d)
 #define cv_clone(a)            Perl_cv_clone(aTHX_ a)
 #endif
 #define deprecate(a)           Perl_deprecate(aTHX_ a)
 #define deprecate_old(a)       Perl_deprecate_old(aTHX_ a)
 #endif
+#if defined(PERL_IN_UTIL_C) || defined(PERL_DECL_PROT)
+#ifdef PERL_CORE
+#define vdie(a,b)              S_vdie(aTHX_ a,b)
+#endif
+#endif
 #ifdef PERL_CORE
-#define vdie(a,b)              Perl_vdie(aTHX_ a,b)
 #define die_where(a,b)         Perl_die_where(aTHX_ a,b)
 #endif
 #define dounwind(a)            Perl_dounwind(aTHX_ a)
 #ifdef PERL_CORE
 #define do_execfree()          Perl_do_execfree(aTHX)
 #endif
-#ifdef PERL_IN_DOIO_C
+#if defined(PERL_IN_DOIO_C) || defined(PERL_DECL_PROT)
 #ifdef PERL_CORE
 #define exec_failed(a,b,c)     S_exec_failed(aTHX_ a,b,c)
 #endif
 #define fbm_instr(a,b,c,d)     Perl_fbm_instr(aTHX_ a,b,c,d)
 #ifdef PERL_CORE
 #define find_script(a,b,c,d)   Perl_find_script(aTHX_ a,b,c,d)
-#define force_list(a)          Perl_force_list(aTHX_ a)
-#define fold_constants(a)      Perl_fold_constants(aTHX_ a)
+#endif
+#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
+#ifdef PERL_CORE
+#define force_list(a)          S_force_list(aTHX_ a)
+#define fold_constants(a)      S_fold_constants(aTHX_ a)
+#endif
 #endif
 #define vform(a,b)             Perl_vform(aTHX_ a,b)
 #define free_tmps()            Perl_free_tmps(aTHX)
+#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
 #ifdef PERL_CORE
-#define gen_constant_list(a)   Perl_gen_constant_list(aTHX_ a)
+#define gen_constant_list(a)   S_gen_constant_list(aTHX_ a)
+#endif
 #endif
 #if !defined(HAS_GETENV_LEN)
 #ifdef PERL_CORE
 #define ibcmp(a,b,c)           Perl_ibcmp(aTHX_ a,b,c)
 #define ibcmp_locale(a,b,c)    Perl_ibcmp_locale(aTHX_ a,b,c)
 #define ibcmp_utf8(a,b,c,d,e,f,g,h)    Perl_ibcmp_utf8(aTHX_ a,b,c,d,e,f,g,h)
+#if defined(PERL_IN_DOIO_C) || defined(PERL_DECL_PROT)
+#ifdef PERL_CORE
+#define ingroup(a,b)           S_ingroup(aTHX_ a,b)
+#endif
+#endif
 #ifdef PERL_CORE
-#define ingroup(a,b)           Perl_ingroup(aTHX_ a,b)
 #define init_argv_symbols(a,b) Perl_init_argv_symbols(aTHX_ a,b)
 #define init_debugger()                Perl_init_debugger(aTHX)
 #endif
 #ifdef PERL_CORE
 #define io_close(a,b)          Perl_io_close(aTHX_ a,b)
 #define invert(a)              Perl_invert(aTHX_ a)
-#define is_gv_magical(a,b,c)   Perl_is_gv_magical(aTHX_ a,b,c)
 #endif
 #define is_lvalue_sub()                Perl_is_lvalue_sub(aTHX)
 #define to_uni_upper_lc(a)     Perl_to_uni_upper_lc(aTHX_ a)
 #endif
 #define op_refcnt_lock()       Perl_op_refcnt_lock(aTHX)
 #define op_refcnt_unlock()     Perl_op_refcnt_unlock(aTHX)
+#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
+#ifdef PERL_CORE
+#define linklist(a)            S_linklist(aTHX_ a)
+#define listkids(a)            S_listkids(aTHX_ a)
+#endif
+#endif
 #ifdef PERL_CORE
-#define linklist(a)            Perl_linklist(aTHX_ a)
 #define list(a)                        Perl_list(aTHX_ a)
-#define listkids(a)            Perl_listkids(aTHX_ a)
 #endif
 #define vload_module(a,b,c,d)  Perl_vload_module(aTHX_ a,b,c,d)
 #ifdef PERL_CORE
 #define magic_set_all_env(a,b) Perl_magic_set_all_env(aTHX_ a,b)
 #define magic_sizepack(a,b)    Perl_magic_sizepack(aTHX_ a,b)
 #define magic_wipepack(a,b)    Perl_magic_wipepack(aTHX_ a,b)
-#define magicname(a,b,c)       Perl_magicname(aTHX_ a,b,c)
 #endif
 #define markstack_grow()       Perl_markstack_grow(aTHX)
 #if defined(USE_LOCALE_COLLATE)
 #define mg_clear(a)            Perl_mg_clear(aTHX_ a)
 #define mg_copy(a,b,c,d)       Perl_mg_copy(aTHX_ a,b,c,d)
 #ifdef PERL_CORE
-#define mg_localize(a,b)       Perl_mg_localize(aTHX_ a,b)
+#define mg_localize(a,b,c)     Perl_mg_localize(aTHX_ a,b,c)
 #endif
 #define mg_find(a,b)           Perl_mg_find(aTHX_ a,b)
 #define mg_free(a)             Perl_mg_free(aTHX_ a)
 #define mode_from_discipline(a,b)      Perl_mode_from_discipline(aTHX_ a,b)
 #endif
 #define moreswitches(a)                Perl_moreswitches(aTHX_ a)
-#ifdef PERL_CORE
-#define my(a)                  Perl_my(aTHX_ a)
-#endif
 #define my_atof(a)             Perl_my_atof(aTHX_ a)
 #if (!defined(HAS_MEMCPY) && !defined(HAS_BCOPY)) || (!defined(HAS_MEMMOVE) && !defined(HAS_SAFE_MEMCPY) && !defined(HAS_SAFE_BCOPY))
 #define my_bcopy               Perl_my_bcopy
 #define nextargv(a)            Perl_nextargv(aTHX_ a)
 #endif
 #define ninstr(a,b,c,d)                Perl_ninstr(aTHX_ a,b,c,d)
-#ifdef PERL_CORE
-#define oopsCV(a)              Perl_oopsCV(aTHX_ a)
-#endif
 #define op_free(a)             Perl_op_free(aTHX_ a)
 #ifdef PERL_MAD
 #ifdef PERL_CORE
 #define pad_sv(a)              Perl_pad_sv(aTHX_ a)
 #ifdef PERL_CORE
 #define pad_free(a)            Perl_pad_free(aTHX_ a)
-#define pad_reset()            Perl_pad_reset(aTHX)
+#endif
+#if defined(PERL_IN_PAD_C) || defined(PERL_DECL_PROT)
+#ifdef PERL_CORE
+#define pad_reset()            S_pad_reset(aTHX)
+#endif
+#endif
+#ifdef PERL_CORE
 #define pad_swipe(a,b)         Perl_pad_swipe(aTHX_ a,b)
 #define peep(a)                        Perl_peep(aTHX_ a)
 #endif
 #define require_pv(a)          Perl_require_pv(aTHX_ a)
 #define pack_cat(a,b,c,d,e,f,g)        Perl_pack_cat(aTHX_ a,b,c,d,e,f,g)
 #define packlist(a,b,c,d,e)    Perl_packlist(aTHX_ a,b,c,d,e)
-#ifdef PERL_USES_PL_PIDSTATUS
+#if defined(PERL_USES_PL_PIDSTATUS) && defined(PERL_IN_UTIL_C)
 #ifdef PERL_CORE
-#define pidgone(a,b)           Perl_pidgone(aTHX_ a,b)
+#define pidgone(a,b)           S_pidgone(aTHX_ a,b)
 #endif
 #endif
 #define pmflag(a,b)            Perl_pmflag(aTHX_ a,b)
 #ifdef PERL_CORE
 #define pmruntime(a,b,c)       Perl_pmruntime(aTHX_ a,b,c)
-#define pmtrans(a,b,c)         Perl_pmtrans(aTHX_ a,b,c)
+#endif
+#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
+#ifdef PERL_CORE
+#define pmtrans(a,b,c)         S_pmtrans(aTHX_ a,b,c)
+#endif
 #endif
 #define pop_scope()            Perl_pop_scope(aTHX)
 #ifdef PERL_CORE
 #define prepend_elem(a,b,c)    Perl_prepend_elem(aTHX_ a,b,c)
 #endif
 #define push_scope()           Perl_push_scope(aTHX)
+#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
 #ifdef PERL_CORE
-#define refkids(a,b)           Perl_refkids(aTHX_ a,b)
+#define refkids(a,b)           S_refkids(aTHX_ a,b)
+#endif
 #endif
 #define regdump(a)             Perl_regdump(aTHX_ a)
 #define regdump(a)             Perl_regdump(aTHX_ a)
 #define rsignal_save(a,b,c)    Perl_rsignal_save(aTHX_ a,b,c)
 #endif
 #define rsignal_state(a)       Perl_rsignal_state(aTHX_ a)
+#if defined(PERL_IN_PP_CTL_C) || defined(PERL_DECL_PROT)
+#ifdef PERL_CORE
+#define rxres_free(a)          S_rxres_free(aTHX_ a)
+#define rxres_restore(a,b)     S_rxres_restore(aTHX_ a,b)
+#endif
+#endif
 #ifdef PERL_CORE
-#define rxres_free(a)          Perl_rxres_free(aTHX_ a)
-#define rxres_restore(a,b)     Perl_rxres_restore(aTHX_ a,b)
 #define rxres_save(a,b)                Perl_rxres_save(aTHX_ a,b)
 #endif
 #if !defined(HAS_RENAME)
 #define savesvpv(a)            Perl_savesvpv(aTHX_ a)
 #define savestack_grow()       Perl_savestack_grow(aTHX)
 #define savestack_grow_cnt(a)  Perl_savestack_grow_cnt(aTHX_ a)
-#define save_aelem(a,b,c)      Perl_save_aelem(aTHX_ a,b,c)
+#define save_aelem_flags(a,b,c,d)      Perl_save_aelem_flags(aTHX_ a,b,c,d)
 #define save_alloc(a,b)                Perl_save_alloc(aTHX_ a,b)
 #define save_aptr(a)           Perl_save_aptr(aTHX_ a)
 #define save_ary(a)            Perl_save_ary(aTHX_ a)
 #define save_bool(a)           Perl_save_bool(aTHX_ a)
 #define save_clearsv(a)                Perl_save_clearsv(aTHX_ a)
 #define save_delete(a,b,c)     Perl_save_delete(aTHX_ a,b,c)
+#define save_hdelete(a,b)      Perl_save_hdelete(aTHX_ a,b)
+#define save_adelete(a,b)      Perl_save_adelete(aTHX_ a,b)
 #define save_destructor(a,b)   Perl_save_destructor(aTHX_ a,b)
 #define save_destructor_x(a,b) Perl_save_destructor_x(aTHX_ a,b)
-#define save_freesv(a)         Perl_save_freesv(aTHX_ a)
 #ifdef PERL_CORE
-#define save_freeop(a)         Perl_save_freeop(aTHX_ a)
 #endif
-#define save_freepv(a)         Perl_save_freepv(aTHX_ a)
 #define save_generic_svref(a)  Perl_save_generic_svref(aTHX_ a)
 #define save_generic_pvref(a)  Perl_save_generic_pvref(aTHX_ a)
 #define save_shared_pvref(a)   Perl_save_shared_pvref(aTHX_ a)
 #define save_gp(a,b)           Perl_save_gp(aTHX_ a,b)
 #define save_hash(a)           Perl_save_hash(aTHX_ a)
-#define save_helem(a,b,c)      Perl_save_helem(aTHX_ a,b,c)
+#ifdef PERL_CORE
+#define save_hints()           Perl_save_hints(aTHX)
+#endif
+#define save_helem_flags(a,b,c,d)      Perl_save_helem_flags(aTHX_ a,b,c,d)
 #define save_hptr(a)           Perl_save_hptr(aTHX_ a)
 #define save_I16(a)            Perl_save_I16(aTHX_ a)
 #define save_I32(a)            Perl_save_I32(aTHX_ a)
 #define save_iv(a)             Perl_save_iv(aTHX_ a)
 #define save_list(a,b)         Perl_save_list(aTHX_ a,b)
 #define save_long(a)           Perl_save_long(aTHX_ a)
-#define save_mortalizesv(a)    Perl_save_mortalizesv(aTHX_ a)
 #define save_nogv(a)           Perl_save_nogv(aTHX_ a)
 #ifdef PERL_CORE
-#define save_op()              Perl_save_op(aTHX)
 #endif
 #define save_scalar(a)         Perl_save_scalar(aTHX_ a)
 #define save_pptr(a)           Perl_save_pptr(aTHX_ a)
 #define save_padsv_and_mortalize(a)    Perl_save_padsv_and_mortalize(aTHX_ a)
 #define save_sptr(a)           Perl_save_sptr(aTHX_ a)
 #define save_svref(a)          Perl_save_svref(aTHX_ a)
+#define save_pushptr(a,b)      Perl_save_pushptr(aTHX_ a,b)
+#ifdef PERL_CORE
+#define save_pushi32ptr(a,b,c) Perl_save_pushi32ptr(aTHX_ a,b,c)
+#define save_pushptrptr(a,b,c) Perl_save_pushptrptr(aTHX_ a,b,c)
+#endif
+#if defined(PERL_IN_SCOPE_C) || defined(PERL_DECL_PROT)
+#ifdef PERL_CORE
+#define save_pushptri32ptr(a,b,c,d)    S_save_pushptri32ptr(aTHX_ a,b,c,d)
+#endif
+#endif
 #ifdef PERL_CORE
 #define sawparens(a)           Perl_sawparens(aTHX_ a)
 #define scalar(a)              Perl_scalar(aTHX_ a)
-#define scalarkids(a)          Perl_scalarkids(aTHX_ a)
-#define scalarseq(a)           Perl_scalarseq(aTHX_ a)
+#endif
+#if defined(PERL_IN_OP_C) || defined(PERL_DECL_PROT)
+#ifdef PERL_CORE
+#define scalarkids(a)          S_scalarkids(aTHX_ a)
+#define scalarseq(a)           S_scalarseq(aTHX_ a)
+#endif
+#endif
+#ifdef PERL_CORE
 #define scalarvoid(a)          Perl_scalarvoid(aTHX_ a)
 #endif
 #define scan_bin(a,b,c)                Perl_scan_bin(aTHX_ a,b,c)
 #define scope(a)               Perl_scope(aTHX_ a)
 #endif
 #define screaminstr(a,b,c,d,e,f)       Perl_screaminstr(aTHX_ a,b,c,d,e,f)
-#if !defined(VMS)
-#ifdef PERL_CORE
-#define setenv_getix(a)                Perl_setenv_getix(aTHX_ a)
-#endif
-#endif
-#if defined(PERL_CORE) || defined(PERL_EXT)
 #define setdefout(a)           Perl_setdefout(aTHX_ a)
-#endif
 #define share_hek(a,b,c)       Perl_share_hek(aTHX_ a,b,c)
 #if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
 #ifdef PERL_CORE
 #define sv_2bool(a)            Perl_sv_2bool(aTHX_ a)
 #define sv_2cv(a,b,c,d)                Perl_sv_2cv(aTHX_ a,b,c,d)
 #define sv_2io(a)              Perl_sv_2io(aTHX_ a)
-#ifdef PERL_IN_SV_C
+#if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
 #ifdef PERL_CORE
 #define glob_2number(a)                S_glob_2number(aTHX_ a)
-#define glob_2pv(a,b)          S_glob_2pv(aTHX_ a,b)
 #endif
 #endif
 #define sv_2iv_flags(a,b)      Perl_sv_2iv_flags(aTHX_ a,b)
 #define sv_pvutf8n(a,b)                Perl_sv_pvutf8n(aTHX_ a,b)
 #define sv_pvbyten(a,b)                Perl_sv_pvbyten(aTHX_ a,b)
 #define sv_true(a)             Perl_sv_true(aTHX_ a)
+#if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
 #ifdef PERL_CORE
-#define sv_add_arena(a,b,c)    Perl_sv_add_arena(aTHX_ a,b,c)
+#define sv_add_arena(a,b,c)    S_sv_add_arena(aTHX_ a,b,c)
+#endif
 #endif
 #define sv_backoff(a)          Perl_sv_backoff(aTHX_ a)
 #define sv_bless(a,b)          Perl_sv_bless(aTHX_ a,b)
 #ifdef PERL_CORE
 #define yyparse()              Perl_yyparse(aTHX)
 #define parser_free(a)         Perl_parser_free(aTHX_ a)
-#define yywarn(a)              Perl_yywarn(aTHX_ a)
+#endif
+#if defined(PERL_IN_TOKE_C) || defined(PERL_DECL_PROT)
+#ifdef PERL_CORE
+#define yywarn(a)              S_yywarn(aTHX_ a)
+#endif
 #endif
 #if defined(MYMALLOC)
 #define dump_mstats(a)         Perl_dump_mstats(aTHX_ a)
 #endif
 #ifdef PERL_CORE
 #define my_attrs(a,b)          Perl_my_attrs(aTHX_ a,b)
-#define boot_core_xsutils()    Perl_boot_core_xsutils(aTHX)
 #endif
 #if defined(USE_ITHREADS)
 #define cx_dup(a,b,c,d)                Perl_cx_dup(aTHX_ a,b,c,d)
 #define dirp_dup(a)            Perl_dirp_dup(aTHX_ a)
 #define gp_dup(a,b)            Perl_gp_dup(aTHX_ a,b)
 #define mg_dup(a,b)            Perl_mg_dup(aTHX_ a,b)
+#if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
+#ifdef PERL_CORE
+#define sv_dup_inc_multiple(a,b,c,d)   S_sv_dup_inc_multiple(aTHX_ a,b,c,d)
+#endif
+#endif
 #define sv_dup(a,b)            Perl_sv_dup(aTHX_ a,b)
 #define rvpv_dup(a,b,c)                Perl_rvpv_dup(aTHX_ a,b,c)
 #define parser_dup(a,b)                Perl_parser_dup(aTHX_ a,b)
 #ifdef PERL_CORE
 #define hsplit(a)              S_hsplit(aTHX_ a)
 #define hfreeentries(a)                S_hfreeentries(aTHX_ a)
+#define anonymise_cv(a,b)      S_anonymise_cv(aTHX_ a,b)
 #define new_he()               S_new_he(aTHX)
 #define save_hek_flags         S_save_hek_flags
 #define hv_magic_check         S_hv_magic_check
 #define modkids(a,b)           S_modkids(aTHX_ a,b)
 #define scalarboolean(a)       S_scalarboolean(aTHX_ a)
 #define newDEFSVOP()           S_newDEFSVOP(aTHX)
+#define search_const(a)                S_search_const(aTHX_ a)
 #define new_logop(a,b,c,d)     S_new_logop(aTHX_ a,b,c,d)
 #define simplify_sort(a)       S_simplify_sort(aTHX_ a)
 #define gv_ename(a)            S_gv_ename(aTHX_ a)
 #ifdef PERL_CORE
 #define find_beginning(a,b)    S_find_beginning(aTHX_ a,b)
 #define forbid_setid(a,b)      S_forbid_setid(aTHX_ a,b)
-#define incpush(a,b,c,d,e)     S_incpush(aTHX_ a,b,c,d,e)
+#define incpush(a,b,c)         S_incpush(aTHX_ a,b,c)
+#define incpush_use_sep(a,b,c) S_incpush_use_sep(aTHX_ a,b,c)
 #define init_interp()          S_init_interp(aTHX)
 #define init_ids()             S_init_ids(aTHX)
 #define init_main_stash()      S_init_main_stash(aTHX)
 #define open_script(a,b,c,d)   S_open_script(aTHX_ a,b,c,d)
 #define usage(a)               S_usage(aTHX_ a)
 #endif
-#ifdef DOSUID
-#  ifdef IAMSUID
+#ifndef SETUID_SCRIPTS_ARE_SECURE_NOW
 #ifdef PERL_CORE
 #endif
-#  else
-#ifdef PERL_CORE
 #endif
-#  endif
-#else
-#  ifndef SETUID_SCRIPTS_ARE_SECURE_NOW
-#ifdef PERL_CORE
-#endif
-#  endif
-#endif
-#  if defined(IAMSUID)
-#ifdef PERL_CORE
-#define fd_on_nosuid_fs(a)     S_fd_on_nosuid_fs(aTHX_ a)
-#endif
-#  endif
 #ifdef PERL_CORE
 #define parse_body(a,b)                S_parse_body(aTHX_ a,b)
 #define run_body(a)            S_run_body(aTHX_ a)
-#define incpush_if_exists(a)   S_incpush_if_exists(aTHX_ a)
+#define incpush_if_exists(a,b,c)       S_incpush_if_exists(aTHX_ a,b,c)
 #endif
 #endif
 #if defined(PERL_IN_PP_C) || defined(PERL_DECL_PROT)
 #define reg_node(a,b)          S_reg_node(aTHX_ a,b)
 #define reg_recode(a,b)                S_reg_recode(aTHX_ a,b)
 #define regpiece(a,b,c)                S_regpiece(aTHX_ a,b,c)
-#define reg_namedseq(a,b)      S_reg_namedseq(aTHX_ a,b)
+#define reg_namedseq(a,b,c)    S_reg_namedseq(aTHX_ a,b,c)
 #define reginsert(a,b,c,d)     S_reginsert(aTHX_ a,b,c,d)
 #define regtail(a,b,c,d)       S_regtail(aTHX_ a,b,c,d)
 #define reg_scan_name(a,b)     S_reg_scan_name(aTHX_ a,b)
 #endif
 #if defined(PERL_IN_SCOPE_C) || defined(PERL_DECL_PROT)
 #ifdef PERL_CORE
-#define save_scalar_at(a)      S_save_scalar_at(aTHX_ a)
+#define save_scalar_at(a,b)    S_save_scalar_at(aTHX_ a,b)
 #endif
 #endif
 #if defined(PERL_IN_GV_C) || defined(PERL_IN_SV_C) || defined(PERL_IN_PAD_C) || defined(PERL_DECL_PROT)
 #endif
 #if defined(PERL_IN_UNIVERSAL_C) || defined(PERL_DECL_PROT)
 #ifdef PERL_CORE
-#define isa_lookup(a,b,c)      S_isa_lookup(aTHX_ a,b,c)
+#define isa_lookup(a,b)                S_isa_lookup(aTHX_ a,b)
 #endif
 #endif
 #if defined(PERL_IN_LOCALE_C) || defined(PERL_DECL_PROT)
 #define vdie_common(a,b,c,d)   S_vdie_common(aTHX_ a,b,c,d)
 #define write_no_mem()         S_write_no_mem(aTHX)
 #endif
+#if defined(PERL_MEM_LOG) && !defined(PERL_MEM_LOG_NOIMPL)
+#ifdef PERL_CORE
+#define mem_log_common         S_mem_log_common
+#endif
+#endif
 #endif
 #if defined(PERL_IN_NUMERIC_C) || defined(PERL_DECL_PROT)
 #ifdef PERL_CORE
 #define sv_setsv_flags(a,b,c)  Perl_sv_setsv_flags(aTHX_ a,b,c)
 #define sv_catpvn_flags(a,b,c,d)       Perl_sv_catpvn_flags(aTHX_ a,b,c,d)
 #define sv_catsv_flags(a,b,c)  Perl_sv_catsv_flags(aTHX_ a,b,c)
-#define sv_utf8_upgrade_flags(a,b)     Perl_sv_utf8_upgrade_flags(aTHX_ a,b)
+#define sv_utf8_upgrade_flags_grow(a,b,c)      Perl_sv_utf8_upgrade_flags_grow(aTHX_ a,b,c)
 #define sv_pvn_force_flags(a,b,c)      Perl_sv_pvn_force_flags(aTHX_ a,b,c)
 #define sv_copypv(a,b)         Perl_sv_copypv(aTHX_ a,b)
 #define my_atof2(a,b)          Perl_my_atof2(aTHX_ a,b)
 #ifdef PERL_CORE
 #define deb_stack_all()                Perl_deb_stack_all(aTHX)
 #endif
-#ifdef PERL_IN_DEB_C
+#if defined(PERL_IN_DEB_C) || defined(PERL_DECL_PROT)
 #ifdef PERL_CORE
 #define deb_stack_n(a,b,c,d,e) S_deb_stack_n(aTHX_ a,b,c,d,e)
 #endif
 #if defined(PERL_CORE) || defined(PERL_EXT)
 #endif
 #ifdef PERL_CORE
-#define mro_meta_init(a)       Perl_mro_meta_init(aTHX_ a)
 #endif
 #if defined(USE_ITHREADS)
 #ifdef PERL_CORE
 #define mro_get_linear_isa(a)  Perl_mro_get_linear_isa(aTHX_ a)
 #if defined(PERL_IN_MRO_C) || defined(PERL_DECL_PROT)
 #ifdef PERL_CORE
-#define mro_get_linear_isa_c3(a,b)     S_mro_get_linear_isa_c3(aTHX_ a,b)
 #define mro_get_linear_isa_dfs(a,b)    S_mro_get_linear_isa_dfs(aTHX_ a,b)
 #endif
 #endif