This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
don't depend on threads to do a watchdog when testing threads
[perl5.git] / embed.fnc
index adf1c6d..da62c5f 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
@@ -270,8 +270,9 @@ p   |SV *   |core_prototype |NULLOK SV *sv|NN const char *name \
 p      |OP *   |coresub_op     |NN SV *coreargssv|const int code \
                                |const int opnum
 : Used in sv.c
-p      |void   |cv_ckproto_len |NN const CV* cv|NULLOK const GV* gv\
-                               |NULLOK const char* p|const STRLEN len
+p      |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
 ApdR   |SV*    |gv_const_sv    |NN GV* gv
 ApdR   |SV*    |cv_const_sv    |NULLOK const CV *const cv
@@ -429,7 +430,13 @@ Ap |GV*    |gv_add_by_type |NULLOK GV *gv|svtype type
 Apmb   |GV*    |gv_AVadd       |NULLOK GV *gv
 Apmb   |GV*    |gv_HVadd       |NULLOK GV *gv
 Apmb   |GV*    |gv_IOadd       |NULLOK GV* gv
-ApR    |GV*    |gv_autoload4   |NULLOK HV* stash|NN const char* name|STRLEN len|I32 method
+AmR    |GV*    |gv_autoload4   |NULLOK HV* stash|NN const char* name \
+                               |STRLEN len|I32 method
+ApR    |GV*    |gv_autoload_sv |NULLOK HV* stash|NN SV* namesv|U32 flags
+ApR    |GV*    |gv_autoload_pv |NULLOK HV* stash|NN const char* namepv \
+                                |U32 flags
+ApR    |GV*    |gv_autoload_pvn        |NULLOK HV* stash|NN const char* name \
+                                        |STRLEN len|U32 flags
 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
@@ -437,17 +444,29 @@ Ap        |void   |gv_efullname4  |NN SV* sv|NN const GV* gv|NULLOK const char* prefix|boo
 Ap     |GV*    |gv_fetchfile   |NN const char* name
 Ap     |GV*    |gv_fetchfile_flags|NN const char *const name|const STRLEN len\
                                |const U32 flags
+Amd    |GV*    |gv_fetchmeth   |NULLOK HV* stash|NN const char* name \
+                               |STRLEN len|I32 level
 Apd    |GV*    |gv_fetchmeth_sv        |NULLOK HV* stash|NN SV* namesv|I32 level|U32 flags
 Apd    |GV*    |gv_fetchmeth_pv        |NULLOK HV* stash|NN const char* name \
                                         |I32 level|U32 flags
 Apd    |GV*    |gv_fetchmeth_pvn       |NULLOK HV* stash|NN const char* name \
                                         |STRLEN len|I32 level|U32 flags
-Apd    |GV*    |gv_fetchmeth_autoload  |NULLOK HV* stash|NN const char* name|STRLEN len|I32 level
+Amd    |GV*    |gv_fetchmeth_autoload  |NULLOK HV* stash \
+                                       |NN const char* name|STRLEN len \
+                                       |I32 level
+Apd    |GV*    |gv_fetchmeth_sv_autoload       |NULLOK HV* stash|NN SV* namesv|I32 level|U32 flags
+Apd    |GV*    |gv_fetchmeth_pv_autoload       |NULLOK HV* stash|NN const char* name \
+                                        |I32 level|U32 flags
+Apd    |GV*    |gv_fetchmeth_pvn_autoload      |NULLOK HV* stash|NN const char* name \
+                                        |STRLEN len|I32 level|U32 flags
 Apdmb  |GV*    |gv_fetchmethod |NN HV* stash|NN const char* name
 Apd    |GV*    |gv_fetchmethod_autoload|NN HV* stash|NN const char* name \
                                |I32 autoload
-ApM    |GV*    |gv_fetchmethod_flags|NN HV* stash|NN const char* name \
-                               |U32 flags
+ApM    |GV*    |gv_fetchmethod_sv_flags|NN HV* stash|NN SV* namesv|U32 flags
+ApM    |GV*    |gv_fetchmethod_pv_flags|NN HV* stash|NN const char* name \
+                               |U32 flags
+ApM    |GV*    |gv_fetchmethod_pvn_flags|NN HV* stash|NN const char* name \
+                               |const STRLEN len|U32 flags
 Ap     |GV*    |gv_fetchpv     |NN const char *nambeg|I32 add|const svtype 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
@@ -458,11 +477,11 @@ pX        |void   |cvgv_set       |NN CV* cv|NULLOK GV* gv
 pX     |void   |cvstash_set    |NN CV* cv|NULLOK HV* stash
 Amd    |void   |gv_init        |NN GV* gv|NULLOK HV* stash \
                                 |NN const char* name|STRLEN len|int multi
-Ap     |void   |gv_init_sv     |NN GV* gv|NULLOK HV* stash|NN SV* namesv|int multi|U32 flags
+Ap     |void   |gv_init_sv     |NN GV* gv|NULLOK HV* stash|NN SV* namesv|U32 flags
 Ap     |void   |gv_init_pv     |NN GV* gv|NULLOK HV* stash|NN const char* name \
-                                |int multi|U32 flags
+                                |U32 flags
 Ap     |void   |gv_init_pvn    |NN GV* gv|NULLOK HV* stash|NN const char* name \
-                                |STRLEN len|int multi|U32 flags
+                                |STRLEN len|U32 flags
 Ap     |void   |gv_name_set    |NN GV* gv|NN const char *name|U32 len|U32 flags
 XMpd   |void   |gv_try_downgrade|NN GV* gv
 Apd    |HV*    |gv_stashpv     |NN const char* name|I32 flags
@@ -581,6 +600,13 @@ ApPR       |bool   |is_uni_punct   |UV c
 ApPR   |bool   |is_uni_xdigit  |UV c
 Ap     |UV     |to_uni_upper   |UV c|NN U8 *p|NN STRLEN *lenp
 Ap     |UV     |to_uni_title   |UV c|NN U8 *p|NN STRLEN *lenp
+#ifdef PERL_IN_UTF8_C
+sR     |U8     |to_lower_latin1|const U8 c|NULLOK U8 *p|NULLOK STRLEN *lenp
+p      |UV     |_to_fold_latin1|const U8 c|NN U8 *p|NN STRLEN *lenp|const U8 flags
+#endif
+#if defined(PERL_IN_UTF8_C) || defined(PERL_IN_PP_C)
+p      |UV     |_to_upper_title_latin1|const U8 c|NN U8 *p|NN STRLEN *lenp|const char S_or_s
+#endif
 Ap     |UV     |to_uni_lower   |UV c|NN U8 *p|NN STRLEN *lenp
 Amp    |UV     |to_uni_fold    |UV c|NN U8 *p|NN STRLEN *lenp
 AMp    |UV     |_to_uni_fold_flags|UV c|NN U8 *p|NN STRLEN *lenp|U8 flags
@@ -827,6 +853,9 @@ i   |bool   |aassign_common_vars    |NULLOK OP* o
 Apda   |OP*    |newASSIGNOP    |I32 flags|NULLOK OP* left|I32 optype|NULLOK OP* right
 Apda   |OP*    |newCONDOP      |I32 flags|NN OP* first|NULLOK OP* trueop|NULLOK OP* falseop
 Apd    |CV*    |newCONSTSUB    |NULLOK HV* stash|NULLOK const char* name|NULLOK SV* sv
+Apd    |CV*    |newCONSTSUB_flags|NULLOK HV* stash \
+                                 |NULLOK const char* name|STRLEN len \
+                                 |U32 flags|NULLOK SV* sv
 #ifdef PERL_MAD
 Ap     |OP*    |newFORM        |I32 floor|NULLOK OP* o|NULLOK OP* block
 #else
@@ -845,6 +874,11 @@ Apda       |OP*    |newSLICEOP     |I32 flags|NULLOK OP* subscript|NULLOK OP* listop
 Apda   |OP*    |newSTATEOP     |I32 flags|NULLOK char* label|NULLOK OP* o
 Abm    |CV*    |newSUB         |I32 floor|NULLOK OP* o|NULLOK OP* proto \
                                |NULLOK OP* block
+p      |CV *   |newXS_len_flags|NULLOK const char *name|STRLEN len \
+                               |NN XSUBADDR_t subaddr\
+                               |NN const char *const filename \
+                               |NULLOK const char *const proto \
+                               |NULLOK SV **const_svp|U32 flags
 ApM    |CV *   |newXS_flags    |NULLOK const char *name|NN XSUBADDR_t subaddr\
                                |NN const char *const filename \
                                |NULLOK const char *const proto|U32 flags
@@ -855,7 +889,8 @@ Apa |OP*    |newAVREF       |NN OP* o
 Apda   |OP*    |newBINOP       |I32 type|I32 flags|NULLOK OP* first|NULLOK OP* last
 Apa    |OP*    |newCVREF       |I32 flags|NULLOK OP* o
 Apda   |OP*    |newGVOP        |I32 type|I32 flags|NN GV* gv
-Apa    |GV*    |newGVgen       |NN const char* pack
+Am     |GV*    |newGVgen       |NN const char* pack
+Apa    |GV*    |newGVgen_flags |NN const char* pack|U32 flags
 Apa    |OP*    |newGVREF       |I32 type|NULLOK OP* o
 ApaR   |OP*    |newHVREF       |NN OP* o
 AmdbR  |HV*    |newHV
@@ -1045,7 +1080,7 @@ 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
-Anp    |void   |repeatcpy      |NN char* to|NN const char* from|I32 len|I32 count
+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
 Ap     |Sighandler_t|rsignal   |int i|Sighandler_t t
@@ -1228,7 +1263,15 @@ Apd      |void   |sv_dec         |NULLOK SV *const sv
 Apd    |void   |sv_dec_nomg    |NULLOK SV *const sv
 Ap     |void   |sv_dump        |NN SV* sv
 ApdR   |bool   |sv_derived_from|NN SV* sv|NN const char *const name
+ApdR   |bool   |sv_derived_from_sv|NN SV* sv|NN SV *namesv|U32 flags
+ApdR   |bool   |sv_derived_from_pv|NN SV* sv|NN const char *const name|U32 flags
+ApdR   |bool   |sv_derived_from_pvn|NN SV* sv|NN const char *const name \
+                                    |const STRLEN len|U32 flags
 ApdR   |bool   |sv_does        |NN SV* sv|NN const char *const name
+ApdR   |bool   |sv_does_sv     |NN SV* sv|NN SV* namesv|U32 flags
+ApdR   |bool   |sv_does_pv     |NN SV* sv|NN const char *const name|U32 flags
+ApdR   |bool   |sv_does_pvn    |NN SV* sv|NN const char *const name|const STRLEN len \
+                                |U32 flags
 Amd    |I32    |sv_eq          |NULLOK SV* sv1|NULLOK SV* sv2
 Apd    |I32    |sv_eq_flags    |NULLOK SV* sv1|NULLOK SV* sv2|const U32 flags
 Apd    |void   |sv_free        |NULLOK SV *const sv
@@ -1270,6 +1313,7 @@ Apd       |char*  |sv_recode_to_utf8      |NN SV* sv|NN SV *encoding
 Apd    |bool   |sv_cat_decode  |NN SV* dsv|NN SV *encoding|NN SV *ssv|NN int *offset \
                                |NN char* tstr|int tlen
 ApdR   |const char*    |sv_reftype     |NN const SV *const sv|const int ob
+pd     |SV*    |sv_ref |NULLOK SV *dst|NN const SV *const sv|const int ob
 Apd    |void   |sv_replace     |NN SV *const sv|NN SV *const nsv
 Apd    |void   |sv_report_used
 Apd    |void   |sv_reset       |NN const char* s|NULLOK HV *const stash
@@ -1288,6 +1332,7 @@ Apd       |SV*    |sv_setref_pvn  |NN SV *const rv|NULLOK const char *const classname \
                                |NN const char *const pv|const STRLEN n
 Apd    |void   |sv_setpv       |NN SV *const sv|NULLOK const char *const ptr
 Apd    |void   |sv_setpvn      |NN SV *const sv|NULLOK const char *const ptr|const STRLEN len
+Xp     |void   |sv_sethek      |NN SV *const sv|NULLOK const HEK *const hek
 Amdb   |void   |sv_setsv       |NN SV *dstr|NULLOK SV *sstr
 Amdb   |void   |sv_taint       |NN SV* sv
 ApdR   |bool   |sv_tainted     |NN SV *const sv
@@ -1414,6 +1459,11 @@ p        |void   |report_evil_fh |NULLOK const GV *gv
 p      |void   |report_wrongway_fh|NULLOK const GV *gv|const char have
 : Used in mg.c, pp.c, pp_hot.c, regcomp.c
 XEpd   |void   |report_uninit  |NULLOK const SV *uninit_sv
+#if defined(PERL_IN_OP_C) || defined(PERL_IN_SV_C)
+p      |void   |report_redefined_cv|NN const SV *name \
+                                   |NN const CV *old_cv \
+                                   |NULLOK SV * const *new_const_svp
+#endif
 Apd    |void   |warn_sv        |NN SV *baseex
 Afpd   |void   |warn           |NN const char* pat|...
 Apd    |void   |vwarn          |NN const char* pat|NULLOK va_list* args
@@ -1423,7 +1473,10 @@ Afp      |void   |ck_warner_d    |U32 err|NN const char* pat|...
 Ap     |void   |vwarner        |U32 err|NN const char* pat|NULLOK va_list* args
 : FIXME
 p      |void   |watch          |NN char** addr
-Ap     |I32    |whichsig       |NN const char* sig
+Am     |I32    |whichsig       |NN const char* sig
+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 in pp_ctl.c
 p      |void   |write_to_stderr|NN SV* msv
 : Used in op.c
@@ -1542,8 +1595,6 @@ ApR       |MAGIC* |mg_dup         |NULLOK MAGIC *mg|NN CLONE_PARAMS *const param
 #if defined(PERL_IN_SV_C)
 s      |SV **  |sv_dup_inc_multiple|NN SV *const *source|NN SV **dest \
                                |SSize_t items|NN CLONE_PARAMS *const param
-#endif
-#if defined(PERL_IN_SV_C)
 sR     |SV*    |sv_dup_common  |NN const SV *const sstr \
                                |NN CLONE_PARAMS *const param
 #endif
@@ -1599,7 +1650,7 @@ sR        |I32    |do_trans_complex_utf8  |NN SV * const sv
 s      |void   |gv_init_svtype |NN GV *gv|const svtype sv_type
 s      |void   |gv_magicalize_isa      |NN GV *gv
 s      |void   |gv_magicalize_overload |NN GV *gv
-s      |HV*    |gv_get_super_pkg|NN const char* name|I32 namelen
+s      |HV*    |gv_get_super_pkg|NN const char* name|I32 namelen|U32 flags
 s      |HV*    |require_tie_mod|NN GV *gv|NN const char *varpv|NN SV* namesv \
                                |NN const char *methpv|const U32 flags
 #endif
@@ -1756,7 +1807,8 @@ sR        |I32    |dopoptoloop    |I32 startingblock
 sR     |I32    |dopoptosub_at  |NN const PERL_CONTEXT* cxstk|I32 startingblock
 sR     |I32    |dopoptowhen    |I32 startingblock
 s      |void   |save_lines     |NULLOK AV *array|NN SV *sv
-s      |bool   |doeval         |int gimme|NULLOK OP** startop|NULLOK CV* outside|U32 seq
+s      |bool   |doeval         |int gimme|NULLOK OP** startop \
+                               |NULLOK CV* outside|U32 seq|NULLOK HV* hh
 sR     |PerlIO *|check_type_and_open|NN SV *name
 #ifndef PERL_DISABLE_PMC
 sR     |PerlIO *|doopen_pm     |NN SV *name
@@ -1915,8 +1967,6 @@ Es        |void   |debug_start_match|NN const REGEXP *prog|const bool do_utf8\
 #if defined(PERL_IN_DUMP_C)
 s      |CV*    |deb_curcv      |const 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
@@ -1935,15 +1985,18 @@ po      |void   |sv_add_backref |NN SV *const tsv|NN SV *const sv
 poM    |void   |sv_kill_backrefs       |NN SV *const sv|NULLOK AV *const av
 #endif
 
+#if defined(PERL_IN_SV_C) || defined (PERL_IN_OP_C)
+pR     |SV *   |varname        |NULLOK const GV *const gv|const char gvtype \
+                               |PADOFFSET targ|NULLOK const SV *const keyname \
+                               |I32 aindex|int subscript_type
+#endif
+
 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
-s      |void   |sv_unglob      |NN SV *const sv
+i      |void   |sv_unglob      |NN SV *const sv|U32 flags
 s      |void   |not_a_number   |NN SV *const sv
 s      |I32    |visit          |NN SVFUNC_t f|const U32 flags|const U32 mask
-sR     |SV *   |varname        |NULLOK const GV *const gv|const char gvtype \
-                               |PADOFFSET targ|NULLOK const SV *const keyname \
-                               |I32 aindex|int subscript_type
 #  ifdef DEBUGGING
 s      |void   |del_sv |NN SV *p
 #  endif
@@ -2049,7 +2102,8 @@ s |void   |printbuf       |NN const char *const fmt|NN const char *const s
 #endif
 
 #if defined(PERL_IN_UNIVERSAL_C)
-s      |bool|isa_lookup        |NN HV *stash|NN const char * const name
+s      |bool|isa_lookup        |NN HV *stash|NN const char * const name \
+                                        |STRLEN len|U32 flags
 #endif
 
 #if defined(PERL_IN_LOCALE_C)
@@ -2228,8 +2282,7 @@ p |void   |hv_ename_delete|NN HV *hv|NN const char *name|U32 len \
                                |U32 flags
 : Used in dump.c and hv.c
 poM    |AV**   |hv_backreferences_p    |NN HV *hv
-#if defined(PERL_IN_DUMP_C) || defined(PERL_IN_HV_C) || defined(PERL_IN_SV_C)
-: Only used in sv.c
+#if defined(PERL_IN_DUMP_C) || defined(PERL_IN_HV_C) || defined(PERL_IN_SV_C) || defined(PERL_IN_SCOPE_C)
 poM    |void   |hv_kill_backrefs       |NN HV *hv
 #endif
 Apd    |void   |hv_clear_placeholders  |NN HV *hv
@@ -2467,7 +2520,7 @@ 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
+                                |NULLOK HV * const exceptions|U32 flags
 s      |void   |mro_gather_and_rename|NN HV * const stashes \
                                      |NN HV * const seen_stashes \
                                      |NULLOK HV *stash \