This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
gv.c: Added gv_init_(sv|pv|pvn), renamed gv_init_sv as gv_init_svtype.
[perl5.git] / embed.fnc
index 4bd6bdc..4b1ee0a 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
@@ -12,7 +12,7 @@
 :
 :   A  Member of public API:
 :
-:         add entry to global.sym (unless x or m);
+:         add entry to the list of exported symbols (unless x or m);
 :         any doc entry goes in perlapi.pod rather than perlintern.pod
 :         makes '#define foo Perl_foo' scope not just for PERL_CORE/PERL_EXT
 :
@@ -23,7 +23,7 @@
 :   b  Binary backward compatibility; function is a macro
 :      but has also Perl_ implementation (which is exported):
 :
-:         add entry to global.sym;
+:         add entry to the list of exported symbols;
 :         don't define PERL_ARGS_ASSERT_FOO
 :
 :   D  Function is deprecated:
@@ -59,7 +59,7 @@
 :   m  Implemented as a macro:
 :
 :         suppress proto.h entry
-:         suppress global.sym entry
+:         suppress entry in the list of exported symbols
 :         suppress embed.h entry
 :
 :   n  Has no implicit interpreter/thread context argument:
 :
 :   X  Explicitly exported:
 :
-:         add entry to global.sym, unless x or m
+:         add entry to the list of exported symbols, unless x or m
 :
 :   x  Not exported
 :
-:         suppress entry in global.sym
+:         suppress entry in the list of exported symbols
 :
 : (see also L<perlguts/Internal Functions> for those flags.)
 :
@@ -263,11 +263,16 @@ Afnp      |void   |sv_setpvf_mg_nocontext|NN SV *const sv|NN const char *const pat|...
 Afnp   |int    |fprintf_nocontext|NN PerlIO *stream|NN const char *format|...
 Afnp   |int    |printf_nocontext|NN const char *format|...
 #endif
+: Used in pp.c
+p      |SV *   |core_prototype |NULLOK SV *sv|NN const char *name \
+                               |const int code|NULLOK int * const opnum
+: Used in gv.c
+p      |OP *   |coresub_op     |NN SV *coreargssv|const int code \
+                               |const int opnum
 : Used in sv.c
 p      |void   |cv_ckproto_len |NN const CV* cv|NULLOK const GV* gv\
                                |NULLOK const char* p|const STRLEN len
 : Used in pp.c and pp_sys.c
-pd     |CV*    |cv_clone       |NN CV* proto
 ApdR   |SV*    |gv_const_sv    |NN GV* gv
 ApdR   |SV*    |cv_const_sv    |NULLOK const CV *const cv
 : Used in pad.c
@@ -312,7 +317,7 @@ Ap  |bool   |do_close       |NULLOK 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
+pm     |bool   |do_exec        |NN const char* cmd
 #else
 p      |bool   |do_exec        |NN const char* cmd
 #endif
@@ -346,6 +351,8 @@ p   |I32    |do_shmio       |I32 optype|NN SV** mark|NN SV** sp
 Ap     |void   |do_join        |NN SV *sv|NN SV *delim|NN SV **mark|NN SV **sp
 : Used in pp.c and pp_hot.c, prototype generated by regen/opcode.pl
 : p    |OP*    |do_kv
+: used in pp.c, pp_hot.c
+pR     |I32    |do_ncmp        |NN SV *const left|NN SV *const right
 Apmb   |bool   |do_open        |NN GV* gv|NN const char* name|I32 len|int as_raw \
                                |int rawmode|int rawperm|NULLOK PerlIO* supplied_fp
 Ap     |bool   |do_open9       |NN GV *gv|NN const char *name|I32 len|int as_raw \
@@ -399,6 +406,8 @@ p   |char*  |find_script    |NN const char *scriptname|bool dosearch \
                                |NULLOK const char *const *const search_ext|I32 flags
 #if defined(PERL_IN_OP_C)
 s      |OP*    |force_list     |NULLOK OP* arg
+i      |OP*    |op_integerize  |NN OP *o
+i      |OP*    |op_std_init    |NN OP *o
 : FIXME
 s      |OP*    |fold_constants |NN OP *o
 #endif
@@ -443,7 +452,11 @@ Ap |void   |gv_fullname4   |NN SV* sv|NN const GV* gv|NULLOK const char* prefix|bool
 pMox   |GP *   |newGP          |NN GV *const gv
 pX     |void   |cvgv_set       |NN CV* cv|NULLOK GV* gv
 pX     |void   |cvstash_set    |NN CV* cv|NULLOK HV* stash
-Ap     |void   |gv_init        |NN GV* gv|NULLOK HV* stash|NN const char* name|STRLEN len|int multi
+Ap     |void   |gv_init_sv     |NN GV* gv|NULLOK HV* stash|NN SV* namesv|int multi|U32 flags
+Ap     |void   |gv_init_pv     |NN GV* gv|NULLOK HV* stash|NN const char* name \
+                                |int multi|U32 flags
+Ap     |void   |gv_init_pvn    |NN GV* gv|NULLOK HV* stash|NN const char* name \
+                                |STRLEN len|int multi|U32 flags
 Ap     |void   |gv_name_set    |NN GV* gv|NN const char *name|U32 len|U32 flags
 XMpd   |void   |gv_try_downgrade|NN GV* gv
 Apd    |HV*    |gv_stashpv     |NN const char* name|I32 flags
@@ -517,9 +530,12 @@ AnpP       |I32    |foldEQ_locale  |NN const char* a|NN const char* b|I32 len
 Am     |I32    |ibcmp_utf8     |NN const char *s1|NULLOK char **pe1|UV l1 \
                                |bool u1|NN const char *s2|NULLOK char **pe2 \
                                |UV l2|bool u2
-Apd    |I32    |foldEQ_utf8    |NN const char *s1|NULLOK char **pe1|UV l1 \
+Amd    |I32    |foldEQ_utf8    |NN const char *s1|NULLOK char **pe1|UV l1 \
                                |bool u1|NN const char *s2|NULLOK char **pe2 \
                                |UV l2|bool u2
+AMp    |I32    |foldEQ_utf8_flags |NN const char *s1|NULLOK char **pe1|UV l1 \
+                               |bool u1|NN const char *s2|NULLOK char **pe2 \
+                               |UV l2|bool u2|U32 flags
 AnpP   |I32    |foldEQ_latin1  |NN const char* a|NN const char* b|I32 len
 #if defined(PERL_IN_DOIO_C)
 sR     |bool   |ingroup        |Gid_t testgid|bool effective
@@ -533,13 +549,14 @@ p |void   |init_debugger
 Ap     |void   |init_stacks
 Ap     |void   |init_tm        |NN struct tm *ptm
 : Used in perly.y
-pd     |U32    |intro_my
 AnpPR  |char*  |instr          |NN const char* big|NN const char* little
 : Used in sv.c
 p      |bool   |io_close       |NN IO* io|bool not_implicit
 : Used in perly.y
 pR     |OP*    |invert         |NULLOK OP* cmd
 ApR    |I32    |is_lvalue_sub
+: Used in cop.h
+XopR   |I32    |was_lvalue_sub
 ApPR   |U32    |to_uni_upper_lc|U32 c
 ApPR   |U32    |to_uni_title_lc|U32 c
 ApPR   |U32    |to_uni_lower_lc|U32 c
@@ -559,7 +576,8 @@ ApPR        |bool   |is_uni_xdigit  |UV c
 Ap     |UV     |to_uni_upper   |UV c|NN U8 *p|NN STRLEN *lenp
 Ap     |UV     |to_uni_title   |UV c|NN U8 *p|NN STRLEN *lenp
 Ap     |UV     |to_uni_lower   |UV c|NN U8 *p|NN STRLEN *lenp
-Ap     |UV     |to_uni_fold    |UV c|NN U8 *p|NN STRLEN *lenp
+Amp    |UV     |to_uni_fold    |UV c|NN U8 *p|NN STRLEN *lenp
+AMp    |UV     |_to_uni_fold_flags|UV c|NN U8 *p|NN STRLEN *lenp|U8 flags
 ApPR   |bool   |is_uni_alnum_lc|UV c
 ApPR   |bool   |is_uni_idfirst_lc|UV c
 ApPR   |bool   |is_uni_alpha_lc|UV c
@@ -580,7 +598,10 @@ Anpdmb     |bool   |is_utf8_string_loc|NN const U8 *s|STRLEN len|NULLOK const U8 **p
 Anpd   |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_idfirst|NN const U8 *p
+ApR    |bool   |is_utf8_xidfirst|NN const U8 *p
+EXpR   |bool   |_is_utf8__perl_idstart|NN const U8 *p
 ApR    |bool   |is_utf8_idcont |NN const U8 *p
+ApR    |bool   |is_utf8_xidcont        |NN const U8 *p
 ApR    |bool   |is_utf8_alpha  |NN const U8 *p
 ApR    |bool   |is_utf8_ascii  |NN const U8 *p
 ApR    |bool   |is_utf8_space  |NN const U8 *p
@@ -612,7 +633,7 @@ p   |OP*    |jmaybe         |NN OP *o
 pP     |I32    |keyword        |NN const char *name|I32 len|bool all_keywords
 #if defined(PERL_IN_OP_C)
 s      |OP*    |opt_scalarhv   |NN OP* rep_op
-s      |OP*    |is_inplace_av  |NN OP* o|NULLOK OP* oright
+s      |void   |inplace_aassign        |NN OP* o
 #endif
 Ap     |void   |leave_scope    |I32 base
 : Public lexer API
@@ -656,8 +677,10 @@ Ap |void   |vload_module|U32 flags|NN SV* name|NULLOK SV* ver|NULLOK va_list* args
 p      |OP*    |localize       |NN OP *o|I32 lex
 ApdR   |I32    |looks_like_number|NN SV *const sv
 Apd    |UV     |grok_bin       |NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV *result
-EXMpR  |char   |grok_bslash_c  |const char source|const bool output_warning
-EXMpR  |bool   |grok_bslash_o  |NN const char* s|NN UV* uv|NN STRLEN* len|NN const char** error_msg|const bool output_warning
+#ifdef PERL_IN_DQUOTE_STATIC_C
+EMsR   |char   |grok_bslash_c  |const char source|const bool utf8|const bool output_warning
+EMsR   |bool   |grok_bslash_o  |NN const char* s|NN UV* uv|NN STRLEN* len|NN const char** error_msg|const bool output_warning
+#endif
 Apd    |UV     |grok_hex       |NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV *result
 Apd    |int    |grok_number    |NN const char *pv|STRLEN len|NULLOK UV *valuep
 ApdR   |bool   |grok_numeric_radix|NN const char **sp|NN const char *send
@@ -743,9 +766,12 @@ 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 *ptm
-AMpd   |OP*    |op_lvalue      |NULLOK OP* o|I32 type
-: To be removed after 5.14 (see [perl #78908]):
-EXp    |OP*    |mod            |NULLOK OP* o|I32 type
+AMmd   |OP*    |op_lvalue      |NULLOK OP* o|I32 type
+poX    |OP*    |op_lvalue_flags|NULLOK OP* o|I32 type|U32 flags
+p      |void   |finalize_optree                |NN OP* o
+#if defined(PERL_IN_OP_C)
+s      |void   |finalize_op    |NN OP* o
+#endif
 : Used in op.c and pp_sys.c
 p      |int    |mode_from_discipline|NULLOK const char* s|STRLEN len
 Ap     |const char*    |moreswitches   |NN const char* s
@@ -770,8 +796,10 @@ AnpP       |I32    |my_memcmp      |NN const char* s1|NN const char* s2|I32 len
 #if !defined(HAS_MEMSET)
 Anp    |void*  |my_memset      |NN char* loc|I32 ch|I32 len
 #endif
+#if !defined(PERL_IMPLICIT_SYS)
 Ap     |I32    |my_pclose      |NULLOK PerlIO* ptr
 Ap     |PerlIO*|my_popen       |NN const char* cmd|NN const char* mode
+#endif
 Ap     |PerlIO*|my_popen_list  |NN const char* mode|int n|NN SV ** args
 Ap     |void   |my_setenv      |NULLOK const char* nam|NULLOK const char* val
 Apmb   |I32    |my_stat
@@ -787,6 +815,9 @@ p   |void   |my_unexec
 Apa    |OP*    |newANONLIST    |NULLOK OP* o
 Apa    |OP*    |newANONHASH    |NULLOK OP* o
 Ap     |OP*    |newANONSUB     |I32 floor|NULLOK OP* proto|NULLOK OP* block
+#if defined(PERL_IN_OP_C)
+i      |bool   |aassign_common_vars    |NULLOK OP* o
+#endif
 Apda   |OP*    |newASSIGNOP    |I32 flags|NULLOK OP* left|I32 optype|NULLOK OP* right
 Apda   |OP*    |newCONDOP      |I32 flags|NN OP* first|NULLOK OP* trueop|NULLOK OP* falseop
 Apd    |CV*    |newCONSTSUB    |NULLOK HV* stash|NULLOK const char* name|NULLOK SV* sv
@@ -858,6 +889,8 @@ Apd |CV*    |rv2cv_op_cv    |NN OP *cvop|U32 flags
 Apd    |OP*    |ck_entersub_args_list|NN OP *entersubop
 Apd    |OP*    |ck_entersub_args_proto|NN OP *entersubop|NN GV *namegv|NN SV *protosv
 Apd    |OP*    |ck_entersub_args_proto_or_list|NN OP *entersubop|NN GV *namegv|NN SV *protosv
+po     |OP*    |ck_entersub_args_core|NN OP *entersubop|NN GV *namegv \
+                                     |NN SV *protosv
 Apd    |void   |cv_get_call_checker|NN CV *cv|NN Perl_call_checker *ckfun_p|NN SV **ckobj_p
 Apd    |void   |cv_set_call_checker|NN CV *cv|NN Perl_call_checker ckfun|NN SV *ckobj
 Apa    |PERL_SI*|new_stackinfo|I32 stitems|I32 cxitems
@@ -887,32 +920,14 @@ p |void   |package        |NN OP* o
 #endif
 : Used in perly.y
 p      |void   |package_version|NN OP* v
-: Used in op.c
-pd     |PADOFFSET|pad_alloc    |I32 optype|U32 tmptype
 : Used in toke.c and perly.y
 p      |PADOFFSET|allocmy      |NN const char *const name|const STRLEN len\
                                |const U32 flags
-: Used in op.c and toke.c
-AMpdR  |PADOFFSET|pad_findmy   |NN const char* name|STRLEN len|U32 flags
-ApD    |PADOFFSET|find_rundefsvoffset  |
-: Used in pp.c
-Ap     |SV*    |find_rundefsv  |
 : Used in perly.y
 pR     |OP*    |oopsAV         |NN OP* o
 : Used in perly.y
 pR     |OP*    |oopsHV         |NN OP* o
-: Defined in pad.c, used only in op.c
-pd     |void   |pad_leavemy
-#ifdef DEBUGGING
-Apd    |SV*    |pad_sv         |PADOFFSET po
-#endif
-: Defined in pad.c, used only in op.c
-pd     |void   |pad_free       |PADOFFSET po
-#if defined(PERL_IN_PAD_C)
-sd     |void   |pad_reset
-#endif
-: Used in op.c
-pd     |void   |pad_swipe      |PADOFFSET po|bool refadjust
+
 : peephole optimiser
 p      |void   |peep           |NULLOK OP* o
 p      |void   |rpeep          |NULLOK OP* o
@@ -971,6 +986,11 @@ Ap |void   |regdump        |NN const regexp* r
 Ap     |SV*    |regclass_swash |NULLOK const regexp *prog \
                                |NN const struct regnode *node|bool doinit \
                                |NULLOK SV **listsvp|NULLOK SV **altsvp
+#ifdef PERL_IN_REGCOMP_C
+EMi    |U8     |set_regclass_bit|NN struct RExC_state_t* pRExC_state|NN regnode* node|const U8 value|NN SV** invlist_ptr|NN AV** alternate_ptr
+EMs    |U8     |set_regclass_bit_fold|NN struct RExC_state_t *pRExC_state|NN regnode* node|const U8 value|NN SV** invlist_ptr|NN AV** alternate_ptr
+EMs    |void   |add_alternate  |NN AV** alternate_ptr|NN U8* string|STRLEN len
+#endif
 Ap     |I32    |pregexec       |NN REGEXP * const prog|NN char* stringarg \
                                |NN char* strend|NN char* strbeg|I32 minend \
                                |NN SV* screamer|U32 nosave
@@ -1091,7 +1111,6 @@ Ap        |void   |save_padsv_and_mortalize|PADOFFSET off
 Ap     |void   |save_sptr      |NN SV** sptr
 Ap     |SV*    |save_svref     |NN SV** sptr
 Ap     |void   |save_pushptr   |NULLOK void *const ptr|const int type
-: Used by SAVECOPARYBASE() in op.c
 Ap     |void   |save_pushi32ptr|const I32 i|NULLOK void *const ptr|const int type
 : Used by SAVESWITCHSTACK() in pp.c
 Ap     |void   |save_pushptrptr|NULLOK void *const ptr1 \
@@ -1284,32 +1303,43 @@ Apd     |void   |sv_vsetpvfn    |NN SV *const sv|NN const char *const pat|const STRLEN pa
 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 *swash|NN const U8 *ptr|bool do_utf8
-EXMpR  |HV*    |_swash_inversion_hash  |NN SV* const swash
-EMpR   |HV*    |_new_invlist   |const IV initial_size
-EXMpR  |HV*    |_swash_to_invlist      |NN SV* const swash
-EMp    |void   |_append_range_to_invlist   |NN HV* const invlist|const UV start|const UV end
 #ifdef PERL_IN_REGCOMP_C
-EsMR   |HV*    |add_range_to_invlist   |NN HV* const invlist|const UV start|const UV end
-EiMR   |UV*    |invlist_array  |NN HV* const invlist
-EiM    |void   |invlist_destroy        |NN HV* const invlist
-EsM    |void   |invlist_extend    |NN HV* const invlist|const UV len
-EsMR   |HV*    |invlist_intersection   |NN HV* const a|NN HV* const b
-EiMR   |UV     |invlist_len    |NN HV* const invlist
-EiMR   |UV     |invlist_max    |NN HV* const invlist
-EiM    |void   |invlist_set_array      |NN HV* const invlist|NN const UV* const array
-EiM    |void   |invlist_set_len        |NN HV* const invlist|const UV len
-EiM    |void   |invlist_set_max        |NN HV* const invlist|const UV max
-EiM    |void   |invlist_trim   |NN HV* const invlist
-EsMR   |HV*    |invlist_union  |NN HV* const a|NN HV* const b
+EiMR   |SV*    |add_cp_to_invlist      |NULLOK SV* invlist|const UV cp
+EsMR   |SV*    |add_range_to_invlist   |NULLOK SV* invlist|const UV start|const UV end
+EiMR   |UV*    |_invlist_array_init    |NN SV* const invlist|const bool will_have_0
+EiMR   |UV*    |invlist_array  |NN SV* const invlist
+EsM    |void   |invlist_extend    |NN SV* const invlist|const UV len
+EiMR   |UV*    |get_invlist_len_addr   |NN SV* invlist
+EiMR   |UV*    |get_invlist_zero_addr  |NN SV* invlist
+EiMR   |UV     |invlist_len    |NN SV* const invlist
+EiMR   |UV     |invlist_max    |NN SV* const invlist
+EiM    |void   |invlist_set_len        |NN SV* const invlist|const UV len
+EiM    |void   |invlist_trim   |NN SV* const invlist
+EiMR   |SV*    |invlist_clone  |NN SV* const invlist
+EiMR   |UV*    |get_invlist_iter_addr  |NN SV* invlist
+EiM    |void   |invlist_iterinit|NN SV* invlist
+EsMR   |bool   |invlist_iternext|NN SV* invlist|NN UV* start|NN UV* end
+#endif
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_UTF8_C)
+EXpM   |void   |_invlist_intersection  |NN SV* const a|NN SV* const b|NN SV** i
+EXpM   |void   |_invlist_union |NN SV* const a|NN SV* const b|NN SV** output
+EXpM   |void   |_invlist_subtract|NN SV* const a|NN SV* const b|NN SV** result
+EXpM   |void   |_invlist_invert|NN SV* const invlist
+EXpM   |void   |_invlist_invert_prop|NN SV* const invlist
+EXMpR  |HV*    |_swash_inversion_hash  |NN SV* const swash
+EXMpR  |SV*    |_new_invlist   |IV initial_size
+EXMpR  |SV*    |_swash_to_invlist      |NN SV* const swash
+EXMp   |void   |_append_range_to_invlist   |NN SV* const invlist|const UV start|const UV end
 #endif
 Ap     |void   |taint_env
 Ap     |void   |taint_proper   |NULLOK const char* f|NN const char *const s
 Apd    |UV     |to_utf8_case   |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp \
-                               |NN SV **swashp|NN const char *normal|NN const char *special
+                               |NN SV **swashp|NN const char *normal|NULLOK const char *special
 Apd    |UV     |to_utf8_lower  |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp
 Apd    |UV     |to_utf8_upper  |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp
 Apd    |UV     |to_utf8_title  |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp
-Apd    |UV     |to_utf8_fold   |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp
+Ampd   |UV     |to_utf8_fold   |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp
+AMp    |UV     |_to_utf8_fold_flags|NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp|U8 flags
 #if defined(UNLINK_ALL_VERSIONS)
 Ap     |I32    |unlnk          |NN const char* f
 #endif
@@ -1364,7 +1394,7 @@ ApdR      |char*  |sv_uni_display |NN SV *dsv|NN SV *ssv|STRLEN pvlim|UV flags
 : Used by Data::Alias
 EXp    |void   |vivify_defelem |NN SV* sv
 : Used in pp.c
-p      |void   |vivify_ref     |NN SV* sv|U32 to_what
+pR     |SV*    |vivify_ref     |NN SV* sv|U32 to_what
 : Used in pp_sys.c
 p      |I32    |wait4pid       |Pid_t pid|NN int* statusp|int flags
 : Used in locale.c and perl.c
@@ -1560,7 +1590,7 @@ sR        |I32    |do_trans_complex_utf8  |NN SV * const sv
 #endif
 
 #if defined(PERL_IN_GV_C)
-s      |void   |gv_init_sv     |NN GV *gv|const svtype sv_type
+s      |void   |gv_init_svtype |NN GV *gv|const svtype sv_type
 s      |void   |gv_magicalize_isa      |NN GV *gv
 s      |void   |gv_magicalize_overload |NN GV *gv
 s      |HV*    |gv_get_super_pkg|NN const char* name|I32 namelen
@@ -1568,9 +1598,14 @@ 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)
+po     |SV*    |hfree_next_entry       |NN HV *hv|NN STRLEN *indexp
+#endif
+
 #if defined(PERL_IN_HV_C)
 s      |void   |hsplit         |NN HV *hv
 s      |void   |hfreeentries   |NN HV *hv
+s      |SV*    |hv_free_ent_ret|NN HV *hv|NULLOK HE *entryK
 sa     |HE*    |new_he
 sanR   |HEK*   |save_hek_flags |NN const char *str|I32 len|U32 hash|int flags
 sn     |void   |hv_magic_check |NN HV *hv|NN bool *needs_copy|NN bool *needs_store
@@ -1612,16 +1647,16 @@ sR      |OP*    |search_const   |NN OP *o
 sR     |OP*    |new_logop      |I32 type|I32 flags|NN OP **firstp|NN OP **otherp
 s      |void   |simplify_sort  |NN OP *o
 s      |const char*    |gv_ename       |NN GV *gv
-sRn    |bool   |scalar_mod_type|NN const OP *o|I32 type
+sRn    |bool   |scalar_mod_type|NULLOK const OP *o|I32 type
 s      |OP *   |my_kid         |NULLOK OP *o|NULLOK OP *attrs|NN OP **imopsp
 s      |OP *   |dup_attrlist   |NN OP *o
 s      |void   |apply_attrs    |NN HV *stash|NN SV *target|NULLOK OP *attrs|bool for_my
 s      |void   |apply_attrs_my |NN HV *stash|NN OP *target|NULLOK OP *attrs|NN OP **imopsp
 s      |void   |bad_type       |I32 n|NN const char *t|NN const char *name|NN const OP *kid
-s      |void   |no_bareword_allowed|NN const OP *o
+s      |void   |no_bareword_allowed|NN 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      |OP*    |too_many_arguments|NN OP *o|NN const char* name
 s      |bool   |looks_like_bool|NN const OP* o
 s      |OP*    |newGIVWHENOP   |NULLOK OP* cond|NN OP *block \
                                |I32 enter_opcode|I32 leave_opcode \
@@ -1669,7 +1704,9 @@ so        |void   |validate_suid  |NN PerlIO *rsfp
 
 s      |void*  |parse_body     |NULLOK char **env|XSINIT_t xsinit
 rs     |void   |run_body       |I32 oldscope
+#  ifndef PERL_IS_MINIPERL
 s      |SV *   |incpush_if_exists|NN AV *const av|NN SV *dir|NN SV *const stem
+#  endif
 #endif
 
 #if defined(PERL_IN_PP_C)
@@ -1704,7 +1741,7 @@ snR       |char * |bytes_to_uni   |NN const U8 *start|STRLEN len|NN char *dest
 #if defined(PERL_IN_PP_CTL_C)
 sR     |OP*    |docatch        |NULLOK OP *o
 sR     |OP*    |dofindlabel    |NN OP *o|NN const char *label|NN OP **opstack|NN OP **oplimit
-sR     |OP*    |doparseform    |NN SV *sv
+s      |MAGIC *|doparseform    |NN SV *sv
 snR    |bool   |num_overflow   |NV value|I32 fldsize|I32 frcsize
 sR     |I32    |dopoptoeval    |I32 startingblock
 sR     |I32    |dopoptogiven   |I32 startingblock
@@ -1718,12 +1755,14 @@ sR      |PerlIO *|check_type_and_open|NN SV *name
 #ifndef PERL_DISABLE_PMC
 sR     |PerlIO *|doopen_pm     |NN SV *name
 #endif
+s      |SV **  |adjust_stack_on_leave|NN SV **newsp|NN SV **sp|NN SV **mark|I32 gimme|U32 flags
 sRn    |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
+s      |OP*    |do_smartmatch  |NULLOK HV* seen_this \
+                               |NULLOK HV* seen_other|const bool copied
 #endif
 
 #if defined(PERL_IN_PP_HOT_C)
@@ -1772,7 +1811,7 @@ Es        |UV     |reg_recode     |const char value|NN SV **encp
 Es     |regnode*|regpiece      |NN struct RExC_state_t *pRExC_state \
                                |NN I32 *flagp|U32 depth
 Es     |regnode*|reg_namedseq  |NN struct RExC_state_t *pRExC_state \
-                               |NULLOK UV *valuep|NULLOK I32 *flagp
+                               |NULLOK UV *valuep|NULLOK I32 *flagp|U32 depth
 Es     |void   |reginsert      |NN struct RExC_state_t *pRExC_state \
                                |U8 op|NN regnode *opnd|U32 depth
 Es     |void   |regtail        |NN struct RExC_state_t *pRExC_state \
@@ -1793,8 +1832,6 @@ Esn       |void   |cl_anything    |NN const struct RExC_state_t *pRExC_state \
 EsRn   |int    |cl_is_anything |NN const struct regnode_charclass_class *cl
 Esn    |void   |cl_init        |NN const struct RExC_state_t *pRExC_state \
                                |NN struct regnode_charclass_class *cl
-Esn    |void   |cl_init_zero   |NN const struct RExC_state_t *pRExC_state \
-                               |NN struct regnode_charclass_class *cl
 Esn    |void   |cl_and         |NN struct regnode_charclass_class *cl \
                                |NN const struct regnode_charclass_class *and_with
 Esn    |void   |cl_or          |NN const struct RExC_state_t *pRExC_state \
@@ -2098,51 +2135,69 @@ s       |void   |deb_stack_n    |NN SV** stack_base|I32 stack_min \
                                |I32 stack_max|I32 mark_min|I32 mark_max
 #endif
 
-: Used in perl.c, pp_ctl.c, toke.c
-pda    |PADLIST*|pad_new       |int flags
-: Only used in op.c
-Mpd    |PADOFFSET|pad_add_name |NN const char *name|const STRLEN len\
+: pad API
+#ifdef PERL_MAD
+Mnpd   |void   |pad_peg        |NN const char* s
+#endif
+Apda   |PADLIST*|pad_new       |int flags
+#if defined(PERL_IN_PAD_C)
+s      |PADOFFSET|pad_alloc_name|NN SV *namesv|U32 flags \
+                               |NULLOK HV *typestash|NULLOK HV *ourstash
+#endif
+Apd    |PADOFFSET|pad_add_name_pvn|NN const char *namepv|STRLEN namelen\
+                               |U32 flags|NULLOK HV *typestash\
+                               |NULLOK HV *ourstash
+Apd    |PADOFFSET|pad_add_name_pv|NN const char *name\
                                |const U32 flags|NULLOK HV *typestash\
                                |NULLOK HV *ourstash
-: Only used in op.c
-pd     |PADOFFSET|pad_add_anon |NN SV* sv|OPCODE op_type
+Apd    |PADOFFSET|pad_add_name_sv|NN SV *name\
+                               |U32 flags|NULLOK HV *typestash\
+                               |NULLOK HV *ourstash
+AMpd   |PADOFFSET|pad_alloc    |I32 optype|U32 tmptype
+Apd    |PADOFFSET|pad_add_anon |NN CV* func|I32 optype
 #if defined(PERL_IN_PAD_C)
-sd     |void   |pad_check_dup  |NN SV *name|const U32 flags \
-                               |NULLOK const HV *ourstash
+sd     |void   |pad_check_dup  |NN SV *name|U32 flags|NULLOK const HV *ourstash
+#endif
+ApdR   |PADOFFSET|pad_findmy_pvn|NN const char* namepv|STRLEN namelen|U32 flags
+ApdR   |PADOFFSET|pad_findmy_pv|NN const char* name|U32 flags
+ApdR   |PADOFFSET|pad_findmy_sv|NN SV* name|U32 flags
+ApdD   |PADOFFSET|find_rundefsvoffset  |
+Apd    |SV*    |find_rundefsv  |
+: Used in pp.c
+p      |SV*    |find_rundefsv2 |NN CV *cv|U32 seq
+#if defined(PERL_IN_PAD_C)
+sd     |PADOFFSET|pad_findlex  |NN const char *namepv|STRLEN namelen|U32 flags \
+                               |NN const CV* cv|U32 seq|int warn \
+                               |NULLOK SV** out_capture|NN SV** out_name_sv \
+                               |NN int *out_flags
 #endif
 #ifdef DEBUGGING
-: Only used PAD_SETSV() in op.c
-pd     |void   |pad_setsv      |PADOFFSET po|NN SV* sv
+Apd    |SV*    |pad_sv         |PADOFFSET po
+Apd    |void   |pad_setsv      |PADOFFSET po|NN SV* sv
 #endif
-: Only used in op.c
 pd     |void   |pad_block_start|int full
-: Only used in op.c
-pd     |void   |pad_tidy       |padtidy_type type
-: Used in dump.c
-pd     |void   |do_dump_pad    |I32 level|NN PerlIO *file|NULLOK PADLIST *padlist|int full
-: Only used in op.c
-pd     |void   |pad_fixup_inner_anons|NN PADLIST *padlist|NN CV *old_cv|NN CV *new_cv
-
-: Used in pp_ctl.c, pp_hot.c, pp_sort.c
-pdX    |void   |pad_push       |NN PADLIST *padlist|int depth
-: Only used in PAD_COMPNAME_TYPE() in op.c
-pR     |HV*    |pad_compname_type|const PADOFFSET po
-: Used in sv.c
-#if defined(USE_ITHREADS)
-pR     |AV*    |padlist_dup    |NULLOK AV *const srcpad \
-                               |NN CLONE_PARAMS *const param
+pd     |U32    |intro_my
+pd     |void   |pad_leavemy
+pd     |void   |pad_swipe      |PADOFFSET po|bool refadjust
+#if defined(PERL_IN_PAD_C)
+sd     |void   |pad_reset
 #endif
-
+AMpd   |void   |pad_tidy       |padtidy_type type
+pd     |void   |pad_free       |PADOFFSET po
+pd     |void   |do_dump_pad    |I32 level|NN PerlIO *file|NULLOK PADLIST *padlist|int full
 #if defined(PERL_IN_PAD_C)
-sd     |PADOFFSET|pad_findlex  |NN const char *name|NN const CV* cv|U32 seq|int warn \
-                               |NULLOK SV** out_capture|NN SV** out_name_sv \
-                               |NN int *out_flags
-s      |PADOFFSET|pad_add_name_sv|NN SV *namesv|const U32 flags \
-                               |NULLOK HV *typestash|NULLOK HV *ourstash
 #  if defined(DEBUGGING)
 sd     |void   |cv_dump        |NN const CV *cv|NN const char *title
 #  endif
 #endif
+Apd    |CV*    |cv_clone       |NN CV* proto
+pd     |void   |pad_fixup_inner_anons|NN PADLIST *padlist|NN CV *old_cv|NN CV *new_cv
+pdX    |void   |pad_push       |NN PADLIST *padlist|int depth
+ApdR   |HV*    |pad_compname_type|const PADOFFSET po
+#if defined(USE_ITHREADS)
+pdR    |AV*    |padlist_dup    |NULLOK AV *srcpad|NN CLONE_PARAMS *param
+#endif
+
 ApdR   |CV*    |find_runcv     |NULLOK U32 *db_seqp
 : Only used in perl.c
 p      |void   |free_tied_hv_pool
@@ -2268,8 +2323,6 @@ np        |void   |my_swabn       |NN void* ptr|int n
 
 Ap     |GV*    |gv_fetchpvn_flags|NN const char* name|STRLEN len|I32 flags|const svtype sv_type
 Ap     |GV*    |gv_fetchsv|NN SV *name|I32 flags|const svtype sv_type
-: Only used in pp.c
-dpR    |bool   |is_gv_magical_sv|NN SV *const name_sv|U32 flags
 
 ApR    |bool   |stashpv_hvname_match|NN const COP *c|NN const HV *hv
 
@@ -2327,7 +2380,6 @@ Apno     |Size_t |my_strlcpy     |NULLOK char *dst|NULLOK const char *src|Size_t
 #endif
 
 #ifdef PERL_MAD
-Mnp    |void   |pad_peg        |NN const char* s
 #if defined(PERL_IN_DUMP_C)
 sf     |void   |xmldump_attr   |I32 level|NN PerlIO *file|NN const char* pat \
                                |...
@@ -2425,10 +2477,10 @@ p       |void   |boot_core_mro
 Apon   |void   |sys_init       |NN int* argc|NN char*** argv
 Apon   |void   |sys_init3      |NN int* argc|NN char*** argv|NN char*** env
 Apon   |void   |sys_term
-ApoM   |const char *|fetch_cop_label|NN COP *const cop \
+ApoM   |const char *|cop_fetch_label|NN COP *const cop \
                |NULLOK STRLEN *len|NULLOK U32 *flags
-: Only used  in op.c
-xpoM   |void|store_cop_label \
+: Only used  in op.c and the perl compiler
+ApoM   |void|cop_store_label \
                |NN COP *const cop|NN const char *label|STRLEN len|U32 flags
 
 xpo    |int    |keyword_plugin_standard|NN char* keyword_ptr|STRLEN keyword_len|NN OP** op_ptr