This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Avoid using space to create 2 functions just to force mathoms to be
[perl5.git] / embed.fnc
index 7c0c47a..4d46a2a 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
@@ -11,7 +11,7 @@
 :      d               function has documentation with its source
 :      s               static function, should have an S_ prefix in
 :                      source file; for macros (m), suffix the usage
-:                      example with a semicolon
+:                      example with a semicolon
 :      n               has no implicit interpreter/thread context argument
 :      p               function has a Perl_ prefix
 :      f               function takes printf style format string, varargs
@@ -28,6 +28,7 @@
 :      R               Return value must not be ignored.
 :      P               pure function: no effects except the return value;
 :                      return value depends only on parms and/or globals
+: (see also L<perlguts/Internal Functions> for those flags.)
 :
 : Pointer parameters that must not be passed NULLs should be prefixed with NN.
 :
@@ -95,22 +96,22 @@ p   |OP*    |append_elem    |I32 optype|NULLOK OP* first|NULLOK OP* last
 p      |OP*    |append_list    |I32 optype|NULLOK LISTOP* first|NULLOK LISTOP* last
 p      |I32    |apply          |I32 type|NN SV** mark|NN SV** sp
 ApM    |void   |apply_attrs_string|NN const char *stashpv|NN CV *cv|NN const char *attrstr|STRLEN len
-Apd    |void   |av_clear       |NULLOK AV* ar
-Apd    |SV*    |av_delete      |NULLOK AV* ar|I32 key|I32 flags
-ApdR   |bool   |av_exists      |NULLOK AV* ar|I32 key
+Apd    |void   |av_clear       |NN AV* ar
+Apd    |SV*    |av_delete      |NN AV* ar|I32 key|I32 flags
+ApdR   |bool   |av_exists      |NN AV* ar|I32 key
 Apd    |void   |av_extend      |NN AV* ar|I32 key
 pR     |AV*    |av_fake        |I32 size|NN SV** svp
-ApdR   |SV**   |av_fetch       |NULLOK AV* ar|I32 key|I32 lval
+ApdR   |SV**   |av_fetch       |NN AV* ar|I32 key|I32 lval
 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         |NULLOK AV* ar
-Apd    |void   |av_push        |NULLOK AV* ar|NN SV* val
+Apd    |SV*    |av_pop         |NN AV* ar
+Apd    |void   |av_push        |NN AV* ar|NN SV* val
 p      |void   |av_reify       |NN AV* ar
-ApdR   |SV*    |av_shift       |NULLOK AV* ar
-Apd    |SV**   |av_store       |NULLOK AV* ar|I32 key|NULLOK SV* val
-Apd    |void   |av_undef       |NULLOK AV* ar
-Apd    |void   |av_unshift     |NULLOK AV* ar|I32 num
+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
+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
 pR     |OP*    |block_end      |I32 floor|NULLOK OP* seq
@@ -119,7 +120,7 @@ pR  |int    |block_start    |int full
 p      |void   |boot_core_UNIVERSAL
 p      |void   |boot_core_PerlIO
 Ap     |void   |call_list      |I32 oldscope|NN AV* av_list
-pR     |bool   |cando          |Mode_t mode|Uid_t effective|NN const Stat_t* statbufp
+pR     |bool   |cando          |Mode_t mode|bool effective|NN const Stat_t* statbufp
 ApR    |U32    |cast_ulong     |NV f
 ApR    |I32    |cast_i32       |NV f
 ApR    |IV     |cast_iv        |NV f
@@ -150,6 +151,7 @@ Afnp        |int    |printf_nocontext|NN const char* fmt|...
 #endif
 p      |void   |cv_ckproto     |NN const CV* cv|NULLOK const GV* gv|NULLOK const char* p
 pd     |CV*    |cv_clone       |NN CV* proto
+ApdR   |SV*    |gv_const_sv    |NN GV* gv
 ApdR   |SV*    |cv_const_sv    |NULLOK CV* cv
 pR     |SV*    |op_const_sv    |NULLOK const OP* o|NULLOK CV* cv
 Apd    |void   |cv_undef       |NN CV* cv
@@ -183,7 +185,13 @@ Ap |int    |do_binmode     |NN PerlIO *fp|int iotype|int mode
 p      |void   |do_chop        |NN SV* asv|NN SV* sv
 Ap     |bool   |do_close       |NN GV* gv|bool not_implicit
 p      |bool   |do_eof         |NN GV* gv
+
+#ifdef PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION
 pmb    |bool   |do_exec        |NN const char* cmd
+#else
+p      |bool   |do_exec        |NN const char* cmd
+#endif
+
 #if defined(WIN32) || defined(__SYMBIAN32__)
 Ap     |int    |do_aspawn      |NN SV* really|NN SV** mark|NN SV** sp
 Ap     |int    |do_spawn       |NN char* cmd
@@ -263,7 +271,7 @@ Ap  |void   |gv_efullname4  |NN SV* sv|NN const GV* gv|NULLOK const char* prefix|boo
 Ap     |GV*    |gv_fetchfile   |NN const char* name
 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
-Apd    |GV*    |gv_fetchmethod |NULLOK HV* stash|NN const char* name
+Apdmb  |GV*    |gv_fetchmethod |NULLOK HV* stash|NN const char* name
 Apd    |GV*    |gv_fetchmethod_autoload|NULLOK HV* stash|NN const char* name|I32 autoload
 Ap     |GV*    |gv_fetchpv     |NN const char* name|I32 add|I32 sv_type
 Ap     |void   |gv_fullname    |NN SV* sv|NN const GV* gv
@@ -285,12 +293,12 @@ Ap        |void   |hv_free_ent    |NN HV* hv|NULLOK HE* entryK
 Apd    |I32    |hv_iterinit    |NN HV* tb
 ApdR   |char*  |hv_iterkey     |NN HE* entry|NN I32* retlen
 ApdR   |SV*    |hv_iterkeysv   |NN HE* entry
-ApdR   |HE*    |hv_iternext    |NN HV* tb
+ApdRbm |HE*    |hv_iternext    |NN HV* tb
 ApdR   |SV*    |hv_iternextsv  |NN HV* hv|NN char** key|NN I32* retlen
 ApMdR  |HE*    |hv_iternext_flags|NN HV* tb|I32 flags
 ApdR   |SV*    |hv_iterval     |NN HV* tb|NN HE* entry
 Ap     |void   |hv_ksplit      |NN HV* hv|IV newmax
-Apd    |void   |hv_magic       |NN HV* hv|NULLOK GV* gv|int how
+Apdbm  |void   |hv_magic       |NN HV* hv|NULLOK GV* gv|int how
 Apd    |SV**   |hv_store       |NULLOK HV* tb|NULLOK const char* key|I32 klen|NULLOK SV* val \
                                |U32 hash
 Apd    |HE*    |hv_store_ent   |NULLOK HV* tb|NULLOK SV* key|NULLOK SV* val|U32 hash
@@ -301,14 +309,14 @@ ApP       |I32    |ibcmp          |NN const char* a|NN const char* b|I32 len
 ApP    |I32    |ibcmp_locale   |NN const char* a|NN const char* b|I32 len
 Apd    |I32    |ibcmp_utf8     |NN const char* a|NULLOK char **pe1|UV l1|bool u1 \
                                |NN const char* b|NULLOK char **pe2|UV l2|bool u2
-pR     |bool   |ingroup        |Gid_t testgid|Uid_t effective
+pR     |bool   |ingroup        |Gid_t testgid|bool effective
 p      |void   |init_argv_symbols|int argc|NN char **argv
 p      |void   |init_debugger
 Ap     |void   |init_stacks
 Ap     |void   |init_tm        |NN struct tm *ptm
 pd     |U32    |intro_my
 ApPR   |char*  |instr          |NN const char* big|NN const char* little
-pR     |bool   |io_close       |NN IO* io|bool not_implicit
+p      |bool   |io_close       |NN IO* io|bool not_implicit
 pR     |OP*    |invert         |NULLOK OP* cmd
 dpR    |bool   |is_gv_magical  |NN const char *name|STRLEN len|U32 flags
 ApR    |I32    |is_lvalue_sub
@@ -349,7 +357,7 @@ ApPR        |bool   |is_uni_punct_lc|UV c
 ApPR   |bool   |is_uni_xdigit_lc|UV c
 Apd    |STRLEN |is_utf8_char   |NN const U8 *p
 Apd    |bool   |is_utf8_string |NN const U8 *s|STRLEN len
-Apd    |bool   |is_utf8_string_loc|NN const U8 *s|STRLEN len|NULLOK const U8 **p
+Apdmb  |bool   |is_utf8_string_loc|NN const U8 *s|STRLEN len|NULLOK const U8 **p
 Apd    |bool   |is_utf8_string_loclen|NN const U8 *s|STRLEN len|NULLOK const U8 **ep|NULLOK STRLEN *el
 ApR    |bool   |is_utf8_alnum  |NN const U8 *p
 ApR    |bool   |is_utf8_alnumc |NN const U8 *p
@@ -447,6 +455,7 @@ Afp |SV*    |mess           |NN const char* pat|...
 Ap     |SV*    |vmess          |NN const char* pat|NULLOK va_list* args
 p      |void   |qerror         |NN SV* err
 Apd    |void   |sortsv         |NN SV** array|size_t num_elts|SVCOMPARE_t cmp
+Apd    |void   |sortsv_flags   |NN SV** array|size_t num_elts|SVCOMPARE_t cmp|U32 flags
 Apd    |int    |mg_clear       |NN SV* sv
 Apd    |int    |mg_copy        |NN SV* sv|NN SV* nsv|NULLOK const char* key|I32 klen
 pd     |void   |mg_localize    |NN SV* sv|NN SV* nsv
@@ -503,6 +512,7 @@ Apd |CV*    |newCONSTSUB    |NULLOK HV* stash|NULLOK const char* name|NULLOK SV* sv
 Ap     |void   |newFORM        |I32 floor|NULLOK OP* o|NULLOK OP* block
 Apa    |OP*    |newFOROP       |I32 flags|NULLOK char* label|line_t forline \
                                |NULLOK OP* sv|NN OP* expr|NULLOK OP* block|NULLOK OP* cont
+Apa    |OP*    |newGIVENOP     |NN OP* cond|NN OP* block|PADOFFSET defsv_off
 Apa    |OP*    |newLOGOP       |I32 optype|I32 flags|NN OP* left|NN OP* right
 Apa    |OP*    |newLOOPEX      |I32 type|NN OP* label
 Apa    |OP*    |newLOOPOP      |I32 flags|I32 debuggable|NULLOK OP* expr|NULLOK OP* block
@@ -513,7 +523,7 @@ Apa |OP*    |newRANGE       |I32 flags|NN OP* left|NN OP* right
 Apa    |OP*    |newSLICEOP     |I32 flags|NULLOK OP* subscript|NULLOK OP* listop
 Apa    |OP*    |newSTATEOP     |I32 flags|NULLOK char* label|NULLOK OP* o
 Ap     |CV*    |newSUB         |I32 floor|NULLOK OP* o|NULLOK OP* proto|NULLOK OP* block
-Apd    |CV*    |newXS          |NN const char* name|NN XSUBADDR_t f|NN const char* filename
+Apd    |CV*    |newXS          |NULLOK const char* name|NN XSUBADDR_t f|NN const char* filename
 Apda   |AV*    |newAV
 Apa    |OP*    |newAVREF       |NN OP* o
 Apa    |OP*    |newBINOP       |I32 type|I32 flags|NULLOK OP* first|NULLOK OP* last
@@ -543,9 +553,10 @@ Apda       |SV*    |newSVhek       |NULLOK const HEK *hek
 Apda   |SV*    |newSVpvn_share |NULLOK const char* s|I32 len|U32 hash
 Afpda  |SV*    |newSVpvf       |NN const char* pat|...
 Apa    |SV*    |vnewSVpvf      |NN const char* pat|NULLOK va_list* args
-Apda   |SV*    |newSVrv        |NN SV* rv|NULLOK const char* classname
+Apd    |SV*    |newSVrv        |NN SV* rv|NULLOK const char* classname
 Apda   |SV*    |newSVsv        |NULLOK SV* old
 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
@@ -718,7 +729,7 @@ Anp |Signal_t |csighandler  |int sig|...
 np     |Signal_t |sighandler   |int sig
 Anp    |Signal_t |csighandler  |int sig
 #endif
-Ap     |SV**   |stack_grow     |NN SV** sp|NN SV**p|int n
+Ap     |SV**   |stack_grow     |NN SV** sp|NN SV** p|int n
 Ap     |I32    |start_subparse |I32 is_format|U32 flags
 p      |void   |sub_crush_depth|NN CV* cv
 Apd    |bool   |sv_2bool       |NN SV* sv
@@ -779,7 +790,7 @@ Apd |STRLEN |sv_len         |NULLOK SV* sv
 Apd    |STRLEN |sv_len_utf8    |NULLOK SV* sv
 Apd    |void   |sv_magic       |NN SV* sv|NULLOK SV* obj|int how|NULLOK const char* name \
                                |I32 namlen
-Apd    |MAGIC *|sv_magicext    |NN SV* sv|NULLOK SV* obj|int how|NULLOK const MGVTBL *vtbl \
+Apd    |MAGIC *|sv_magicext    |NN SV* sv|NULLOK SV* obj|int how|NULLOK MGVTBL *vtbl \
                                |NULLOK const char* name|I32 namlen
 ApdaR  |SV*    |sv_mortalcopy  |NULLOK SV* oldsv
 ApdR   |SV*    |sv_newmortal
@@ -827,7 +838,7 @@ Apd |void   |sv_vsetpvfn    |NN SV* sv|NN const char* pat|STRLEN patlen \
                                |NULLOK bool *maybe_tainted
 ApR    |NV     |str_to_version |NN SV *sv
 Ap     |SV*    |swash_init     |NN const char* pkg|NN const char* name|NN SV* listsv|I32 minbits|I32 none
-Ap     |UV     |swash_fetch    |NN SV *sv|NN const U8 *ptr|bool do_utf8
+Ap     |UV     |swash_fetch    |NN SV *swash|NN const U8 *ptr|bool do_utf8
 Ap     |void   |taint_env
 Ap     |void   |taint_proper   |NULLOK const char* f|NN const char* s
 Apd    |UV     |to_utf8_case   |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp \
@@ -857,10 +868,22 @@ ApMd      |U8*    |bytes_from_utf8|NN const U8 *s|NN STRLEN *len|NULLOK bool *is_utf8
 ApMd   |U8*    |bytes_to_utf8  |NN const U8 *s|NN STRLEN *len
 Apd    |UV     |utf8_to_uvchr  |NN const U8 *s|NULLOK STRLEN *retlen
 Apd    |UV     |utf8_to_uvuni  |NN const U8 *s|NULLOK STRLEN *retlen
+
+#ifdef EBCDIC
 Adp    |UV     |utf8n_to_uvchr |NN const U8 *s|STRLEN curlen|NULLOK STRLEN *retlen|U32 flags
+#else
+Adpbm  |UV     |utf8n_to_uvchr |NN const U8 *s|STRLEN curlen|NULLOK STRLEN *retlen|U32 flags
+#endif
+
 Adp    |UV     |utf8n_to_uvuni |NN const U8 *s|STRLEN curlen|NULLOK STRLEN *retlen|U32 flags
+
+#ifdef EBCDIC
 Apd    |U8*    |uvchr_to_utf8  |NN U8 *d|UV uv
-Ap     |U8*    |uvuni_to_utf8  |NN U8 *d|UV uv
+#else
+Apdbm  |U8*    |uvchr_to_utf8  |NN U8 *d|UV uv
+#endif
+
+Apbm   |U8*    |uvuni_to_utf8  |NN U8 *d|UV uv
 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
@@ -869,7 +892,7 @@ p   |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
-     |U32    |seed
+Ap     |U32    |seed
 pR     |UV     |get_hash_seed
 p      |void   |report_evil_fh |NULLOK const GV *gv|NULLOK const IO *io|I32 op
 pd     |void   |report_uninit  |NULLOK SV* uninit_sv
@@ -952,21 +975,21 @@ Apr       |void   |newMYSUB       |I32 floor|NULLOK OP *o|NULLOK OP *proto|NULLOK OP *attrs|NU
 p      |OP *   |my_attrs       |NN OP *o|NULLOK OP *attrs
 p      |void   |boot_core_xsutils
 #if defined(USE_ITHREADS)
-Apa    |PERL_CONTEXT*|cx_dup   |NULLOK PERL_CONTEXT* cx|I32 ix|I32 max|NN CLONE_PARAMS* param
-Apa    |PERL_SI*|si_dup        |NULLOK PERL_SI* si|NN CLONE_PARAMS* param
+ApR    |PERL_CONTEXT*|cx_dup   |NULLOK PERL_CONTEXT* cx|I32 ix|I32 max|NN CLONE_PARAMS* param
+ApR    |PERL_SI*|si_dup        |NULLOK PERL_SI* si|NN CLONE_PARAMS* param
 Apa    |ANY*   |ss_dup         |NN PerlInterpreter* proto_perl|NN CLONE_PARAMS* param
-Apa    |void*  |any_dup        |NULLOK void* v|NN const PerlInterpreter* proto_perl
-Apa    |HE*    |he_dup         |NULLOK const HE* e|bool shared|NN CLONE_PARAMS* param
-Apa    |HEK*   |hek_dup        |NULLOK HEK* e|NN CLONE_PARAMS* param
-Apa    |REGEXP*|re_dup         |NULLOK const REGEXP* r|NN CLONE_PARAMS* param
-Apa    |PerlIO*|fp_dup         |NULLOK PerlIO* fp|char type|NN CLONE_PARAMS* param
-Apa    |DIR*   |dirp_dup       |NULLOK DIR* dp
-Apa    |GP*    |gp_dup         |NULLOK GP* gp|NN CLONE_PARAMS* param
-Apa    |MAGIC* |mg_dup         |NULLOK MAGIC* mg|NN CLONE_PARAMS* param
-Apa    |SV*    |sv_dup         |NULLOK SV* sstr|NN CLONE_PARAMS* param
-Ap     |void   |rvpv_dup       |NN SV* dstr|NN SV *sstr|NN CLONE_PARAMS* param
+ApR    |void*  |any_dup        |NULLOK void* v|NN const PerlInterpreter* proto_perl
+ApR    |HE*    |he_dup         |NULLOK const HE* e|bool shared|NN CLONE_PARAMS* param
+ApR    |HEK*   |hek_dup        |NULLOK HEK* e|NN CLONE_PARAMS* param
+ApR    |REGEXP*|re_dup         |NULLOK const REGEXP* r|NN CLONE_PARAMS* param
+Ap     |PerlIO*|fp_dup         |NULLOK PerlIO* fp|char type|NN CLONE_PARAMS* param
+ApR    |DIR*   |dirp_dup       |NULLOK DIR* dp
+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
 Apa    |PTR_TBL_t*|ptr_table_new
-Apa    |void*  |ptr_table_fetch|NN PTR_TBL_t *tbl|NN const void *sv
+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
@@ -987,9 +1010,13 @@ ApR       |char * |custom_op_desc |NN const OP* op
 pMX    |int    |sv_release_IVX |NN SV *sv
 #endif
 
-Adp    |void   |sv_nosharing   |NULLOK SV *
-Adp    |void   |sv_nolocking   |NULLOK SV *
-Adp    |void   |sv_nounlocking |NULLOK SV *
+Adp    |void   |sv_nosharing   |NULLOK SV *sv
+Adpbm  |void   |sv_nolocking   |NULLOK SV *sv
+#ifdef NO_MATHOMS
+Adpbm  |void   |sv_nounlocking |NULLOK SV *sv
+#else
+Adpb   |void   |sv_nounlocking |NULLOK SV *sv
+#endif
 Adp    |int    |nothreadhook
 
 END_EXTERN_C
@@ -1066,6 +1093,7 @@ pR        |OP*    |ck_return      |NN OP *o
 pR     |OP*    |ck_rfun        |NN OP *o
 pR     |OP*    |ck_rvconst     |NN OP *o
 pR     |OP*    |ck_sassign     |NN OP *o
+pR     |OP*    |ck_say         |NN OP *o
 pR     |OP*    |ck_select      |NN OP *o
 pR     |OP*    |ck_shift       |NN OP *o
 pR     |OP*    |ck_sort        |NN OP *o
@@ -1095,6 +1123,11 @@ s        |void   |no_bareword_allowed|NN const OP *o
 sR     |OP*    |no_fh_allowed|NN OP *o
 sR     |OP*    |too_few_arguments|NN OP *o|NN const char* name
 sR     |OP*    |too_many_arguments|NN OP *o|NN const char* name
+s      |bool   |looks_like_bool|NN OP* o
+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
 #endif
 #if defined(PL_OP_SLAB_ALLOC)
 Apa    |void*  |Slab_Alloc     |int m|size_t sz
@@ -1124,6 +1157,7 @@ s |void*  |parse_body     |NULLOK char **env|XSINIT_t xsinit
 rs     |void   |run_body       |I32 oldscope
 s      |void   |call_body      |NN const OP *myop|bool is_eval
 s      |void*  |call_list_body |NN CV *cv
+s      |SV *   |incpush_if_exists|NN SV *dir
 #endif
 
 #if defined(PERL_IN_PP_C) || defined(PERL_DECL_PROT)
@@ -1143,6 +1177,7 @@ s |const char *|group_end |NN const char *pat|NN const char *patend|char ender
 sR     |const char *|get_num   |NN const char *ppat|NN I32 *lenptr
 ns     |bool   |need_utf8      |NN const char *pat|NN const char *patend
 ns     |char   |first_symbol   |NN const char *pat|NN const char *patend
+sR     |char * |sv_exp_grow    |NN SV *sv|STRLEN needed
 #endif
 
 #if defined(PERL_IN_PP_CTL_C) || defined(PERL_DECL_PROT)
@@ -1152,14 +1187,22 @@ sR      |OP*    |dofindlabel    |NN OP *o|NN const char *label|NN OP **opstack|NN OP **opli
 sR     |OP*    |doparseform    |NN SV *sv
 snR    |bool   |num_overflow   |NV value|I32 fldsize|I32 frcsize
 sR     |I32    |dopoptoeval    |I32 startingblock
+sR     |I32    |dopoptogiven   |I32 startingblock
 sR     |I32    |dopoptolabel   |NN const char *label
 sR     |I32    |dopoptoloop    |I32 startingblock
 sR     |I32    |dopoptosub     |I32 startingblock
 sR     |I32    |dopoptosub_at  |NN const PERL_CONTEXT* cxstk|I32 startingblock
+sR     |I32    |dopoptowhen    |I32 startingblock
 s      |void   |save_lines     |NULLOK AV *array|NN SV *sv
 sR     |OP*    |doeval         |int gimme|NULLOK OP** startop|NULLOK CV* outside|U32 seq
+sR     |PerlIO *|check_type_and_open|NN const char *name|NN const char *mode
 sR     |PerlIO *|doopen_pm     |NN const char *name|NN const char *mode
 sR     |bool   |path_is_absolute|NN const char *name
+sR     |I32    |run_user_filter|int idx|NN SV *buf_sv|int maxlen
+sR     |PMOP*  |make_matcher   |NN regexp* re
+sR     |bool   |matcher_matches_sv|NN PMOP* matcher|NN SV* sv
+s      |void   |destroy_matcher|NN PMOP* matcher
+s      |OP*    |do_smartmatch  |NULLOK HV* seen_this|NULLOK HV* seen_other
 #endif
 
 #if defined(PERL_IN_PP_HOT_C) || defined(PERL_DECL_PROT)
@@ -1168,6 +1211,18 @@ sR       |CV*    |get_db_sub     |NN SV **svp|NN CV *cv
 sR     |SV*    |method_common  |NN SV* meth|NULLOK U32* hashp
 #endif
 
+#if defined(PERL_IN_PP_SORT_C) || defined(PERL_DECL_PROT)
+s      |I32    |sv_ncmp        |NN SV *a|NN SV *b
+s      |I32    |sv_i_ncmp      |NN SV *a|NN SV *b
+s      |I32    |amagic_ncmp    |NN SV *a|NN SV *b
+s      |I32    |amagic_i_ncmp  |NN SV *a|NN SV *b
+s      |I32    |amagic_cmp     |NN SV *a|NN SV *b
+s      |I32    |amagic_cmp_locale|NN SV *a|NN SV *b
+s      |I32    |sortcv         |NN SV *a|NN SV *b
+s      |I32    |sortcv_xsub    |NN SV *a|NN SV *b
+s      |I32    |sortcv_stacked |NN SV *a|NN SV *b
+#endif
+
 #if defined(PERL_IN_PP_SYS_C) || defined(PERL_DECL_PROT)
 s      |OP*    |doform         |NN CV *cv|NN GV *gv|NN OP *retop
 s      |int    |emulate_eaccess|NN const char* path|Mode_t mode
@@ -1190,30 +1245,30 @@ Es      |void   |reginsert      |NN struct RExC_state_t *state|U8 op|NN regnode *opnd
 Es     |void   |regoptail      |NN struct RExC_state_t *state|NN regnode *p|NN regnode *val
 Es     |void   |regtail        |NN struct RExC_state_t *state|NN regnode *p|NN regnode *val
 Es     |char*  |regwhite       |NN char *p|NN const char *e
-Es     |char*  |nextchar       |NN struct RExC_state_t*
+Es     |char*  |nextchar       |NN struct RExC_state_t *state
 #  ifdef DEBUGGING
 Es     |regnode*|dumpuntil     |NN regnode *start|NN regnode *node \
                                |NULLOK regnode *last|NN SV* sv|I32 l
 Es     |void   |put_byte       |NN SV* sv|int c
 #  endif
-Es     |void   |scan_commit    |NN struct RExC_state_t*|NN struct scan_data_t *data
-Es     |void   |cl_anything    |NN struct RExC_state_t*|NN struct regnode_charclass_class *cl
+Es     |void   |scan_commit    |NN struct RExC_state_t* state|NN struct scan_data_t *data
+Es     |void   |cl_anything    |NN struct RExC_state_t* state|NN struct regnode_charclass_class *cl
 Es     |int    |cl_is_anything |NN const struct regnode_charclass_class *cl
-Es     |void   |cl_init        |NN struct RExC_state_t*|NN struct regnode_charclass_class *cl
-Es     |void   |cl_init_zero   |NN struct RExC_state_t*|NN struct regnode_charclass_class *cl
+Es     |void   |cl_init        |NN struct RExC_state_t* state|NN struct regnode_charclass_class *cl
+Es     |void   |cl_init_zero   |NN struct RExC_state_t* state|NN struct regnode_charclass_class *cl
 Es     |void   |cl_and         |NN struct regnode_charclass_class *cl \
                                |NN const struct regnode_charclass_class *and_with
-Es     |void   |cl_or          |NN struct RExC_state_t*|NN struct regnode_charclass_class *cl \
+Es     |void   |cl_or          |NN struct RExC_state_t* state|NN struct regnode_charclass_class *cl \
                                |NN const struct regnode_charclass_class *or_with
-Es     |I32    |study_chunk    |NN struct RExC_state_t* pRExC_state|NN regnode **scanp \
+Es     |I32    |study_chunk    |NN struct RExC_state_t* state|NN regnode **scanp \
                                |NN I32 *deltap|NN regnode *last|NULLOK struct scan_data_t *data \
                                |U32 flags|U32 depth
-Es     |I32    |add_data       |NN struct RExC_state_t*|I32 n|NN const char *s
+Es     |I32    |add_data       |NN struct RExC_state_t* state|I32 n|NN const char *s
 rs     |void   |re_croak2      |NN const char* pat1|NN const char* pat2|...
-Es     |I32    |regpposixcc    |NN struct RExC_state_t*|I32 value
-Es     |void   |checkposixcc   |NN struct RExC_state_t*
+Es     |I32    |regpposixcc    |NN struct RExC_state_t* state|I32 value
+Es     |void   |checkposixcc   |NN struct RExC_state_t* state
 
-Es     |I32    |make_trie      |NN struct RExC_state_t*|NN regnode *startbranch \
+Es     |I32    |make_trie      |NN struct RExC_state_t* state|NN regnode *startbranch \
                                |NN regnode *first|NN regnode *last|NN regnode *tail \
                                |U32 flags
 #endif
@@ -1227,7 +1282,6 @@ ERs       |bool   |reginclass     |NN const regnode *n|NN const U8 *p|NULLOK STRLEN *lenp\
                                |bool do_utf8sv_is_utf8
 Es     |CHECKPOINT|regcppush   |I32 parenfloor
 Es     |char*|regcppop
-Es     |char*|regcp_set_to     |I32 ss
 Es     |void   |cache_re       |NN regexp *prog
 ERs    |U8*    |reghop         |NN U8 *pos|I32 off
 ERs    |U8*    |reghop3        |NN U8 *pos|I32 off|NN U8 *lim
@@ -1241,6 +1295,8 @@ Es        |void   |to_byte_substr |NN regexp * prog
 #if defined(PERL_IN_DUMP_C) || defined(PERL_DECL_PROT)
 s      |CV*    |deb_curcv      |I32 ix
 s      |void   |debprof        |NN const OP *o
+s      |void   |sequence       |NULLOK const OP *o
+s      |UV     |sequence_num   |NULLOK const OP *o
 #endif
 
 #if defined(PERL_IN_SCOPE_C) || defined(PERL_DECL_PROT)
@@ -1251,10 +1307,12 @@ s       |SV*    |save_scalar_at |NN SV **sptr
 po     |void   |sv_add_backref |NN SV *tsv|NN SV *sv
 #endif
 
+#if defined(PERL_IN_HV_C) || defined(PERL_IN_MG_C) || defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
+poM    |int    |sv_kill_backrefs       |NN SV *sv|NN AV *av
+#endif
+
 #if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
 nsR    |char * |uiv_2buf       |NN char *buf|IV iv|UV uv|int is_uv|NN char **peob
-sR     |IV     |asIV           |NN SV* sv
-sR     |UV     |asUV           |NN SV* sv
 s      |void   |sv_unglob      |NN SV* sv
 s      |void   |not_a_number   |NN SV *sv
 s      |I32    |visit          |NN SVFUNC_t f|U32 flags|U32 mask
@@ -1276,6 +1334,8 @@ s |bool   |utf8_mg_pos    |NN SV *sv|NN MAGIC **mgp|NN STRLEN **cachep \
 s      |bool   |utf8_mg_pos_init       |NN SV *sv|NN MAGIC **mgp \
                                |NN STRLEN **cachep|I32 i|I32 offsetp \
                                |NN const U8 *s|NN const U8 *start
+s      |char * |stringify_regexp|NN SV *sv|NN MAGIC *mg|NULLOK STRLEN *lp
+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
 #endif
@@ -1304,9 +1364,10 @@ s        |char*  |scan_word      |NN char *s|NN char *dest|STRLEN destlen \
 sR     |char*  |skipspace      |NN char *s
 sR     |char*  |swallow_bom    |NN U8 *s
 s      |void   |checkcomma     |NN char *s|NN const char *name|NN const char *what
+s      |bool   |feature_is_enabled|NN char* name|STRLEN namelen
 s      |void   |force_ident    |NN const char *s|int kind
 s      |void   |incline        |NN char *s
-s      |int    |intuit_method  |NN char *s|NULLOK GV *gv
+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
 rs     |void   |missingterm    |NULLOK char *s
@@ -1317,17 +1378,17 @@ sR      |I32    |sublex_push
 sR     |I32    |sublex_start
 sR     |char * |filter_gets    |NN SV *sv|NN PerlIO *fp|STRLEN append
 sR     |HV *   |find_in_my_stash|NN const char *pkgname|I32 len
-sR     |char * |tokenize_use   |int|NN char*
+sR     |char * |tokenize_use   |int is_use|NN char *s
 s      |SV*    |new_constant   |NULLOK const char *s|STRLEN len|NN const char *key|NN SV *sv \
                                |NULLOK SV *pv|NULLOK const char *type
-#  if defined(DEBUGGING)
-s      |int    |tokereport     |NN const char *s|I32 rv
-#  endif
 s      |int    |ao             |int toketype
-s      |void   |depcom
 s      |const char*|incl_perldb
 #  if defined(PERL_CR_FILTER)
 s      |I32    |cr_textfilter  |int idx|NULLOK SV *sv|int maxlen
+s      |void   |strip_return   |NN SV *sv
+#  endif
+#  if defined(DEBUGGING)
+s      |int    |tokereport     |I32 rv
 #  endif
 #endif
 
@@ -1346,7 +1407,9 @@ s |COP*   |closest_cop    |NN COP *cop|NULLOK const OP *o
 s      |SV*    |mess_alloc
 s      |const char *|vdie_croak_common|NULLOK const char *pat|NULLOK va_list *args \
                                |NULLOK STRLEN *msglen|NULLOK I32* utf8
-s      |void   |vdie_common    |NULLOK const char *message|STRLEN msglen|I32 utf8
+s      |bool   |vdie_common    |NULLOK const char *message|STRLEN msglen\
+                               |I32 utf8|bool warn
+sr     |char * |write_no_mem
 #endif
 
 #if defined(PERL_IN_NUMERIC_C) || defined(PERL_DECL_PROT)
@@ -1355,6 +1418,8 @@ sn        |NV|mulexp10    |NV value|I32 exponent
 
 #if defined(PERL_IN_UTF8_C) || defined(PERL_DECL_PROT)
 s      |STRLEN |is_utf8_char_slow|NN const U8 *s|const STRLEN len
+sR     |bool   |is_utf8_common |NN const U8 *const p|NN SV **swash|NN const char * const swashname
+sR     |SV*    |swash_get      |NN SV* swash|UV start|UV span
 #endif
 
 START_EXTERN_C
@@ -1418,7 +1483,7 @@ pd        |void   |pad_tidy       |padtidy_type type
 pd     |void   |do_dump_pad    |I32 level|NN PerlIO *file|NULLOK PADLIST *padlist|int full
 pd     |void   |pad_fixup_inner_anons|NN PADLIST *padlist|NN CV *old_cv|NN CV *new_cv
 
-pd     |void   |pad_push       |NN PADLIST *padlist|int depth
+pdX    |void   |pad_push       |NN PADLIST *padlist|int depth
 pR     |HV*    |pad_compname_type|const PADOFFSET po
 
 #if defined(PERL_IN_PAD_C) || defined(PERL_DECL_PROT)
@@ -1443,6 +1508,10 @@ ApoR     |HE**   |hv_eiter_p     |NN HV* hv
 Apo    |void   |hv_riter_set   |NN HV* hv|I32 riter
 Apo    |void   |hv_eiter_set   |NN HV* hv|NULLOK HE* eiter
 Ap     |void   |hv_name_set    |NN HV* hv|NULLOK const char *name|I32 len|int flags
+poM    |AV**   |hv_backreferences_p    |NN HV* hv
+#if defined(PERL_IN_DUMP_C) || defined(PERL_IN_HV_C) || defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
+poM    |void   |hv_kill_backrefs       |NN HV* hv
+#endif
 Apd    |void   |hv_clear_placeholders  |NN HV* hb
 ApoR   |I32*   |hv_placeholders_p      |NN HV* hv
 ApoR   |I32    |hv_placeholders_get    |NN HV* hv
@@ -1551,6 +1620,13 @@ p        |void   |offer_nice_chunk       |NN void *chunk|U32 chunk_size
 Apnod  |int    |my_sprintf     |NN char *buffer|NN const char *pat|...
 #endif
 
+px     |void   |my_clearenv
+
+#ifdef PERL_IMPLICIT_CONTEXT
+Apo    |void*  |my_cxt_init    |NN int *index|size_t size
+#endif
+
+
 END_EXTERN_C
 /*
  * ex: set ts=8 sts=4 sw=4 noet: