This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
POSIX.xs: Fix typo.
[perl5.git] / embed.fnc
index 6ad48d3..7574d3f 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
 :        1) must be static to its containing file ("i" or "s" flag); or
 :         2) be combined with the "X" flag.
 :
-:   f  Function takes printf style format string, varargs (hence any entry that
-:      would otherwise go in embed.h is suppressed):
+:   f  Function takes a format string. If the function name /strftime/
+:      then its assumed to take a strftime-style format string as 1st arg;
+:      otherwise it's assumed to be a printf style format string, varargs
+:      (hence any entry that would otherwise go in embed.h is suppressed):
 :
 :         proto.h: add __attribute__format__ (or ...null_ok__)
 :
@@ -300,7 +302,7 @@ p   |SV *   |core_prototype |NULLOK SV *sv|NN const char *name \
 p      |OP *   |coresub_op     |NN SV *const coreargssv|const int code \
                                |const int opnum
 : Used in sv.c
-p      |void   |cv_ckproto_len_flags   |NN const CV* cv|NULLOK const GV* gv\
+EMXp   |void   |cv_ckproto_len_flags   |NN const CV* cv|NULLOK const GV* gv\
                                |NULLOK const char* p|const STRLEN len \
                                 |const U32 flags
 : Used in pp.c and pp_sys.c
@@ -308,7 +310,7 @@ ApdR        |SV*    |gv_const_sv    |NN GV* gv
 ApdR   |SV*    |cv_const_sv    |NULLOK const CV *const cv
 pR     |SV*    |cv_const_sv_or_av|NULLOK const CV *const cv
 : Used in pad.c
-pR     |SV*    |op_const_sv    |NULLOK const OP* o
+pR     |SV*    |op_const_sv    |NULLOK const OP* o|NULLOK CV* cv
 Apd    |void   |cv_undef       |NN CV* cv
 p      |void   |cv_forget_slab |NN CV *cv
 Ap     |void   |cx_dump        |NN PERL_CONTEXT* cx
@@ -392,10 +394,25 @@ Apmb      |bool   |do_open        |NN GV* gv|NN const char* name|I32 len|int as_raw \
 Ap     |bool   |do_open9       |NN GV *gv|NN const char *name|I32 len|int as_raw \
                                |int rawmode|int rawperm|NULLOK PerlIO *supplied_fp \
                                |NN SV *svs|I32 num
+#if defined(PERL_IN_DOIO_C)
+s      |IO *   |openn_setup    |NN GV *gv|NN char *mode|NN PerlIO **saveifp \
+                               |NN PerlIO **saveofp|NN int *savefd \
+                                |NN char *savetype
+s      |bool   |openn_cleanup  |NN GV *gv|NN IO *io|NULLOK PerlIO *fp \
+                               |NN char *mode|NN const char *oname \
+                                |NULLOK PerlIO *saveifp|NULLOK PerlIO *saveofp \
+                                |int savefd|char savetype|int writing \
+                                |bool was_fdopen|NULLOK const char *type
+#endif
 Ap     |bool   |do_openn       |NN GV *gv|NN const char *oname|I32 len \
                                |int as_raw|int rawmode|int rawperm \
                                |NULLOK PerlIO *supplied_fp|NULLOK SV **svp \
                                |I32 num
+Mp     |bool   |do_open_raw    |NN GV *gv|NN const char *oname|STRLEN len \
+                               |int rawmode|int rawperm
+Mp     |bool   |do_open6       |NN GV *gv|NN const char *oname|STRLEN len \
+                               |NULLOK PerlIO *supplied_fp|NULLOK SV **svp \
+                               |U32 num
 : Used in pp_hot.c and pp_sys.c
 p      |bool   |do_print       |NULLOK SV* sv|NN PerlIO* fp
 : Used in pp_sys.c
@@ -421,9 +438,6 @@ ApR |I32    |dowantarray
 Ap     |void   |dump_all
 p      |void   |dump_all_perl  |bool justperl
 Ap     |void   |dump_eval
-#if defined(DUMP_FDS)
-Ap     |void   |dump_fds       |NN char* s
-#endif
 Ap     |void   |dump_form      |NN const GV* gv
 Ap     |void   |gv_dump        |NN GV* gv
 Ap     |void   |op_dump        |NN const OP *o
@@ -436,6 +450,7 @@ Apd |void   |fbm_compile    |NN SV* sv|U32 flags
 ApdR   |char*  |fbm_instr      |NN unsigned char* big|NN unsigned char* bigend \
                                |NN SV* littlestr|U32 flags
 p      |CV *   |find_lexical_cv|PADOFFSET off
+pR     |OP *   |parse_subsignature
 : Defined in util.c, used only in perl.c
 p      |char*  |find_script    |NN const char *scriptname|bool dosearch \
                                |NULLOK const char *const *const search_ext|I32 flags
@@ -517,6 +532,8 @@ Ap  |void   |gv_init_pv     |NN GV* gv|NULLOK HV* stash|NN const char* name \
 Ap     |void   |gv_init_pvn    |NN GV* gv|NULLOK HV* stash|NN const char* name \
                                 |STRLEN len|U32 flags
 Ap     |void   |gv_name_set    |NN GV* gv|NN const char *name|U32 len|U32 flags
+px     |GV *   |gv_override    |NN const char * const name \
+                               |const STRLEN len
 XMpd   |void   |gv_try_downgrade|NN GV* gv
 Apd    |HV*    |gv_stashpv     |NN const char* name|I32 flags
 Apd    |HV*    |gv_stashpvn    |NN const char* name|U32 namelen|I32 flags
@@ -616,6 +633,7 @@ pR  |OP*    |invert         |NULLOK OP* cmd
 ApR    |I32    |is_lvalue_sub
 : Used in cop.h
 XopR   |I32    |was_lvalue_sub
+iRn    |STRLEN |_is_utf8_char_slow|NN const U8 *s|NN const U8 *e
 ADMpPR |U32    |to_uni_upper_lc|U32 c
 ADMpPR |U32    |to_uni_title_lc|U32 c
 ADMpPR |U32    |to_uni_lower_lc|U32 c
@@ -636,8 +654,8 @@ ADMpPR      |bool   |is_uni_punct   |UV c
 ADMpPR |bool   |is_uni_xdigit  |UV c
 AMp    |UV     |to_uni_upper   |UV c|NN U8 *p|NN STRLEN *lenp
 AMp    |UV     |to_uni_title   |UV c|NN U8 *p|NN STRLEN *lenp
-iDMPR  |bool   |isIDFIRST_lazy |NN const char* p
-iDMPR  |bool   |isALNUM_lazy   |NN const char* p
+ADMpPR |bool   |isIDFIRST_lazy |NN const char* p
+ADMpPR |bool   |isALNUM_lazy   |NN const char* p
 #ifdef PERL_IN_UTF8_C
 sR     |U8     |to_lower_latin1|const U8 c|NULLOK U8 *p|NULLOK STRLEN *lenp
 #endif
@@ -649,7 +667,7 @@ p   |UV     |_to_upper_title_latin1|const U8 c|NN U8 *p|NN STRLEN *lenp|const char S_o
 #endif
 AMp    |UV     |to_uni_lower   |UV c|NN U8 *p|NN STRLEN *lenp
 AMmp   |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|const U8 flags
+AMp    |UV     |_to_uni_fold_flags|UV c|NN U8 *p|NN STRLEN *lenp|U8 flags
 ADMpPR |bool   |is_uni_alnum_lc|UV c
 ADMpPR |bool   |is_uni_alnumc_lc|UV c
 ADMpPR |bool   |is_uni_idfirst_lc|UV c
@@ -669,7 +687,7 @@ ADMpPR      |bool   |is_uni_punct_lc|UV c
 ADMpPR |bool   |is_uni_xdigit_lc|UV c
 Anpd   |bool   |is_ascii_string|NN const U8 *s|STRLEN len
 AnpdD  |STRLEN |is_utf8_char   |NN const U8 *s
-Anpd   |STRLEN |is_utf8_char_buf|NN const U8 *buf|NN const U8 *buf_end
+Abmnpd |STRLEN |is_utf8_char_buf|NN const U8 *buf|NN const U8 *buf_end
 Anpd   |bool   |is_utf8_string |NN const U8 *s|STRLEN len
 Anpdmb |bool   |is_utf8_string_loc|NN const U8 *s|STRLEN len|NULLOK const U8 **ep
 Anpd   |bool   |is_utf8_string_loclen|NN const U8 *s|STRLEN len|NULLOK const U8 **ep|NULLOK STRLEN *el
@@ -679,6 +697,10 @@ ADMpR      |bool   |is_utf8_alnum  |NN const U8 *p
 ADMpR  |bool   |is_utf8_alnumc |NN const U8 *p
 ADMpR  |bool   |is_utf8_idfirst|NN const U8 *p
 ADMpR  |bool   |is_utf8_xidfirst|NN const U8 *p
+AMpR   |bool   |_is_utf8_idcont|NN const U8 *p
+AMpR   |bool   |_is_utf8_idstart|NN const U8 *p
+AMpR   |bool   |_is_utf8_xidcont|NN const U8 *p
+AMpR   |bool   |_is_utf8_xidstart|NN const U8 *p
 AMpR   |bool   |_is_utf8_perl_idcont|NN const U8 *p
 AMpR   |bool   |_is_utf8_perl_idstart|NN const U8 *p
 ADMpR  |bool   |is_utf8_idcont |NN const U8 *p
@@ -733,7 +755,7 @@ AMpd        |SV*    |parse_label    |U32 flags
 AMpd   |OP*    |parse_fullstmt |U32 flags
 AMpd   |OP*    |parse_stmtseq  |U32 flags
 : Used in various files
-Ap     |void   |op_null        |NN OP* o
+Apd    |void   |op_null        |NN OP* o
 : FIXME. Used by Data::Alias
 EXp    |void   |op_clear       |NN OP* o
 Ap     |void   |op_refcnt_lock
@@ -750,7 +772,7 @@ 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
 #if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C)
-EMsR   |char   |grok_bslash_c  |const char source|const bool utf8|const bool output_warning
+EMsR   |char   |grok_bslash_c  |const char source|const bool output_warning
 EMsR   |bool   |grok_bslash_o  |NN char** s|NN UV* uv           \
                                |NN const char** error_msg       \
                                |const bool output_warning       \
@@ -829,7 +851,7 @@ p   |int    |magic_wipepack |NN SV* sv|NN MAGIC* mg
 pod    |SV*    |magic_methcall |NN SV *sv|NN const MAGIC *mg \
                                |NN SV *meth|U32 flags \
                                |U32 argc|...
-Ap     |void   |markstack_grow
+Ap     |I32 *  |markstack_grow
 #if defined(USE_LOCALE_COLLATE)
 p      |int    |magic_setcollxfrm|NN SV* sv|NN MAGIC* mg
 : Defined in locale.c, used only in sv.c
@@ -865,6 +887,7 @@ 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
+s      |void   |move_proto_attr|NN OP **proto|NN OP **attrs|NN const GV *name
 #endif
 : Used in op.c and pp_sys.c
 p      |int    |mode_from_discipline|NULLOK const char* s|STRLEN len
@@ -898,7 +921,7 @@ 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
 pX     |I32    |my_stat_flags  |NULLOK const U32 flags
-A    |char * |my_strftime    |NN const char *fmt|int sec|int min|int hour|int mday|int mon|int year|int wday|int yday|int isdst
+Afp    |char * |my_strftime    |NN const char *fmt|int sec|int min|int hour|int mday|int mon|int year|int wday|int yday|int isdst
 : Used in pp_ctl.c
 p      |void   |my_unexec
 ADMnoPR        |UV     |NATIVE_TO_NEED |const UV enc|const UV ch
@@ -1013,7 +1036,7 @@ Apd       |int    |vcmp           |NN SV *lhv|NN SV *rhv
 p      |PerlIO*|nextargv       |NN GV* gv
 AnpP   |char*  |ninstr         |NN const char* big|NN const char* bigend \
                                |NN const char* little|NN const char* lend
-Ap     |void   |op_free        |NULLOK OP* arg
+Apd    |void   |op_free        |NULLOK OP* arg
 Mp     |OP*    |op_unscope     |NULLOK OP* o
 #ifdef PERL_CORE
 p      |void   |opslab_free    |NN OPSLAB *slab
@@ -1066,14 +1089,21 @@ ApdO    |AV*    |get_av         |NN const char *name|I32 flags
 ApdO   |HV*    |get_hv         |NN const char *name|I32 flags
 ApdO   |CV*    |get_cv         |NN const char* name|I32 flags
 Apd    |CV*    |get_cvn_flags  |NN const char* name|STRLEN len|I32 flags
-ApO    |int    |init_i18nl10n  |int printwarn
-ApO    |int    |init_i18nl14n  |int printwarn
-ApO    |void   |new_collate    |NULLOK const char* newcoll
-ApO    |void   |new_ctype      |NN const char* newctype
-ApO    |void   |new_numeric    |NULLOK const char* newcoll
+#ifdef WIN32
+ApPM   |char*  |my_setlocale   |int category|NULLOK const char* locale
+#else
+AmPM   |char*  |my_setlocale   |int category|NULLOK const char* locale
+#endif
+ApOM   |int    |init_i18nl10n  |int printwarn
+ApOM   |int    |init_i18nl14n  |int printwarn
+ApM    |char*  |my_strerror    |const int errnum
+ApOM   |void   |new_collate    |NULLOK const char* newcoll
+ApOM   |void   |new_ctype      |NN const char* newctype
+ApOM   |void   |new_numeric    |NULLOK const char* newcoll
 Ap     |void   |set_numeric_local
 Ap     |void   |set_numeric_radix
 Ap     |void   |set_numeric_standard
+ApM    |bool   |_is_in_locale_category|const bool compiling|const int category
 ApdO   |void   |require_pv     |NN const char* pv
 Apd    |void   |pack_cat       |NN SV *cat|NN const char *pat|NN const char *patend \
                                |NN SV **beglist|NN SV **endlist|NN SV ***next_in_list|U32 flags
@@ -1096,8 +1126,8 @@ 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
-EMsR   |SV*    |_new_invlist_C_array|NN const UV* const list
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_PERL_C) || defined(PERL_IN_UTF8_C)
+AMpR   |SV*    |_new_invlist_C_array|NN const UV* const list
 : Not used currently: EXMs     |bool   |_invlistEQ     |NN SV* const a|NN SV* const b|const bool complement_b
 #endif
 Ap     |I32    |pregexec       |NN REGEXP * const prog|NN char* stringarg \
@@ -1159,7 +1189,7 @@ EXp       |I32|reg_numbered_buff_length|NN REGEXP * const rx|NN const SV * const sv|co
 EXp    |SV*|reg_qr_package|NN REGEXP * const rx
 
 : FIXME - why the E?
-Ep     |void   |regprop        |NULLOK const regexp *prog|NN SV* sv|NN const regnode* o
+Ep     |void   |regprop        |NULLOK const regexp *prog|NN SV* sv|NN const regnode* o|NULLOK const regmatch_info *reginfo
 Anp    |void   |repeatcpy      |NN char* to|NN const char* from|I32 len|IV count
 AnpP   |char*  |rninstr        |NN const char* big|NN const char* bigend \
                                |NN const char* little|NN const char* lend
@@ -1263,6 +1293,8 @@ Apd       |NV     |scan_oct       |NN const char* start|STRLEN len|NN STRLEN* retlen
 AMpd   |OP*    |op_scope       |NULLOK OP* o
 Ap     |char*  |screaminstr    |NN SV *bigstr|NN SV *littlestr|I32 start_shift \
                                |I32 end_shift|NN I32 *old_posp|I32 last
+: Only used by perl.c/miniperl.c, but defined in caretx.c
+px     |void   |set_caret_X
 Apd    |void   |setdefout      |NN GV* gv
 Ap     |HEK*   |share_hek      |NN const char* str|I32 len|U32 hash
 #if defined(HAS_SIGACTION) && defined(SA_SIGINFO)
@@ -1278,26 +1310,26 @@ Ap      |I32    |start_subparse |I32 is_format|U32 flags
 : Used in pp_ctl.c
 p      |void   |sub_crush_depth|NN CV* cv
 Amd    |bool   |sv_2bool       |NN SV *const sv
-Apd    |bool   |sv_2bool_flags |NN SV *const sv|const I32 flags
+Apd    |bool   |sv_2bool_flags |NN SV *sv|I32 flags
 Apd    |CV*    |sv_2cv         |NULLOK SV* sv|NN HV **const st|NN GV **const gvp \
                                |const I32 lref
 Apd    |IO*    |sv_2io         |NN SV *const sv
 #if defined(PERL_IN_SV_C)
 s      |bool   |glob_2number   |NN GV* const gv
 #endif
-Amb    |IV     |sv_2iv         |NULLOK SV *sv
-Apd    |IV     |sv_2iv_flags   |NULLOK SV *const sv|const I32 flags
+Amb    |IV     |sv_2iv         |NN SV *sv
+Apd    |IV     |sv_2iv_flags   |NN SV *const sv|const I32 flags
 Apd    |SV*    |sv_2mortal     |NULLOK SV *const sv
-Apd    |NV     |sv_2nv_flags   |NULLOK SV *const sv|const I32 flags
+Apd    |NV     |sv_2nv_flags   |NN SV *const sv|const I32 flags
 : Used in pp.c, pp_hot.c, sv.c
 pMd    |SV*    |sv_2num        |NN SV *const sv
-Amb    |char*  |sv_2pv         |NULLOK SV *sv|NULLOK STRLEN *lp
-Apd    |char*  |sv_2pv_flags   |NULLOK SV *const sv|NULLOK STRLEN *const lp|const I32 flags
+Amb    |char*  |sv_2pv         |NN SV *sv|NULLOK STRLEN *lp
+Apd    |char*  |sv_2pv_flags   |NN SV *const sv|NULLOK STRLEN *const lp|const I32 flags
 Apd    |char*  |sv_2pvutf8     |NN SV *sv|NULLOK STRLEN *const lp
 Apd    |char*  |sv_2pvbyte     |NN SV *sv|NULLOK STRLEN *const lp
 Ap     |char*  |sv_pvn_nomg    |NN SV* sv|NULLOK STRLEN* lp
-Amb    |UV     |sv_2uv         |NULLOK SV *sv
-Apd    |UV     |sv_2uv_flags   |NULLOK SV *const sv|const I32 flags
+Amb    |UV     |sv_2uv         |NN SV *sv
+Apd    |UV     |sv_2uv_flags   |NN SV *const sv|const I32 flags
 Apd    |IV     |sv_iv          |NN SV* sv
 Apd    |UV     |sv_uv          |NN SV* sv
 Apd    |NV     |sv_nv          |NN SV* sv
@@ -1311,6 +1343,12 @@ sd       |void   |sv_add_arena   |NN char *const ptr|const U32 size \
 #endif
 Apd    |int    |sv_backoff     |NN SV *const sv
 Apd    |SV*    |sv_bless       |NN SV *const sv|NN HV *const stash
+#if defined(PERL_DEBUG_READONLY_COW)
+p      |void   |sv_buf_to_ro   |NN SV *sv
+# if defined(PERL_IN_SV_C)
+s      |void   |sv_buf_to_rw   |NN SV *sv
+# endif
+#endif
 Afpd   |void   |sv_catpvf      |NN SV *const sv|NN const char *const pat|...
 Apd    |void   |sv_vcatpvf     |NN SV *const sv|NN const char *const pat \
                                |NULLOK va_list *const args
@@ -1472,10 +1510,10 @@ EXpM    |void   |_invlist_union_maybe_complement_2nd        \
                |const bool complement_b|NN SV** output
 EXmM   |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  |SV*    |_new_invlist   |IV initial_size
 EXMpR  |SV*    |_swash_to_invlist      |NN SV* const swash
 EXMpR  |SV*    |_add_range_to_invlist  |NULLOK SV* invlist|const UV start|const UV end
+EXMpR  |SV*    |_setup_canned_invlist|const STRLEN size|const UV element0|NN UV** other_elements_ptr
 EXMp   |void   |_invlist_populate_swatch   |NN SV* const invlist|const UV start|const UV end|NN U8* swatch
 #endif
 #if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_UTF8_C) || defined(PERL_IN_TOKE_C)
@@ -1492,6 +1530,14 @@ EXpMR    |IV     |_invlist_search        |NN SV* const invlist|const UV cp
 EXMpR  |SV*    |_get_swash_invlist|NN SV* const swash
 EXMpR  |HV*    |_swash_inversion_hash  |NN SV* const swash
 #endif
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)
+ApM    |SV*    |_get_regclass_nonbitmap_data                              \
+                               |NULLOK const regexp *prog                 \
+                               |NN const struct regnode *node|bool doinit \
+                               |NULLOK SV **listsvp                       \
+                               |NULLOK SV **lonly_utf8_locale
+EXp    |void|_load_PL_utf8_foldclosures|
+#endif
 #if defined(PERL_IN_REGCOMP_C) || defined (PERL_IN_DUMP_C)
 EXMp   |void   |_invlist_dump  |NN PerlIO *file|I32 level   \
                                |NN const char* const indent \
@@ -1502,13 +1548,17 @@ 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|NULLOK const char *special
 Abmd   |UV     |to_utf8_lower  |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp
-AMp    |UV     |_to_utf8_lower_flags   |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp|const bool flags|NULLOK bool* tainted_ptr
+AMp    |UV     |_to_utf8_lower_flags   |NN const U8 *p|NN U8* ustrp  \
+                               |NULLOK STRLEN *lenp|bool flags
 Abmd   |UV     |to_utf8_upper  |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp
-AMp    |UV     |_to_utf8_upper_flags   |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp|const bool flags|NULLOK bool* tainted_ptr
+AMp    |UV     |_to_utf8_upper_flags   |NN const U8 *p|NN U8* ustrp   \
+                               |NULLOK STRLEN *lenp|bool flags
 Abmd   |UV     |to_utf8_title  |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp
-AMp    |UV     |_to_utf8_title_flags   |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp|const bool flags|NULLOK bool* tainted_ptr
+AMp    |UV     |_to_utf8_title_flags   |NN const U8 *p|NN U8* ustrp   \
+                               |NULLOK STRLEN *lenp|bool flags
 Abmd   |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|NULLOK bool* tainted_ptr
+AMp    |UV     |_to_utf8_fold_flags|NN const U8 *p|NN U8* ustrp       \
+                               |NULLOK STRLEN *lenp|U8 flags
 #if defined(PERL_IN_MG_C) || defined(PERL_IN_PP_C)
 p      |bool   |translate_substr_offsets|STRLEN curlen|IV pos1_iv \
                                         |bool pos1_is_uv|IV len_iv \
@@ -1571,6 +1621,8 @@ p |I32    |wait4pid       |Pid_t pid|NN int* statusp|int flags
 : Used in locale.c and perl.c
 p      |U32    |parse_unicode_opts|NN const char **popt
 Ap     |U32    |seed
+Xpno   |double |drand48_r      |NN perl_drand48_t *random_state
+Xpno   |void   |drand48_init_r |NN perl_drand48_t *random_state|U32 seed
 : Only used in perl.c
 p        |void        |get_hash_seed        |NN unsigned char * const seed_buffer
 : Used in doio.c, pp_hot.c, pp_sys.c
@@ -1591,6 +1643,12 @@ Afp      |void   |warner         |U32 err|NN const char* pat|...
 Afp    |void   |ck_warner      |U32 err|NN const char* pat|...
 Afp    |void   |ck_warner_d    |U32 err|NN const char* pat|...
 Ap     |void   |vwarner        |U32 err|NN const char* pat|NULLOK va_list* args
+#ifdef USE_C_BACKTRACE
+pd     |Perl_c_backtrace*|get_c_backtrace|int max_depth|int skip
+dm     |void   |free_c_backtrace|NN Perl_c_backtrace* bt
+Apd    |SV*    |get_c_backtrace_dump|int max_depth|int skip
+Apd    |bool   |dump_c_backtrace|NN PerlIO* fp|int max_depth|int skip
+#endif
 : FIXME
 p      |void   |watch          |NN char** addr
 Am     |I32    |whichsig       |NN const char* sig
@@ -1599,6 +1657,9 @@ Ap     |I32    |whichsig_pv    |NN const char* sig
 Ap     |I32    |whichsig_pvn   |NN const char* sig|STRLEN len
 : used to check for NULs in pathnames and other names
 AiR    |bool   |is_safe_syscall|NN const char *pv|STRLEN len|NN const char *what|NN const char *op_name
+#ifdef PERL_CORE
+inR    |bool   |should_warn_nl|NN const char *pv
+#endif
 : Used in pp_ctl.c
 p      |void   |write_to_stderr|NN SV* msv
 : Used in op.c
@@ -1699,10 +1760,10 @@ Apd     |SV*    |sv_rvweaken    |NN SV *const sv
 : This is indirectly referenced by globals.c. This is somewhat annoying.
 p      |int    |magic_killbackrefs|NN SV *sv|NN MAGIC *mg
 Ap     |OP*    |newANONATTRSUB |I32 floor|NULLOK OP *proto|NULLOK OP *attrs|NULLOK OP *block
-Ap     |CV*    |newATTRSUB     |I32 floor|NULLOK OP *o|NULLOK OP *proto|NULLOK OP *attrs|NULLOK OP *block
-p      |CV*    |newATTRSUB_flags|I32 floor|NULLOK OP *o|NULLOK OP *proto \
+Am     |CV*    |newATTRSUB     |I32 floor|NULLOK OP *o|NULLOK OP *proto|NULLOK OP *attrs|NULLOK OP *block
+pX     |CV*    |newATTRSUB_x   |I32 floor|NULLOK OP *o|NULLOK OP *proto \
                                 |NULLOK OP *attrs|NULLOK OP *block \
-                                |U32 flags
+                                |bool o_is_gv
 Ap     |CV *   |newMYSUB       |I32 floor|NN OP *o|NULLOK OP *proto \
                                |NULLOK OP *attrs|NULLOK OP *block
 p      |CV*    |newSTUB        |NN GV *gv|bool fake
@@ -1748,9 +1809,10 @@ Ap       |void   |sys_intern_dup |NN struct interp_intern* src|NN struct interp_intern*
 #  endif
 #endif
 
-AopP   |const XOP *    |custom_op_xop  |NN const OP *o
+AmopP  |const XOP *    |custom_op_xop  |NN const OP *o
 ApR    |const char *   |custom_op_name |NN const OP *o
 ApR    |const char *   |custom_op_desc |NN const OP *o
+pRX    |XOPRETANY      |custom_op_get_field    |NN const OP *o|const xop_flags_enum field
 Aop    |void   |custom_op_register     |NN Perl_ppaddr_t ppaddr \
                        |NN const XOP *xop
 
@@ -1810,6 +1872,7 @@ sR        |HEK*   |share_hek_flags|NN const char *str|I32 len|U32 hash|int flags
 rs     |void   |hv_notallowed  |int flags|NN const char *key|I32 klen|NN const char *msg
 in     |U32|ptr_hash|PTRV u
 s      |struct xpvhv_aux*|hv_auxinit|NN HV *hv
+sn     |struct xpvhv_aux*|hv_auxinit_internal|NN struct xpvhv_aux *iter
 sM     |SV*    |hv_delete_common|NULLOK HV *hv|NULLOK SV *keysv \
                |NULLOK const char *key|STRLEN klen|int k_flags|I32 d_flags \
                |U32 hash
@@ -1824,6 +1887,7 @@ s |SV*    |magic_methcall1|NN SV *sv|NN const MAGIC *mg \
                                |int n|NULLOK SV *val
 s      |void   |restore_magic  |NULLOK const void *p
 s      |void   |unwind_handler_stack|NULLOK const void *p
+s      |void   |fixup_errno_string|NN SV* sv
 
 #endif
 
@@ -1839,6 +1903,7 @@ sR        |OP*    |newDEFSVOP
 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      |void   |null_listop_in_list_context |NN OP* o
 s      |SV*    |gv_ename       |NN GV *gv
 sRn    |bool   |scalar_mod_type|NULLOK const OP *o|I32 type
 s      |OP *   |my_kid         |NULLOK OP *o|NULLOK OP *attrs|NN OP **imopsp
@@ -1955,7 +2020,8 @@ 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
+s      |SV **  |adjust_stack_on_leave|NN SV **newsp|NN SV **sp|NN SV **mark|I32 gimme \
+                                     |U32 flags|bool lvalue
 iRn    |bool   |path_is_searchable|NN const char *name
 sR     |I32    |run_user_filter|int idx|NN SV *buf_sv|int maxlen
 sR     |PMOP*  |make_matcher   |NN REGEXP* re
@@ -1976,7 +2042,9 @@ s |I32    |sv_i_ncmp      |NN SV *const a|NN SV *const b
 s      |I32    |amagic_ncmp    |NN SV *const a|NN SV *const b
 s      |I32    |amagic_i_ncmp  |NN SV *const a|NN SV *const b
 s      |I32    |amagic_cmp     |NN SV *const str1|NN SV *const str2
+#   ifdef USE_LOCALE_COLLATE
 s      |I32    |amagic_cmp_locale|NN SV *const str1|NN SV *const str2
+#endif
 s      |I32    |sortcv         |NN SV *const a|NN SV *const b
 s      |I32    |sortcv_xsub    |NN SV *const a|NN SV *const b
 s      |I32    |sortcv_stacked |NN SV *const a|NN SV *const b
@@ -1984,7 +2052,7 @@ s |void   |qsortsvu       |NULLOK SV** array|size_t num_elts|NN SVCOMPARE_t compare
 #endif
 
 #if defined(PERL_IN_PP_SYS_C)
-s      |OP*    |doform         |NN CV *cv|NN GV *gv|NN OP *retop
+s      |OP*    |doform         |NN CV *cv|NN GV *gv|NULLOK OP *retop
 #  if !defined(HAS_MKDIR) || !defined(HAS_RMDIR)
 sR     |int    |dooneliner     |NN const char *cmd|NN const char *filename
 #  endif
@@ -1995,87 +2063,111 @@ p      |OP *   |tied_method|NN SV *methname|NN SV **sp \
                                |const U32 flags|U32 argc|...
 
 #if defined(PERL_IN_REGCOMP_C)
-Es     |regnode*|reg           |NN struct RExC_state_t *pRExC_state \
+Es     |regnode*|reg           |NN RExC_state_t *pRExC_state \
                                |I32 paren|NN I32 *flagp|U32 depth
-Es     |regnode*|reganode      |NN struct RExC_state_t *pRExC_state|U8 op \
+Es     |regnode*|reganode      |NN RExC_state_t *pRExC_state|U8 op \
                                |U32 arg
-Es     |regnode*|regatom       |NN struct RExC_state_t *pRExC_state \
+Es     |regnode*|regatom       |NN RExC_state_t *pRExC_state \
                                |NN I32 *flagp|U32 depth
-Es     |regnode*|regbranch     |NN struct RExC_state_t *pRExC_state \
+Es     |regnode*|regbranch     |NN RExC_state_t *pRExC_state \
                                |NN I32 *flagp|I32 first|U32 depth
-Es     |STRLEN |reguni         |NN const struct RExC_state_t *pRExC_state \
+Ei     |STRLEN |reguni         |NN const RExC_state_t *pRExC_state \
                                |UV uv|NN char *s
-Es     |regnode*|regclass      |NN struct RExC_state_t *pRExC_state \
+Es     |void    |set_ANYOF_arg |NN RExC_state_t* const pRExC_state \
+                               |NN regnode* const node                    \
+                               |NULLOK SV* const cp_list                  \
+                               |NULLOK SV* const runtime_defns            \
+                               |NULLOK SV* const only_utf8_locale_list    \
+                               |NULLOK SV* const swash                    \
+                               |const bool has_user_defined_property
+Es     |regnode*|regclass      |NN RExC_state_t *pRExC_state \
                                |NN I32 *flagp|U32 depth|const bool stop_at_1 \
                                |bool allow_multi_fold                        \
                                |const bool silence_non_portable              \
                                |NULLOK SV** ret_invlist
-Es     |bool|could_it_be_a_POSIX_class|NN struct RExC_state_t *pRExC_state
-Es     |regnode*|handle_regex_sets|NN struct RExC_state_t *pRExC_state \
+Es     |void|add_above_Latin1_folds|NN RExC_state_t *pRExC_state|const U8 cp \
+                               |NN SV** invlist
+Es     |bool|could_it_be_a_POSIX_class|NN RExC_state_t *pRExC_state
+Es     |regnode*|handle_regex_sets|NN RExC_state_t *pRExC_state \
                                |NULLOK SV ** return_invlist            \
                                |NN I32 *flagp|U32 depth                \
                                |NN char * const oregcomp_parse
-Es     |void|parse_lparen_question_flags|NN struct RExC_state_t *pRExC_state
-Es     |regnode*|reg_node      |NN struct RExC_state_t *pRExC_state|U8 op
+Es     |void|parse_lparen_question_flags|NN RExC_state_t *pRExC_state
+Es     |regnode*|reg_node      |NN RExC_state_t *pRExC_state|U8 op
 Es     |UV     |reg_recode     |const char value|NN SV **encp
-Es     |regnode*|regpiece      |NN struct RExC_state_t *pRExC_state \
+Es     |regnode*|regpiece      |NN RExC_state_t *pRExC_state \
                                |NN I32 *flagp|U32 depth
-Es     |bool   |grok_bslash_N  |NN struct RExC_state_t *pRExC_state        \
+Es     |bool   |grok_bslash_N  |NN RExC_state_t *pRExC_state        \
                                |NULLOK regnode** nodep|NULLOK UV *valuep   \
                                |NN I32 *flagp|U32 depth|bool in_char_class \
                                |const bool strict
-Es     |void   |reginsert      |NN struct RExC_state_t *pRExC_state \
+Es     |void   |reginsert      |NN RExC_state_t *pRExC_state \
                                |U8 op|NN regnode *opnd|U32 depth
-Es     |void   |regtail        |NN struct RExC_state_t *pRExC_state \
+Es     |void   |regtail        |NN RExC_state_t *pRExC_state \
                                |NN regnode *p|NN const regnode *val|U32 depth
-Es     |SV *   |reg_scan_name  |NN struct RExC_state_t *pRExC_state \
+Es     |SV *   |reg_scan_name  |NN RExC_state_t *pRExC_state \
                                |U32 flags
-Es     |U32    |join_exact     |NN struct RExC_state_t *pRExC_state \
+Es     |U32    |join_exact     |NN RExC_state_t *pRExC_state \
                                |NN regnode *scan|NN UV *min_subtract  \
-                               |NN bool *has_exactf_sharp_s  \
+                               |NN bool *unfolded_multi_char          \
                                |U32 flags|NULLOK regnode *val|U32 depth
-EsRn   |char * |regwhite       |NN struct RExC_state_t *pRExC_state \
-                               |NN char *p
-EsRn   |char * |regpatws       |NN struct RExC_state_t *pRExC_state \
+EsR    |char * |regpatws       |NN RExC_state_t *pRExC_state \
                                |NN char *p|const bool recognize_comment
-Ei     |void   |alloc_maybe_populate_EXACT|NN struct RExC_state_t *pRExC_state \
+Ei     |void   |alloc_maybe_populate_EXACT|NN RExC_state_t *pRExC_state \
                                |NN regnode *node|NN I32 *flagp|STRLEN len \
-                               |UV code_point
-Ei     |U8   |compute_EXACTish|NN struct RExC_state_t *pRExC_state
-Es     |char * |nextchar       |NN struct RExC_state_t *pRExC_state
-Es     |bool   |reg_skipcomment|NN struct RExC_state_t *pRExC_state
-Es     |void   |scan_commit    |NN const struct RExC_state_t *pRExC_state \
-                               |NN struct scan_data_t *data \
-                               |NN SSize_t *minlenp|int is_inf
-Esn    |void   |cl_anything    |NN const struct RExC_state_t *pRExC_state \
-                               |NN struct regnode_charclass_class *cl
-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_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 \
-                               |NN struct regnode_charclass_class *cl \
-                               |NN const struct regnode_charclass_class *or_with
-Es     |SSize_t|study_chunk    |NN struct RExC_state_t *pRExC_state \
+                               |UV code_point|bool downgradable
+Ei     |U8   |compute_EXACTish|NN RExC_state_t *pRExC_state
+Es     |char * |nextchar       |NN RExC_state_t *pRExC_state
+Ei     |char * |reg_skipcomment|NN RExC_state_t *pRExC_state|NN char * p
+Es     |void   |scan_commit    |NN const RExC_state_t *pRExC_state \
+                               |NN struct scan_data_t *data        \
+                               |NN SSize_t *minlenp                \
+                               |int is_inf
+Es     |void   |populate_ANYOF_from_invlist|NN regnode *node|NN SV** invlist_ptr
+Es     |void   |ssc_anything   |NN regnode_ssc *ssc
+EsR    |int    |ssc_is_anything|NN const regnode_ssc *ssc
+Es     |void   |ssc_init       |NN const RExC_state_t *pRExC_state \
+                               |NN regnode_ssc *ssc
+EsR    |int    |ssc_is_cp_posixl_init|NN const RExC_state_t *pRExC_state \
+                               |NN const regnode_ssc *ssc
+Es     |void   |ssc_and        |NN const RExC_state_t *pRExC_state \
+                               |NN regnode_ssc *ssc                \
+                               |NN const regnode_charclass *and_with
+Es     |void   |ssc_or         |NN const RExC_state_t *pRExC_state \
+                               |NN regnode_ssc *ssc \
+                               |NN const regnode_charclass *or_with
+Es     |SV*    |get_ANYOF_cp_list_for_ssc                                 \
+                               |NN const RExC_state_t *pRExC_state \
+                               |NN const regnode_charclass* const node
+Ei     |void   |ssc_intersection|NN regnode_ssc *ssc \
+                               |NN SV* const invlist|const bool invert_2nd
+Ei     |void   |ssc_union      |NN regnode_ssc *ssc \
+                               |NN SV* const invlist|const bool invert_2nd
+Ei     |void   |ssc_add_range  |NN regnode_ssc *ssc \
+                               |UV const start|UV const end
+Ei     |void   |ssc_cp_and     |NN regnode_ssc *ssc \
+                               |UV const cp
+Ei     |void   |ssc_clear_locale|NN regnode_ssc *ssc
+Es     |void   |ssc_finalize   |NN RExC_state_t *pRExC_state \
+                               |NN regnode_ssc *ssc
+Es     |SSize_t|study_chunk    |NN RExC_state_t *pRExC_state \
                                |NN regnode **scanp|NN SSize_t *minlenp \
                                |NN SSize_t *deltap|NN regnode *last \
                                |NULLOK struct scan_data_t *data \
-                               |I32 stopparen|NULLOK U8* recursed \
-                               |NULLOK struct regnode_charclass_class *and_withp \
+                                |I32 stopparen|U32 recursed_depth \
+                               |NULLOK regnode_ssc *and_withp \
                                |U32 flags|U32 depth
-EsRn   |U32    |add_data       |NN struct RExC_state_t *pRExC_state|U32 n \
-                               |NN const char *s
+EsRn   |U32    |add_data       |NN RExC_state_t* const pRExC_state \
+                               |NN const char* const s|const U32 n
 rs     |void   |re_croak2      |bool utf8|NN const char* pat1|NN const char* pat2|...
-Ei     |I32    |regpposixcc    |NN struct RExC_state_t *pRExC_state \
+Ei     |I32    |regpposixcc    |NN RExC_state_t *pRExC_state \
                                |I32 value|const bool strict
-Es     |I32    |make_trie      |NN struct RExC_state_t *pRExC_state \
+Es     |I32    |make_trie      |NN RExC_state_t *pRExC_state \
                                |NN regnode *startbranch|NN regnode *first \
                                |NN regnode *last|NN regnode *tail \
                                |U32 word_count|U32 flags|U32 depth
-Es     |void   |make_trie_failtable    |NN struct RExC_state_t *pRExC_state \
-                                |NN regnode *source|NN regnode *stclass \
-                               |U32 depth
+Es     |regnode *|construct_ahocorasick_from_trie|NN RExC_state_t *pRExC_state \
+                                |NN regnode *source|U32 depth
 #  ifdef DEBUGGING
 Es        |void        |regdump_intflags|NULLOK const char *lead| const U32 flags
 Es     |void   |regdump_extflags|NULLOK const char *lead| const U32 flags
@@ -2086,6 +2178,7 @@ Es        |const regnode*|dumpuntil|NN const regexp *r|NN const regnode *start \
                                |NN SV* sv|I32 indent|U32 depth
 Es     |void   |put_byte       |NN SV* sv|int c
 Es     |bool   |put_latin1_charclass_innards|NN SV* sv|NN char* bitmap
+Es     |void   |put_range      |NN SV* sv|UV start|UV end
 Es     |void   |dump_trie      |NN const struct _reg_trie_data *trie\
                                |NULLOK HV* widecharmap|NN AV *revcharmap\
                                |U32 depth
@@ -2095,7 +2188,7 @@ Es        |void   |dump_trie_interim_list|NN const struct _reg_trie_data *trie\
 Es     |void   |dump_trie_interim_table|NN const struct _reg_trie_data *trie\
                                |NULLOK HV* widecharmap|NN AV *revcharmap\
                                |U32 next_alloc|U32 depth
-Es     |U8     |regtail_study  |NN struct RExC_state_t *pRExC_state \
+Es     |U8     |regtail_study  |NN RExC_state_t *pRExC_state \
                                |NN regnode *p|NN const regnode *val|U32 depth
 #  endif
 #endif
@@ -2110,20 +2203,18 @@ ERs     |I32    |regrepeat      |NN regexp *prog|NN char **startposp \
                                |I32 max \
                                |int depth
 ERs    |I32    |regtry         |NN regmatch_info *reginfo|NN char **startposp
-ERs    |bool   |reginclass     |NULLOK regexp * const prog|NN const regnode * const n|NN const U8 * const p\
+ERs    |bool   |reginclass     |NULLOK regexp * const prog  \
+                               |NN const regnode * const n  \
+                               |NN const U8 * const p       \
+                               |NN const U8 * const p_end   \
                                |bool const utf8_target
 Es     |CHECKPOINT|regcppush   |NN const regexp *rex|I32 parenfloor\
                                |U32 maxopenparen
 Es     |void   |regcppop       |NN regexp *rex\
                                |NN U32 *maxopenparen_p
 ERsn   |U8*    |reghop3        |NN U8 *s|SSize_t off|NN const U8 *lim
-ERsM   |SV*    |core_regclass_swash|NULLOK const regexp *prog \
-                               |NN const struct regnode *node|bool doinit \
-                               |NULLOK SV **listsvp
-#ifdef XXX_dmq
 ERsn   |U8*    |reghop4        |NN U8 *s|SSize_t off|NN const U8 *llim \
                                |NN const U8 *rlim
-#endif
 ERsn   |U8*    |reghopmaybe3   |NN U8 *s|SSize_t off|NN const U8 *lim
 ERs    |char*  |find_byclass   |NN regexp * prog|NN const regnode *c \
                                |NN char *s|NN const char *strend \
@@ -2172,9 +2263,7 @@ pX        |void   |sv_del_backref |NN SV *const tsv|NN SV *const sv
 #if defined(PERL_IN_SV_C)
 nsR    |char * |uiv_2buf       |NN char *const buf|const IV iv|UV uv|const int is_uv|NN char **const peob
 i      |void   |sv_unglob      |NN SV *const sv|U32 flags
-s      |const char *|sv_display        |NN SV *const sv|NN char *tmpbuf|STRLEN tmpbuf_size
 s      |void   |not_a_number   |NN SV *const sv
-s      |void   |not_incrementable      |NN SV *const sv
 s      |I32    |visit          |NN SVFUNC_t f|const U32 flags|const U32 mask
 #  ifdef DEBUGGING
 s      |void   |del_sv |NN SV *p
@@ -2228,19 +2317,19 @@ s       |char*  |force_strict_version   |NN char *s
 s      |char*  |force_word     |NN char *start|int token|int check_keyword \
                                |int allow_pack
 s      |SV*    |tokeq          |NN SV *sv
-s      |void   |readpipe_override|
 sR     |char*  |scan_const     |NN char *start
 iR     |SV*    |get_and_check_backslash_N_name|NN const char* s \
                                |NN const char* const e
 sR     |char*  |scan_formline  |NN char *s
 sR     |char*  |scan_heredoc   |NN char *s
-s      |char*  |scan_ident     |NN char *s|NN const char *send|NN char *dest \
+s      |char*  |scan_ident     |NN char *s|NN char *dest \
                                |STRLEN destlen|I32 ck_uni
 sR     |char*  |scan_inputsymbol|NN char *start
 sR     |char*  |scan_pat       |NN char *start|I32 type
 sR     |char*  |scan_str       |NN char *start|int keep_quoted \
                                |int keep_delims|int re_reparse \
-                               |bool deprecate_escaped_matching
+                               |bool deprecate_escaped_matching \
+                               |NULLOK char **delimp
 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 \
@@ -2285,7 +2374,7 @@ s |void   |strip_return   |NN SV *sv
 #  endif
 #  if defined(DEBUGGING)
 s      |int    |tokereport     |I32 rv|NN const YYSTYPE* lvalp
-s      |void   |printbuf       |NN const char *const fmt|NN const char *const s
+sf     |void   |printbuf       |NN const char *const fmt|NN const char *const s
 #  endif
 #endif
 EXMp   |bool   |validate_proto |NN SV *name|NULLOK SV *proto|bool warn
@@ -2295,9 +2384,10 @@ s        |bool   |isa_lookup     |NN HV *stash|NN const char * const name \
                                         |STRLEN len|U32 flags
 #endif
 
-#if defined(PERL_IN_LOCALE_C) && defined(USE_LOCALE)
+#if defined(USE_LOCALE) \
+    && (defined(PERL_IN_LOCALE_C) || defined (PERL_EXT_POSIX))
 s      |char*  |stdize_locale  |NN char* locs
-s      |bool   |is_cur_LC_category_utf8|int category
+ApM    |bool   |_is_cur_LC_category_utf8|int category
 #endif
 
 #if defined(PERL_IN_UTIL_C)
@@ -2318,10 +2408,12 @@ sn      |NV|mulexp10    |NV value|I32 exponent
 #endif
 
 #if defined(PERL_IN_UTF8_C)
-iRn    |STRLEN |is_utf8_char_slow|NN const U8 *s|const STRLEN len
 sRM    |UV     |check_locale_boundary_crossing|NN const U8* const p|const UV result|NN U8* const ustrp|NN STRLEN *lenp
-iR     |bool   |is_utf8_common |NN const U8 *const p|NN SV **swash|NN const char * const swashname
+iR     |bool   |is_utf8_common |NN const U8 *const p|NN SV **swash|NN const char * const swashname|NULLOK SV* const invlist
 sR     |SV*    |swatch_get     |NN SV* swash|UV start|UV span
+sRM    |U8*    |swash_scan_list_line|NN U8* l|NN U8* const lend|NN UV* min \
+               |NN UV* max|NN UV* val|const bool wants_value               \
+               |NN const U8* const typestr
 #endif
 
 AiMn   |void   |append_utf8_from_native_byte|const U8 byte|NN U8** dest
@@ -2348,7 +2440,7 @@ pMXE      |SV*    |sv_setsv_cow   |NULLOK SV* dstr|NN SV* sstr
 
 Aop    |const char *|PerlIO_context_layers|NULLOK const char *mode
 
-#if defined(USE_PERLIO) && !defined(USE_SFIO)
+#if defined(USE_PERLIO)
 Ap     |int    |PerlIO_close           |NULLOK PerlIO *f
 Ap     |int    |PerlIO_fill            |NULLOK PerlIO *f
 Ap     |int    |PerlIO_fileno          |NULLOK PerlIO *f
@@ -2549,11 +2641,11 @@ Xpo     |void   |xs_apiversion_bootcheck|NN SV *module|NN const char *api_p \
                                |STRLEN api_len
 
 #ifndef HAS_STRLCAT
-Apno   |Size_t |my_strlcat     |NULLOK char *dst|NULLOK const char *src|Size_t size
+Apnod  |Size_t |my_strlcat     |NULLOK char *dst|NULLOK const char *src|Size_t size
 #endif
 
 #ifndef HAS_STRLCPY
-Apno     |Size_t |my_strlcpy     |NULLOK char *dst|NULLOK const char *src|Size_t size
+Apnod     |Size_t |my_strlcpy     |NULLOK char *dst|NULLOK const char *src|Size_t size
 #endif
 
 #ifdef PERL_MAD
@@ -2638,7 +2730,8 @@ sd        |AV*    |mro_get_linear_isa_dfs|NN HV* stash|U32 level
 s      |void   |mro_clean_isarev|NN HV * const isa   \
                                 |NN const char * const name \
                                 |const STRLEN len \
-                                |NULLOK HV * const exceptions|U32 flags
+                                |NULLOK HV * const exceptions \
+                                |U32 hash|U32 flags
 s      |void   |mro_gather_and_rename|NN HV * const stashes \
                                      |NN HV * const seen_stashes \
                                      |NULLOK HV *stash \