This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
remove binary compat from #23156 (remove PL_retstack)
[perl5.git] / embed.fnc
index c59106a..8ca6b0e 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
@@ -6,18 +6,24 @@
 :
 : flags are single letters with following meanings:
 :      A               member of public API
 :
 : flags are single letters with following meanings:
 :      A               member of public API
-:      m               Implemented as a macro - no export, no proto, no #define
+:      m               Implemented as a macro - no export, no
+:                      proto, no #define
 :      d               function has documentation with its source
 :      d               function has documentation with its source
-:      s               static function, should have an S_ prefix in source
-:                              file
+:      s               static function, should have an S_ prefix in
+:                      source file; for macros (m), suffix the usage
+:                      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
 :      r               function never returns
 :      n               has no implicit interpreter/thread context argument
 :      p               function has a Perl_ prefix
 :      f               function takes printf style format string, varargs
 :      r               function never returns
-:       o              has no compatibility macro (#define foo Perl_foo)
-:       x              not exported
-:       M              may change
-:       E              visible to Perl core extensions
+:      o               has no compatibility macro (#define foo Perl_foo)
+:      x               not exported
+:      X               explicitly exported
+:      M               may change
+:      E               visible to extensions included in the Perl core
+:      b               binary backward compatibility; function is a macro
+:                      but has also Perl_ implementation (which is exported)
+:      U               suppress usage example in autogenerated documentation
 :
 : Individual flags may be separated by whitespace.
 :
 :
 : Individual flags may be separated by whitespace.
 :
@@ -41,8 +47,9 @@ Anod  |void   |perl_free      |PerlInterpreter* interp
 Anod   |int    |perl_run       |PerlInterpreter* interp
 Anod   |int    |perl_parse     |PerlInterpreter* interp|XSINIT_t xsinit \
                                |int argc|char** argv|char** env
 Anod   |int    |perl_run       |PerlInterpreter* interp
 Anod   |int    |perl_parse     |PerlInterpreter* interp|XSINIT_t xsinit \
                                |int argc|char** argv|char** env
+Anp    |bool   |doing_taint    |int argc|char** argv|char** env
 #if defined(USE_ITHREADS)
 #if defined(USE_ITHREADS)
-Anod   |PerlInterpreter*|perl_clone|PerlInterpreter* interpUV flags
+Anod   |PerlInterpreter*|perl_clone|PerlInterpreter* interp|UV flags
 #  if defined(PERL_IMPLICIT_SYS)
 Ano    |PerlInterpreter*|perl_clone_using|PerlInterpreter *interp|UV flags \
                                |struct IPerlMem* m|struct IPerlMem* ms \
 #  if defined(PERL_IMPLICIT_SYS)
 Ano    |PerlInterpreter*|perl_clone_using|PerlInterpreter *interp|UV flags \
                                |struct IPerlMem* m|struct IPerlMem* ms \
@@ -332,6 +339,7 @@ Ap  |bool   |is_uni_punct_lc|UV c
 Ap     |bool   |is_uni_xdigit_lc|UV c
 Apd    |STRLEN |is_utf8_char   |U8 *p
 Apd    |bool   |is_utf8_string |U8 *s|STRLEN len
 Ap     |bool   |is_uni_xdigit_lc|UV c
 Apd    |STRLEN |is_utf8_char   |U8 *p
 Apd    |bool   |is_utf8_string |U8 *s|STRLEN len
+Apd    |bool   |is_utf8_string_loc|U8 *s|STRLEN len|U8 **p
 Ap     |bool   |is_utf8_alnum  |U8 *p
 Ap     |bool   |is_utf8_alnumc |U8 *p
 Ap     |bool   |is_utf8_idfirst|U8 *p
 Ap     |bool   |is_utf8_alnum  |U8 *p
 Ap     |bool   |is_utf8_alnumc |U8 *p
 Ap     |bool   |is_utf8_idfirst|U8 *p
@@ -408,6 +416,7 @@ p   |int    |magic_setmglob |SV* sv|MAGIC* mg
 p      |int    |magic_setnkeys |SV* sv|MAGIC* mg
 p      |int    |magic_setpack  |SV* sv|MAGIC* mg
 p      |int    |magic_setpos   |SV* sv|MAGIC* mg
 p      |int    |magic_setnkeys |SV* sv|MAGIC* mg
 p      |int    |magic_setpack  |SV* sv|MAGIC* mg
 p      |int    |magic_setpos   |SV* sv|MAGIC* mg
+p      |int    |magic_setregexp|SV* sv|MAGIC* mg
 p      |int    |magic_setsig   |SV* sv|MAGIC* mg
 p      |int    |magic_setsubstr|SV* sv|MAGIC* mg
 p      |int    |magic_settaint |SV* sv|MAGIC* mg
 p      |int    |magic_setsig   |SV* sv|MAGIC* mg
 p      |int    |magic_setsubstr|SV* sv|MAGIC* mg
 p      |int    |magic_settaint |SV* sv|MAGIC* mg
@@ -527,11 +536,12 @@ Ap        |OP*    |newWHILEOP     |I32 flags|I32 debuggable|LOOP* loop \
                                |I32 whileline|OP* expr|OP* block|OP* cont
 
 Ap     |PERL_SI*|new_stackinfo|I32 stitems|I32 cxitems
                                |I32 whileline|OP* expr|OP* block|OP* cont
 
 Ap     |PERL_SI*|new_stackinfo|I32 stitems|I32 cxitems
-Apd    |char*  |scan_vstring   |char *vstr|SV *sv
-Apd    |char*  |scan_version   |char *vstr|SV *sv
+Ap     |char*  |scan_vstring   |char *vstr|SV *sv
+Apd    |char*  |scan_version   |char *vstr|SV *sv|bool qv
 Apd    |SV*    |new_version    |SV *ver
 Apd    |SV*    |upg_version    |SV *ver
 Apd    |SV*    |vnumify        |SV *vs
 Apd    |SV*    |new_version    |SV *ver
 Apd    |SV*    |upg_version    |SV *ver
 Apd    |SV*    |vnumify        |SV *vs
+Apd    |SV*    |vnormal        |SV *vs
 Apd    |SV*    |vstringify     |SV *vs
 Apd    |int    |vcmp           |SV *lvs|SV *rvs
 p      |PerlIO*|nextargv       |GV* gv
 Apd    |SV*    |vstringify     |SV *vs
 Apd    |int    |vcmp           |SV *lvs|SV *rvs
 p      |PerlIO*|nextargv       |GV* gv
@@ -543,6 +553,7 @@ p   |void   |package        |OP* o
 pd     |PADOFFSET|pad_alloc    |I32 optype|U32 tmptype
 p      |PADOFFSET|allocmy      |char* name
 pd     |PADOFFSET|pad_findmy   |char* name
 pd     |PADOFFSET|pad_alloc    |I32 optype|U32 tmptype
 p      |PADOFFSET|allocmy      |char* name
 pd     |PADOFFSET|pad_findmy   |char* name
+Ap     |PADOFFSET|find_rundefsvoffset  |
 p      |OP*    |oopsAV         |OP* o
 p      |OP*    |oopsHV         |OP* o
 pd     |void   |pad_leavemy
 p      |OP*    |oopsAV         |OP* o
 p      |OP*    |oopsHV         |OP* o
 pd     |void   |pad_leavemy
@@ -580,14 +591,13 @@ Ap        |void   |set_numeric_radix
 Ap     |void   |set_numeric_standard
 Apd    |void   |require_pv     |const char* pv
 Apd    |void   |pack_cat       |SV *cat|char *pat|char *patend|SV **beglist|SV **endlist|SV ***next_in_list|U32 flags
 Ap     |void   |set_numeric_standard
 Apd    |void   |require_pv     |const char* pv
 Apd    |void   |pack_cat       |SV *cat|char *pat|char *patend|SV **beglist|SV **endlist|SV ***next_in_list|U32 flags
+Apd    |void   |packlist       |SV *cat|char *pat|char *patend|SV **beglist|SV **endlist
 p      |void   |pidgone        |Pid_t pid|int status
 Ap     |void   |pmflag         |U32* pmfl|int ch
 p      |OP*    |pmruntime      |OP* pm|OP* expr|OP* repl
 p      |OP*    |pmtrans        |OP* o|OP* expr|OP* repl
 p      |void   |pidgone        |Pid_t pid|int status
 Ap     |void   |pmflag         |U32* pmfl|int ch
 p      |OP*    |pmruntime      |OP* pm|OP* expr|OP* repl
 p      |OP*    |pmtrans        |OP* o|OP* expr|OP* repl
-p      |OP*    |pop_return
 Ap     |void   |pop_scope
 p      |OP*    |prepend_elem   |I32 optype|OP* head|OP* tail
 Ap     |void   |pop_scope
 p      |OP*    |prepend_elem   |I32 optype|OP* head|OP* tail
-p      |void   |push_return    |OP* o
 Ap     |void   |push_scope
 p      |OP*    |ref            |OP* o|I32 type
 p      |OP*    |refkids        |OP* o|I32 type
 Ap     |void   |push_scope
 p      |OP*    |ref            |OP* o|I32 type
 p      |OP*    |refkids        |OP* o|I32 type
@@ -624,6 +634,7 @@ Apd |char*  |savepv         |const char* pv
 Apd    |char*  |savesharedpv   |const char* pv
 Apd    |char*  |savepvn        |const char* pv|I32 len
 Ap     |void   |savestack_grow
 Apd    |char*  |savesharedpv   |const char* pv
 Apd    |char*  |savepvn        |const char* pv|I32 len
 Ap     |void   |savestack_grow
+Ap     |void   |savestack_grow_cnt     |I32 need
 Ap     |void   |save_aelem     |AV* av|I32 idx|SV **sptr
 Ap     |I32    |save_alloc     |I32 size|I32 pad
 Ap     |void   |save_aptr      |AV** aptr
 Ap     |void   |save_aelem     |AV* av|I32 idx|SV **sptr
 Ap     |I32    |save_alloc     |I32 size|I32 pad
 Ap     |void   |save_aptr      |AV** aptr
@@ -681,20 +692,23 @@ p |I32    |setenv_getix   |char* nam
 p      |void   |setdefout      |GV* gv
 p      |HEK*   |share_hek      |const char* sv|I32 len|U32 hash
 np     |Signal_t |sighandler   |int sig
 p      |void   |setdefout      |GV* gv
 p      |HEK*   |share_hek      |const char* sv|I32 len|U32 hash
 np     |Signal_t |sighandler   |int sig
+Anp    |Signal_t |csighandler  |int sig
 Ap     |SV**   |stack_grow     |SV** sp|SV**p|int n
 Ap     |I32    |start_subparse |I32 is_format|U32 flags
 p      |void   |sub_crush_depth|CV* cv
 Apd    |bool   |sv_2bool       |SV* sv
 Apd    |CV*    |sv_2cv         |SV* sv|HV** st|GV** gvp|I32 lref
 Apd    |IO*    |sv_2io         |SV* sv
 Ap     |SV**   |stack_grow     |SV** sp|SV**p|int n
 Ap     |I32    |start_subparse |I32 is_format|U32 flags
 p      |void   |sub_crush_depth|CV* cv
 Apd    |bool   |sv_2bool       |SV* sv
 Apd    |CV*    |sv_2cv         |SV* sv|HV** st|GV** gvp|I32 lref
 Apd    |IO*    |sv_2io         |SV* sv
-Apd    |IV     |sv_2iv         |SV* sv
+Amb    |IV     |sv_2iv         |SV* sv
+Apd    |IV     |sv_2iv_flags   |SV* sv|I32 flags
 Apd    |SV*    |sv_2mortal     |SV* sv
 Apd    |NV     |sv_2nv         |SV* sv
 Apd    |SV*    |sv_2mortal     |SV* sv
 Apd    |NV     |sv_2nv         |SV* sv
-Am     |char*  |sv_2pv         |SV* sv|STRLEN* lp
+Amb    |char*  |sv_2pv         |SV* sv|STRLEN* lp
 Apd    |char*  |sv_2pvutf8     |SV* sv|STRLEN* lp
 Apd    |char*  |sv_2pvbyte     |SV* sv|STRLEN* lp
 Ap     |char*  |sv_pvn_nomg    |SV* sv|STRLEN* lp
 Apd    |char*  |sv_2pvutf8     |SV* sv|STRLEN* lp
 Apd    |char*  |sv_2pvbyte     |SV* sv|STRLEN* lp
 Ap     |char*  |sv_pvn_nomg    |SV* sv|STRLEN* lp
-Apd    |UV     |sv_2uv         |SV* sv
+Amb    |UV     |sv_2uv         |SV* sv
+Apd    |UV     |sv_2uv_flags   |SV* sv|I32 flags
 Apd    |IV     |sv_iv          |SV* sv
 Apd    |UV     |sv_uv          |SV* sv
 Apd    |NV     |sv_nv          |SV* sv
 Apd    |IV     |sv_iv          |SV* sv
 Apd    |UV     |sv_uv          |SV* sv
 Apd    |NV     |sv_nv          |SV* sv
@@ -708,8 +722,8 @@ Apd |SV*    |sv_bless       |SV* sv|HV* stash
 Afpd   |void   |sv_catpvf      |SV* sv|const char* pat|...
 Ap     |void   |sv_vcatpvf     |SV* sv|const char* pat|va_list* args
 Apd    |void   |sv_catpv       |SV* sv|const char* ptr
 Afpd   |void   |sv_catpvf      |SV* sv|const char* pat|...
 Ap     |void   |sv_vcatpvf     |SV* sv|const char* pat|va_list* args
 Apd    |void   |sv_catpv       |SV* sv|const char* ptr
-Amd    |void   |sv_catpvn      |SV* sv|const char* ptr|STRLEN len
-Amd    |void   |sv_catsv       |SV* dsv|SV* ssv
+Amdb   |void   |sv_catpvn      |SV* sv|const char* ptr|STRLEN len
+Amdb   |void   |sv_catsv       |SV* dsv|SV* ssv
 Apd    |void   |sv_chop        |SV* sv|char* ptr
 pd     |I32    |sv_clean_all
 pd     |void   |sv_clean_objs
 Apd    |void   |sv_chop        |SV* sv|char* ptr
 pd     |I32    |sv_clean_all
 pd     |void   |sv_clean_objs
@@ -726,6 +740,7 @@ Ap  |void   |sv_dump        |SV* sv
 Apd    |bool   |sv_derived_from|SV* sv|const char* name
 Apd    |I32    |sv_eq          |SV* sv1|SV* sv2
 Apd    |void   |sv_free        |SV* sv
 Apd    |bool   |sv_derived_from|SV* sv|const char* name
 Apd    |I32    |sv_eq          |SV* sv1|SV* sv2
 Apd    |void   |sv_free        |SV* sv
+poMX   |void   |sv_free2       |SV* sv
 pd     |void   |sv_free_arenas
 Apd    |char*  |sv_gets        |SV* sv|PerlIO* fp|I32 append
 Apd    |char*  |sv_grow        |SV* sv|STRLEN newlen
 pd     |void   |sv_free_arenas
 Apd    |char*  |sv_gets        |SV* sv|PerlIO* fp|I32 append
 Apd    |char*  |sv_grow        |SV* sv|STRLEN newlen
@@ -746,7 +761,7 @@ Apd |SV*    |sv_newref      |SV* sv
 Ap     |char*  |sv_peek        |SV* sv
 Apd    |void   |sv_pos_u2b     |SV* sv|I32* offsetp|I32* lenp
 Apd    |void   |sv_pos_b2u     |SV* sv|I32* offsetp
 Ap     |char*  |sv_peek        |SV* sv
 Apd    |void   |sv_pos_u2b     |SV* sv|I32* offsetp|I32* lenp
 Apd    |void   |sv_pos_b2u     |SV* sv|I32* offsetp
-Amd    |char*  |sv_pvn_force   |SV* sv|STRLEN* lp
+Amdb   |char*  |sv_pvn_force   |SV* sv|STRLEN* lp
 Apd    |char*  |sv_pvutf8n_force|SV* sv|STRLEN* lp
 Apd    |char*  |sv_pvbyten_force|SV* sv|STRLEN* lp
 Apd    |char*  |sv_recode_to_utf8      |SV* sv|SV *encoding
 Apd    |char*  |sv_pvutf8n_force|SV* sv|STRLEN* lp
 Apd    |char*  |sv_pvbyten_force|SV* sv|STRLEN* lp
 Apd    |char*  |sv_recode_to_utf8      |SV* sv|SV *encoding
@@ -759,6 +774,7 @@ Apd |void   |sv_reset       |char* s|HV* stash
 Afpd   |void   |sv_setpvf      |SV* sv|const char* pat|...
 Ap     |void   |sv_vsetpvf     |SV* sv|const char* pat|va_list* args
 Apd    |void   |sv_setiv       |SV* sv|IV num
 Afpd   |void   |sv_setpvf      |SV* sv|const char* pat|...
 Ap     |void   |sv_vsetpvf     |SV* sv|const char* pat|va_list* args
 Apd    |void   |sv_setiv       |SV* sv|IV num
+Apdb   |void   |sv_setpviv     |SV* sv|IV num
 Apd    |void   |sv_setuv       |SV* sv|UV num
 Apd    |void   |sv_setnv       |SV* sv|NV num
 Apd    |SV*    |sv_setref_iv   |SV* rv|const char* classname|IV iv
 Apd    |void   |sv_setuv       |SV* sv|UV num
 Apd    |void   |sv_setnv       |SV* sv|NV num
 Apd    |SV*    |sv_setref_iv   |SV* rv|const char* classname|IV iv
@@ -769,7 +785,7 @@ Apd |SV*    |sv_setref_pvn  |SV* rv|const char* classname|char* pv \
                                |STRLEN n
 Apd    |void   |sv_setpv       |SV* sv|const char* ptr
 Apd    |void   |sv_setpvn      |SV* sv|const char* ptr|STRLEN len
                                |STRLEN n
 Apd    |void   |sv_setpv       |SV* sv|const char* ptr
 Apd    |void   |sv_setpvn      |SV* sv|const char* ptr|STRLEN len
-Amd    |void   |sv_setsv       |SV* dsv|SV* ssv
+Amdb   |void   |sv_setsv       |SV* dsv|SV* ssv
 Apd    |void   |sv_taint       |SV* sv
 Apd    |bool   |sv_tainted     |SV* sv
 Apd    |int    |sv_unmagic     |SV* sv|int type
 Apd    |void   |sv_taint       |SV* sv
 Apd    |bool   |sv_tainted     |SV* sv
 Apd    |int    |sv_unmagic     |SV* sv|int type
@@ -800,9 +816,10 @@ Apd        |UV     |to_utf8_fold   |U8 *p|U8* ustrp|STRLEN *lenp
 Ap     |I32    |unlnk          |char* f
 #endif
 Apd    |I32    |unpack_str     |char *pat|char *patend|char *s|char *strbeg|char *strend|char **new_s|I32 ocnt|U32 flags
 Ap     |I32    |unlnk          |char* f
 #endif
 Apd    |I32    |unpack_str     |char *pat|char *patend|char *s|char *strbeg|char *strend|char **new_s|I32 ocnt|U32 flags
+Apd    |I32    |unpackstring   |char *pat|char *patend|char *s|char *strend|U32 flags
 Ap     |void   |unsharepvn     |const char* sv|I32 len|U32 hash
 p      |void   |unshare_hek    |HEK* hek
 Ap     |void   |unsharepvn     |const char* sv|I32 len|U32 hash
 p      |void   |unshare_hek    |HEK* hek
-p      |void   |utilize        |int aver|I32 floor|OP* version|OP* id|OP* arg
+p      |void   |utilize        |int aver|I32 floor|OP* version|OP* idop|OP* arg
 Ap     |U8*    |utf16_to_utf8  |U8* p|U8 *d|I32 bytelen|I32 *newlen
 Ap     |U8*    |utf16_to_utf8_reversed|U8* p|U8 *d|I32 bytelen|I32 *newlen
 Adp    |STRLEN |utf8_length    |U8* s|U8 *e
 Ap     |U8*    |utf16_to_utf8  |U8* p|U8 *d|I32 bytelen|I32 *newlen
 Ap     |U8*    |utf16_to_utf8_reversed|U8* p|U8 *d|I32 bytelen|I32 *newlen
 Adp    |STRLEN |utf8_length    |U8* s|U8 *e
@@ -826,18 +843,18 @@ p |void   |vivify_defelem |SV* sv
 p      |void   |vivify_ref     |SV* sv|U32 to_what
 p      |I32    |wait4pid       |Pid_t pid|int* statusp|int flags
 p      |U32    |parse_unicode_opts|char **popt
 p      |void   |vivify_ref     |SV* sv|U32 to_what
 p      |I32    |wait4pid       |Pid_t pid|int* statusp|int flags
 p      |U32    |parse_unicode_opts|char **popt
+p      |U32    |seed
+p      |UV     |get_hash_seed
 p      |void   |report_evil_fh |GV *gv|IO *io|I32 op
 p      |void   |report_evil_fh |GV *gv|IO *io|I32 op
-pd     |void   |report_uninit
+pd     |void   |report_uninit  |SV* uninit_sv
 Afpd   |void   |warn           |const char* pat|...
 Ap     |void   |vwarn          |const char* pat|va_list* args
 Afp    |void   |warner         |U32 err|const char* pat|...
 Ap     |void   |vwarner        |U32 err|const char* pat|va_list* args
 p      |void   |watch          |char** addr
 Ap     |I32    |whichsig       |char* sig
 Afpd   |void   |warn           |const char* pat|...
 Ap     |void   |vwarn          |const char* pat|va_list* args
 Afp    |void   |warner         |U32 err|const char* pat|...
 Ap     |void   |vwarner        |U32 err|const char* pat|va_list* args
 p      |void   |watch          |char** addr
 Ap     |I32    |whichsig       |char* sig
+p      |void   |write_to_stderr|const char* message|int msglen
 p      |int    |yyerror        |char* s
 p      |int    |yyerror        |char* s
-#ifdef USE_PURE_BISON
-p      |int    |yylex_r        |YYSTYPE *lvalp|int *lcharp
-#endif
 p      |int    |yylex
 p      |int    |yyparse
 p      |int    |yywarn         |char* s
 p      |int    |yylex
 p      |int    |yyparse
 p      |int    |yywarn         |char* s
@@ -862,6 +879,7 @@ Apd |void   |sv_catsv_mg    |SV *dstr|SV *sstr
 Afpd   |void   |sv_setpvf_mg   |SV *sv|const char* pat|...
 Ap     |void   |sv_vsetpvf_mg  |SV* sv|const char* pat|va_list* args
 Apd    |void   |sv_setiv_mg    |SV *sv|IV i
 Afpd   |void   |sv_setpvf_mg   |SV *sv|const char* pat|...
 Ap     |void   |sv_vsetpvf_mg  |SV* sv|const char* pat|va_list* args
 Apd    |void   |sv_setiv_mg    |SV *sv|IV i
+Apdb   |void   |sv_setpviv_mg  |SV *sv|IV iv
 Apd    |void   |sv_setuv_mg    |SV *sv|UV u
 Apd    |void   |sv_setnv_mg    |SV *sv|NV num
 Apd    |void   |sv_setpv_mg    |SV *sv|const char *ptr
 Apd    |void   |sv_setuv_mg    |SV *sv|UV u
 Apd    |void   |sv_setnv_mg    |SV *sv|NV num
 Apd    |void   |sv_setpv_mg    |SV *sv|const char *ptr
@@ -894,10 +912,10 @@ Ap        |void   |reginitcolors
 Apd    |char*  |sv_2pv_nolen   |SV* sv
 Apd    |char*  |sv_2pvutf8_nolen|SV* sv
 Apd    |char*  |sv_2pvbyte_nolen|SV* sv
 Apd    |char*  |sv_2pv_nolen   |SV* sv
 Apd    |char*  |sv_2pvutf8_nolen|SV* sv
 Apd    |char*  |sv_2pvbyte_nolen|SV* sv
-Amd    |char*  |sv_pv          |SV *sv
-Amd    |char*  |sv_pvutf8      |SV *sv
-Amd    |char*  |sv_pvbyte      |SV *sv
-Amd    |STRLEN |sv_utf8_upgrade|SV *sv
+Amdb   |char*  |sv_pv          |SV *sv
+Amdb   |char*  |sv_pvutf8      |SV *sv
+Amdb   |char*  |sv_pvbyte      |SV *sv
+Amdb   |STRLEN |sv_utf8_upgrade|SV *sv
 ApdM   |bool   |sv_utf8_downgrade|SV *sv|bool fail_ok
 Apd    |void   |sv_utf8_encode |SV *sv
 ApdM   |bool   |sv_utf8_decode |SV *sv
 ApdM   |bool   |sv_utf8_downgrade|SV *sv|bool fail_ok
 Apd    |void   |sv_utf8_encode |SV *sv
 ApdM   |bool   |sv_utf8_decode |SV *sv
@@ -939,11 +957,11 @@ Ap        |void   |sys_intern_clear
 Ap     |void   |sys_intern_init
 #endif
 
 Ap     |void   |sys_intern_init
 #endif
 
-Ap |char * |custom_op_name|OP* op
-Ap |char * |custom_op_desc|OP* op
+Ap     |char * |custom_op_name |OP* op
+Ap     |char * |custom_op_desc |OP* op
 
 #if defined(PERL_COPY_ON_WRITE)
 
 #if defined(PERL_COPY_ON_WRITE)
-pM     |int    |sv_release_IVX |SV *sv
+pMX    |int    |sv_release_IVX |SV *sv
 #endif
 
 Adp    |void   |sv_nosharing   |SV *
 #endif
 
 Adp    |void   |sv_nosharing   |SV *
@@ -977,8 +995,6 @@ s   |HEK*   |save_hek_flags |const char *str|I32 len|U32 hash|int flags
 s      |void   |hv_magic_check |HV *hv|bool *needs_copy|bool *needs_store
 s      |void   |unshare_hek_or_pvn|HEK* hek|const char* sv|I32 len|U32 hash
 s      |HEK*   |share_hek_flags|const char* sv|I32 len|U32 hash|int flags
 s      |void   |hv_magic_check |HV *hv|bool *needs_copy|bool *needs_store
 s      |void   |unshare_hek_or_pvn|HEK* hek|const char* sv|I32 len|U32 hash
 s      |HEK*   |share_hek_flags|const char* sv|I32 len|U32 hash|int flags
-s      |SV**   |hv_fetch_flags |HV* tb|const char* key|I32 klen|I32 lval \
-                                |int flags
 s      |void   |hv_notallowed  |int flags|const char *key|I32 klen|const char *msg
 #endif
 
 s      |void   |hv_notallowed  |int flags|const char *key|I32 klen|const char *msg
 #endif
 
@@ -1009,10 +1025,10 @@ s       |OP *   |my_kid         |OP *o|OP *attrs|OP **imopsp
 s      |OP *   |dup_attrlist   |OP *o
 s      |void   |apply_attrs    |HV *stash|SV *target|OP *attrs|bool for_my
 s      |void   |apply_attrs_my |HV *stash|OP *target|OP *attrs|OP **imopsp
 s      |OP *   |dup_attrlist   |OP *o
 s      |void   |apply_attrs    |HV *stash|SV *target|OP *attrs|bool for_my
 s      |void   |apply_attrs_my |HV *stash|OP *target|OP *attrs|OP **imopsp
-#  if defined(PL_OP_SLAB_ALLOC)
-s      |void*  |Slab_Alloc     |int m|size_t sz
-s      |void   |Slab_Free      |void *op
-#  endif
+#endif
+#if defined(PL_OP_SLAB_ALLOC)
+Ap     |void*  |Slab_Alloc     |int m|size_t sz
+Ap     |void   |Slab_Free      |void *op
 #endif
 
 #if defined(PERL_IN_PERL_C) || defined(PERL_DECL_PROT)
 #endif
 
 #if defined(PERL_IN_PERL_C) || defined(PERL_DECL_PROT)
@@ -1028,9 +1044,9 @@ s |void   |init_postdump_symbols|int|char **|char **
 s      |void   |init_predump_symbols
 rs     |void   |my_exit_jump
 s      |void   |nuke_stacks
 s      |void   |init_predump_symbols
 rs     |void   |my_exit_jump
 s      |void   |nuke_stacks
-s      |void   |open_script    |char *|bool|SV *|int *fd
+s      |void   |open_script    |char *|bool|SV *
 s      |void   |usage          |char *
 s      |void   |usage          |char *
-s      |void   |validate_suid  |char *|char*|int
+s      |void   |validate_suid  |char *|char*
 #  if defined(IAMSUID)
 s      |int    |fd_on_nosuid_fs|int fd
 #  endif
 #  if defined(IAMSUID)
 s      |int    |fd_on_nosuid_fs|int fd
 #  endif
@@ -1048,18 +1064,19 @@ s       |void*  |vcall_list_body|va_list args
 
 #if defined(PERL_IN_PP_C) || defined(PERL_DECL_PROT)
 s      |SV*    |refto          |SV* sv
 
 #if defined(PERL_IN_PP_C) || defined(PERL_DECL_PROT)
 s      |SV*    |refto          |SV* sv
-s      |U32    |seed
 #endif
 
 #if defined(PERL_IN_PP_PACK_C) || defined(PERL_DECL_PROT)
 #endif
 
 #if defined(PERL_IN_PP_PACK_C) || defined(PERL_DECL_PROT)
-s      |void   |doencodes      |SV* sv|char* s|I32 len
+s      |I32    |unpack_rec     |tempsym_t* symptr|char *s|char *strbeg|char *strend|char **new_s
+s      |SV **  |pack_rec       |SV *cat|tempsym_t* symptr|SV **beglist|SV **endlist
 s      |SV*    |mul128         |SV *sv|U8 m
 s      |SV*    |mul128         |SV *sv|U8 m
+s      |I32    |measure_struct |tempsym_t* symptr
+s      |char * |group_end      |char *pat|char *patend|char ender
+s      |char * |get_num        |char *ppat|I32 *
+s      |bool   |next_symbol    |tempsym_t* symptr
+s      |void   |doencodes      |SV* sv|char* s|I32 len
 s      |SV*    |is_an_int      |char *s|STRLEN l
 s      |int    |div128         |SV *pnum|bool *done
 s      |SV*    |is_an_int      |char *s|STRLEN l
 s      |int    |div128         |SV *pnum|bool *done
-s      |char * |next_symbol    |char *pat|char *patend
-s      |I32    |find_count     |char **ppat|char *patend|int *star
-s      |char * |group_end      |char *pat|char *patend|char ender
-s      |I32    |measure_struct |char *pat|char *patend
 #endif
 
 #if defined(PERL_IN_PP_CTL_C) || defined(PERL_DECL_PROT)
 #endif
 
 #if defined(PERL_IN_PP_CTL_C) || defined(PERL_DECL_PROT)
@@ -1069,7 +1086,8 @@ s |void*  |docatch_body
 s      |void*  |vdocatch_body  |va_list args
 #endif
 s      |OP*    |dofindlabel    |OP *o|char *label|OP **opstack|OP **oplimit
 s      |void*  |vdocatch_body  |va_list args
 #endif
 s      |OP*    |dofindlabel    |OP *o|char *label|OP **opstack|OP **oplimit
-s      |void   |doparseform    |SV *sv
+s      |OP*    |doparseform    |SV *sv
+sn     |bool   |num_overflow   |NV value|I32 fldsize|I32 frcsize
 s      |I32    |dopoptoeval    |I32 startingblock
 s      |I32    |dopoptolabel   |char *label
 s      |I32    |dopoptoloop    |I32 startingblock
 s      |I32    |dopoptoeval    |I32 startingblock
 s      |I32    |dopoptolabel   |char *label
 s      |I32    |dopoptoloop    |I32 startingblock
@@ -1077,7 +1095,7 @@ s |I32    |dopoptosub     |I32 startingblock
 s      |I32    |dopoptosub_at  |PERL_CONTEXT* cxstk|I32 startingblock
 s      |void   |save_lines     |AV *array|SV *sv
 s      |OP*    |doeval         |int gimme|OP** startop|CV* outside|U32 seq
 s      |I32    |dopoptosub_at  |PERL_CONTEXT* cxstk|I32 startingblock
 s      |void   |save_lines     |AV *array|SV *sv
 s      |OP*    |doeval         |int gimme|OP** startop|CV* outside|U32 seq
-s      |PerlIO *|doopen_pmc    |const char *name|const char *mode
+s      |PerlIO *|doopen_pm     |const char *name|const char *mode
 s      |bool   |path_is_absolute|char *name
 #endif
 
 s      |bool   |path_is_absolute|char *name
 #endif
 
@@ -1203,14 +1221,14 @@ s       |void   |del_xpvbm      |XPVBM* p
 s      |void   |del_xrv        |XRV* p
 s      |void   |sv_unglob      |SV* sv
 s      |void   |not_a_number   |SV *sv
 s      |void   |del_xrv        |XRV* p
 s      |void   |sv_unglob      |SV* sv
 s      |void   |not_a_number   |SV *sv
-s      |I32    |visit          |SVFUNC_t f
+s      |I32    |visit          |SVFUNC_t f|U32 flags|U32 mask
 s      |void   |sv_add_backref |SV *tsv|SV *sv
 s      |void   |sv_del_backref |SV *sv
 #  ifdef DEBUGGING
 s      |void   |del_sv |SV *p
 #  endif
 #  if !defined(NV_PRESERVES_UV)
 s      |void   |sv_add_backref |SV *tsv|SV *sv
 s      |void   |sv_del_backref |SV *sv
 #  ifdef DEBUGGING
 s      |void   |del_sv |SV *p
 #  endif
 #  if !defined(NV_PRESERVES_UV)
-s      |int    |sv_2iuv_non_preserve   |SV *sv|I32 numtype
+s      |int    |sv_2iuv_non_preserve   |SV *sv|I32 numtype
 #  endif
 s      |I32    |expect_number  |char** pattern
 #
 #  endif
 s      |I32    |expect_number  |char** pattern
 #
@@ -1291,6 +1309,10 @@ s        |COP*   |closest_cop    |COP *cop|OP *o
 s      |SV*    |mess_alloc
 #endif
 
 s      |SV*    |mess_alloc
 #endif
 
+#if defined(PERL_IN_NUMERIC_C) || defined(PERL_DECL_PROT)
+sn     |NV|mulexp10    |NV value|I32 exponent
+#endif
+
 START_EXTERN_C
 
 Apd    |void   |sv_setsv_flags |SV* dsv|SV* ssv|I32 flags
 START_EXTERN_C
 
 Apd    |void   |sv_setsv_flags |SV* dsv|SV* ssv|I32 flags
@@ -1302,6 +1324,9 @@ Apd       |char*  |sv_2pv_flags   |SV* sv|STRLEN* lp|I32 flags
 Apd    |void   |sv_copypv      |SV* dsv|SV* ssv
 Ap     |char*  |my_atof2       |const char *s|NV* value
 Apn    |int    |my_socketpair  |int family|int type|int protocol|int fd[2]
 Apd    |void   |sv_copypv      |SV* dsv|SV* ssv
 Ap     |char*  |my_atof2       |const char *s|NV* value
 Apn    |int    |my_socketpair  |int family|int type|int protocol|int fd[2]
+#ifdef PERL_COPY_ON_WRITE
+pMXE   |SV*    |sv_setsv_cow   |SV* dsv|SV* ssv
+#endif
 
 #if defined(USE_PERLIO) && !defined(USE_SFIO)
 Ap     |int    |PerlIO_close           |PerlIO *
 
 #if defined(USE_PERLIO) && !defined(USE_SFIO)
 Ap     |int    |PerlIO_close           |PerlIO *
@@ -1355,15 +1380,108 @@ pd     |void   |pad_fixup_inner_anons|PADLIST *padlist|CV *old_cv|CV *new_cv
 pd     |void   |pad_push       |PADLIST *padlist|int depth|int has_args
 
 #if defined(PERL_IN_PAD_C) || defined(PERL_DECL_PROT)
 pd     |void   |pad_push       |PADLIST *padlist|int depth|int has_args
 
 #if defined(PERL_IN_PAD_C) || defined(PERL_DECL_PROT)
-sd     |PADOFFSET|pad_findlex  |char* name|PADOFFSET newoff|CV* innercv
+sd     |PADOFFSET|pad_findlex  |char *name|CV* cv|U32 seq|int warn \
+                               |SV** out_capture|SV** out_name_sv \
+                               |int *out_flags
 #  if defined(DEBUGGING)
 sd     |void   |cv_dump        |CV *cv|char *title
 #  endif
 #  if defined(DEBUGGING)
 sd     |void   |cv_dump        |CV *cv|char *title
 #  endif
-s      |CV*    |cv_clone2      |CV *proto|CV *outside
 #endif
 pd     |CV*    |find_runcv     |U32 *db_seqp
 #endif
 pd     |CV*    |find_runcv     |U32 *db_seqp
+p      |void   |free_tied_hv_pool
+#if defined(DEBUGGING)
+p      |int    |get_debug_opts |char **s
+#endif
+Ap     |void   |save_set_svflags|SV* sv|U32 mask|U32 val
+Apod   |void   |hv_assert      |HV* tb
 
 
+#if defined(PERL_IN_HV_C) || defined(PERL_DECL_PROT)
+sM     |SV*    |hv_delete_common|HV* tb|SV* key_sv|const char* key|STRLEN klen|int k_flags|I32 d_flags|U32 hash
+sM     |HE*    |hv_fetch_common|HV* tb|SV* key_sv|const char* key|STRLEN klen|int flags|int action|SV* val|U32 hash
+#endif
 
 
+Apd    |void   |hv_clear_placeholders|HV* hb
 
 
-END_EXTERN_C
+Apd    |SV*    |hv_scalar      |HV* hv|
+p      |SV*    |magic_scalarpack|HV* hv|MAGIC* mg
+#ifdef PERL_IN_SV_C
+sMd    |SV*    |find_uninit_var|OP* obase|SV* uninit_sv|bool top
+#endif
 
 
+#ifdef PERL_NEED_MY_HTOLE16
+np     |U16    |my_htole16     |U16 n
+#endif
+#ifdef PERL_NEED_MY_LETOH16
+np     |U16    |my_letoh16     |U16 n
+#endif
+#ifdef PERL_NEED_MY_HTOBE16
+np     |U16    |my_htobe16     |U16 n
+#endif
+#ifdef PERL_NEED_MY_BETOH16
+np     |U16    |my_betoh16     |U16 n
+#endif
+#ifdef PERL_NEED_MY_HTOLE32
+np     |U32    |my_htole32     |U32 n
+#endif
+#ifdef PERL_NEED_MY_LETOH32
+np     |U32    |my_letoh32     |U32 n
+#endif
+#ifdef PERL_NEED_MY_HTOBE32
+np     |U32    |my_htobe32     |U32 n
+#endif
+#ifdef PERL_NEED_MY_BETOH32
+np     |U32    |my_betoh32     |U32 n
+#endif
+#ifdef PERL_NEED_MY_HTOLE64
+np     |U64    |my_htole64     |U64 n
+#endif
+#ifdef PERL_NEED_MY_LETOH64
+np     |U64    |my_letoh64     |U64 n
+#endif
+#ifdef PERL_NEED_MY_HTOBE64
+np     |U64    |my_htobe64     |U64 n
+#endif
+#ifdef PERL_NEED_MY_BETOH64
+np     |U64    |my_betoh64     |U64 n
+#endif
+
+#ifdef PERL_NEED_MY_HTOLES
+np     |short  |my_htoles      |short n
+#endif
+#ifdef PERL_NEED_MY_LETOHS
+np     |short  |my_letohs      |short n
+#endif
+#ifdef PERL_NEED_MY_HTOBES
+np     |short  |my_htobes      |short n
+#endif
+#ifdef PERL_NEED_MY_BETOHS
+np     |short  |my_betohs      |short n
+#endif
+#ifdef PERL_NEED_MY_HTOLEI
+np     |int    |my_htolei      |int n
+#endif
+#ifdef PERL_NEED_MY_LETOHI
+np     |int    |my_letohi      |int n
+#endif
+#ifdef PERL_NEED_MY_HTOBEI
+np     |int    |my_htobei      |int n
+#endif
+#ifdef PERL_NEED_MY_BETOHI
+np     |int    |my_betohi      |int n
+#endif
+#ifdef PERL_NEED_MY_HTOLEL
+np     |long   |my_htolel      |long n
+#endif
+#ifdef PERL_NEED_MY_LETOHL
+np     |long   |my_letohl      |long n
+#endif
+#ifdef PERL_NEED_MY_HTOBEL
+np     |long   |my_htobel      |long n
+#endif
+#ifdef PERL_NEED_MY_BETOHL
+np     |long   |my_betohl      |long n
+#endif
+
+np     |void   |my_swabn       |void* ptr|int n
+
+END_EXTERN_C