This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Static cleanup in pp_sort.c
[perl5.git] / embed.fnc
index b9db13e..4ffa057 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
@@ -150,7 +150,10 @@ Afnp       |void   |sv_setpvf_mg_nocontext|NN SV* sv|NN const char* pat|...
 Afnp   |int    |fprintf_nocontext|NN PerlIO* stream|NN const char* fmt|...
 Afnp   |int    |printf_nocontext|NN const char* fmt|...
 #endif
-p      |void   |cv_ckproto     |NN const CV* cv|NULLOK const GV* gv|NULLOK const char* p
+bp     |void   |cv_ckproto     |NN const CV* cv|NULLOK const GV* gv\
+                               |NULLOK const char* p
+p      |void   |cv_ckproto_len |NN const CV* cv|NULLOK const GV* gv\
+                               |NULLOK const char* p|const STRLEN len
 pd     |CV*    |cv_clone       |NN CV* proto
 ApdR   |SV*    |gv_const_sv    |NN GV* gv
 ApdR   |SV*    |cv_const_sv    |NULLOK CV* cv
@@ -203,6 +206,9 @@ Ap  |int    |do_spawn_nowait|NN char* cmd
 p      |bool   |do_exec3       |NN const char* cmd|int fd|int do_report
 #endif
 p      |void   |do_execfree
+#ifdef PERL_IN_DOIO_C
+s      |void   |exec_failed    |NN const char *cmd|int fd|int do_report
+#endif
 #if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
 p      |I32    |do_ipcctl      |I32 optype|NN SV** mark|NN SV** sp
 p      |I32    |do_ipcget      |I32 optype|NN SV** mark|NN SV** sp
@@ -266,7 +272,7 @@ Ap  |GV*    |gv_AVadd       |NN GV* gv
 Ap     |GV*    |gv_HVadd       |NN GV* gv
 Ap     |GV*    |gv_IOadd       |NN GV* gv
 ApR    |GV*    |gv_autoload4   |NULLOK HV* stash|NN const char* name|STRLEN len|I32 method
-Ap     |void   |gv_check       |NN HV* stash
+Ap     |void   |gv_check       |NN const HV* stash
 Ap     |void   |gv_efullname   |NN SV* sv|NN const GV* gv
 Apmb   |void   |gv_efullname3  |NN SV* sv|NN const GV* gv|NULLOK const char* prefix
 Ap     |void   |gv_efullname4  |NN SV* sv|NN const GV* gv|NULLOK const char* prefix|bool keepmain
@@ -279,8 +285,9 @@ Ap  |GV*    |gv_fetchpv     |NN const char* name|I32 add|I32 sv_type
 Ap     |void   |gv_fullname    |NN SV* sv|NN const GV* gv
 Apmb   |void   |gv_fullname3   |NN SV* sv|NN const GV* gv|NULLOK const char* prefix
 Ap     |void   |gv_fullname4   |NN SV* sv|NN const GV* gv|NULLOK const char* prefix|bool keepmain
+pMox   |GP *   |newGP          |NN GV *const gv
 Ap     |void   |gv_init        |NN GV* gv|NULLOK HV* stash|NN const char* name|STRLEN len|int multi
-Ap     |void   |gv_name_set    |NN GV* gv|NULLOK const char *name|U32 len|U32 flags
+Ap     |void   |gv_name_set    |NN GV* gv|NN const char *name|U32 len|U32 flags
 Apd    |HV*    |gv_stashpv     |NN const char* name|I32 create
 Apd    |HV*    |gv_stashpvn    |NN const char* name|U32 namelen|I32 create
 Apd    |HV*    |gv_stashsv     |NULLOK SV* sv|I32 create
@@ -304,8 +311,11 @@ ApdR       |SV*    |hv_iterval     |NN HV* tb|NN HE* entry
 Ap     |void   |hv_ksplit      |NN HV* hv|IV newmax
 Apdbm  |void   |hv_magic       |NN HV* hv|NULLOK GV* gv|int how
 dpoM   |HV *   |refcounted_he_chain_2hv|NULLOK const struct refcounted_he *c
+XEpoM  |SV *   |refcounted_he_fetch|NN const struct refcounted_he *chain \
+                               |NULLOK SV *keysv|NULLOK const char *key \
+                               |STRLEN klen, int flags, U32 hash
 dpoM   |void   |refcounted_he_free|NULLOK struct refcounted_he *he
-dpoM   |struct refcounted_he *|refcounted_he_new \
+XEdpoM |struct refcounted_he *|refcounted_he_new \
                                |NULLOK struct refcounted_he *const parent \
                                |NULLOK SV *const key|NULLOK SV *const value
 Apd    |SV**   |hv_store       |NULLOK HV* tb|NULLOK const char* key|I32 klen|NULLOK SV* val \
@@ -410,7 +420,7 @@ p   |int    |magic_clear_all_env|NN SV* sv|NN MAGIC* mg
 dp     |int    |magic_clearhint|NN SV* sv|NN MAGIC* mg
 p      |int    |magic_clearpack|NN SV* sv|NN MAGIC* mg
 p      |int    |magic_clearsig |NN SV* sv|NN MAGIC* mg
-p      |int    |magic_existspack|NN SV* sv|NN MAGIC* mg
+p      |int    |magic_existspack|NN SV* sv|NN const MAGIC* mg
 p      |int    |magic_freeregexp|NN SV* sv|NN MAGIC* mg
 p      |int    |magic_freeovrld|NN SV* sv|NN MAGIC* mg
 p      |int    |magic_get      |NN SV* sv|NN MAGIC* mg
@@ -537,6 +547,9 @@ Apa |OP*    |newRANGE       |I32 flags|NN OP* left|NN OP* right
 Apa    |OP*    |newSLICEOP     |I32 flags|NULLOK OP* subscript|NULLOK OP* listop
 Apa    |OP*    |newSTATEOP     |I32 flags|NULLOK char* label|NULLOK OP* o
 Ap     |CV*    |newSUB         |I32 floor|NULLOK OP* o|NULLOK OP* proto|NULLOK OP* block
+ApM    |CV *   |newXS_flags    |NULLOK const char *name|NN XSUBADDR_t subaddr\
+                               |NN const char *const filename \
+                               |NULLOK const char *const proto|U32 flags
 Apd    |CV*    |newXS          |NULLOK const char* name|NN XSUBADDR_t f|NN const char* filename
 Apda   |AV*    |newAV
 Apa    |OP*    |newAVREF       |NN OP* o
@@ -595,7 +608,7 @@ p   |OP*    |package        |NN OP* o
 p      |void   |package        |NN OP* o
 #endif
 pd     |PADOFFSET|pad_alloc    |I32 optype|U32 tmptype
-p      |PADOFFSET|allocmy      |NN char* name
+p      |PADOFFSET|allocmy      |NN const char *const name
 pdR    |PADOFFSET|pad_findmy   |NN const char* name
 Ap     |PADOFFSET|find_rundefsvoffset  |
 pR     |OP*    |oopsAV         |NN OP* o
@@ -753,7 +766,8 @@ Apd |bool   |sv_2bool       |NN SV* sv
 Apd    |CV*    |sv_2cv         |NULLOK SV* sv|NN HV** st|NN GV** gvp|I32 lref
 Apd    |IO*    |sv_2io         |NN SV* sv
 #ifdef PERL_IN_SV_C
-s      |char*  |glob_2inpuv    |NN GV* gv|NULLOK STRLEN *len|bool want_number
+s      |bool   |glob_2number   |NN GV* const gv
+s      |char*  |glob_2pv       |NN GV* const gv|NULLOK STRLEN * const len
 #endif
 Amb    |IV     |sv_2iv         |NN SV* sv
 Apd    |IV     |sv_2iv_flags   |NN SV* sv|I32 flags
@@ -848,7 +862,7 @@ Apd |int    |sv_unmagic     |NN SV* sv|int type
 Apdmb  |void   |sv_unref       |NN SV* sv
 Apd    |void   |sv_unref_flags |NN SV* sv|U32 flags
 Apd    |void   |sv_untaint     |NN SV* sv
-Apd    |void   |sv_upgrade     |NN SV* sv|U32 mt
+Apd    |void   |sv_upgrade     |NN SV* sv|svtype new_type
 Apdmb  |void   |sv_usepvn      |NN SV* sv|NULLOK char* ptr|STRLEN len
 Apd    |void   |sv_usepvn_flags|NN SV* sv|NULLOK char* ptr|STRLEN len\
                                |U32 flags
@@ -878,7 +892,7 @@ Apd |I32    |unpack_str     |NN const char *pat|NN const char *patend|NN const char *s
 Apd    |I32    |unpackstring   |NN const char *pat|NN const char *patend|NN const char *s \
                                |NN const char *strend|U32 flags
 Ap     |void   |unsharepvn     |NULLOK const char* sv|I32 len|U32 hash
-p      |void   |unshare_hek    |NULLOK HEK* hek
+XEp    |void   |unshare_hek    |NULLOK HEK* hek
 #ifdef PERL_MAD
 p      |OP *   |utilize        |int aver|I32 floor|NULLOK OP* version \
                                |NN OP* idop|NULLOK OP* arg
@@ -1054,12 +1068,12 @@ Adp     |int    |nothreadhook
 END_EXTERN_C
 
 #if defined(PERL_IN_DOOP_C) || defined(PERL_DECL_PROT)
-sR     |I32    |do_trans_simple        |NN SV *sv
-sR     |I32    |do_trans_count         |NN SV *sv
-sR     |I32    |do_trans_complex       |NN SV *sv
-sR     |I32    |do_trans_simple_utf8   |NN SV *sv
-sR     |I32    |do_trans_count_utf8    |NN SV *sv
-sR     |I32    |do_trans_complex_utf8  |NN SV *sv
+sR     |I32    |do_trans_simple        |NN SV * const sv
+sR     |I32    |do_trans_count         |NN SV * const sv
+sR     |I32    |do_trans_complex       |NN SV * const sv
+sR     |I32    |do_trans_simple_utf8   |NN SV * const sv
+sR     |I32    |do_trans_count_utf8    |NN SV * const sv
+sR     |I32    |do_trans_complex_utf8  |NN SV * const sv
 #endif
 
 #if defined(PERL_IN_GV_C) || defined(PERL_DECL_PROT)
@@ -1086,6 +1100,7 @@ sM        |SV*    |hv_delete_common|NULLOK HV* tb|NULLOK SV* keysv|NULLOK const char* key
 sM     |HE*    |hv_fetch_common|NULLOK HV* tb|NULLOK SV* keysv|NULLOK const char* key \
                |STRLEN klen|int flags|int action|NULLOK SV* val|U32 hash
 sM     |void   |clear_placeholders     |NN HV* hb|U32 items
+sM     |SV *   |refcounted_he_value    |NN const struct refcounted_he *he
 #endif
 
 #if defined(PERL_IN_MG_C) || defined(PERL_DECL_PROT)
@@ -1195,8 +1210,6 @@ s |int    |fd_on_nosuid_fs|int fd
 #  endif
 s      |void*  |parse_body     |NULLOK char **env|XSINIT_t xsinit
 rs     |void   |run_body       |I32 oldscope
-s      |void   |call_body      |NN const OP *myop|bool is_eval
-s      |void*  |call_list_body |NN CV *cv
 s      |SV *   |incpush_if_exists|NN SV *dir
 #endif
 
@@ -1218,6 +1231,7 @@ sR        |const char *|get_num   |NN const char *ppat|NN I32 *lenptr
 ns     |bool   |need_utf8      |NN const char *pat|NN const char *patend
 ns     |char   |first_symbol   |NN const char *pat|NN const char *patend
 sR     |char * |sv_exp_grow    |NN SV *sv|STRLEN needed
+snR    |char * |bytes_to_uni   |NN const U8 *start|STRLEN len|NN char *dest
 #endif
 
 #if defined(PERL_IN_PP_CTL_C) || defined(PERL_DECL_PROT)
@@ -1261,6 +1275,7 @@ s |I32    |amagic_cmp_locale|NN SV *a|NN SV *b
 s      |I32    |sortcv         |NN SV *a|NN SV *b
 s      |I32    |sortcv_xsub    |NN SV *a|NN SV *b
 s      |I32    |sortcv_stacked |NN SV *a|NN SV *b
+s      |void   |qsortsvu       |NN SV** array|size_t num_elts|NN SVCOMPARE_t compare
 #endif
 
 #if defined(PERL_IN_PP_SYS_C) || defined(PERL_DECL_PROT)
@@ -1273,26 +1288,20 @@ s       |SV *   |space_join_names_mortal|NN char *const *array
 #endif
 
 #if defined(PERL_IN_REGCOMP_C) || defined(PERL_DECL_PROT)
-Es     |regnode*|reg           |NN struct RExC_state_t *state|I32 paren|NN I32 *flagp
+Es     |regnode*|reg           |NN struct RExC_state_t *state|I32 paren|NN I32 *flagp|U32 depth
 Es     |regnode*|reganode      |NN struct RExC_state_t *state|U8 op|U32 arg
-Es     |regnode*|regatom       |NN struct RExC_state_t *state|NN I32 *flagp
-Es     |regnode*|regbranch     |NN struct RExC_state_t *state|NN I32 *flagp|I32 first
-Es     |void   |reguni         |NN const struct RExC_state_t *state|UV uv|NN char *s|NN STRLEN *lenp
-Es     |regnode*|regclass      |NN struct RExC_state_t *state
+Es     |regnode*|regatom       |NN struct RExC_state_t *state|NN I32 *flagp|U32 depth
+Es     |regnode*|regbranch     |NN struct RExC_state_t *state|NN I32 *flagp|I32 first|U32 depth
+Es     |STRLEN |reguni         |NN const struct RExC_state_t *state|UV uv|NN char *s
+Es     |regnode*|regclass      |NN struct RExC_state_t *state|U32 depth
 ERsn   |I32    |regcurly       |NN const char *
 Es     |regnode*|reg_node      |NN struct RExC_state_t *state|U8 op
-Es     |regnode*|regpiece      |NN struct RExC_state_t *state|NN I32 *flagp
+Es     |regnode*|regpiece      |NN struct RExC_state_t *state|NN I32 *flagp|U32 depth
 Es     |void   |reginsert      |NN struct RExC_state_t *state|U8 op|NN regnode *opnd
-Es     |void   |regoptail      |NN const struct RExC_state_t *state|NN regnode *p|NN const regnode *val
-Es     |void   |regtail        |NN const struct RExC_state_t *state|NN regnode *p|NN const regnode *val
+Es     |void   |regtail        |NN struct RExC_state_t *state|NN regnode *p|NN const regnode *val|U32 depth
+Es     |U32    |join_exact     |NN struct RExC_state_t *state|NN regnode *scan|NN I32 *min|U32 flags|NULLOK regnode *val|U32 depth
 EsRn   |char*  |regwhite       |NN char *p|NN const char *e
 Es     |char*  |nextchar       |NN struct RExC_state_t *state
-#  ifdef DEBUGGING
-Es     |const regnode*|dumpuntil|NN const regexp *r|NN const regnode *start \
-                               |NN const regnode *node \
-                               |NULLOK const regnode *last|NN SV* sv|I32 l
-Es     |void   |put_byte       |NN SV* sv|int c
-#  endif
 Es     |void   |scan_commit    |NN const struct RExC_state_t* state|NN struct scan_data_t *data
 Esn    |void   |cl_anything    |NN const struct RExC_state_t* state|NN struct regnode_charclass_class *cl
 EsRn   |int    |cl_is_anything |NN const struct regnode_charclass_class *cl
@@ -1309,10 +1318,21 @@ EsRn    |I32    |add_data       |NN struct RExC_state_t* state|I32 n|NN const char *s
 rs     |void   |re_croak2      |NN const char* pat1|NN const char* pat2|...
 Es     |I32    |regpposixcc    |NN struct RExC_state_t* state|I32 value
 Es     |void   |checkposixcc   |NN struct RExC_state_t* state
-
 Es     |I32    |make_trie      |NN struct RExC_state_t* state|NN regnode *startbranch \
                                |NN regnode *first|NN regnode *last|NN regnode *tail \
-                               |U32 flags
+                               |U32 flags|U32 depth
+Es     |void   |make_trie_failtable    |NN struct RExC_state_t* state \
+                                |NN regnode *source|NN regnode *node|U32 depth
+#  ifdef DEBUGGING
+Es     |const regnode*|dumpuntil|NN const regexp *r|NN const regnode *start \
+                               |NN const regnode *node \
+                               |NULLOK const regnode *last|NN SV* sv|I32 l
+Es     |void   |put_byte       |NN SV* sv|int c
+Es     |void   |dump_trie      |NN const struct _reg_trie_data *trie|U32 depth
+Es     |void   |dump_trie_interim_list|NN const struct _reg_trie_data *trie|U32 next_alloc|U32 depth
+Es     |void   |dump_trie_interim_table|NN const struct _reg_trie_data *trie|U32 next_alloc|U32 depth
+Es     |U8     |regtail_study  |NN struct RExC_state_t *state|NN regnode *p|NN const regnode *val|U32 depth
+#  endif
 #endif
 
 #if defined(PERL_IN_REGEXEC_C) || defined(PERL_DECL_PROT)
@@ -1323,17 +1343,21 @@ ERs     |bool   |reginclass     |NULLOK const regexp *prog|NN const regnode *n|NN const U8
                                |bool do_utf8sv_is_utf8
 Es     |CHECKPOINT|regcppush   |I32 parenfloor
 Es     |char*  |regcppop       |NN const regexp *rex
-ERsn   |U8*    |reghop3        |NN U8 *pos|I32 off|NN U8 *lim
-ERsn   |U8*    |reghopmaybe3   |NN U8 *pos|I32 off|NN U8 *lim
+ERsn   |U8*    |reghop3        |NN U8 *pos|I32 off|NN const U8 *lim
+ERsn   |U8*    |reghopmaybe3   |NN U8 *pos|I32 off|NN const U8 *lim
 ERs    |char*  |find_byclass   |NN regexp * prog|NN const regnode *c|NN char *s|NN const char *strend|NULLOK const regmatch_info *reginfo
 Es     |void   |to_utf8_substr |NN regexp * prog
 Es     |void   |to_byte_substr |NN regexp * prog
+#  ifdef DEBUGGING
+Es     |void   |dump_exec_pos  |NN const char *locinput|NN const regnode *scan|const bool do_utf8
+#  endif
 #endif
 
 #if defined(PERL_IN_DUMP_C) || defined(PERL_DECL_PROT)
 s      |CV*    |deb_curcv      |I32 ix
 s      |void   |debprof        |NN const OP *o
 s      |void   |sequence       |NULLOK const OP *o
+s      |void   |sequence_tail  |NULLOK const OP *o
 s      |UV     |sequence_num   |NULLOK const OP *o
 s      |SV*    |pm_description |NN const PMOP *pm
 #endif
@@ -1366,9 +1390,9 @@ s |int    |sv_2iuv_non_preserve   |NN SV *sv|I32 numtype
 #  endif
 sR     |I32    |expect_number  |NN char** pattern
 #
-s      |STRLEN |sv_pos_u2b_forwards|NN const U8 *const start \
+sn     |STRLEN |sv_pos_u2b_forwards|NN const U8 *const start \
                |NN const U8 *const send|STRLEN uoffset
-s      |STRLEN |sv_pos_u2b_midway|NN const U8 *const start \
+sn     |STRLEN |sv_pos_u2b_midway|NN const U8 *const start \
                |NN const U8 *send|STRLEN uoffset|STRLEN uend
 s      |STRLEN |sv_pos_u2b_cached|NN SV *sv|NN MAGIC **mgp \
                |NN const U8 *const start|NN const U8 *const send \
@@ -1445,6 +1469,7 @@ s |void   |strip_return   |NN SV *sv
 #  endif
 #  if defined(DEBUGGING)
 s      |int    |tokereport     |I32 rv
+s      |void   |printbuf       |NN const char* fmt|NN const char* s
 #  endif
 #endif
 
@@ -1492,6 +1517,8 @@ Apn       |int    |my_socketpair  |int family|int type|int protocol|int fd[2]
 pMXE   |SV*    |sv_setsv_cow   |NN SV* dsv|NN SV* ssv
 #endif
 
+Aop    |const char *|PerlIO_context_layers|NULLOK const char *mode
+
 #if defined(USE_PERLIO) && !defined(USE_SFIO)
 Ap     |int    |PerlIO_close           |NULLOK PerlIO *f
 Ap     |int    |PerlIO_fill            |NULLOK PerlIO *f
@@ -1528,7 +1555,7 @@ s |void   |deb_stack_n    |NN SV** stack_base|I32 stack_min \
 pda    |PADLIST*|pad_new       |int flags
 pd     |void   |pad_undef      |NN CV* cv
 pd     |PADOFFSET|pad_add_name |NN const char *name\
-                               |NULLOK HV* typestash|NULLOK HV* ourstash|bool clone
+                               |NULLOK HV* typestash|NULLOK HV* ourstash|bool clone|bool state
 pd     |PADOFFSET|pad_add_anon |NN SV* sv|OPCODE op_type
 pd     |void   |pad_check_dup  |NN const char* name|bool is_our|NN const HV* ourstash
 #ifdef DEBUGGING
@@ -1678,6 +1705,9 @@ p |void   |offer_nice_chunk       |NN void *chunk|U32 chunk_size
 Apnod  |int    |my_sprintf     |NN char *buffer|NN const char *pat|...
 #endif
 
+Apnodf |int    |my_snprintf    |NN char *buffer|const Size_t len|NN const char *format|...
+Apnod  |int    |my_vsnprintf   |NN char *buffer|const Size_t len|NN const char *format|va_list ap
+
 px     |void   |my_clearenv
 
 #ifdef PERL_IMPLICIT_CONTEXT