This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
new perldelta
[perl5.git] / embed.h
diff --git a/embed.h b/embed.h
index 03b0a99..f6ffdeb 100644 (file)
--- a/embed.h
+++ b/embed.h
@@ -1,4 +1,4 @@
-/* -*- buffer-read-only: t -*-
+/* -*- mode: C; buffer-read-only: t -*-
  *
  *    embed.h
  *
 #   define perl_init_i18nl10n(a)                init_i18nl10n(a)
 #   define perl_require_pv(a)                   require_pv(a)
 
-/* varargs functions can't be handled with CPP macros. :-(
-   This provides a set of compatibility functions that don't take
-   an extra argument but grab the context pointer using the macro
-   dTHX.
+/* Before C99, macros could not wrap varargs functions. This
+   provides a set of compatibility functions that don't take an
+   extra argument but grab the context pointer using the macro dTHX.
  */
 
 #   if defined(MULTIPLICITY) && !defined(PERL_NO_SHORT_NAMES)
 # define SvNV(a)                                Perl_SvNV(aTHX_ a)
 # define SvNV_nomg(a)                           Perl_SvNV_nomg(aTHX_ a)
 # define SvPVXtrue(a)                           Perl_SvPVXtrue(aTHX_ a)
+# define SvREFCNT_dec_ret_NULL(a)               Perl_SvREFCNT_dec_ret_NULL(aTHX_ a)
 # define SvTRUE(a)                              Perl_SvTRUE(aTHX_ a)
 # define SvTRUE_NN(a)                           Perl_SvTRUE_NN(aTHX_ a)
 # define SvTRUE_common(a,b)                     Perl_SvTRUE_common(aTHX_ a,b)
 # define ck_entersub_args_proto(a,b,c)          Perl_ck_entersub_args_proto(aTHX_ a,b,c)
 # define ck_entersub_args_proto_or_list(a,b,c)  Perl_ck_entersub_args_proto_or_list(aTHX_ a,b,c)
 # define clear_defarray(a,b)                    Perl_clear_defarray(aTHX_ a,b)
+# define clear_defarray_simple(a)               Perl_clear_defarray_simple(aTHX_ a)
 # define cop_fetch_label(a,b,c)                 Perl_cop_fetch_label(aTHX_ a,b,c)
 # define cop_store_label(a,b,c,d)               Perl_cop_store_label(aTHX_ a,b,c,d)
 # define croak_memory_wrap                      Perl_croak_memory_wrap
 # define forbid_outofblock_ops(a,b)             Perl_forbid_outofblock_ops(aTHX_ a,b)
 # define free_tmps()                            Perl_free_tmps(aTHX)
 # define get_av(a,b)                            Perl_get_av(aTHX_ a,b)
-# define get_context                            Perl_get_context
 # define get_cv(a,b)                            Perl_get_cv(aTHX_ a,b)
 # define get_cvn_flags(a,b,c)                   Perl_get_cvn_flags(aTHX_ a,b,c)
 # define get_hv(a,b)                            Perl_get_hv(aTHX_ a,b)
 # define mg_size(a)                             Perl_mg_size(aTHX_ a)
 # define mini_mktime                            Perl_mini_mktime
 # define moreswitches(a)                        Perl_moreswitches(aTHX_ a)
+# define mortal_destructor_sv(a,b)              Perl_mortal_destructor_sv(aTHX_ a,b)
 # define mortal_getenv                          Perl_mortal_getenv
+# define mortal_svfunc_x(a,b)                   Perl_mortal_svfunc_x(aTHX_ a,b)
 # define mro_get_linear_isa(a)                  Perl_mro_get_linear_isa(aTHX_ a)
 # define mro_method_changed_in(a)               Perl_mro_method_changed_in(aTHX_ a)
 # define msbit_pos32                            Perl_msbit_pos32
 # define my_setenv(a,b)                         Perl_my_setenv(aTHX_ a,b)
 # define my_socketpair                          Perl_my_socketpair
 # define my_strftime(a,b,c,d,e,f,g,h,i,j)       Perl_my_strftime(aTHX_ a,b,c,d,e,f,g,h,i,j)
-# define my_strftime8(a,b,c,d,e,f,g,h,i,j,k)    Perl_my_strftime8(aTHX_ a,b,c,d,e,f,g,h,i,j,k)
 # define my_strtod                              Perl_my_strtod
 # define newANONATTRSUB(a,b,c,d)                Perl_newANONATTRSUB(aTHX_ a,b,c,d)
 # define newANONHASH(a)                         Perl_newANONHASH(aTHX_ a)
 # define newHVREF(a)                            Perl_newHVREF(aTHX_ a)
 # define newHVhv(a)                             Perl_newHVhv(aTHX_ a)
 # define newLISTOP(a,b,c,d)                     Perl_newLISTOP(aTHX_ a,b,c,d)
+# define newLISTOPn(a,...)                      Perl_newLISTOPn(aTHX_ a,__VA_ARGS__)
 # define newLOGOP(a,b,c,d)                      Perl_newLOGOP(aTHX_ a,b,c,d)
 # define newLOOPEX(a,b)                         Perl_newLOOPEX(aTHX_ a,b)
 # define newLOOPOP(a,b,c,d)                     Perl_newLOOPOP(aTHX_ a,b,c,d)
 # define newXS(a,b,c)                           Perl_newXS(aTHX_ a,b,c)
 # define newXS_flags(a,b,c,d,e)                 Perl_newXS_flags(aTHX_ a,b,c,d,e)
 # define new_stackinfo(a,b)                     Perl_new_stackinfo(aTHX_ a,b)
+# define new_stackinfo_flags(a,b,c)             Perl_new_stackinfo_flags(aTHX_ a,b,c)
 # define new_version(a)                         Perl_new_version(aTHX_ a)
 # define nothreadhook()                         Perl_nothreadhook(aTHX)
 # define op_append_elem(a,b,c)                  Perl_op_append_elem(aTHX_ a,b,c)
 # define perly_sighandler                       Perl_perly_sighandler
 # define pmop_dump(a)                           Perl_pmop_dump(aTHX_ a)
 # define pop_scope()                            Perl_pop_scope(aTHX)
+# define pop_stackinfo()                        Perl_pop_stackinfo(aTHX)
 # define pregcomp(a,b)                          Perl_pregcomp(aTHX_ a,b)
 # define pregexec(a,b,c,d,e,f,g)                Perl_pregexec(aTHX_ a,b,c,d,e,f,g)
 # define pregfree(a)                            Perl_pregfree(aTHX_ a)
 # define ptr_table_split(a)                     Perl_ptr_table_split(aTHX_ a)
 # define ptr_table_store(a,b,c)                 Perl_ptr_table_store(aTHX_ a,b,c)
 # define push_scope()                           Perl_push_scope(aTHX)
+# define push_stackinfo(a,b)                    Perl_push_stackinfo(aTHX_ a,b)
 # define pv_display(a,b,c,d,e)                  Perl_pv_display(aTHX_ a,b,c,d,e)
 # define pv_escape(a,b,c,d,e,f)                 Perl_pv_escape(aTHX_ a,b,c,d,e,f)
 # define pv_pretty(a,b,c,d,e,f,g)               Perl_pv_pretty(aTHX_ a,b,c,d,e,f,g)
 # define repeatcpy                              Perl_repeatcpy
 # define require_pv(a)                          Perl_require_pv(aTHX_ a)
 # define rninstr                                Perl_rninstr
+# define rpp_context(a,b,c)                     Perl_rpp_context(aTHX_ a,b,c)
+# define rpp_extend(a)                          Perl_rpp_extend(aTHX_ a)
+# define rpp_invoke_xs(a)                       Perl_rpp_invoke_xs(aTHX_ a)
+# define rpp_is_lone(a)                         Perl_rpp_is_lone(aTHX_ a)
+# define rpp_obliterate_stack_to(a)             Perl_rpp_obliterate_stack_to(aTHX_ a)
+# define rpp_pop_1_norc()                       Perl_rpp_pop_1_norc(aTHX)
+# define rpp_popfree_1()                        Perl_rpp_popfree_1(aTHX)
+# define rpp_popfree_1_NN()                     Perl_rpp_popfree_1_NN(aTHX)
+# define rpp_popfree_2()                        Perl_rpp_popfree_2(aTHX)
+# define rpp_popfree_2_NN()                     Perl_rpp_popfree_2_NN(aTHX)
+# define rpp_popfree_to(a)                      Perl_rpp_popfree_to(aTHX_ a)
+# define rpp_popfree_to_NN(a)                   Perl_rpp_popfree_to_NN(aTHX_ a)
+# define rpp_push_1(a)                          Perl_rpp_push_1(aTHX_ a)
+# define rpp_push_1_norc(a)                     Perl_rpp_push_1_norc(aTHX_ a)
+# define rpp_push_2(a,b)                        Perl_rpp_push_2(aTHX_ a,b)
+# define rpp_push_IMM(a)                        Perl_rpp_push_IMM(aTHX_ a)
+# define rpp_replace_1_1(a)                     Perl_rpp_replace_1_1(aTHX_ a)
+# define rpp_replace_1_1_NN(a)                  Perl_rpp_replace_1_1_NN(aTHX_ a)
+# define rpp_replace_1_IMM_NN(a)                Perl_rpp_replace_1_IMM_NN(aTHX_ a)
+# define rpp_replace_2_1(a)                     Perl_rpp_replace_2_1(aTHX_ a)
+# define rpp_replace_2_1_COMMON(a)              Perl_rpp_replace_2_1_COMMON(aTHX_ a)
+# define rpp_replace_2_1_NN(a)                  Perl_rpp_replace_2_1_NN(aTHX_ a)
+# define rpp_replace_2_IMM_NN(a)                Perl_rpp_replace_2_IMM_NN(aTHX_ a)
+# define rpp_replace_at(a,b)                    Perl_rpp_replace_at(aTHX_ a,b)
+# define rpp_replace_at_NN(a,b)                 Perl_rpp_replace_at_NN(aTHX_ a,b)
+# define rpp_replace_at_norc(a,b)               Perl_rpp_replace_at_norc(aTHX_ a,b)
+# define rpp_replace_at_norc_NN(a,b)            Perl_rpp_replace_at_norc_NN(aTHX_ a,b)
+# define rpp_stack_is_rc()                      Perl_rpp_stack_is_rc(aTHX)
+# define rpp_try_AMAGIC_1(a,b)                  Perl_rpp_try_AMAGIC_1(aTHX_ a,b)
+# define rpp_try_AMAGIC_2(a,b)                  Perl_rpp_try_AMAGIC_2(aTHX_ a,b)
+# define rpp_xpush_1(a)                         Perl_rpp_xpush_1(aTHX_ a)
+# define rpp_xpush_2(a,b)                       Perl_rpp_xpush_2(aTHX_ a,b)
+# define rpp_xpush_IMM(a)                       Perl_rpp_xpush_IMM(aTHX_ a)
 # define rsignal(a,b)                           Perl_rsignal(aTHX_ a,b)
 # define rsignal_state(a)                       Perl_rsignal_state(aTHX_ a)
 # define runops_debug()                         Perl_runops_debug(aTHX)
 # define save_delete(a,b,c)                     Perl_save_delete(aTHX_ a,b,c)
 # 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_freercpv(a)                       Perl_save_freercpv(aTHX_ a)
 # define save_generic_pvref(a)                  Perl_save_generic_pvref(aTHX_ a)
 # define save_generic_svref(a)                  Perl_save_generic_svref(aTHX_ a)
 # define save_gp(a,b)                           Perl_save_gp(aTHX_ a,b)
 # define save_pushi32ptr(a,b,c)                 Perl_save_pushi32ptr(aTHX_ a,b,c)
 # define save_pushptr(a,b)                      Perl_save_pushptr(aTHX_ a,b)
 # define save_pushptrptr(a,b,c)                 Perl_save_pushptrptr(aTHX_ a,b,c)
-# define save_rcpv_free(a)                      Perl_save_rcpv_free(aTHX_ a)
+# define save_rcpv(a)                           Perl_save_rcpv(aTHX_ a)
 # define save_re_context()                      Perl_save_re_context(aTHX)
 # define save_scalar(a)                         Perl_save_scalar(aTHX_ a)
 # define save_set_svflags(a,b,c)                Perl_save_set_svflags(aTHX_ a,b,c)
 # define sv_isa(a,b)                            Perl_sv_isa(aTHX_ a,b)
 # define sv_isa_sv(a,b)                         Perl_sv_isa_sv(aTHX_ a,b)
 # define sv_isobject(a)                         Perl_sv_isobject(aTHX_ a)
+# define sv_langinfo(a)                         Perl_sv_langinfo(aTHX_ a)
 # define sv_len(a)                              Perl_sv_len(aTHX_ a)
 # define sv_len_utf8(a)                         Perl_sv_len_utf8(aTHX_ a)
 # define sv_len_utf8_nomg(a)                    Perl_sv_len_utf8_nomg(aTHX_ a)
 # define sv_setuv(a,b)                          Perl_sv_setuv(aTHX_ a,b)
 # define sv_setuv_mg(a,b)                       Perl_sv_setuv_mg(aTHX_ a,b)
 # define sv_streq_flags(a,b,c)                  Perl_sv_streq_flags(aTHX_ a,b,c)
+# define sv_strftime_ints(a,b,c,d,e,f,g,h,i,j)  Perl_sv_strftime_ints(aTHX_ a,b,c,d,e,f,g,h,i,j)
+# define sv_strftime_tm(a,b)                    Perl_sv_strftime_tm(aTHX_ a,b)
 # define sv_string_from_errnum(a,b)             Perl_sv_string_from_errnum(aTHX_ a,b)
 # define sv_tainted(a)                          Perl_sv_tainted(aTHX_ a)
 # define sv_true(a)                             Perl_sv_true(aTHX_ a)
 # define sv_vsetpvf(a,b,c)                      Perl_sv_vsetpvf(aTHX_ a,b,c)
 # define sv_vsetpvf_mg(a,b,c)                   Perl_sv_vsetpvf_mg(aTHX_ a,b,c)
 # define sv_vsetpvfn(a,b,c,d,e,f,g)             Perl_sv_vsetpvfn(aTHX_ a,b,c,d,e,f,g)
+# define switch_argstack(a)                     Perl_switch_argstack(aTHX_ a)
 # define switch_to_global_locale()              Perl_switch_to_global_locale(aTHX)
 # define sync_locale()                          Perl_sync_locale(aTHX)
 # define taint_env()                            Perl_taint_env(aTHX)
 # define utf8_to_uvchr_buf_helper(a,b,c)        Perl_utf8_to_uvchr_buf_helper(aTHX_ a,b,c)
 # define utf8n_to_uvchr_msgs                    Perl_utf8n_to_uvchr_msgs
 # define uvoffuni_to_utf8_flags_msgs(a,b,c,d)   Perl_uvoffuni_to_utf8_flags_msgs(aTHX_ a,b,c,d)
-# define uvuni_to_utf8(a,b)                     Perl_uvuni_to_utf8(aTHX_ a,b)
 # define valid_utf8_to_uvchr                    Perl_valid_utf8_to_uvchr
 # define vcmp(a,b)                              Perl_vcmp(aTHX_ a,b)
 # define vcroak(a,b)                            Perl_vcroak(aTHX_ a,b)
 # define vdeb(a,b)                              Perl_vdeb(aTHX_ a,b)
+# define vfatal_warner(a,b,c)                   Perl_vfatal_warner(aTHX_ a,b,c)
 # define vform(a,b)                             Perl_vform(aTHX_ a,b)
 # define vload_module(a,b,c,d)                  Perl_vload_module(aTHX_ a,b,c,d)
 # define vmess(a,b)                             Perl_vmess(aTHX_ a,b)
 # if defined(DEBUGGING)
 #   define pad_setsv(a,b)                       Perl_pad_setsv(aTHX_ a,b)
 #   define pad_sv(a)                            Perl_pad_sv(aTHX_ a)
-# endif /* defined(DEBUGGING) */
+# endif
 # if !defined(EBCDIC)
 #   define variant_byte_number                  Perl_variant_byte_number
-# endif /* !defined(EBCDIC) */
+# endif
 # if defined(F_FREESP) && !defined(HAS_CHSIZE) && !defined(HAS_TRUNCATE)
 #   define my_chsize(a,b)                       Perl_my_chsize(aTHX_ a,b)
-# endif /* defined(F_FREESP) && !defined(HAS_CHSIZE) && \
-           !defined(HAS_TRUNCATE) */
+# endif
 # if !defined(HAS_STRLCAT)
 #   define my_strlcat                           Perl_my_strlcat
-# endif /* !defined(HAS_STRLCAT) */
+# endif
 # if !defined(HAS_STRLCPY)
 #   define my_strlcpy                           Perl_my_strlcpy
-# endif /* !defined(HAS_STRLCPY) */
+# endif
 # if !defined(HAS_STRNLEN)
 #   define my_strnlen                           Perl_my_strnlen
-# endif /* !defined(HAS_STRNLEN) */
+# endif
 # if defined(HAVE_INTERP_INTERN)
 #   define sys_intern_clear()                   Perl_sys_intern_clear(aTHX)
 #   define sys_intern_init()                    Perl_sys_intern_init(aTHX)
 #   if defined(USE_ITHREADS)
 #     define sys_intern_dup(a,b)                Perl_sys_intern_dup(aTHX_ a,b)
-#   endif /* defined(USE_ITHREADS) */
-# endif /* defined(HAVE_INTERP_INTERN) */
+#   endif
+# endif
 # if defined(MULTIPLICITY)
 #   define croak_nocontext                      Perl_croak_nocontext
 #   define deb_nocontext                        Perl_deb_nocontext
 #   define deb(...)                             Perl_deb(aTHX_ __VA_ARGS__)
 #   define die(...)                             Perl_die(aTHX_ __VA_ARGS__)
 #   define dump_indent(a,b,...)                 Perl_dump_indent(aTHX_ a,b,__VA_ARGS__)
+#   define fatal_warner(a,...)                  Perl_fatal_warner(aTHX_ a,__VA_ARGS__)
 #   define form(...)                            Perl_form(aTHX_ __VA_ARGS__)
 #   define load_module(a,b,...)                 Perl_load_module(aTHX_ a,b,__VA_ARGS__)
 #   define mess(...)                            Perl_mess(aTHX_ __VA_ARGS__)
 #   define sv_setpvf_mg(a,...)                  Perl_sv_setpvf_mg(aTHX_ a,__VA_ARGS__)
 #   define warn(...)                            Perl_warn(aTHX_ __VA_ARGS__)
 #   define warner(a,...)                        Perl_warner(aTHX_ a,__VA_ARGS__)
-#   if defined(PERL_CORE)
-#     define tied_method(a,b,c,d,e,...)         Perl_tied_method(aTHX_ a,b,c,d,e,__VA_ARGS__)
-#     if defined(PERL_IN_REGCOMP_C)
-#       define re_croak(a,...)                  S_re_croak(aTHX_ a,__VA_ARGS__)
-#     endif /* defined(PERL_IN_REGCOMP_C) */
-#   endif /* defined(PERL_CORE) */
 # endif /* !defined(MULTIPLICITY) || defined(PERL_CORE) */
 # if defined(MYMALLOC)
 #   define dump_mstats(a)                       Perl_dump_mstats(aTHX_ a)
 #   if defined(PERL_CORE)
 #     define malloc_good_size                   Perl_malloc_good_size
 #     define malloced_size                      Perl_malloced_size
-#   endif /* defined(PERL_CORE) */
-# endif /* defined(MYMALLOC) */
+#   endif
+# endif
 # if !defined(NO_MATHOMS)
 #   define sv_nolocking(a)                      Perl_sv_nolocking(aTHX_ a)
 #   define sv_nounlocking(a)                    Perl_sv_nounlocking(aTHX_ a)
 #   define utf8_to_uvchr(a,b)                   Perl_utf8_to_uvchr(aTHX_ a,b)
 #   define utf8_to_uvuni(a,b)                   Perl_utf8_to_uvuni(aTHX_ a,b)
 #   define utf8n_to_uvuni(a,b,c,d)              Perl_utf8n_to_uvuni(aTHX_ a,b,c,d)
-# endif /* !defined(NO_MATHOMS) */
+#   define uvuni_to_utf8(a,b)                   Perl_uvuni_to_utf8(aTHX_ a,b)
+# endif
 # if defined(PERL_CORE)
 #   define PerlLIO_dup2_cloexec(a,b)            Perl_PerlLIO_dup2_cloexec(aTHX_ a,b)
 #   define PerlLIO_dup_cloexec(a)               Perl_PerlLIO_dup_cloexec(aTHX_ a)
 #   define PerlLIO_open_cloexec(a,b)            Perl_PerlLIO_open_cloexec(aTHX_ a,b)
 #   define Slab_Alloc(a)                        Perl_Slab_Alloc(aTHX_ a)
 #   define Slab_Free(a)                         Perl_Slab_Free(aTHX_ a)
-#   define _warn_problematic_locale             Perl__warn_problematic_locale
 #   define abort_execution(a,b)                 Perl_abort_execution(aTHX_ a,b)
 #   define alloc_LOGOP(a,b,c)                   Perl_alloc_LOGOP(aTHX_ a,b,c)
 #   define allocmy(a,b,c)                       Perl_allocmy(aTHX_ a,b,c)
 #   define apply(a,b,c)                         Perl_apply(aTHX_ a,b,c)
 #   define av_extend_guts(a,b,c,d,e)            Perl_av_extend_guts(aTHX_ a,b,c,d,e)
 #   define av_nonelem(a,b)                      Perl_av_nonelem(aTHX_ a,b)
+#   define av_remove_offset(a)                  Perl_av_remove_offset(aTHX_ a)
 #   define bind_match(a,b,c)                    Perl_bind_match(aTHX_ a,b,c)
 #   define boot_core_PerlIO()                   Perl_boot_core_PerlIO(aTHX)
 #   define boot_core_UNIVERSAL()                Perl_boot_core_UNIVERSAL(aTHX)
 #   define cmpchain_start(a,b,c)                Perl_cmpchain_start(aTHX_ a,b,c)
 #   define core_prototype(a,b,c,d)              Perl_core_prototype(aTHX_ a,b,c,d)
 #   define coresub_op(a,b,c)                    Perl_coresub_op(aTHX_ a,b,c)
-#   define create_eval_scope(a,b)               Perl_create_eval_scope(aTHX_ a,b)
+#   define create_eval_scope(a,b,c)             Perl_create_eval_scope(aTHX_ a,b,c)
 #   define croak_caller                         Perl_croak_caller
 #   define croak_no_mem                         Perl_croak_no_mem
+#   define croak_no_mem_ext                     Perl_croak_no_mem_ext
 #   define croak_popstack                       Perl_croak_popstack
 #   define custom_op_get_field(a,b)             Perl_custom_op_get_field(aTHX_ a,b)
 #   define cv_clone_into(a,b)                   Perl_cv_clone_into(aTHX_ a,b)
 #   define find_lexical_cv(a)                   Perl_find_lexical_cv(aTHX_ a)
 #   define find_runcv_where(a,b,c)              Perl_find_runcv_where(aTHX_ a,b,c)
 #   define find_script(a,b,c,d)                 Perl_find_script(aTHX_ a,b,c,d)
-#   define force_locale_unlock                  Perl_force_locale_unlock
+#   define force_locale_unlock()                Perl_force_locale_unlock(aTHX)
 #   define free_tied_hv_pool()                  Perl_free_tied_hv_pool(aTHX)
 #   define get_hash_seed(a)                     Perl_get_hash_seed(aTHX_ a)
 #   define get_no_modify()                      Perl_get_no_modify(aTHX)
 #   define magic_clearenv(a,b)                  Perl_magic_clearenv(aTHX_ a,b)
 #   define magic_clearhint(a,b)                 Perl_magic_clearhint(aTHX_ a,b)
 #   define magic_clearhints(a,b)                Perl_magic_clearhints(aTHX_ a,b)
+#   define magic_clearhook(a,b)                 Perl_magic_clearhook(aTHX_ a,b)
+#   define magic_clearhookall(a,b)              Perl_magic_clearhookall(aTHX_ a,b)
 #   define magic_clearisa(a,b)                  Perl_magic_clearisa(aTHX_ a,b)
 #   define magic_clearpack(a,b)                 Perl_magic_clearpack(aTHX_ a,b)
 #   define magic_clearsig(a,b)                  Perl_magic_clearsig(aTHX_ a,b)
 #   define magic_copycallchecker(a,b,c,d,e)     Perl_magic_copycallchecker(aTHX_ a,b,c,d,e)
 #   define magic_existspack(a,b)                Perl_magic_existspack(aTHX_ a,b)
 #   define magic_freearylen_p(a,b)              Perl_magic_freearylen_p(aTHX_ a,b)
+#   define magic_freedestruct(a,b)              Perl_magic_freedestruct(aTHX_ a,b)
 #   define magic_freemglob(a,b)                 Perl_magic_freemglob(aTHX_ a,b)
 #   define magic_freeovrld(a,b)                 Perl_magic_freeovrld(aTHX_ a,b)
 #   define magic_freeutf8(a,b)                  Perl_magic_freeutf8(aTHX_ a,b)
 #   define magic_setdefelem(a,b)                Perl_magic_setdefelem(aTHX_ a,b)
 #   define magic_setenv(a,b)                    Perl_magic_setenv(aTHX_ a,b)
 #   define magic_sethint(a,b)                   Perl_magic_sethint(aTHX_ a,b)
+#   define magic_sethook(a,b)                   Perl_magic_sethook(aTHX_ a,b)
+#   define magic_sethookall(a,b)                Perl_magic_sethookall(aTHX_ a,b)
 #   define magic_setisa(a,b)                    Perl_magic_setisa(aTHX_ a,b)
 #   define magic_setlvref(a,b)                  Perl_magic_setlvref(aTHX_ a,b)
 #   define magic_setmglob(a,b)                  Perl_magic_setmglob(aTHX_ a,b)
 #   define scalar(a)                            Perl_scalar(aTHX_ a)
 #   define scalarvoid(a)                        Perl_scalarvoid(aTHX_ a)
 #   define set_caret_X()                        Perl_set_caret_X(aTHX)
-#   define set_numeric_standard()               Perl_set_numeric_standard(aTHX)
-#   define set_numeric_underlying()             Perl_set_numeric_underlying(aTHX)
+#   define set_numeric_standard(a,b)            Perl_set_numeric_standard(aTHX_ a,b)
+#   define set_numeric_underlying(a,b)          Perl_set_numeric_underlying(aTHX_ a,b)
 #   define setfd_cloexec                        Perl_setfd_cloexec
 #   define setfd_cloexec_for_nonsysfd(a)        Perl_setfd_cloexec_for_nonsysfd(aTHX_ a)
 #   define setfd_cloexec_or_inhexec_by_sysfdness(a) Perl_setfd_cloexec_or_inhexec_by_sysfdness(aTHX_ a)
 #   define opslab_free_nopad(a)                 Perl_opslab_free_nopad(aTHX_ a)
 #   define parser_free_nexttoke_ops(a,b)        Perl_parser_free_nexttoke_ops(aTHX_ a,b)
 #   define should_warn_nl                       S_should_warn_nl
-#   if ( defined(AF_INET) && defined(HAS_SOCKET) && defined(PF_INET) && \
-       defined(SOCK_DGRAM) ) || defined(HAS_SOCKETPAIR)
-#     define PerlSock_socketpair_cloexec(a,b,c,d) Perl_PerlSock_socketpair_cloexec(aTHX_ a,b,c,d)
-#   endif /* ( defined(AF_INET) && defined(HAS_SOCKET) && defined(PF_INET) && \
-             defined(SOCK_DGRAM) ) || defined(HAS_SOCKETPAIR) */
 #   if defined(DEBUGGING)
 #     define get_debug_opts(a,b)                Perl_get_debug_opts(aTHX_ a,b)
 #     define set_padlist                        Perl_set_padlist
-#   endif /* defined(DEBUGGING) */
+#   endif
 #   if defined(DEBUG_LEAKING_SCALARS_FORK_DUMP)
 #     define dump_sv_child(a)                   Perl_dump_sv_child(aTHX_ a)
-#   endif /* defined(DEBUG_LEAKING_SCALARS_FORK_DUMP) */
+#   endif
 #   if !defined(HAS_GETENV_LEN)
 #     define getenv_len(a,b)                    Perl_getenv_len(aTHX_ a,b)
-#   endif /* !defined(HAS_GETENV_LEN) */
+#   endif
 #   if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
 #     define do_ipcctl(a,b,c)                   Perl_do_ipcctl(aTHX_ a,b,c)
 #     define do_ipcget(a,b,c)                   Perl_do_ipcget(aTHX_ a,b,c)
 #     define do_msgsnd(a,b)                     Perl_do_msgsnd(aTHX_ a,b)
 #     define do_semop(a,b)                      Perl_do_semop(aTHX_ a,b)
 #     define do_shmio(a,b,c)                    Perl_do_shmio(aTHX_ a,b,c)
-#   endif /* defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM) */
+#   endif
 #   if defined(HAS_PIPE)
 #     define PerlProc_pipe_cloexec(a)           Perl_PerlProc_pipe_cloexec(aTHX_ a)
-#   endif /* defined(HAS_PIPE) */
+#   endif
 #   if !defined(HAS_RENAME)
 #     define same_dirent(a,b)                   Perl_same_dirent(aTHX_ a,b)
-#   endif /* !defined(HAS_RENAME) */
+#   endif
 #   if defined(HAS_SOCKET)
 #     define PerlSock_accept_cloexec(a,b,c)     Perl_PerlSock_accept_cloexec(aTHX_ a,b,c)
 #     define PerlSock_socket_cloexec(a,b,c)     Perl_PerlSock_socket_cloexec(aTHX_ a,b,c)
-#   endif /* defined(HAS_SOCKET) */
+#   endif
+#   if   defined(HAS_SOCKETPAIR) ||                                     \
+       ( defined(AF_INET) && defined(HAS_SOCKET) && defined(PF_INET) && \
+         defined(SOCK_DGRAM) )
+#     define PerlSock_socketpair_cloexec(a,b,c,d) Perl_PerlSock_socketpair_cloexec(aTHX_ a,b,c,d)
+#   endif
 #   if defined(_MSC_VER)
 #     define magic_regdatum_set(a,b)            Perl_magic_regdatum_set(aTHX_ a,b)
-#   else /* if !defined(_MSC_VER) */
+#   else
 #     define magic_regdatum_set(a,b)            Perl_magic_regdatum_set(aTHX_ a,b)
-#   endif /* !defined(_MSC_VER) */
+#   endif
+#   if !defined(MULTIPLICITY) || defined(PERL_CORE)
+#     define tied_method(a,b,c,d,e,...)         Perl_tied_method(aTHX_ a,b,c,d,e,__VA_ARGS__)
+#     if defined(PERL_IN_REGCOMP_C)
+#       define re_croak(a,...)                  S_re_croak(aTHX_ a,__VA_ARGS__)
+#     endif
+#   endif
 #   if defined(PERL_DEBUG_READONLY_COW)
 #     define sv_buf_to_ro(a)                    Perl_sv_buf_to_ro(aTHX_ a)
-#   endif /* defined(PERL_DEBUG_READONLY_COW) */
+#   endif
 #   if defined(PERL_DEBUG_READONLY_OPS)
 #     define Slab_to_ro(a)                      Perl_Slab_to_ro(aTHX_ a)
 #     define Slab_to_rw(a)                      Perl_Slab_to_rw(aTHX_ a)
-#   endif /* defined(PERL_DEBUG_READONLY_OPS) */
+#   endif
 #   if !defined(PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION)
 #     define do_exec(a)                         Perl_do_exec(aTHX_ a)
-#   endif /* !defined(PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION) */
+#   endif
 #   if defined(PERL_IN_AV_C)
 #     define get_aux_mg(a)                      S_get_aux_mg(aTHX_ a)
-#   endif /* defined(PERL_IN_AV_C) */
-#   if defined(PERL_IN_DEB_C)
-#     define deb_stack_n(a,b,c,d,e)             S_deb_stack_n(aTHX_ a,b,c,d,e)
-#   endif /* defined(PERL_IN_DEB_C) */
-#   if defined(PERL_IN_DOIO_C)
-#     define argvout_final(a,b,c)               S_argvout_final(aTHX_ a,b,c)
-#     define exec_failed(a,b,c)                 S_exec_failed(aTHX_ a,b,c)
-#     define ingroup(a,b)                       S_ingroup(aTHX_ a,b)
-#     define openn_cleanup(a,b,c,d,e,f,g,h,i,j,k,l,m) S_openn_cleanup(aTHX_ a,b,c,d,e,f,g,h,i,j,k,l,m)
-#     define openn_setup(a,b,c,d,e,f)           S_openn_setup(aTHX_ a,b,c,d,e,f)
-#   endif /* defined(PERL_IN_DOIO_C) */
-#   if defined(PERL_IN_DOOP_C)
-#     define do_trans_complex(a,b)              S_do_trans_complex(aTHX_ a,b)
-#     define do_trans_count(a,b)                S_do_trans_count(aTHX_ a,b)
-#     define do_trans_count_invmap(a,b)         S_do_trans_count_invmap(aTHX_ a,b)
-#     define do_trans_invmap(a,b)               S_do_trans_invmap(aTHX_ a,b)
-#     define do_trans_simple(a,b)               S_do_trans_simple(aTHX_ a,b)
-#   endif /* defined(PERL_IN_DOOP_C) */
-#   if defined(PERL_IN_DUMP_C)
-#     define deb_curcv(a)                       S_deb_curcv(aTHX_ a)
-#     define debprof(a)                         S_debprof(aTHX_ a)
-#     define pm_description(a)                  S_pm_description(aTHX_ a)
-#     define sequence_num(a)                    S_sequence_num(aTHX_ a)
-#   endif /* defined(PERL_IN_DUMP_C) */
-#   if defined(PERL_IN_GLOBALS_C) || defined(PERL_IN_OP_C) || \
-       defined(PERL_IN_PEEP_C)
+#   endif
+#   if defined(PERL_IN_CLASS_C) || defined(PERL_IN_GLOBALS_C) || \
+       defined(PERL_IN_OP_C)    || defined(PERL_IN_PEEP_C)
 #     define ck_anoncode(a)                     Perl_ck_anoncode(aTHX_ a)
 #     define ck_backtick(a)                     Perl_ck_backtick(aTHX_ a)
 #     define ck_bitop(a)                        Perl_ck_bitop(aTHX_ a)
+#     define ck_classname(a)                    Perl_ck_classname(aTHX_ a)
 #     define ck_cmp(a)                          Perl_ck_cmp(aTHX_ a)
 #     define ck_concat(a)                       Perl_ck_concat(aTHX_ a)
 #     define ck_defined(a)                      Perl_ck_defined(aTHX_ a)
 #     define ck_tell(a)                         Perl_ck_tell(aTHX_ a)
 #     define ck_trunc(a)                        Perl_ck_trunc(aTHX_ a)
 #     define ck_trycatch(a)                     Perl_ck_trycatch(aTHX_ a)
-#   endif /* defined(PERL_IN_GLOBALS_C) || defined(PERL_IN_OP_C) || \
-             defined(PERL_IN_PEEP_C) */
+#   endif /* defined(PERL_IN_CLASS_C) || defined(PERL_IN_GLOBALS_C) ||
+             defined(PERL_IN_OP_C)    || defined(PERL_IN_PEEP_C) */
+#   if defined(PERL_IN_DEB_C)
+#     define deb_stack_n(a,b,c,d,e,f)           S_deb_stack_n(aTHX_ a,b,c,d,e,f)
+#   endif
+#   if defined(PERL_IN_DOIO_C)
+#     define argvout_final(a,b,c)               S_argvout_final(aTHX_ a,b,c)
+#     define exec_failed(a,b,c)                 S_exec_failed(aTHX_ a,b,c)
+#     define ingroup(a,b)                       S_ingroup(aTHX_ a,b)
+#     define is_fork_open                       S_is_fork_open
+#     define openn_cleanup(a,b,c,d,e,f,g,h,i,j,k,l,m) S_openn_cleanup(aTHX_ a,b,c,d,e,f,g,h,i,j,k,l,m)
+#     define openn_setup(a,b,c,d,e,f)           S_openn_setup(aTHX_ a,b,c,d,e,f)
+#   endif
+#   if defined(PERL_IN_DOOP_C)
+#     define do_trans_complex(a,b)              S_do_trans_complex(aTHX_ a,b)
+#     define do_trans_count(a,b)                S_do_trans_count(aTHX_ a,b)
+#     define do_trans_count_invmap(a,b)         S_do_trans_count_invmap(aTHX_ a,b)
+#     define do_trans_invmap(a,b)               S_do_trans_invmap(aTHX_ a,b)
+#     define do_trans_simple(a,b)               S_do_trans_simple(aTHX_ a,b)
+#   endif
+#   if defined(PERL_IN_DUMP_C)
+#     define deb_curcv(a)                       S_deb_curcv(aTHX_ a)
+#     define debprof(a)                         S_debprof(aTHX_ a)
+#     define pm_description(a)                  S_pm_description(aTHX_ a)
+#     define sequence_num(a)                    S_sequence_num(aTHX_ a)
+#   endif
 #   if defined(PERL_IN_GV_C)
 #     define find_default_stash(a,b,c,d,e,f)    S_find_default_stash(aTHX_ a,b,c,d,e,f)
 #     define gv_fetchmeth_internal(a,b,c,d,e,f) S_gv_fetchmeth_internal(aTHX_ a,b,c,d,e,f)
 #     define unshare_hek_or_pvn(a,b,c,d)        S_unshare_hek_or_pvn(aTHX_ a,b,c,d)
 #     if !defined(PURIFY)
 #       define new_he()                         S_new_he(aTHX)
-#     endif /* !defined(PURIFY) */
+#     endif
 #   endif /* defined(PERL_IN_HV_C) */
 #   if defined(PERL_IN_LOCALE_C)
 #     define get_locale_string_utf8ness_i(a,b,c,d) S_get_locale_string_utf8ness_i(aTHX_ a,b,c,d)
+#     define ints_to_tm(a,b,c,d,e,f,g,h,i,j)    S_ints_to_tm(aTHX_ a,b,c,d,e,f,g,h,i,j)
 #     define is_locale_utf8(a)                  S_is_locale_utf8(aTHX_ a)
-#     if defined(HAS_LOCALECONV)
-#       define my_localeconv(a)                 S_my_localeconv(aTHX_ a)
-#       define populate_hash_from_localeconv(a,b,c,d,e) S_populate_hash_from_localeconv(aTHX_ a,b,c,d,e)
-#     endif /* defined(HAS_LOCALECONV) */
+#     define my_localeconv(a)                   S_my_localeconv(aTHX_ a)
+#     define populate_hash_from_C_localeconv(a,b,c,d,e) S_populate_hash_from_C_localeconv(aTHX_ a,b,c,d,e)
+#     define save_to_buffer(a,b,c)              S_save_to_buffer(aTHX_ a,b,c)
+#     define set_save_buffer_min_size(a,b,c)    S_set_save_buffer_min_size(aTHX_ a,b,c)
+#     define strftime8(a,b,c,d,e)               S_strftime8(aTHX_ a,b,c,d,e)
+#     define strftime_tm(a,b)                   S_strftime_tm(aTHX_ a,b)
+#     if defined(HAS_MISSING_LANGINFO_ITEM_) || !defined(HAS_NL_LANGINFO)
+#       define emulate_langinfo(a,b,c,d)        S_emulate_langinfo(aTHX_ a,b,c,d)
+#     endif
 #     if defined(USE_LOCALE)
-#       define get_category_index               S_get_category_index
+#       define calculate_LC_ALL_string(a,b,c,d) S_calculate_LC_ALL_string(aTHX_ a,b,c,d)
+#       define external_call_langinfo(a,b,c)    S_external_call_langinfo(aTHX_ a,b,c)
+#       define get_category_index_helper(a,b,c) S_get_category_index_helper(aTHX_ a,b,c)
 #       define mortalized_pv_copy(a)            S_mortalized_pv_copy(aTHX_ a)
+#       define native_querylocale_i(a)          S_native_querylocale_i(aTHX_ a)
 #       define new_LC_ALL(a,b)                  S_new_LC_ALL(aTHX_ a,b)
-#       define save_to_buffer                   S_save_to_buffer
-#       define setlocale_failure_panic_i(a,b,c,d,e) S_setlocale_failure_panic_i(aTHX_ a,b,c,d,e)
-#       define stdize_locale(a,b,c,d,e)         S_stdize_locale(aTHX_ a,b,c,d,e)
+#       define output_check_environment_warning(a,b,c) S_output_check_environment_warning(aTHX_ a,b,c)
+#       define parse_LC_ALL_string(a,b,c,d,e,f) S_parse_LC_ALL_string(aTHX_ a,b,c,d,e,f)
+#       define setlocale_failure_panic_via_i(a,b,c,d,e,f,g) S_setlocale_failure_panic_via_i(aTHX_ a,b,c,d,e,f,g)
 #       if defined(DEBUGGING)
 #         define my_setlocale_debug_string_i(a,b,c,d) S_my_setlocale_debug_string_i(aTHX_ a,b,c,d)
-#       endif /* defined(DEBUGGING) */
-#       if defined(HAS_NL_LANGINFO) || defined(HAS_NL_LANGINFO_L)
-#         define my_langinfo_i(a,b,c,d,e,f)     S_my_langinfo_i(aTHX_ a,b,c,d,e,f)
-#       else /* if !( defined(HAS_NL_LANGINFO) || defined(HAS_NL_LANGINFO_L) ) */
-#         define my_langinfo_i(a,b,c,d,e,f)     S_my_langinfo_i(aTHX_ a,b,c,d,e,f)
-#       endif /* !( defined(HAS_NL_LANGINFO) || defined(HAS_NL_LANGINFO_L) ) */
-#       if ( !defined(LC_ALL) || defined(USE_POSIX_2008_LOCALE) || \
-           defined(WIN32) ) && !( defined(USE_POSIX_2008_LOCALE) && \
-           defined(USE_QUERYLOCALE) )
-#         define calculate_LC_ALL(a)            S_calculate_LC_ALL(aTHX_ a)
-#       endif /* ( !defined(LC_ALL) || defined(USE_POSIX_2008_LOCALE) || \
-                 defined(WIN32) ) && !( defined(USE_POSIX_2008_LOCALE) && \
-                 defined(USE_QUERYLOCALE) ) */
+#       endif
+#       if defined(HAS_NL_LANGINFO)
+#         define langinfo_sv_i(a,b,c,d,e)       S_langinfo_sv_i(aTHX_ a,b,c,d,e)
+#       endif
+#       if defined(LC_ALL)
+#         define give_perl_locale_control(a,b)  S_give_perl_locale_control(aTHX_ a,b)
+#       else
+#         define give_perl_locale_control(a,b)  S_give_perl_locale_control(aTHX_ a,b)
+#       endif
 #       if defined(USE_LOCALE_COLLATE)
 #         define new_collate(a,b)               S_new_collate(aTHX_ a,b)
 #         if defined(DEBUGGING)
 #           define print_collxfrm_input_and_return(a,b,c,d,e) S_print_collxfrm_input_and_return(aTHX_ a,b,c,d,e)
-#         endif /* defined(DEBUGGING) */
-#       endif /* defined(USE_LOCALE_COLLATE) */
+#         endif
+#       endif
 #       if defined(USE_LOCALE_CTYPE)
 #         define is_codeset_name_UTF8           S_is_codeset_name_UTF8
 #         define new_ctype(a,b)                 S_new_ctype(aTHX_ a,b)
-#       endif /* defined(USE_LOCALE_CTYPE) */
+#       endif
+#       if defined(USE_LOCALE_MONETARY) || defined(USE_LOCALE_NUMERIC)
+#         define populate_hash_from_localeconv(a,b,c,d,e) S_populate_hash_from_localeconv(aTHX_ a,b,c,d,e)
+#       endif
 #       if defined(USE_LOCALE_NUMERIC)
 #         define new_numeric(a,b)               S_new_numeric(aTHX_ a,b)
-#       endif /* defined(USE_LOCALE_NUMERIC) */
+#       endif
 #       if defined(USE_PERL_SWITCH_LOCALE_CONTEXT) || defined(DEBUGGING)
 #         define get_LC_ALL_display()           S_get_LC_ALL_display(aTHX)
-#       endif /* defined(USE_PERL_SWITCH_LOCALE_CONTEXT) || \
-                 defined(DEBUGGING) */
+#       endif
 #       if defined(USE_POSIX_2008_LOCALE)
-#         define emulate_setlocale_i(a,b,c,d)   S_emulate_setlocale_i(aTHX_ a,b,c,d)
-#         define my_querylocale_i(a)            S_my_querylocale_i(aTHX_ a)
-#         define setlocale_from_aggregate_LC_ALL(a,b) S_setlocale_from_aggregate_LC_ALL(aTHX_ a,b)
+#         define bool_setlocale_2008_i(a,b,c)   S_bool_setlocale_2008_i(aTHX_ a,b,c)
+#         define querylocale_2008_i(a,b)        S_querylocale_2008_i(aTHX_ a,b)
 #         define use_curlocale_scratch()        S_use_curlocale_scratch(aTHX)
-#         if defined(USE_QUERYLOCALE)
-#           define calculate_LC_ALL(a)          S_calculate_LC_ALL(aTHX_ a)
-#         else /* if !defined(USE_QUERYLOCALE) */
+#         if !defined(USE_QUERYLOCALE)
 #           define update_PL_curlocales_i(a,b,c) S_update_PL_curlocales_i(aTHX_ a,b,c)
-#         endif /* !defined(USE_QUERYLOCALE) */
-#       elif defined(USE_LOCALE_THREADS) && !defined(USE_THREAD_SAFE_LOCALE) \
-             && !defined(USE_THREAD_SAFE_LOCALE_EMULATION) /* && \
-             !defined(USE_POSIX_2008_LOCALE) */
+#         endif
+#       elif  defined(USE_LOCALE_THREADS) &&     \
+             !defined(USE_THREAD_SAFE_LOCALE) && \
+             !defined(USE_THREAD_SAFE_LOCALE_EMULATION)
+#         define less_dicey_bool_setlocale_r(a,b) S_less_dicey_bool_setlocale_r(aTHX_ a,b)
 #         define less_dicey_setlocale_r(a,b)    S_less_dicey_setlocale_r(aTHX_ a,b)
-#         define less_dicey_void_setlocale_i(a,b,c) S_less_dicey_void_setlocale_i(aTHX_ a,b,c)
-#         if 0
-#           define less_dicey_bool_setlocale_r(a,b) S_less_dicey_bool_setlocale_r(aTHX_ a,b)
-#         endif /* 0 */
-#       endif /* ( defined(USE_LOCALE_THREADS) && \
-                 !defined(USE_THREAD_SAFE_LOCALE) && \
-                 !defined(USE_THREAD_SAFE_LOCALE_EMULATION) ) && \
-                 !defined(USE_POSIX_2008_LOCALE) */
-#       if ( defined(USE_POSIX_2008_LOCALE) && !defined(USE_QUERYLOCALE) ) || \
-           defined(WIN32)
-#         define find_locale_from_environment(a) S_find_locale_from_environment(aTHX_ a)
-#       endif /* ( defined(USE_POSIX_2008_LOCALE) && \
-                 !defined(USE_QUERYLOCALE) ) || defined(WIN32) */
-#       if defined(WIN32)
+#       endif
+#       if defined(WIN32) || defined(WIN32_USE_FAKE_OLD_MINGW_LOCALES)
 #         define Win_byte_string_to_wstring     S_Win_byte_string_to_wstring
 #         define Win_wstring_to_byte_string     S_Win_wstring_to_byte_string
 #         define win32_setlocale(a,b)           S_win32_setlocale(aTHX_ a,b)
 #         define wrap_wsetlocale(a,b)           S_wrap_wsetlocale(aTHX_ a,b)
-#       endif /* defined(WIN32) */
+#       endif
+#       if   defined(WIN32) || defined(WIN32_USE_FAKE_OLD_MINGW_LOCALES) || \
+           ( defined(USE_POSIX_2008_LOCALE) && !defined(USE_QUERYLOCALE) )
+#         define find_locale_from_environment(a) S_find_locale_from_environment(aTHX_ a)
+#       endif
 #     endif /* defined(USE_LOCALE) */
-#     if defined(USE_POSIX_2008_LOCALE) || defined(DEBUGGING)
+#     if defined(USE_LOCALE) || defined(DEBUGGING)
 #       define get_displayable_string(a,b,c)    S_get_displayable_string(aTHX_ a,b,c)
-#     endif /* defined(USE_POSIX_2008_LOCALE) || defined(DEBUGGING) */
+#     endif
 #   endif /* defined(PERL_IN_LOCALE_C) */
 #   if defined(PERL_IN_MALLOC_C)
 #     define adjust_size_and_find_bucket        S_adjust_size_and_find_bucket
-#   endif /* defined(PERL_IN_MALLOC_C) */
+#   endif
 #   if defined(PERL_IN_MG_C)
 #     define fixup_errno_string(a)              S_fixup_errno_string(aTHX_ a)
 #     define magic_methcall1(a,b,c,d,e,f)       S_magic_methcall1(aTHX_ a,b,c,d,e,f)
 #     define restore_magic(a)                   S_restore_magic(aTHX_ a)
 #     define save_magic_flags(a,b,c)            S_save_magic_flags(aTHX_ a,b,c)
 #     define unwind_handler_stack(a)            S_unwind_handler_stack(aTHX_ a)
-#   endif /* defined(PERL_IN_MG_C) */
+#   endif
 #   if defined(PERL_IN_MG_C) || defined(PERL_IN_PP_C)
 #     define translate_substr_offsets           Perl_translate_substr_offsets
-#   endif /* defined(PERL_IN_MG_C) || defined(PERL_IN_PP_C) */
+#   endif
 #   if defined(PERL_IN_MRO_C)
 #     define mro_clean_isarev(a,b,c,d,e,f)      S_mro_clean_isarev(aTHX_ a,b,c,d,e,f)
 #     define mro_gather_and_rename(a,b,c,d,e)   S_mro_gather_and_rename(aTHX_ a,b,c,d,e)
 #     define mro_get_linear_isa_dfs(a,b)        S_mro_get_linear_isa_dfs(aTHX_ a,b)
-#   endif /* defined(PERL_IN_MRO_C) */
+#   endif
 #   if defined(PERL_IN_NUMERIC_C)
 #     define output_non_portable(a)             S_output_non_portable(aTHX_ a)
-#   endif /* defined(PERL_IN_NUMERIC_C) */
+#   endif
 #   if defined(PERL_IN_OP_C)
 #     define apply_attrs(a,b,c)                 S_apply_attrs(aTHX_ a,b,c)
 #     define apply_attrs_my(a,b,c,d)            S_apply_attrs_my(aTHX_ a,b,c,d)
 #   endif /* defined(PERL_IN_OP_C) */
 #   if defined(PERL_IN_OP_C) || defined(PERL_IN_PAD_C)
 #     define PadnameIN_SCOPE                    S_PadnameIN_SCOPE
-#   endif /* defined(PERL_IN_OP_C) || defined(PERL_IN_PAD_C) */
+#   endif
 #   if defined(PERL_IN_OP_C) || defined(PERL_IN_PEEP_C)
 #     define check_hash_fields_and_hekify(a,b,c) Perl_check_hash_fields_and_hekify(aTHX_ a,b,c)
 #     define no_bareword_allowed(a)             Perl_no_bareword_allowed(aTHX_ a)
 #     define op_prune_chain_head                Perl_op_prune_chain_head
 #     define op_varname(a)                      Perl_op_varname(aTHX_ a)
 #     define warn_elem_scalar_context(a,b,c,d)  Perl_warn_elem_scalar_context(aTHX_ a,b,c,d)
-#     if defined(USE_ITHREADS)
-#       define op_relocate_sv(a,b)              Perl_op_relocate_sv(aTHX_ a,b)
-#     endif /* defined(USE_ITHREADS) */
-#   endif /* defined(PERL_IN_OP_C) || defined(PERL_IN_PEEP_C) */
+#   endif
 #   if defined(PERL_IN_OP_C) || defined(PERL_IN_SV_C)
 #     define report_redefined_cv(a,b,c)         Perl_report_redefined_cv(aTHX_ a,b,c)
 #     define varname(a,b,c,d,e,f)               Perl_varname(aTHX_ a,b,c,d,e,f)
-#   endif /* defined(PERL_IN_OP_C) || defined(PERL_IN_SV_C) */
+#   endif
 #   if defined(PERL_IN_PAD_C)
 #     define pad_alloc_name(a,b,c,d)            S_pad_alloc_name(aTHX_ a,b,c,d)
 #     define pad_check_dup(a,b,c)               S_pad_check_dup(aTHX_ a,b,c)
 #     define pad_reset()                        S_pad_reset(aTHX)
 #     if defined(DEBUGGING)
 #       define cv_dump(a,b)                     S_cv_dump(aTHX_ a,b)
-#     endif /* defined(DEBUGGING) */
-#   endif /* defined(PERL_IN_PAD_C) */
+#     endif
+#   endif
 #   if defined(PERL_IN_PEEP_C)
 #     define finalize_op(a)                     S_finalize_op(aTHX_ a)
 #     define optimize_op(a)                     S_optimize_op(aTHX_ a)
 #     define traverse_op_tree(a,b)              S_traverse_op_tree(aTHX_ a,b)
-#   endif /* defined(PERL_IN_PEEP_C) */
+#   endif
 #   if defined(PERL_IN_PERL_C)
 #     define find_beginning(a,b)                S_find_beginning(aTHX_ a,b)
 #     define forbid_setid(a,b)                  S_forbid_setid(aTHX_ a,b)
 #     define usage()                            S_usage(aTHX)
 #     if !defined(PERL_IS_MINIPERL)
 #       define incpush_if_exists(a,b,c)         S_incpush_if_exists(aTHX_ a,b,c)
-#     endif /* !defined(PERL_IS_MINIPERL) */
+#     endif
 #   endif /* defined(PERL_IN_PERL_C) */
 #   if defined(PERL_IN_PP_C)
 #     define do_chomp(a,b,c)                    S_do_chomp(aTHX_ a,b,c)
 #     define do_delete_local()                  S_do_delete_local(aTHX)
 #     define refto(a)                           S_refto(aTHX_ a)
-#   endif /* defined(PERL_IN_PP_C) */
+#   endif
 #   if defined(PERL_IN_PP_C) || defined(PERL_IN_PP_HOT_C)
 #     define lossless_NV_to_IV                  S_lossless_NV_to_IV
-#   endif /* defined(PERL_IN_PP_C) || defined(PERL_IN_PP_HOT_C) */
+#   endif
 #   if defined(PERL_IN_PP_C) || defined(PERL_IN_UTF8_C)
 #     define _to_upper_title_latin1(a,b,c,d)    Perl__to_upper_title_latin1(aTHX_ a,b,c,d)
-#   endif /* defined(PERL_IN_PP_C) || defined(PERL_IN_UTF8_C) */
+#   endif
 #   if defined(PERL_IN_PP_CTL_C)
 #     define check_type_and_open(a)             S_check_type_and_open(aTHX_ a)
 #     define destroy_matcher(a)                 S_destroy_matcher(aTHX_ a)
 #     define save_lines(a,b)                    S_save_lines(aTHX_ a,b)
 #     if !defined(PERL_DISABLE_PMC)
 #       define doopen_pm(a)                     S_doopen_pm(aTHX_ a)
-#     endif /* !defined(PERL_DISABLE_PMC) */
+#     endif
 #   endif /* defined(PERL_IN_PP_CTL_C) */
+#   if defined(PERL_IN_PP_CTL_C) || defined(PERL_IN_UTIL_C)
+#     define invoke_exception_hook(a,b)         Perl_invoke_exception_hook(aTHX_ a,b)
+#   endif
 #   if defined(PERL_IN_PP_HOT_C)
 #     define do_oddball(a,b)                    S_do_oddball(aTHX_ a,b)
 #     define opmethod_stash(a)                  S_opmethod_stash(aTHX_ a)
 #     define should_we_output_Debug_r(a)        S_should_we_output_Debug_r(aTHX_ a)
-#   endif /* defined(PERL_IN_PP_HOT_C) */
+#   endif
 #   if defined(PERL_IN_PP_PACK_C)
 #     define div128(a,b)                        S_div128(aTHX_ a,b)
 #     define first_symbol                       S_first_symbol
 #       define amagic_cmp_locale(a,b)           S_amagic_cmp_locale(aTHX_ a,b)
 #       define amagic_cmp_locale_desc(a,b)      S_amagic_cmp_locale_desc(aTHX_ a,b)
 #       define cmp_locale_desc(a,b)             S_cmp_locale_desc(aTHX_ a,b)
-#     endif /* defined(USE_LOCALE_COLLATE) */
+#     endif
 #   endif /* defined(PERL_IN_PP_SORT_C) */
 #   if defined(PERL_IN_PP_SYS_C)
 #     define doform(a,b,c)                      S_doform(aTHX_ a,b,c)
 #     define space_join_names_mortal(a)         S_space_join_names_mortal(aTHX_ a)
 #     if !defined(HAS_MKDIR) || !defined(HAS_RMDIR)
 #       define dooneliner(a,b)                  S_dooneliner(aTHX_ a,b)
-#     endif /* !defined(HAS_MKDIR) || !defined(HAS_RMDIR) */
-#   endif /* defined(PERL_IN_PP_SYS_C) */
+#     endif
+#   endif
 #   if defined(PERL_IN_REGCOMP_INVLIST_C) && !defined(PERL_EXT_RE_BUILD)
 #     define initialize_invlist_guts(a,b)       S_initialize_invlist_guts(aTHX_ a,b)
-#   endif /* defined(PERL_IN_REGCOMP_INVLIST_C) && \
-             !defined(PERL_EXT_RE_BUILD) */
+#   endif
 #   if defined(PERL_IN_SCOPE_C)
 #     define save_pushptri32ptr(a,b,c,d)        S_save_pushptri32ptr(aTHX_ a,b,c,d)
 #     define save_scalar_at(a,b)                S_save_scalar_at(aTHX_ a,b)
-#   endif /* defined(PERL_IN_SCOPE_C) */
+#   endif
 #   if defined(PERL_IN_TOKE_C)
 #     define ao(a)                              S_ao(aTHX_ a)
 #     define check_uni()                        S_check_uni(aTHX)
 #     if defined(DEBUGGING)
 #       define printbuf(a,b)                    S_printbuf(aTHX_ a,b)
 #       define tokereport(a,b)                  S_tokereport(aTHX_ a,b)
-#     endif /* defined(DEBUGGING) */
+#     endif
 #     if defined(PERL_CR_FILTER)
 #       define cr_textfilter(a,b,c)             S_cr_textfilter(aTHX_ a,b,c)
 #       define strip_return(a)                  S_strip_return(aTHX_ a)
-#     endif /* defined(PERL_CR_FILTER) */
+#     endif
 #     if !defined(PERL_NO_UTF16_FILTER)
 #       define add_utf16_textfilter(a,b)        S_add_utf16_textfilter(aTHX_ a,b)
 #       define utf16_textfilter(a,b,c)          S_utf16_textfilter(aTHX_ a,b,c)
-#     endif /* !defined(PERL_NO_UTF16_FILTER) */
+#     endif
 #   endif /* defined(PERL_IN_TOKE_C) */
 #   if defined(PERL_IN_UNIVERSAL_C)
 #     define isa_lookup(a,b,c,d,e)              S_isa_lookup(aTHX_ a,b,c,d,e)
 #     define sv_derived_from_svpvn(a,b,c,d,e)   S_sv_derived_from_svpvn(aTHX_ a,b,c,d,e)
-#   endif /* defined(PERL_IN_UNIVERSAL_C) */
+#   endif
 #   if defined(PERL_IN_UTF8_C)
 #     define _to_utf8_case(a,b,c,d,e,f,g,h,i)   S__to_utf8_case(aTHX_ a,b,c,d,e,f,g,h,i)
 #     define check_locale_boundary_crossing(a,b,c,d) S_check_locale_boundary_crossing(aTHX_ a,b,c,d)
 #     define turkic_uc(a,b,c,d)                 S_turkic_uc(aTHX_ a,b,c,d)
 #     define unexpected_non_continuation_text(a,b,c,d) S_unexpected_non_continuation_text(aTHX_ a,b,c,d)
 #     if 0
-#       define warn_on_first_deprecated_use(a,b,c,d,e) S_warn_on_first_deprecated_use(aTHX_ a,b,c,d,e)
-#     endif /* 0 */
+#       define warn_on_first_deprecated_use(a,b,c,d,e,f) S_warn_on_first_deprecated_use(aTHX_ a,b,c,d,e,f)
+#     endif
 #   endif /* defined(PERL_IN_UTF8_C) */
 #   if defined(PERL_IN_UTIL_C)
 #     define ckwarn_common(a)                   S_ckwarn_common(aTHX_ a)
-#     define invoke_exception_hook(a,b)         S_invoke_exception_hook(aTHX_ a,b)
 #     define mess_alloc()                       S_mess_alloc(aTHX)
+#     define ptr_hash                           S_ptr_hash
 #     define with_queued_errors(a)              S_with_queued_errors(aTHX_ a)
 #     if defined(PERL_MEM_LOG) && !defined(PERL_MEM_LOG_NOIMPL)
 #       define mem_log_common                   S_mem_log_common
-#     endif /* defined(PERL_MEM_LOG) && !defined(PERL_MEM_LOG_NOIMPL) */
+#     endif
 #     if defined(PERL_USES_PL_PIDSTATUS)
 #       define pidgone(a,b)                     S_pidgone(aTHX_ a,b)
-#     endif /* defined(PERL_USES_PL_PIDSTATUS) */
+#     endif
 #   endif /* defined(PERL_IN_UTIL_C) */
 #   if defined(PERL_USE_3ARG_SIGHANDLER)
 #     define sighandler                         Perl_sighandler
-#   else /* if !defined(PERL_USE_3ARG_SIGHANDLER) */
+#   else
 #     define sighandler                         Perl_sighandler
-#   endif /* !defined(PERL_USE_3ARG_SIGHANDLER) */
+#   endif
 #   if defined(USE_C_BACKTRACE)
 #     define get_c_backtrace(a,b)               Perl_get_c_backtrace(aTHX_ a,b)
-#   endif /* defined(USE_C_BACKTRACE) */
+#   endif
 #   if defined(USE_ITHREADS)
 #     define mro_meta_dup(a,b)                  Perl_mro_meta_dup(aTHX_ a,b)
 #     define padlist_dup(a,b)                   Perl_padlist_dup(aTHX_ a,b)
 #     define padnamelist_dup(a,b)               Perl_padnamelist_dup(aTHX_ a,b)
 #     if !defined(PERL_IMPLICIT_SYS)
 #       define PerlEnv_putenv(a)                S_PerlEnv_putenv(aTHX_ a)
-#     endif /* !defined(PERL_IMPLICIT_SYS) */
+#     endif
+#     if defined(PERL_IN_OP_C) || defined(PERL_IN_PEEP_C)
+#       define op_relocate_sv(a,b)              Perl_op_relocate_sv(aTHX_ a,b)
+#     endif
 #   endif /* defined(USE_ITHREADS) */
 #   if defined(USE_LOCALE_COLLATE)
 #     define magic_freecollxfrm(a,b)            Perl_magic_freecollxfrm(aTHX_ a,b)
 #     define magic_setcollxfrm(a,b)             Perl_magic_setcollxfrm(aTHX_ a,b)
-#   endif /* defined(USE_LOCALE_COLLATE) */
+#   endif
 #   if defined(USE_PERLIO)
 #     define PerlIO_restore_errno(a)            Perl_PerlIO_restore_errno(aTHX_ a)
 #     define PerlIO_save_errno(a)               Perl_PerlIO_save_errno(aTHX_ a)
-#   endif /* defined(USE_PERLIO) */
+#   endif
 #   if defined(USE_QUADMATH)
 #     define quadmath_format_needed             Perl_quadmath_format_needed
 #     define quadmath_format_valid              Perl_quadmath_format_valid
-#   endif /* defined(USE_QUADMATH) */
+#   endif
 #   if defined(WIN32)
 #     define get_win32_message_utf8ness(a)      Perl_get_win32_message_utf8ness(aTHX_ a)
-#   else /* if !defined(WIN32) */
+#   else
 #     define do_exec3(a,b,c)                    Perl_do_exec3(aTHX_ a,b,c)
-#   endif /* !defined(WIN32) */
+#   endif
 # endif /* defined(PERL_CORE) */
 # if defined(PERL_CORE) || defined(PERL_EXT)
 #   define _byte_dump_string(a,b,c)             Perl__byte_dump_string(aTHX_ a,b,c)
 #   define reg_temp_copy(a,b)                   Perl_reg_temp_copy(aTHX_ a,b)
 #   define report_uninit(a)                     Perl_report_uninit(aTHX_ a)
 #   define scan_str(a,b,c,d,e)                  Perl_scan_str(aTHX_ a,b,c,d,e)
-#   define scan_word(a,b,c,d,e,f)               Perl_scan_word(aTHX_ a,b,c,d,e,f)
+#   define scan_word(a,b,c,d,e)                 Perl_scan_word(aTHX_ a,b,c,d,e)
+#   define scan_word6(a,b,c,d,e,f)              Perl_scan_word6(aTHX_ a,b,c,d,e,f)
 #   define skipspace_flags(a,b)                 Perl_skipspace_flags(aTHX_ a,b)
 #   define sv_magicext_mglob(a)                 Perl_sv_magicext_mglob(aTHX_ a)
 #   define sv_only_taint_gmagic                 Perl_sv_only_taint_gmagic
 #   define variant_under_utf8_count             S_variant_under_utf8_count
 #   if !defined(HAS_MEMRCHR)
 #     define my_memrchr                         S_my_memrchr
-#   endif /* !defined(HAS_MEMRCHR) */
+#   endif
 #   if defined(PERL_ANY_COW)
 #     define sv_setsv_cow(a,b)                  Perl_sv_setsv_cow(aTHX_ a,b)
-#   endif /* defined(PERL_ANY_COW) */
+#   endif
 #   if defined(PERL_IN_DOOP_C)    || defined(PERL_IN_OP_C)        || \
        defined(PERL_IN_PP_C)      || defined(PERL_IN_REGCOMP_ANY) || \
        defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_TOKE_C)      || \
 #     define get_invlist_offset_addr            S_get_invlist_offset_addr
 #     define invlist_array                      S_invlist_array
 #     define is_invlist                         S_is_invlist
-#   endif /* defined(PERL_IN_DOOP_C)    || defined(PERL_IN_OP_C)        || \
-             defined(PERL_IN_PP_C)      || defined(PERL_IN_REGCOMP_ANY) || \
-             defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_TOKE_C)      || \
-             defined(PERL_IN_UTF8_C) */
+#   endif
 #   if defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C) || \
        defined(PERL_IN_REGCOMP_ANY)
 #     define add_cp_to_invlist(a,b)             S_add_cp_to_invlist(aTHX_ a,b)
 #     define invlist_extend(a,b)                S_invlist_extend(aTHX_ a,b)
 #     define invlist_highest                    S_invlist_highest
 #     define invlist_set_len(a,b,c)             S_invlist_set_len(aTHX_ a,b,c)
-#   endif /* defined(PERL_IN_DOOP_C) || defined(PERL_IN_OP_C) || \
-             defined(PERL_IN_REGCOMP_ANY) */
+#   endif
 #   if defined(PERL_IN_DOOP_C)      || defined(PERL_IN_OP_C) || \
        defined(PERL_IN_REGCOMP_ANY) || defined(PERL_IN_UTF8_C)
 #     define _add_range_to_invlist(a,b,c)       Perl__add_range_to_invlist(aTHX_ a,b,c)
 #     define _invlist_union_maybe_complement_2nd(a,b,c,d) Perl__invlist_union_maybe_complement_2nd(aTHX_ a,b,c,d)
 #     define _new_invlist(a)                    Perl__new_invlist(aTHX_ a)
 #     define _setup_canned_invlist(a,b,c)       Perl__setup_canned_invlist(aTHX_ a,b,c)
-#   endif /* defined(PERL_IN_DOOP_C)      || defined(PERL_IN_OP_C) || \
-             defined(PERL_IN_REGCOMP_ANY) || defined(PERL_IN_UTF8_C) */
+#   endif
 #   if defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_REGCOMP_C) || \
        defined(PERL_IN_TOKE_C)
 #     define form_alien_digit_msg(a,b,c,d,e,f)  Perl_form_alien_digit_msg(aTHX_ a,b,c,d,e,f)
 #     define grok_bslash_c(a,b,c,d)             Perl_grok_bslash_c(aTHX_ a,b,c,d)
 #     define grok_bslash_o(a,b,c,d,e,f,g,h)     Perl_grok_bslash_o(aTHX_ a,b,c,d,e,f,g,h)
 #     define grok_bslash_x(a,b,c,d,e,f,g,h)     Perl_grok_bslash_x(aTHX_ a,b,c,d,e,f,g,h)
-#   endif /* defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_REGCOMP_C) || \
-             defined(PERL_IN_TOKE_C) */
+#   endif
 #   if defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_REGCOMP_C) || \
        defined(PERL_IN_TOKE_C)   || defined(PERL_IN_UTF8_C)
 #     define form_cp_too_large_msg(a,b,c,d)     Perl_form_cp_too_large_msg(aTHX_ a,b,c,d)
-#   endif /* defined(PERL_IN_DQUOTE_C) || defined(PERL_IN_REGCOMP_C) || \
-             defined(PERL_IN_TOKE_C)   || defined(PERL_IN_UTF8_C) */
+#   endif
 #   if defined(PERL_IN_DUMP_C) || defined(PERL_IN_OP_C) || \
        defined(PERL_IN_REGCOMP_ANY)
 #     define _invlist_dump(a,b,c,d)             Perl__invlist_dump(aTHX_ a,b,c,d)
-#   endif /* defined(PERL_IN_DUMP_C) || defined(PERL_IN_OP_C) || \
-             defined(PERL_IN_REGCOMP_ANY) */
+#   endif
 #   if defined(PERL_IN_GV_C) || defined(PERL_IN_UNIVERSAL_C)
 #     define gv_stashsvpvn_cached(a,b,c,d)      Perl_gv_stashsvpvn_cached(aTHX_ a,b,c,d)
-#   endif /* defined(PERL_IN_GV_C) || defined(PERL_IN_UNIVERSAL_C) */
-#   if ( defined(PERL_IN_LOCALE_C) || defined(PERL_IN_MATHOMS_C) || \
-       defined(PERL_IN_SV_C) ) && defined(USE_LOCALE_COLLATE)
-#     define mem_collxfrm_(a,b,c,d)             Perl_mem_collxfrm_(aTHX_ a,b,c,d)
-#   endif /* ( defined(PERL_IN_LOCALE_C) || defined(PERL_IN_MATHOMS_C) || \
-             defined(PERL_IN_SV_C) ) && defined(USE_LOCALE_COLLATE) */
+#   endif
 #   if defined(PERL_IN_OP_C) || defined(PERL_IN_REGCOMP_ANY)
 #     define get_invlist_iter_addr              S_get_invlist_iter_addr
 #     define invlist_iterfinish                 S_invlist_iterfinish
 #     define invlist_iterinit                   S_invlist_iterinit
 #     define invlist_iternext                   S_invlist_iternext
-#   endif /* defined(PERL_IN_OP_C) || defined(PERL_IN_REGCOMP_ANY) */
+#   endif
 #   if defined(PERL_IN_PERL_C) || defined(PERL_IN_REGCOMP_ANY) || \
        defined(PERL_IN_UTF8_C)
 #     define _invlistEQ(a,b,c)                  Perl__invlistEQ(aTHX_ a,b,c)
 #     define _new_invlist_C_array(a)            Perl__new_invlist_C_array(aTHX_ a)
-#   endif /* defined(PERL_IN_PERL_C) || defined(PERL_IN_REGCOMP_ANY) || \
-             defined(PERL_IN_UTF8_C) */
+#   endif
 #   if defined(PERL_IN_PP_C)   || defined(PERL_IN_REGCOMP_ANY) || \
        defined(PERL_IN_TOKE_C) || defined(PERL_IN_UNIVERSAL_C)
 #     define get_regex_charset_name             S_get_regex_charset_name
-#   endif /* defined(PERL_IN_PP_C)   || defined(PERL_IN_REGCOMP_ANY) || \
-             defined(PERL_IN_TOKE_C) || defined(PERL_IN_UNIVERSAL_C) */
+#   endif
 #   if defined(PERL_IN_REGCOMP_ANY)
 #     define add_above_Latin1_folds(a,b,c)      Perl_add_above_Latin1_folds(aTHX_ a,b,c)
 #     define construct_ahocorasick_from_trie(a,b,c) Perl_construct_ahocorasick_from_trie(aTHX_ a,b,c)
 #       define dump_trie(a,b,c,d)               S_dump_trie(aTHX_ a,b,c,d)
 #       define dump_trie_interim_list(a,b,c,d,e) S_dump_trie_interim_list(aTHX_ a,b,c,d,e)
 #       define dump_trie_interim_table(a,b,c,d,e) S_dump_trie_interim_table(aTHX_ a,b,c,d,e)
-#     endif /* defined(PERL_IN_REGCOMP_TRIE_C) && defined(DEBUGGING) */
+#     endif
 #   endif /* defined(PERL_IN_REGCOMP_ANY) */
 #   if defined(PERL_IN_REGCOMP_ANY) || defined(PERL_IN_SV_C)
 #     define invlist_clone(a,b)                 Perl_invlist_clone(aTHX_ a,b)
-#   endif /* defined(PERL_IN_REGCOMP_ANY) || defined(PERL_IN_SV_C) */
+#   endif
 #   if defined(PERL_IN_REGCOMP_C)
 #     define add_multi_match(a,b,c)             S_add_multi_match(aTHX_ a,b,c)
 #     define change_engine_size(a,b)            S_change_engine_size(aTHX_ a,b)
 #     define parse_lparen_question_flags(a)     S_parse_lparen_question_flags(aTHX_ a)
 #     define parse_uniprop_string(a,b,c,d,e,f,g,h,i,j) S_parse_uniprop_string(aTHX_ a,b,c,d,e,f,g,h,i,j)
 #     define reg(a,b,c,d)                       S_reg(aTHX_ a,b,c,d)
-#     define reg2Lanode(a,b,c,d)                S_reg2Lanode(aTHX_ a,b,c,d)
+#     define reg1node(a,b,c)                    S_reg1node(aTHX_ a,b,c)
+#     define reg2node(a,b,c,d)                  S_reg2node(aTHX_ a,b,c,d)
 #     define reg_la_NOTHING(a,b,c)              S_reg_la_NOTHING(aTHX_ a,b,c)
 #     define reg_la_OPFAIL(a,b,c)               S_reg_la_OPFAIL(aTHX_ a,b,c)
 #     define reg_node(a,b)                      S_reg_node(aTHX_ a,b)
 #     define reg_scan_name(a,b)                 S_reg_scan_name(aTHX_ a,b)
 #     define reg_skipcomment                    S_reg_skipcomment
-#     define reganode(a,b,c)                    S_reganode(aTHX_ a,b,c)
 #     define regatom(a,b,c)                     S_regatom(aTHX_ a,b,c)
 #     define regbranch(a,b,c,d)                 S_regbranch(aTHX_ a,b,c,d)
 #     define regclass(a,b,c,d,e,f,g,h,i)        S_regclass(aTHX_ a,b,c,d,e,f,g,h,i)
 #       define regtail_study(a,b,c,d)           S_regtail_study(aTHX_ a,b,c,d)
 #       if defined(ENABLE_REGEX_SETS_DEBUGGING)
 #         define dump_regex_sets_structures(a,b,c,d) S_dump_regex_sets_structures(aTHX_ a,b,c,d)
-#       endif /* defined(ENABLE_REGEX_SETS_DEBUGGING) */
-#     endif /* defined(DEBUGGING) */
+#       endif
+#     endif
 #   endif /* defined(PERL_IN_REGCOMP_C) */
 #   if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGCOMP_INVLIST_C)
 #     define populate_bitmap_from_invlist(a,b,c,d) Perl_populate_bitmap_from_invlist(aTHX_ a,b,c,d)
 #     define populate_invlist_from_bitmap(a,b,c,d) Perl_populate_invlist_from_bitmap(aTHX_ a,b,c,d)
-#   endif /* defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGCOMP_INVLIST_C) */
+#   endif
 #   if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || \
        defined(PERL_IN_TOKE_C)
 #     define is_grapheme(a,b,c,d)               Perl_is_grapheme(aTHX_ a,b,c,d)
-#   endif /* defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || \
-             defined(PERL_IN_TOKE_C) */
+#   endif
 #   if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || \
        defined(PERL_IN_UTF8_C)
 #     define _to_fold_latin1                    Perl__to_fold_latin1
-#   endif /* defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || \
-             defined(PERL_IN_UTF8_C) */
+#   endif
 #   if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C)
 #     define regcurly                           Perl_regcurly
-#   endif /* defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C) */
+#   endif
 #   if defined(PERL_IN_REGCOMP_DEBUG_C) && defined(DEBUGGING)
 #     define put_charclass_bitmap_innards(a,b,c,d,e,f,g) S_put_charclass_bitmap_innards(aTHX_ a,b,c,d,e,f,g)
 #     define put_charclass_bitmap_innards_common(a,b,c,d,e,f) S_put_charclass_bitmap_innards_common(aTHX_ a,b,c,d,e,f)
 #     define put_range(a,b,c,d)                 S_put_range(aTHX_ a,b,c,d)
 #     define regdump_extflags(a,b)              S_regdump_extflags(aTHX_ a,b)
 #     define regdump_intflags(a,b)              S_regdump_intflags(aTHX_ a,b)
-#   endif /* defined(PERL_IN_REGCOMP_DEBUG_C) && defined(DEBUGGING) */
+#   endif
 #   if defined(PERL_IN_REGCOMP_INVLIST_C) && !defined(PERL_EXT_RE_BUILD)
 #     define _append_range_to_invlist(a,b,c)    S__append_range_to_invlist(aTHX_ a,b,c)
 #     define _invlist_array_init                S__invlist_array_init
 #     define invlist_replace_list_destroys_src(a,b) S_invlist_replace_list_destroys_src(aTHX_ a,b)
 #     define invlist_set_previous_index         S_invlist_set_previous_index
 #     define invlist_trim                       S_invlist_trim
-#   endif /* defined(PERL_IN_REGCOMP_INVLIST_C) && \
+#   endif /*  defined(PERL_IN_REGCOMP_INVLIST_C) &&
              !defined(PERL_EXT_RE_BUILD) */
 #   if defined(PERL_IN_REGCOMP_STUDY_C)
 #     define get_ANYOF_cp_list_for_ssc(a,b)     S_get_ANYOF_cp_list_for_ssc(aTHX_ a,b)
 #     define backup_one_LB(a,b,c)               S_backup_one_LB(aTHX_ a,b,c)
 #     define backup_one_SB(a,b,c)               S_backup_one_SB(aTHX_ a,b,c)
 #     define backup_one_WB(a,b,c,d)             S_backup_one_WB(aTHX_ a,b,c,d)
+#     define capture_clear(a,b,c,d)             S_capture_clear(aTHX_ a,b,c,d comma_aDEPTH)
 #     define find_byclass(a,b,c,d,e)            S_find_byclass(aTHX_ a,b,c,d,e)
 #     define find_next_masked                   S_find_next_masked
 #     define find_span_end                      S_find_span_end
 #     define isSB(a,b,c,d,e,f)                  S_isSB(aTHX_ a,b,c,d,e,f)
 #     define isWB(a,b,c,d,e,f,g)                S_isWB(aTHX_ a,b,c,d,e,f,g)
 #     define reg_check_named_buff_matched       S_reg_check_named_buff_matched
-#     define regcp_restore(a,b,c)               S_regcp_restore(aTHX_ a,b,c _aDEPTH)
-#     define regcppop(a,b)                      S_regcppop(aTHX_ a,b _aDEPTH)
-#     define regcppush(a,b,c)                   S_regcppush(aTHX_ a,b,c _aDEPTH)
+#     define regcp_restore(a,b,c)               S_regcp_restore(aTHX_ a,b,c comma_aDEPTH)
+#     define regcppop(a,b)                      S_regcppop(aTHX_ a,b comma_aDEPTH)
+#     define regcppush(a,b,c)                   S_regcppush(aTHX_ a,b,c comma_aDEPTH)
 #     define reghop3                            S_reghop3
 #     define reghop4                            S_reghop4
 #     define reghopmaybe3                       S_reghopmaybe3
 #     define reginclass(a,b,c,d,e)              S_reginclass(aTHX_ a,b,c,d,e)
 #     define regmatch(a,b,c)                    S_regmatch(aTHX_ a,b,c)
-#     define regrepeat(a,b,c,d,e,f)             S_regrepeat(aTHX_ a,b,c,d,e,f _aDEPTH)
+#     define regrepeat(a,b,c,d,e,f)             S_regrepeat(aTHX_ a,b,c,d,e,f comma_aDEPTH)
 #     define regtry(a,b)                        S_regtry(aTHX_ a,b)
 #     define to_byte_substr(a)                  S_to_byte_substr(aTHX_ a)
 #     define to_utf8_substr(a)                  S_to_utf8_substr(aTHX_ a)
+#     define unwind_paren(a,b,c)                S_unwind_paren(aTHX_ a,b,c comma_aDEPTH)
 #     if defined(DEBUGGING)
 #       define debug_start_match(a,b,c,d,e)     S_debug_start_match(aTHX_ a,b,c,d,e)
 #       define dump_exec_pos(a,b,c,d,e,f,g)     S_dump_exec_pos(aTHX_ a,b,c,d,e,f,g)
-#     endif /* defined(DEBUGGING) */
-#     if ( !defined(MULTIPLICITY) || defined(PERL_CORE) ) && \
-         defined(DEBUGGING)
-#       define re_exec_indentf(a,...)           Perl_re_exec_indentf(aTHX_ a,__VA_ARGS__)
-#     endif /* ( !defined(MULTIPLICITY) || defined(PERL_CORE) ) && \
-               defined(DEBUGGING) */
+#       if !defined(MULTIPLICITY) || defined(PERL_CORE)
+#         define re_exec_indentf(a,...)         Perl_re_exec_indentf(aTHX_ a,__VA_ARGS__)
+#       endif
+#     endif
 #   endif /* defined(PERL_IN_REGEXEC_C) */
 # endif /* defined(PERL_CORE) || defined(PERL_EXT) */
 # if defined(PERL_CORE) || defined(PERL_USE_VOLATILE_API)
 #   define finalize_optree(a)                   Perl_finalize_optree(aTHX_ a)
 #   define optimize_optree(a)                   Perl_optimize_optree(aTHX_ a)
-# endif /* defined(PERL_CORE) || defined(PERL_USE_VOLATILE_API) */
+# endif
 # if !defined(PERL_IMPLICIT_SYS)
 #   define my_pclose(a)                         Perl_my_pclose(aTHX_ a)
 #   define my_popen(a,b)                        Perl_my_popen(aTHX_ a,b)
-# endif /* !defined(PERL_IMPLICIT_SYS) */
-# if defined(PERL_IN_CLASS_C) || defined(PERL_IN_PAD_C) || \
-     defined(PERL_IN_PERLY_C) || defined(PERL_IN_TOKE_C)
+# endif
+# if defined(PERL_IN_CLASS_C) || defined(PERL_IN_OP_C)    || \
+     defined(PERL_IN_PAD_C)   || defined(PERL_IN_PERLY_C) || \
+     defined(PERL_IN_TOKE_C)
 #   define class_add_ADJUST(a,b)                Perl_class_add_ADJUST(aTHX_ a,b)
 #   define class_add_field(a,b)                 Perl_class_add_field(aTHX_ a,b)
 #   define class_apply_attributes(a,b)          Perl_class_apply_attributes(aTHX_ a,b)
+#   define class_apply_field_attributes(a,b)    Perl_class_apply_field_attributes(aTHX_ a,b)
 #   define class_prepare_initfield_parse()      Perl_class_prepare_initfield_parse(aTHX)
 #   define class_prepare_method_parse(a)        Perl_class_prepare_method_parse(aTHX_ a)
 #   define class_seal_stash(a)                  Perl_class_seal_stash(aTHX_ a)
-#   define class_set_field_defop(a,b)           Perl_class_set_field_defop(aTHX_ a,b)
+#   define class_set_field_defop(a,b,c)         Perl_class_set_field_defop(aTHX_ a,b,c)
 #   define class_setup_stash(a)                 Perl_class_setup_stash(aTHX_ a)
 #   define class_wrap_method_body(a)            Perl_class_wrap_method_body(aTHX_ a)
 #   define croak_kw_unless_class(a)             Perl_croak_kw_unless_class(aTHX_ a)
-# endif /* defined(PERL_IN_CLASS_C) || defined(PERL_IN_PAD_C) || \
-           defined(PERL_IN_PERLY_C) || defined(PERL_IN_TOKE_C) */
+# endif /* defined(PERL_IN_CLASS_C) || defined(PERL_IN_OP_C)    ||
+           defined(PERL_IN_PAD_C)   || defined(PERL_IN_PERLY_C) ||
+           defined(PERL_IN_TOKE_C) */
 # if defined(PERL_IN_REGEX_ENGINE)
 #   define check_regnode_after(a,b)             Perl_check_regnode_after(aTHX_ a,b)
 #   define regnext(a)                           Perl_regnext(aTHX_ a)
 #   define regnode_after(a,b)                   Perl_regnode_after(aTHX_ a,b)
-#   if defined(PERL_CORE) || defined(PERL_EXT)
-#     if defined(DEBUGGING)
+#   if defined(DEBUGGING)
+#     if ( !defined(MULTIPLICITY) || defined(PERL_CORE) ) && \
+         (  defined(PERL_CORE)    || defined(PERL_EXT) )
+#       define re_indentf(a,...)                Perl_re_indentf(aTHX_ a,__VA_ARGS__)
+#       define re_printf(...)                   Perl_re_printf(aTHX_ __VA_ARGS__)
+#     endif
+#     if defined(PERL_CORE) || defined(PERL_EXT)
 #       define debug_peep(a,b,c,d,e)            Perl_debug_peep(aTHX_ a,b,c,d,e)
 #       define debug_show_study_flags(a,b,c)    Perl_debug_show_study_flags(aTHX_ a,b,c)
 #       define debug_studydata(a,b,c,d,e,f,g)   Perl_debug_studydata(aTHX_ a,b,c,d,e,f,g)
 #       define dumpuntil(a,b,c,d,e,f,g,h)       Perl_dumpuntil(aTHX_ a,b,c,d,e,f,g,h)
 #       define regprop(a,b,c,d,e)               Perl_regprop(aTHX_ a,b,c,d,e)
-#     endif /* defined(DEBUGGING) */
-#     if ( !defined(MULTIPLICITY) || defined(PERL_CORE) ) && \
-         defined(DEBUGGING)
-#       define re_indentf(a,...)                Perl_re_indentf(aTHX_ a,__VA_ARGS__)
-#       define re_printf(...)                   Perl_re_printf(aTHX_ __VA_ARGS__)
-#     endif /* ( !defined(MULTIPLICITY) || defined(PERL_CORE) ) && \
-               defined(DEBUGGING) */
-#     if defined(PERL_EXT_RE_BUILD)
+#     endif
+#   endif /* defined(DEBUGGING) */
+#   if defined(PERL_EXT_RE_BUILD)
+#     if defined(PERL_CORE) || defined(PERL_EXT)
 #       define get_re_gclass_aux_data(a,b,c,d,e,f) Perl_get_re_gclass_aux_data(aTHX_ a,b,c,d,e,f)
-#     else /* if !defined(PERL_EXT_RE_BUILD) */
-#       define get_regclass_aux_data(a,b,c,d,e,f) Perl_get_regclass_aux_data(aTHX_ a,b,c,d,e,f)
-#     endif /* !defined(PERL_EXT_RE_BUILD) */
-#   endif /* defined(PERL_CORE) || defined(PERL_EXT) */
+#     endif
+#   elif defined(PERL_CORE) || defined(PERL_EXT)
+#     define get_regclass_aux_data(a,b,c,d,e,f) Perl_get_regclass_aux_data(aTHX_ a,b,c,d,e,f)
+#   endif
 # endif /* defined(PERL_IN_REGEX_ENGINE) */
 # if defined(PERL_IN_SV_C)
 #   define more_sv()                            Perl_more_sv(aTHX)
 #     define visit(a,b,c)                       S_visit(aTHX_ a,b,c)
 #     if defined(DEBUGGING)
 #       define del_sv(a)                        S_del_sv(aTHX_ a)
-#     endif /* defined(DEBUGGING) */
+#       define sv_mark_arenas()                 Perl_sv_mark_arenas(aTHX)
+#       define sv_sweep_arenas()                Perl_sv_sweep_arenas(aTHX)
+#     endif
 #     if !defined(NV_PRESERVES_UV)
 #       if defined(DEBUGGING)
 #         define sv_2iuv_non_preserve(a,b)      S_sv_2iuv_non_preserve(aTHX_ a,b)
-#       else /* if !defined(DEBUGGING) */
+#       else
 #         define sv_2iuv_non_preserve(a)        S_sv_2iuv_non_preserve(aTHX_ a)
-#       endif /* !defined(DEBUGGING) */
-#     endif /* !defined(NV_PRESERVES_UV) */
+#       endif
+#     endif
 #     if defined(PERL_DEBUG_READONLY_COW)
 #       define sv_buf_to_rw(a)                  S_sv_buf_to_rw(aTHX_ a)
-#     endif /* defined(PERL_DEBUG_READONLY_COW) */
+#     endif
 #     if defined(USE_ITHREADS)
 #       define sv_dup_common(a,b)               S_sv_dup_common(aTHX_ a,b)
+#       define sv_dup_hvaux(a,b,c)              S_sv_dup_hvaux(aTHX_ a,b,c)
 #       define sv_dup_inc_multiple(a,b,c,d)     S_sv_dup_inc_multiple(aTHX_ a,b,c,d)
 #       define unreferenced_to_tmp_stack(a)     S_unreferenced_to_tmp_stack(aTHX_ a)
-#     endif /* defined(USE_ITHREADS) */
+#     endif
 #   endif /* defined(PERL_CORE) */
 # endif /* defined(PERL_IN_SV_C) */
 # if defined(PERL_MEM_LOG)
 #   define mem_log_free                         Perl_mem_log_free
 #   define mem_log_new_sv                       Perl_mem_log_new_sv
 #   define mem_log_realloc                      Perl_mem_log_realloc
-# endif /* defined(PERL_MEM_LOG) */
+# endif
 # if !defined(PERL_NO_INLINE_FUNCTIONS)
 #   define cx_popblock(a)                       Perl_cx_popblock(aTHX_ a)
 #   define cx_popeval(a)                        Perl_cx_popeval(aTHX_ a)
 #   define cx_topblock(a)                       Perl_cx_topblock(aTHX_ a)
 #   define gimme_V()                            Perl_gimme_V(aTHX)
 # endif /* !defined(PERL_NO_INLINE_FUNCTIONS) */
+# if defined(PERL_RC_STACK)
+#   define runops_wrap()                        Perl_runops_wrap(aTHX)
+# endif
 # if defined(PERL_USE_3ARG_SIGHANDLER)
 #   define csighandler                          Perl_csighandler
-# else /* if !defined(PERL_USE_3ARG_SIGHANDLER) */
+# else
 #   define csighandler                          Perl_csighandler
-# endif /* !defined(PERL_USE_3ARG_SIGHANDLER) */
+# endif
 # if defined(U64TYPE)
 #   define lsbit_pos64                          Perl_lsbit_pos64
 #   define msbit_pos64                          Perl_msbit_pos64
 #   define single_1bit_pos64                    Perl_single_1bit_pos64
-# endif /* defined(U64TYPE) */
+# endif
 # if defined(UNLINK_ALL_VERSIONS)
 #   define unlnk(a)                             Perl_unlnk(aTHX_ a)
-# endif /* defined(UNLINK_ALL_VERSIONS) */
+# endif
 # if defined(USE_C_BACKTRACE)
 #   define dump_c_backtrace(a,b,c)              Perl_dump_c_backtrace(aTHX_ a,b,c)
 #   define get_c_backtrace_dump(a,b)            Perl_get_c_backtrace_dump(aTHX_ a,b)
-# endif /* defined(USE_C_BACKTRACE) */
+# endif
 # if defined(USE_ITHREADS)
 #   define alloccopstash(a)                     Perl_alloccopstash(aTHX_ a)
 #   define any_dup(a,b)                         Perl_any_dup(aTHX_ a,b)
 # endif /* defined(USE_ITHREADS) */
 # if defined(USE_LOCALE_COLLATE)
 #   define sv_collxfrm_flags(a,b,c)             Perl_sv_collxfrm_flags(aTHX_ a,b,c)
-# endif /* defined(USE_LOCALE_COLLATE) */
+#   if ( defined(PERL_CORE)        || defined(PERL_EXT) ) &&        \
+       ( defined(PERL_IN_LOCALE_C) || defined(PERL_IN_MATHOMS_C) || \
+         defined(PERL_IN_SV_C) )
+#     define mem_collxfrm_(a,b,c,d)             Perl_mem_collxfrm_(aTHX_ a,b,c,d)
+#   endif
+# endif
 # if defined(USE_PERLIO)
 #   define PerlIO_clearerr(a)                   Perl_PerlIO_clearerr(aTHX_ a)
 #   define PerlIO_close(a)                      Perl_PerlIO_close(aTHX_ a)
 #   define do_aspawn(a,b,c)                     Perl_do_aspawn(aTHX_ a,b,c)
 #   define do_spawn(a)                          Perl_do_spawn(aTHX_ a)
 #   define do_spawn_nowait(a)                   Perl_do_spawn_nowait(aTHX_ a)
-# endif /* defined(VMS) || defined(WIN32) */
+# endif
+# if defined(WIN32)
+#   define get_context                          Perl_get_context
+# else
+#   define get_context                          Perl_get_context
+# endif
 #endif /* !defined(PERL_NO_SHORT_NAMES) */
 
-/* ex: set ro: */
+/* ex: set ro ft=c: */