This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
really allow pad_findmy's retval to be ignored
[perl5.git] / embed.fnc
index 0857dd8..c83c0a3 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
@@ -21,7 +21,8 @@
 :         proto.h: add __attribute__malloc__
 :
 :   b  Binary backward compatibility; function is a macro
-:      but has also Perl_ implementation (which is exported):
+:      but has also Perl_ implementation (which is exported); often
+:      implemented in mathoms.c:
 :
 :         add entry to the list of exported symbols;
 :         don't define PERL_ARGS_ASSERT_FOO
@@ -30,7 +31,7 @@
 :
 :         proto.h: add __attribute__deprecated__
 :
-:   d  Function has documentation with its source:
+:   d  Function has documentation in the source:
 :
 :         enables 'no docs for foo" warning in autodoc.pl
 :
@@ -178,6 +179,7 @@ XEop        |bool   |try_amagic_bin |int method|int flags
 XEop   |bool   |try_amagic_un  |int method|int flags
 Ap     |SV*    |amagic_call    |NN SV* left|NN SV* right|int method|int dir
 Ap     |SV *   |amagic_deref_call|NN SV *ref|int method
+p      |bool   |amagic_is_enabled|int method
 Ap     |int    |Gv_AMupdate    |NN HV* stash|bool destructing
 ApR    |CV*    |gv_handler     |NULLOK HV* stash|I32 id
 Apd    |OP*    |op_append_elem |I32 optype|NULLOK OP* first|NULLOK OP* last
@@ -602,14 +604,14 @@ 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
+p      |UV     |_to_fold_latin1|const U8 c|NN U8 *p|NN STRLEN *lenp|const bool 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
+AMp    |UV     |_to_uni_fold_flags|UV c|NN U8 *p|NN STRLEN *lenp|const bool flags
 ApPR   |bool   |is_uni_alnum_lc|UV c
 ApPR   |bool   |is_uni_idfirst_lc|UV c
 ApPR   |bool   |is_uni_alpha_lc|UV c
@@ -763,6 +765,7 @@ p   |int    |magic_settaint |NN SV* sv|NN MAGIC* mg
 p      |int    |magic_setuvar  |NN SV* sv|NN MAGIC* mg
 p      |int    |magic_setvec   |NN SV* sv|NN MAGIC* mg
 p      |int    |magic_setutf8  |NN SV* sv|NN MAGIC* mg
+p      |int    |magic_setvstring|NN SV* sv|NN MAGIC* mg
 p      |int    |magic_set_all_env|NN SV* sv|NN MAGIC* mg
 p      |U32    |magic_sizepack |NN SV* sv|NN MAGIC* mg
 p      |int    |magic_wipepack |NN SV* sv|NN MAGIC* mg
@@ -853,7 +856,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|U32 flags|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
@@ -872,6 +877,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
@@ -1201,8 +1211,8 @@ Apd       |NV     |sv_2nv_flags   |NULLOK SV *const sv|const I32 flags
 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
-Apd    |char*  |sv_2pvutf8     |NN SV *const sv|NULLOK STRLEN *const lp
-Apd    |char*  |sv_2pvbyte     |NN SV *const sv|NULLOK STRLEN *const lp
+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
@@ -1345,7 +1355,7 @@ Apd       |void   |sv_vsetpvfn    |NN SV *const sv|NN const char *const pat|const STRLEN pa
                                |NULLOK va_list *const args|NULLOK SV **const svargs \
                                |const I32 svmax|NULLOK bool *const maybe_tainted
 ApR    |NV     |str_to_version |NN SV *sv
-Ap     |SV*    |swash_init     |NN const char* pkg|NN const char* name|NN SV* listsv|I32 minbits|I32 none
+ApR    |SV*    |swash_init     |NN const char* pkg|NN const char* name|NN SV* listsv|I32 minbits|I32 none
 Ap     |UV     |swash_fetch    |NN SV *swash|NN const U8 *ptr|bool do_utf8
 #ifdef PERL_IN_REGCOMP_C
 EiMR   |SV*    |add_cp_to_invlist      |NULLOK SV* invlist|const UV cp
@@ -1363,6 +1373,7 @@ EiMR      |SV*    |invlist_clone  |NN SV* const invlist
 EiMR   |UV*    |get_invlist_iter_addr  |NN SV* invlist
 EiM    |void   |invlist_iterinit|NN SV* invlist
 EsMR   |bool   |invlist_iternext|NN SV* invlist|NN UV* start|NN UV* end
+EsMR   |IV     |invlist_search |NN SV* const invlist|const UV cp
 #endif
 #if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_UTF8_C)
 EXpM   |void   |_invlist_intersection  |NN SV* const a|NN SV* const b|NN SV** i
@@ -1374,16 +1385,32 @@ EXMpR   |HV*    |_swash_inversion_hash  |NN SV* const swash
 EXMpR  |SV*    |_new_invlist   |IV initial_size
 EXMpR  |SV*    |_swash_to_invlist      |NN SV* const swash
 EXMp   |void   |_append_range_to_invlist   |NN SV* const invlist|const UV start|const UV end
+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)
+EXp    |SV*    |_core_swash_init|NN const char* pkg|NN const char* name|NN SV* listsv|I32 minbits \
+                |I32 none|bool return_if_undef|NULLOK SV* invlist \
+               |bool passed_in_invlist_has_user_defined_property
+EXMpR  |SV*    |_invlist_contents|NN SV* const invlist
 #endif
 Ap     |void   |taint_env
 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
-Apd    |UV     |to_utf8_lower  |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp
-Apd    |UV     |to_utf8_upper  |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp
-Apd    |UV     |to_utf8_title  |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp
-Ampd   |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
+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
+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
+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
+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
+#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 \
+                                        |bool len_is_uv|NN STRLEN *posp \
+                                        |NN STRLEN *lenp
+#endif
 #if defined(UNLINK_ALL_VERSIONS)
 Ap     |I32    |unlnk          |NN const char* f
 #endif
@@ -1452,6 +1479,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
@@ -1559,6 +1591,9 @@ Apd       |SV*    |sv_rvweaken    |NN SV *const sv
 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 \
+                                |NULLOK OP *attrs|NULLOK OP *block \
+                                |U32 flags
 #ifdef PERL_MAD
 Apr    |OP *   |newMYSUB       |I32 floor|NULLOK OP *o|NULLOK OP *proto \
                                |NULLOK OP *attrs|NULLOK OP *block
@@ -1583,8 +1618,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
@@ -1733,6 +1766,8 @@ s |void   |find_beginning |NN SV* linestr_sv|NN PerlIO *rsfp
 s      |void   |forbid_setid   |const char flag|const bool suidscript
 s      |void   |incpush        |NN const char *const dir|STRLEN len \
                                |U32 flags
+s      |SV*    |mayberelocate  |NN const char *const dir|STRLEN len \
+                               |U32 flags
 s      |void   |incpush_use_sep|NN const char *p|STRLEN len|U32 flags
 s      |void   |init_interp
 s      |void   |init_ids
@@ -1744,10 +1779,11 @@ rs      |void   |my_exit_jump
 s      |void   |nuke_stacks
 s      |int    |open_script    |NN const char *scriptname|bool dosearch \
                                |NN bool *suidscript|NN PerlIO **rsfpp
-s      |void   |usage          |NN const char *name
+sr     |void   |usage
 #ifndef SETUID_SCRIPTS_ARE_SECURE_NOW
 so     |void   |validate_suid  |NN PerlIO *rsfp
 #endif
+sr     |void   |minus_v
 
 s      |void*  |parse_body     |NULLOK char **env|XSINIT_t xsinit
 rs     |void   |run_body       |I32 oldscope
@@ -1867,7 +1903,9 @@ Es        |void   |regtail        |NN struct RExC_state_t *pRExC_state \
 Es     |SV *   |reg_scan_name  |NN struct RExC_state_t *pRExC_state \
                                |U32 flags
 Es     |U32    |join_exact     |NN struct RExC_state_t *pRExC_state \
-                               |NN regnode *scan|NN I32 *min|U32 flags|NULLOK regnode *val|U32 depth
+                               |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 \
                                |NN char *p
 Es     |char * |nextchar       |NN struct RExC_state_t *pRExC_state
@@ -1935,6 +1973,9 @@ ERs       |bool   |reginclass     |NULLOK const regexp * const prog|NN const regnode * const
 Es     |CHECKPOINT|regcppush   |I32 parenfloor
 Es     |char*  |regcppop       |NN const regexp *rex
 ERsn   |U8*    |reghop3        |NN U8 *s|I32 off|NN const U8 *lim
+ERsM   |SV*    |core_regclass_swash|NULLOK const regexp *prog \
+                               |NN const struct regnode *node|bool doinit \
+                               |NULLOK SV **listsvp|NULLOK SV **altsvp
 #ifdef XXX_dmq
 ERsn   |U8*    |reghop4        |NN U8 *s|I32 off|NN const U8 *llim \
                                |NN const U8 *rlim
@@ -1975,15 +2016,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
@@ -2120,8 +2164,9 @@ sn        |NV|mulexp10    |NV value|I32 exponent
 
 #if defined(PERL_IN_UTF8_C)
 sRn    |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
 sR     |bool   |is_utf8_common |NN const U8 *const p|NN SV **swash|NN const char * const swashname
-sR     |SV*    |swash_get      |NN SV* swash|UV start|UV span
+sR     |SV*    |swatch_get     |NN SV* swash|UV start|UV span
 #endif
 
 Apd    |void   |sv_setsv_flags |NN SV *dstr|NULLOK SV *sstr|const I32 flags
@@ -2205,9 +2250,9 @@ Apd       |PADOFFSET|pad_add_anon |NN CV* func|I32 optype
 #if defined(PERL_IN_PAD_C)
 sd     |void   |pad_check_dup  |NN SV *name|U32 flags|NULLOK const HV *ourstash
 #endif
-ApdR   |PADOFFSET|pad_findmy_pvn|NN const char* namepv|STRLEN namelen|U32 flags
-ApdR   |PADOFFSET|pad_findmy_pv|NN const char* name|U32 flags
-ApdR   |PADOFFSET|pad_findmy_sv|NN SV* name|U32 flags
+Apd    |PADOFFSET|pad_findmy_pvn|NN const char* namepv|STRLEN namelen|U32 flags
+Apd    |PADOFFSET|pad_findmy_pv|NN const char* name|U32 flags
+Apd    |PADOFFSET|pad_findmy_sv|NN SV* name|U32 flags
 ApdD   |PADOFFSET|find_rundefsvoffset  |
 Apd    |SV*    |find_rundefsv  |
 : Used in pp.c
@@ -2546,6 +2591,7 @@ Anop      |void   |clone_params_del|NN CLONE_PARAMS *param
 op     |void   |populate_isa   |NN const char *name|STRLEN len|...
 
 : Used in keywords.c and toke.c
-op     |bool   |feature_is_enabled|NN const char *const name|STRLEN namelen
+Xop    |bool   |feature_is_enabled|NN const char *const name \
+               |STRLEN namelen
 
 : ex: set ts=8 sts=4 sw=4 noet: