This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update Parse-CPAN-Meta to CPAN version 1.4409
[perl5.git] / embed.fnc
index 0331056..5320a34 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
@@ -258,6 +258,8 @@ ApR |UV     |cast_uv        |NV f
 #if !defined(HAS_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP)
 ApR    |I32    |my_chsize      |int fd|Off_t length
 #endif
+p      |const COP*|closest_cop |NN const COP *cop|NULLOK const OP *o \
+                               |NULLOK const OP *curop|bool opnext
 : Used in perly.y
 pR     |OP*    |convert        |I32 optype|I32 flags|NULLOK OP* o
 : Used in op.c and perl.c
@@ -419,9 +421,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
@@ -964,6 +963,7 @@ Apda        |SV*    |newRV_noinc    |NN SV *const sv
 Apda   |SV*    |newSV          |const STRLEN len
 Apa    |OP*    |newSVREF       |NN OP* o
 Apda   |OP*    |newSVOP        |I32 type|I32 flags|NN SV* sv
+pa     |SV*    |newSVavdefelem |NN AV *av|SSize_t ix|bool extendible
 Apda   |SV*    |newSViv        |const IV i
 Apda   |SV*    |newSVuv        |const UV u
 Apda   |SV*    |newSVnv        |const NV n
@@ -1542,30 +1542,21 @@ ApMd    |U8*    |bytes_from_utf8|NN const U8 *s|NN STRLEN *len|NULLOK bool *is_utf8
 ApMd   |U8*    |bytes_to_utf8  |NN const U8 *s|NN STRLEN *len
 ApdD   |UV     |utf8_to_uvchr  |NN const U8 *s|NULLOK STRLEN *retlen
 ApdD   |UV     |utf8_to_uvuni  |NN const U8 *s|NULLOK STRLEN *retlen
-ApM    |UV     |valid_utf8_to_uvuni    |NN const U8 *s|NULLOK STRLEN *retlen
-Apd    |UV     |utf8_to_uvchr_buf      |NN const U8 *s|NN const U8 *send|NULLOK STRLEN *retlen
-Apd    |UV     |utf8_to_uvuni_buf      |NN const U8 *s|NN const U8 *send|NULLOK STRLEN *retlen
+ApMD   |UV     |valid_utf8_to_uvuni    |NN const U8 *s|NULLOK STRLEN *retlen
+Amd    |UV     |utf8_to_uvchr_buf      |NN const U8 *s|NN const U8 *send|NULLOK STRLEN *retlen
+ApdD   |UV     |utf8_to_uvuni_buf      |NN const U8 *s|NN const U8 *send|NULLOK STRLEN *retlen
 pM     |bool   |check_utf8_print       |NN const U8 *s|const STRLEN len
 
-#ifdef EBCDIC
 Adp    |UV     |utf8n_to_uvchr |NN const U8 *s|STRLEN curlen|NULLOK STRLEN *retlen|U32 flags
 ApM    |UV     |valid_utf8_to_uvchr    |NN const U8 *s|NULLOK STRLEN *retlen
-#else
-Adpbm  |UV     |utf8n_to_uvchr |NN const U8 *s|STRLEN curlen|NULLOK STRLEN *retlen|U32 flags
-ApbmM  |UV     |valid_utf8_to_uvchr    |NN const U8 *s|NULLOK STRLEN *retlen
-#endif
 
-Adp    |UV     |utf8n_to_uvuni |NN const U8 *s|STRLEN curlen|NULLOK STRLEN *retlen|U32 flags
-
-#ifdef EBCDIC
-Apd    |U8*    |uvchr_to_utf8  |NN U8 *d|UV uv
-#else
-Apdbm  |U8*    |uvchr_to_utf8  |NN U8 *d|UV uv
-#endif
+Ap     |UV     |utf8n_to_uvuni|NN const U8 *s|STRLEN curlen|NULLOK STRLEN *retlen|U32 flags
 
-Apbm   |U8*    |uvuni_to_utf8  |NN U8 *d|UV uv
-Ap     |U8*    |uvchr_to_utf8_flags    |NN U8 *d|UV uv|UV flags
-Apd    |U8*    |uvuni_to_utf8_flags    |NN U8 *d|UV uv|UV flags
+Adm    |U8*    |uvchr_to_utf8  |NN U8 *d|UV uv
+Ap     |U8*    |uvuni_to_utf8  |NN U8 *d|UV uv
+Adm    |U8*    |uvchr_to_utf8_flags    |NN U8 *d|UV uv|UV flags
+Apd    |U8*    |uvoffuni_to_utf8_flags |NN U8 *d|UV uv|UV flags
+Ap     |U8*    |uvuni_to_utf8_flags    |NN U8 *d|UV uv|UV flags
 Apd    |char*  |pv_uni_display |NN SV *dsv|NN const U8 *spv|STRLEN len|STRLEN pvlim|UV flags
 ApdR   |char*  |sv_uni_display |NN SV *dsv|NN SV *ssv|STRLEN pvlim|UV flags
 : Used by Data::Alias
@@ -1577,6 +1568,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
@@ -1604,7 +1597,7 @@ Ap     |I32    |whichsig_sv    |NN SV* sigsv
 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 SV *pv|NN const char *what|NN const char *op_name
+AiR    |bool   |is_safe_syscall|NN const char *pv|STRLEN len|NN const char *what|NN const char *op_name
 : Used in pp_ctl.c
 p      |void   |write_to_stderr|NN SV* msv
 : Used in op.c
@@ -1783,6 +1776,19 @@ sR       |I32    |do_trans_complex_utf8  |NN SV * const sv
 #if defined(PERL_IN_GV_C)
 s      |void   |gv_init_svtype |NN GV *gv|const svtype sv_type
 s      |void   |gv_magicalize_isa      |NN GV *gv
+s  |bool|parse_gv_stash_name|NN HV **stash|NN GV **gv \
+                     |NN const char **name|NN STRLEN *len \
+                     |NN const char *nambeg|STRLEN full_len \
+                     |const U32 is_utf8|const I32 add
+s  |bool|find_default_stash|NN HV **stash|NN const char *name \
+                     |STRLEN len|const U32 is_utf8|const I32 add \
+                     |svtype sv_type
+s  |bool|gv_magicalize|NN GV *gv|NN HV *stash|NN const char *name \
+                     |STRLEN len|bool addmg \
+                     |svtype sv_type
+s  |void|maybe_multimagic_gv|NN GV *gv|NN const char *name|const svtype sv_type
+s  |bool|gv_is_in_main|NN const char *name|STRLEN len \
+                      |const U32 is_utf8
 s      |HV*    |require_tie_mod|NN GV *gv|NN const char *varpv|NN SV* namesv \
                                |NN const char *methpv|const U32 flags
 #endif
@@ -1988,85 +1994,110 @@ 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 \
+Es     |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 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     |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  \
                                |U32 flags|NULLOK regnode *val|U32 depth
-EsRn   |char * |regwhite       |NN struct RExC_state_t *pRExC_state \
+EsRn   |char * |regwhite       |NN RExC_state_t *pRExC_state \
                                |NN char *p
-EsRn   |char * |regpatws       |NN struct RExC_state_t *pRExC_state \
+EsRn   |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 \
+Ei     |U8   |compute_EXACTish|NN RExC_state_t *pRExC_state
+Es     |char * |nextchar       |NN RExC_state_t *pRExC_state
+Es     |bool   |reg_skipcomment|NN RExC_state_t *pRExC_state
+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_ssc *and_with
+Esn    |void   |ssc_flags_and  |NN regnode_ssc *ssc|const U8 and_with
+Es     |void   |ssc_or         |NN const RExC_state_t *pRExC_state \
+                               |NN regnode_ssc *ssc \
+                               |NN const regnode_ssc *or_with
+Es     |SV*    |get_ANYOF_cp_list_for_ssc                                 \
+                               |NN const RExC_state_t *pRExC_state \
+                               |NN const regnode_charclass_posixl* 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 \
+                               |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
-rs     |void   |re_croak2      |NN const char* pat1|NN const char* pat2|...
-Ei     |I32    |regpposixcc    |NN struct RExC_state_t *pRExC_state \
+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 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 \
+Es     |void   |make_trie_failtable    |NN RExC_state_t *pRExC_state \
                                 |NN regnode *source|NN regnode *stclass \
                                |U32 depth
 #  ifdef DEBUGGING
@@ -2088,7 +2119,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
@@ -2227,7 +2258,7 @@ 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
@@ -2294,7 +2325,6 @@ s |bool   |is_cur_LC_category_utf8|int category
 #endif
 
 #if defined(PERL_IN_UTIL_C)
-s      |const COP*|closest_cop |NN const COP *cop|NULLOK const OP *o
 s      |SV*    |mess_alloc
 s      |SV *   |with_queued_errors|NN SV *ex
 s      |bool   |invoke_exception_hook|NULLOK SV *ex|bool warn
@@ -2350,9 +2380,9 @@ Ap        |int    |PerlIO_eof             |NULLOK PerlIO *f
 Ap     |int    |PerlIO_error           |NULLOK PerlIO *f
 Ap     |int    |PerlIO_flush           |NULLOK PerlIO *f
 Ap     |void   |PerlIO_clearerr        |NULLOK PerlIO *f
-Ap     |void   |PerlIO_set_cnt         |NULLOK PerlIO *f|int cnt
+Ap     |void   |PerlIO_set_cnt         |NULLOK PerlIO *f|SSize_t cnt
 Ap     |void   |PerlIO_set_ptrcnt      |NULLOK PerlIO *f|NULLOK STDCHAR *ptr \
-                                       |int cnt
+                                       |SSize_t cnt
 Ap     |void   |PerlIO_setlinebuf      |NULLOK PerlIO *f
 Ap     |SSize_t|PerlIO_read            |NULLOK PerlIO *f|NN void *vbuf \
                                        |Size_t count
@@ -2365,8 +2395,8 @@ Ap        |int    |PerlIO_seek            |NULLOK PerlIO *f|Off_t offset|int whence
 
 Ap     |STDCHAR *|PerlIO_get_base      |NULLOK PerlIO *f
 Ap     |STDCHAR *|PerlIO_get_ptr       |NULLOK PerlIO *f
-ApR    |int      |PerlIO_get_bufsiz    |NULLOK PerlIO *f
-ApR    |int      |PerlIO_get_cnt       |NULLOK PerlIO *f
+ApR    |SSize_t          |PerlIO_get_bufsiz    |NULLOK PerlIO *f
+ApR    |SSize_t          |PerlIO_get_cnt       |NULLOK PerlIO *f
 
 ApR    |PerlIO *|PerlIO_stdin
 ApR    |PerlIO *|PerlIO_stdout
@@ -2543,11 +2573,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