This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Fix threaded builds (broken by change #31112)
[perl5.git] / embed.fnc
index fecb528..8fc1aa3 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
@@ -106,11 +106,13 @@ Apd       |void   |av_fill        |NN AV* ar|I32 fill
 ApdR   |I32    |av_len         |NN const AV* ar
 ApdR   |AV*    |av_make        |I32 size|NN SV** svp
 Apd    |SV*    |av_pop         |NN AV* ar
+ApdoxM |void   |av_create_and_push|NN AV **const avp|NN SV *const val
 Apd    |void   |av_push        |NN AV* ar|NN SV* val
-p      |void   |av_reify       |NN AV* ar
+EXp    |void   |av_reify       |NN AV* ar
 ApdR   |SV*    |av_shift       |NN AV* ar
 Apd    |SV**   |av_store       |NN AV* ar|I32 key|NULLOK SV* val
 Apd    |void   |av_undef       |NN AV* ar
+ApdoxM |SV**   |av_create_and_unshift_one|NN AV **const avp|NN SV *const val
 Apd    |void   |av_unshift     |NN AV* ar|I32 num
 Apo    |SV**   |av_arylen_p    |NN AV* av
 pR     |OP*    |bind_match     |I32 type|NN OP* left|NN OP* pat
@@ -278,6 +280,8 @@ Ap  |void   |gv_efullname   |NN SV* sv|NN const GV* gv
 Apmb   |void   |gv_efullname3  |NN SV* sv|NN const GV* gv|NULLOK const char* prefix
 Ap     |void   |gv_efullname4  |NN SV* sv|NN const GV* gv|NULLOK const char* prefix|bool keepmain
 Ap     |GV*    |gv_fetchfile   |NN const char* name
+Ap     |GV*    |gv_fetchfile_flags|NN const char *const name|const STRLEN len\
+                               |const U32 flags
 Apd    |GV*    |gv_fetchmeth   |NULLOK HV* stash|NN const char* name|STRLEN len|I32 level
 Apd    |GV*    |gv_fetchmeth_autoload  |NULLOK HV* stash|NN const char* name|STRLEN len|I32 level
 Apdmb  |GV*    |gv_fetchmethod |NULLOK HV* stash|NN const char* name
@@ -289,9 +293,9 @@ Ap  |void   |gv_fullname4   |NN SV* sv|NN const GV* gv|NULLOK const char* prefix|bool
 pMox   |GP *   |newGP          |NN GV *const gv
 Ap     |void   |gv_init        |NN GV* gv|NULLOK HV* stash|NN const char* name|STRLEN len|int multi
 Ap     |void   |gv_name_set    |NN GV* gv|NN const char *name|U32 len|U32 flags
-Apd    |HV*    |gv_stashpv     |NN const char* name|I32 create
-Apd    |HV*    |gv_stashpvn    |NN const char* name|U32 namelen|I32 create
-Apd    |HV*    |gv_stashsv     |NULLOK SV* sv|I32 create
+Apd    |HV*    |gv_stashpv     |NN const char* name|I32 flags
+Apd    |HV*    |gv_stashpvn    |NN const char* name|U32 namelen|I32 flags
+Apd    |HV*    |gv_stashsv     |NULLOK SV* sv|I32 flags
 Apd    |void   |hv_clear       |NULLOK HV* tb
 poM    |HV *   |hv_copy_hints_hv|NN HV *const ohv
 Ap     |void   |hv_delayfree_ent|NN HV* hv|NULLOK HE* entry
@@ -312,7 +316,7 @@ ApdR        |SV*    |hv_iterval     |NN HV* tb|NN HE* entry
 Ap     |void   |hv_ksplit      |NN HV* hv|IV newmax
 Apdbm  |void   |hv_magic       |NN HV* hv|NULLOK GV* gv|int how
 XEdpoM |HV *   |refcounted_he_chain_2hv|NULLOK const struct refcounted_he *c
-XEpoM  |SV *   |refcounted_he_fetch|NN const struct refcounted_he *chain \
+XEpoM  |SV *   |refcounted_he_fetch|NULLOK const struct refcounted_he *chain \
                                |NULLOK SV *keysv|NULLOK const char *key \
                                |STRLEN klen, int flags, U32 hash
 dpoM   |void   |refcounted_he_free|NULLOK struct refcounted_he *he
@@ -398,10 +402,10 @@ ApR       |bool   |is_utf8_mark   |NN const U8 *p
 p      |OP*    |jmaybe         |NN OP* arg
 pP     |I32    |keyword        |NN const char* d|I32 len|bool all_keywords
 Ap     |void   |leave_scope    |I32 base
-p      |void   |lex_end
+EXp    |void   |lex_end
 p      |void   |lex_start      |NULLOK SV* line
 Ap     |void   |op_null        |NN OP* o
-p      |void   |op_clear       |NN OP* o
+EXp    |void   |op_clear       |NN OP* o
 Ap     |void   |op_refcnt_lock
 Ap     |void   |op_refcnt_unlock
 p      |OP*    |linklist       |NN OP* o
@@ -474,7 +478,7 @@ p   |char*  |mem_collxfrm   |NN const char* s|STRLEN len|NN STRLEN* xlen
 #endif
 Afp    |SV*    |mess           |NN const char* pat|...
 Ap     |SV*    |vmess          |NN const char* pat|NULLOK va_list* args
-p      |void   |qerror         |NN SV* err
+EXp    |void   |qerror         |NN SV* err
 Apd    |void   |sortsv         |NN SV** array|size_t num_elts|NN SVCOMPARE_t cmp
 Apd    |void   |sortsv_flags   |NN SV** array|size_t num_elts|NN SVCOMPARE_t cmp|U32 flags
 Apd    |int    |mg_clear       |NN SV* sv
@@ -488,7 +492,7 @@ Apd |void   |mg_magical     |NN SV* sv
 Apd    |int    |mg_set         |NN SV* sv
 Ap     |I32    |mg_size        |NN SV* sv
 Ap     |void   |mini_mktime    |NN struct tm *pm
-p      |OP*    |mod            |NULLOK OP* o|I32 type
+EXp    |OP*    |mod            |NULLOK OP* o|I32 type
 p      |int    |mode_from_discipline|NULLOK SV* discp
 Ap     |char*  |moreswitches   |NN char* s
 p      |OP*    |my             |NN OP* o
@@ -564,7 +568,9 @@ ApdaR       |HV*    |newHV
 ApaR   |HV*    |newHVhv        |NULLOK HV* hv
 Apa    |IO*    |newIO
 Apa    |OP*    |newLISTOP      |I32 type|I32 flags|NULLOK OP* first|NULLOK OP* last
-Apa    |OP*    |newPADOP       |I32 type|I32 flags|NULLOK SV* sv
+#ifdef USE_ITHREADS
+Apa    |OP*    |newPADOP       |I32 type|I32 flags|NN SV* sv
+#endif
 Apa    |OP*    |newPMOP        |I32 type|I32 flags
 Apa    |OP*    |newPVOP        |I32 type|I32 flags|NULLOK char* pv
 Apa    |SV*    |newRV          |NN SV* sv
@@ -583,16 +589,17 @@ Afpda     |SV*    |newSVpvf       |NN const char* pat|...
 Apa    |SV*    |vnewSVpvf      |NN const char* pat|NULLOK va_list* args
 Apd    |SV*    |newSVrv        |NN SV* rv|NULLOK const char* classname
 Apda   |SV*    |newSVsv        |NULLOK SV* old
+Apda   |SV*    |newSV_type     |svtype type
 Apa    |OP*    |newUNOP        |I32 type|I32 flags|NULLOK OP* first
 Apa    |OP*    |newWHENOP      |NULLOK OP* cond|NN OP* block
 Apa    |OP*    |newWHILEOP     |I32 flags|I32 debuggable|NULLOK LOOP* loop \
                                |I32 whileline|NULLOK OP* expr|NULLOK OP* block|NULLOK OP* cont \
                                |I32 has_my
 Apa    |PERL_SI*|new_stackinfo|I32 stitems|I32 cxitems
-Ap     |char*  |scan_vstring   |NN const char *vstr|NN SV *sv
+Ap     |char*  |scan_vstring   |NN const char *vstr|NN const char *end|NN SV *sv
 Apd    |const char*    |scan_version   |NN const char *vstr|NN SV *sv|bool qv
 Apd    |SV*    |new_version    |NN SV *ver
-Apd    |SV*    |upg_version    |NN SV *ver
+Apd    |SV*    |upg_version    |NN SV *ver|bool qv
 Apd    |bool   |vverify        |NN SV *vs
 Apd    |SV*    |vnumify        |NN SV *vs
 Apd    |SV*    |vnormal        |NN SV *vs
@@ -639,7 +646,8 @@ Apd |I32    |eval_sv        |NN SV* sv|I32 flags
 Apd    |SV*    |get_sv         |NN const char* name|I32 create
 Apd    |AV*    |get_av         |NN const char* name|I32 create
 Apd    |HV*    |get_hv         |NN const char* name|I32 create
-Apd    |CV*    |get_cv         |NN const char* name|I32 create
+Apd    |CV*    |get_cv         |NN const char* name|I32 flags
+Apd    |CV*    |get_cvn_flags  |NN const char* name|STRLEN len|I32 flags
 Ap     |int    |init_i18nl10n  |int printwarn
 Ap     |int    |init_i18nl14n  |int printwarn
 Ap     |void   |new_collate    |NULLOK const char* newcoll
@@ -665,26 +673,31 @@ Amb       |OP*    |ref            |NULLOK OP* o|I32 type
 p      |OP*    |refkids        |NULLOK OP* o|I32 type
 Ap     |void   |regdump        |NN const regexp* r
 Ap     |SV*    |regclass_swash |NULLOK const regexp *prog|NN const struct regnode *n|bool doinit|NULLOK SV **listsvp|NULLOK SV **altsvp
-Ap     |I32    |pregexec       |NN regexp* prog|NN char* stringarg \
+Ap     |I32    |pregexec       |NN REGEXP * const prog|NN char* stringarg \
                                |NN char* strend|NN char* strbeg|I32 minend \
                                |NN SV* screamer|U32 nosave
 Ap     |void   |pregfree       |NULLOK struct regexp* r
+EXp    |struct regexp* |reg_temp_copy  |NN struct regexp* r
 Ap     |void   |regfree_internal|NULLOK struct regexp* r
 Ap     |char * |reg_stringify  |NN MAGIC *mg|NULLOK STRLEN *lp|NULLOK U32 *flags|NULLOK I32 *haseval
 #if defined(USE_ITHREADS)
-Ap     |void*  |regdupe_internal|NN const regexp* r|NN CLONE_PARAMS* param
+Ap     |void*  |regdupe_internal|NN REGEXP * const r|NN CLONE_PARAMS* param
 #endif
-Ap     |regexp*|pregcomp       |NN char* exp|NN char* xend|NN PMOP* pm
-Ap     |regexp*|re_compile     |NN char* exp|NN char* xend|NN PMOP* pm
-Ap     |char*  |re_intuit_start|NN regexp* prog|NULLOK SV* sv|NN char* strpos \
-                               |NN char* strend|U32 flags \
+Ap     |REGEXP*|pregcomp       |NN const SV * const pattern|const U32 flags
+Ap     |REGEXP*|re_compile     |NN const SV * const pattern|const U32 flags
+Ap     |char*  |re_intuit_start|NN REGEXP * const rx|NULLOK SV* sv|NN char* strpos \
+                               |NN char* strend|const U32 flags \
                                |NULLOK struct re_scream_pos_data_s *data
-Ap     |SV*    |re_intuit_string|NN regexp* prog
-Ap     |I32    |regexec_flags  |NN regexp* prog|NN char* stringarg \
+Ap     |SV*    |re_intuit_string|NN REGEXP * const rx
+Ap     |I32    |regexec_flags  |NN REGEXP * const rx|NN char* stringarg \
                                |NN char* strend|NN char* strbeg|I32 minend \
                                |NN SV* screamer|NULLOK void* data|U32 flags
 ApR    |regnode*|regnext       |NN regnode* p
-Ep     |SV*|reg_named_buff_sv  |NN SV* namesv
+
+EXp    |SV*|reg_named_buff_get |NN REGEXP * const rx|NN SV * const namesv|const U32 flags
+EXp    |void|reg_numbered_buff_get|NN REGEXP * const rx|const I32 paren|NULLOK SV * const usesv
+EXp    |SV*|reg_qr_package|NN REGEXP * const rx
+
 Ep     |void   |regprop        |NULLOK const regexp *prog|NN SV* sv|NN const regnode* o
 Ap     |void   |repeatcpy      |NN char* to|NN const char* from|I32 len|I32 count
 ApP    |char*  |rninstr        |NN const char* big|NN const char* bigend \
@@ -702,6 +715,7 @@ p   |I32    |same_dirent    |NN const char* a|NN const char* b
 Apda   |char*  |savepv         |NULLOK const char* pv
 Apda   |char*  |savepvn        |NULLOK const char* pv|I32 len
 Apda   |char*  |savesharedpv   |NULLOK const char* pv
+Apda   |char*  |savesharedpvn  |NN const char *const pv|const STRLEN len
 Apda   |char*  |savesvpv       |NN SV* sv
 Ap     |void   |savestack_grow
 Ap     |void   |savestack_grow_cnt     |I32 need
@@ -758,7 +772,7 @@ Ap  |char*  |screaminstr    |NN SV *bigstr|NN SV *littlestr|I32 start_shift \
 #if !defined(VMS)
 p      |I32    |setenv_getix   |NN const char* nam
 #endif
-p      |void   |setdefout      |NULLOK GV* gv
+EXp    |void   |setdefout      |NULLOK GV* gv
 Ap     |HEK*   |share_hek      |NN const char* str|I32 len|U32 hash
 #if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
 np     |Signal_t |sighandler   |int sig|...
@@ -901,7 +915,7 @@ Apd |I32    |unpack_str     |NN const char *pat|NN const char *patend|NN const char *s
 Apd    |I32    |unpackstring   |NN const char *pat|NN const char *patend|NN const char *s \
                                |NN const char *strend|U32 flags
 Ap     |void   |unsharepvn     |NULLOK const char* sv|I32 len|U32 hash
-XEp    |void   |unshare_hek    |NULLOK HEK* hek
+p      |void   |unshare_hek    |NULLOK HEK* hek
 #ifdef PERL_MAD
 p      |OP *   |utilize        |int aver|I32 floor|NULLOK OP* version \
                                |NN OP* idop|NULLOK OP* arg
@@ -938,7 +952,7 @@ Ap  |U8*    |uvchr_to_utf8_flags    |NN U8 *d|UV uv|UV flags
 Apd    |U8*    |uvuni_to_utf8_flags    |NN U8 *d|UV uv|UV flags
 Apd    |char*  |pv_uni_display |NN SV *dsv|NN const U8 *spv|STRLEN len|STRLEN pvlim|UV flags
 ApdR   |char*  |sv_uni_display |NN SV *dsv|NN SV *ssv|STRLEN pvlim|UV flags
-p      |void   |vivify_defelem |NN SV* sv
+EXp    |void   |vivify_defelem |NN SV* sv
 p      |void   |vivify_ref     |NN SV* sv|U32 to_what
 p      |I32    |wait4pid       |Pid_t pid|NN int* statusp|int flags
 p      |U32    |parse_unicode_opts|NN const char **popt
@@ -954,10 +968,9 @@ p  |void   |watch          |NN char** addr
 Ap     |I32    |whichsig       |NN const char* sig
 p      |void   |write_to_stderr|NN const char* message|int msglen
 p      |int    |yyerror        |NN const char* s
-p      |int    |yylex
+EXp    |int    |yylex
 p      |int    |yyparse
 p      |void   |parser_free    |NN const yy_parser *
-p      |yy_parser*|parser_dup  |NN const yy_parser *proto|NN CLONE_PARAMS* param
 p      |int    |yywarn         |NN const char* s
 #if defined(MYMALLOC)
 Ap     |void   |dump_mstats    |NN char* s
@@ -1004,9 +1017,12 @@ Apd     |char*  |pv_pretty      |NN SV *dsv|NN char const * const str\
 Afp    |void   |dump_indent    |I32 level|NN PerlIO *file|NN const char* pat|...
 Ap     |void   |dump_vindent   |I32 level|NN PerlIO *file|NN const char* pat \
                                |NULLOK va_list *args
-Ap     |void   |do_gv_dump     |I32 level|NN PerlIO *file|NN const char *name|NN GV *sv
-Ap     |void   |do_gvgv_dump   |I32 level|NN PerlIO *file|NN const char *name|NN GV *sv
-Ap     |void   |do_hv_dump     |I32 level|NN PerlIO *file|NN const char *name|NN HV *sv
+Ap     |void   |do_gv_dump     |I32 level|NN PerlIO *file|NN const char *name\
+                               |NULLOK GV *sv
+Ap     |void   |do_gvgv_dump   |I32 level|NN PerlIO *file|NN const char *name\
+                               |NULLOK GV *sv
+Ap     |void   |do_hv_dump     |I32 level|NN PerlIO *file|NN const char *name\
+                               |NULLOK HV *sv
 Ap     |void   |do_magic_dump  |I32 level|NN PerlIO *file|NN const MAGIC *mg|I32 nest \
                                |I32 maxnest|bool dumpops|STRLEN pvlim
 Ap     |void   |do_op_dump     |I32 level|NN PerlIO *file|NULLOK const OP *o
@@ -1054,12 +1070,15 @@ ApR     |GP*    |gp_dup         |NULLOK GP* gp|NN CLONE_PARAMS* param
 ApR    |MAGIC* |mg_dup         |NULLOK MAGIC* mg|NN CLONE_PARAMS* param
 ApR    |SV*    |sv_dup         |NULLOK const SV* sstr|NN CLONE_PARAMS* param
 Ap     |void   |rvpv_dup       |NN SV* dstr|NN const SV *sstr|NN CLONE_PARAMS* param
+Ap     |yy_parser*|parser_dup  |NN const yy_parser *proto|NN CLONE_PARAMS* param
+#endif
 Apa    |PTR_TBL_t*|ptr_table_new
 ApR    |void*  |ptr_table_fetch|NN PTR_TBL_t *tbl|NN const void *sv
 Ap     |void   |ptr_table_store|NN PTR_TBL_t *tbl|NULLOK const void *oldsv|NN void *newsv
 Ap     |void   |ptr_table_split|NN PTR_TBL_t *tbl
 Ap     |void   |ptr_table_clear|NULLOK PTR_TBL_t *tbl
 Ap     |void   |ptr_table_free|NULLOK PTR_TBL_t *tbl
+#if defined(USE_ITHREADS)
 #  if defined(HAVE_INTERP_INTERN)
 Ap     |void   |sys_intern_dup |NN struct interp_intern* src|NN struct interp_intern* dst
 #  endif
@@ -1072,10 +1091,6 @@ Ap       |void   |sys_intern_init
 ApR    |char * |custom_op_name |NN const OP* op
 ApR    |char * |custom_op_desc |NN const OP* op
 
-#if defined(PERL_OLD_COPY_ON_WRITE)
-pMX    |int    |sv_release_IVX |NN SV *sv
-#endif
-
 Adp    |void   |sv_nosharing   |NULLOK SV *sv
 Adpbm  |void   |sv_nolocking   |NULLOK SV *sv
 #ifdef NO_MATHOMS
@@ -1098,11 +1113,12 @@ sR      |I32    |do_trans_complex_utf8  |NN SV * const sv
 
 #if defined(PERL_IN_GV_C) || defined(PERL_DECL_PROT)
 s      |void   |gv_init_sv     |NN GV *gv|I32 sv_type
-s      |void   |require_errno  |NN GV *gv
+s      |HV*    |require_tie_mod|NN GV *gv|NN const char *varpv|NN SV* namesv \
+                               |NN const char *methpv|const U32 flags
 #endif
 
 : #if defined(PERL_IN_HV_C) || defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
-paRxo  |void*  |get_arena      |int svtype
+paRxo  |void*  |get_arena      |size_t svtype|U32 misc
 : #endif
 
 #if defined(PERL_IN_HV_C) || defined(PERL_DECL_PROT)
@@ -1159,6 +1175,7 @@ pR        |OP*    |ck_match       |NN OP *o
 pR     |OP*    |ck_method      |NN OP *o
 pR     |OP*    |ck_null        |NN OP *o
 pR     |OP*    |ck_open        |NN OP *o
+pR     |OP*    |ck_readline    |NN OP *o
 pR     |OP*    |ck_repeat      |NN OP *o
 pR     |OP*    |ck_require     |NN OP *o
 pR     |OP*    |ck_retarget    |NN OP *o
@@ -1178,6 +1195,12 @@ pR       |OP*    |ck_trunc       |NN OP *o
 pR     |OP*    |ck_unpack      |NN OP *o
 sRn    |bool   |is_handle_constructor|NN const OP *o|I32 numargs
 sR     |I32    |is_list_assignment|NULLOK const OP *o
+#  ifdef USE_ITHREADS
+so     |void   |forget_pmop    |NN PMOP *const o|U32 flags
+#  else
+so     |void   |forget_pmop    |NN PMOP *const o
+#  endif
+s      |void   |find_and_forget_pmops  |NN OP *o
 s      |void   |cop_free       |NN COP *cop
 s      |OP*    |modkids        |NULLOK OP *o|I32 type
 s      |OP*    |scalarboolean  |NN OP *o
@@ -1200,19 +1223,28 @@ s       |OP*    |newGIVWHENOP   |NULLOK OP* cond|NN OP *block \
                                |I32 enter_opcode|I32 leave_opcode \
                                |PADOFFSET entertarg
 s      |OP*    |ref_array_or_hash|NULLOK OP* cond
+s      |void   |process_special_blocks |NN const char *const fullname\
+                                       |NN GV *const gv|NN CV *const cv
 #endif
 #if defined(PL_OP_SLAB_ALLOC)
-Apa    |void*  |Slab_Alloc     |int m|size_t sz
+Apa    |void*  |Slab_Alloc     |size_t sz
 Ap     |void   |Slab_Free      |NN void *op
+#  if defined(PERL_DEBUG_READONLY_OPS)
+poxM   |void   |pending_Slabs_to_ro
+poxM   |OP *   |op_refcnt_inc  |NULLOK OP *o
+poxM   |PADOFFSET      |op_refcnt_dec  |NN OP *o
+#    if defined(PERL_IN_OP_C)
+s      |void   |Slab_to_rw     |NN void *op
+#    endif
+#  endif
 #endif
 
 #if defined(PERL_IN_PERL_C) || defined(PERL_DECL_PROT)
-s      |void   |find_beginning
+s      |void   |find_beginning |NN SV* linestr_sv
 s      |void   |forbid_setid   |const char flag|const int suidscript
 s      |void   |incpush        |NULLOK const char *dir|bool addsubdirs|bool addoldvers|bool usesep|bool canrelocate
 s      |void   |init_interp
 s      |void   |init_ids
-s      |void   |init_lexer
 s      |void   |init_main_stash
 s      |void   |init_perllib
 s      |void   |init_postdump_symbols|int argc|NN char **argv|NULLOK char **env
@@ -1224,7 +1256,7 @@ s |int    |open_script    |NN const char *scriptname|bool dosearch \
 s      |void   |usage          |NN const char *name
 s      |void   |validate_suid  |NN const char *validarg \
                                |NN const char *scriptname|int fdscript \
-                               |int suidscript
+                               |int suidscript|NN SV* linestr_sv
 #  if defined(IAMSUID)
 s      |int    |fd_on_nosuid_fs|int fd
 #  endif
@@ -1236,6 +1268,10 @@ s        |SV *   |incpush_if_exists|NN SV *dir
 #if defined(PERL_IN_PP_C) || defined(PERL_DECL_PROT)
 sR     |SV*    |refto          |NN SV* sv
 #endif
+#if defined(PERL_IN_PP_C) || defined(PERL_IN_PP_HOT_C) || defined(PERL_DECL_PROT)
+pRxo   |GV*    |softref2xv     |NN SV *const sv|NN const char *const what \
+                               |const U32 type|NN SV ***spp
+#endif
 
 #if defined(PERL_IN_PP_PACK_C) || defined(PERL_DECL_PROT)
 s      |I32    |unpack_rec     |NN struct tempsym* symptr|NN const char *s \
@@ -1322,8 +1358,9 @@ Es        |void   |reginsert      |NN struct RExC_state_t *state|U8 op|NN regnode *opnd|U32 de
 Es     |void   |regtail        |NN struct RExC_state_t *state|NN regnode *p|NN const regnode *val|U32 depth
 Es     |SV *   |reg_scan_name  |NN struct RExC_state_t *state|U32 flags
 Es     |U32    |join_exact     |NN struct RExC_state_t *state|NN regnode *scan|NN I32 *min|U32 flags|NULLOK regnode *val|U32 depth
-EsRn   |char*  |regwhite       |NN char *p|NN const char *e
-Es     |char*  |nextchar       |NN struct RExC_state_t *state
+EsRn   |char * |regwhite       |NN struct RExC_state_t *state|NN char *p
+Es     |char * |nextchar       |NN struct RExC_state_t *state
+Es     |bool   |reg_skipcomment|NN struct RExC_state_t *state
 Es     |void   |scan_commit    |NN const struct RExC_state_t* state|NN struct scan_data_t *data|NN I32 *minlenp|int is_inf
 Esn    |void   |cl_anything    |NN const struct RExC_state_t* state|NN struct regnode_charclass_class *cl
 EsRn   |int    |cl_is_anything |NN const struct regnode_charclass_class *cl
@@ -1382,6 +1419,7 @@ ERsn      |U8*    |reghop4        |NN U8 *pos|I32 off|NN const U8 *llim|NN const U8 *rlim
 #endif
 ERsn   |U8*    |reghopmaybe3   |NN U8 *pos|I32 off|NN const U8 *lim
 ERs    |char*  |find_byclass   |NN regexp * prog|NN const regnode *c|NN char *s|NN const char *strend|NULLOK regmatch_info *reginfo
+Es     |void   |swap_match_buff|NN regexp * prog
 Es     |void   |to_utf8_substr |NN regexp * prog
 Es     |void   |to_byte_substr |NN regexp * prog
 ERs    |I32    |reg_check_named_buff_matched   |NN const regexp *rex|NN const regnode *prog
@@ -1442,16 +1480,14 @@ s       |STRLEN |sv_pos_b2u_midway|NN const U8 *s|NN const U8 *const target \
                |NN const U8 *end|STRLEN endu
 sn     |char * |F0convert      |NV nv|NN char *endbuf|NN STRLEN *len
 #  if defined(PERL_OLD_COPY_ON_WRITE)
-sM     |void   |sv_release_COW |NN SV *sv|NN const char *pvx|STRLEN len|NN SV *after
+sM     |void   |sv_release_COW |NN SV *sv|NN const char *pvx|NN SV *after
 #  endif
 s      |SV *   |more_sv
 s      |void * |more_bodies    |svtype sv_type
 s      |bool   |sv_2iuv_common |NN SV *sv
 s      |void   |glob_assign_glob|NN SV *dstr|NN SV *sstr|const int dtype
 s      |void   |glob_assign_ref|NN SV *dstr|NN SV *sstr
-#  if defined(USE_ITHREADS)
 sRn    |PTR_TBL_ENT_t *|ptr_table_find|NN PTR_TBL_t *tbl|NN const void *sv
-#  endif
 #endif
 
 #if defined(PERL_IN_TOKE_C) || defined(PERL_DECL_PROT)
@@ -1461,7 +1497,6 @@ s |char*  |force_version  |NN char *start|int guessing
 s      |char*  |force_word     |NN char *start|int token|int check_keyword \
                                |int allow_pack|int allow_tick
 s      |SV*    |tokeq          |NN SV *sv
-s      |int    |pending_ident
 s      |void   |readpipe_override|
 sR     |char*  |scan_const     |NN char *start
 sR     |char*  |scan_formline  |NN char *s
@@ -1475,15 +1510,15 @@ sR      |char*  |scan_subst     |NN char *start
 sR     |char*  |scan_trans     |NN char *start
 s      |char*  |scan_word      |NN char *s|NN char *dest|STRLEN destlen \
                                |int allow_package|NN STRLEN *slp
-s      |void   |update_debugger_info_pv|NN const char *buf|STRLEN len
-s      |void   |update_debugger_info_sv|NN SV *orig_sv
+s      |void   |update_debugger_info|NULLOK SV *orig_sv \
+                               |NULLOK const char *buf|STRLEN len
 sR     |char*  |skipspace      |NN char *s
 sR     |char*  |swallow_bom    |NN U8 *s
 s      |void   |checkcomma     |NN const char *s|NN const char *name \
                                |NN const char *what
 s      |bool   |feature_is_enabled|NN const char* name|STRLEN namelen
 s      |void   |force_ident    |NN const char *s|int kind
-s      |void   |incline        |NN char *s
+s      |void   |incline        |NN const char *s
 s      |int    |intuit_method  |NN char *s|NULLOK GV *gv|NULLOK CV *cv
 s      |int    |intuit_more    |NN char *s
 s      |I32    |lop            |I32 f|int x|NN char *s
@@ -1550,6 +1585,7 @@ Apd       |char*  |sv_pvn_force_flags|NN SV* sv|NULLOK STRLEN* lp|I32 flags
 Apd    |void   |sv_copypv      |NN SV* dsv|NN SV* ssv
 Ap     |char*  |my_atof2       |NN const char *s|NN NV* value
 Apn    |int    |my_socketpair  |int family|int type|int protocol|int fd[2]
+Ap     |int    |my_dirfd       |NULLOK DIR* dir
 #ifdef PERL_OLD_COPY_ON_WRITE
 pMXE   |SV*    |sv_setsv_cow   |NN SV* dsv|NN SV* ssv
 #endif
@@ -1815,6 +1851,23 @@ s        |void   |curmad         |char slot|NULLOK SV *sv
 Mp     |int    |madlex
 Mp     |int    |madparse
 #endif
+#if !defined(HAS_SIGNBIT)
+AMdnoP |int    |Perl_signbit   |NV f
+#endif
+
+XEMop  |void   |emulate_cop_io |NN const COP *const c|NN SV *const sv
+XEMop  |regexp *|get_re_arg|NULLOK SV *sv|U32 flags|NULLOK MAGIC **mgp
+
+p      |struct mro_meta*       |mro_meta_init  |NN HV* stash
+#if defined(USE_ITHREADS)
+p      |struct mro_meta*       |mro_meta_dup   |NN struct mro_meta* smeta|NN CLONE_PARAMS* param
+#endif
+Apd    |AV*    |mro_get_linear_isa|NN HV* stash
+Apd    |AV*    |mro_get_linear_isa_c3|NN HV* stash|I32 level
+Apd    |AV*    |mro_get_linear_isa_dfs|NN HV* stash|I32 level
+pd     |void   |mro_isa_changed_in|NN HV* stash
+Apd    |void   |mro_method_changed_in  |NN HV* stash
+p      |void   |boot_core_mro
 
 END_EXTERN_C
 /*