This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
[perl #87708] $tied + $tied and $tied - $tied under ‘use integer’
[perl5.git] / embed.fnc
index 3aad10f..b891b43 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
 :
 :         proto.h: add __attribute__format__ (or ...null_ok__)
 :
+:   i  Static inline: function in source code has a S_ prefix:
+:
+:         proto.h: function is declared as S_foo rather than foo,
+:                PERL_STATIC_INLINE is added to declaration;
+:         embed.h: "#define foo S_foo" entries added
+:
 :   M  May change:
 :
 :         any doc entry is marked that function may change
@@ -219,7 +225,7 @@ p   |void   |boot_core_PerlIO
 Ap     |void   |call_list      |I32 oldscope|NN AV *paramList
 Apd    |const PERL_CONTEXT *   |caller_cx|I32 level \
                                |NULLOK const PERL_CONTEXT **dbcxp
-: Used in serveral source files
+: Used in several source files
 pR     |bool   |cando          |Mode_t mode|bool effective|NN const Stat_t* statbufp
 ApR    |U32    |cast_ulong     |NV f
 ApR    |I32    |cast_i32       |NV f
@@ -338,8 +344,8 @@ p   |I32    |do_semop       |NN SV** mark|NN SV** sp
 p      |I32    |do_shmio       |I32 optype|NN SV** mark|NN SV** sp
 #endif
 Ap     |void   |do_join        |NN SV *sv|NN SV *delim|NN SV **mark|NN SV **sp
-: Used in pp.c and pp_hot.c
-p      |OP*    |do_kv
+: Used in pp.c and pp_hot.c, prototype generated by regen/opcode.pl
+: p    |OP*    |do_kv
 Apmb   |bool   |do_open        |NN GV* gv|NN const char* name|I32 len|int as_raw \
                                |int rawmode|int rawperm|NULLOK PerlIO* supplied_fp
 Ap     |bool   |do_open9       |NN GV *gv|NN const char *name|I32 len|int as_raw \
@@ -511,9 +517,12 @@ AnpP       |I32    |foldEQ_locale  |NN const char* a|NN const char* b|I32 len
 Am     |I32    |ibcmp_utf8     |NN const char *s1|NULLOK char **pe1|UV l1 \
                                |bool u1|NN const char *s2|NULLOK char **pe2 \
                                |UV l2|bool u2
-Apd    |I32    |foldEQ_utf8    |NN const char *s1|NULLOK char **pe1|UV l1 \
+Amd    |I32    |foldEQ_utf8    |NN const char *s1|NULLOK char **pe1|UV l1 \
                                |bool u1|NN const char *s2|NULLOK char **pe2 \
                                |UV l2|bool u2
+AMp    |I32    |foldEQ_utf8_flags |NN const char *s1|NULLOK char **pe1|UV l1 \
+                               |bool u1|NN const char *s2|NULLOK char **pe2 \
+                               |UV l2|bool u2|U32 flags
 AnpP   |I32    |foldEQ_latin1  |NN const char* a|NN const char* b|I32 len
 #if defined(PERL_IN_DOIO_C)
 sR     |bool   |ingroup        |Gid_t testgid|bool effective
@@ -574,7 +583,9 @@ Anpdmb      |bool   |is_utf8_string_loc|NN const U8 *s|STRLEN len|NULLOK const U8 **p
 Anpd   |bool   |is_utf8_string_loclen|NN const U8 *s|STRLEN len|NULLOK const U8 **ep|NULLOK STRLEN *el
 ApR    |bool   |is_utf8_alnum  |NN const U8 *p
 ApR    |bool   |is_utf8_idfirst|NN const U8 *p
+ApR    |bool   |is_utf8_xidfirst|NN const U8 *p
 ApR    |bool   |is_utf8_idcont |NN const U8 *p
+ApR    |bool   |is_utf8_xidcont        |NN const U8 *p
 ApR    |bool   |is_utf8_alpha  |NN const U8 *p
 ApR    |bool   |is_utf8_ascii  |NN const U8 *p
 ApR    |bool   |is_utf8_space  |NN const U8 *p
@@ -650,8 +661,10 @@ Ap |void   |vload_module|U32 flags|NN SV* name|NULLOK SV* ver|NULLOK va_list* args
 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
-EXMpR  |char   |grok_bslash_c  |const char source|const bool output_warning
-EXMpR  |bool   |grok_bslash_o  |NN const char* s|NN UV* uv|NN STRLEN* len|NN const char** error_msg|const bool output_warning
+#ifdef PERL_IN_DQUOTE_STATIC_C
+EMsR   |char   |grok_bslash_c  |const char source|const bool utf8|const bool output_warning
+EMsR   |bool   |grok_bslash_o  |NN const char* s|NN UV* uv|NN STRLEN* len|NN const char** error_msg|const bool output_warning
+#endif
 Apd    |UV     |grok_hex       |NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV *result
 Apd    |int    |grok_number    |NN const char *pv|STRLEN len|NULLOK UV *valuep
 ApdR   |bool   |grok_numeric_radix|NN const char **sp|NN const char *send
@@ -965,6 +978,11 @@ 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
+EMi    |U8     |set_regclass_bit|NN struct RExC_state_t* pRExC_state|NN regnode* node|const U8 value|NN HV** invlist_ptr|NN AV** alternate_ptr
+EMs    |U8     |set_regclass_bit_fold|NN struct RExC_state_t *pRExC_state|NN regnode* node|const U8 value|NN HV** invlist_ptr|NN AV** alternate_ptr
+EMs    |void   |add_alternate  |NN AV** alternate_ptr|NN U8* string|STRLEN len
+#endif
 Ap     |I32    |pregexec       |NN REGEXP * const prog|NN char* stringarg \
                                |NN char* strend|NN char* strbeg|I32 minend \
                                |NN SV* screamer|U32 nosave
@@ -982,6 +1000,9 @@ Ap |char*  |re_intuit_start|NN REGEXP * const rx|NULLOK SV* sv|NN char* strpos \
                                |NN char* strend|const U32 flags \
                                |NULLOK re_scream_pos_data *data
 Ap     |SV*    |re_intuit_string|NN REGEXP  *const r
+#if defined(PERL_IN_DQUOTE_STATIC_C)
+EiPR   |I32    |regcurly       |NN const char *s
+#endif
 Ap     |I32    |regexec_flags  |NN REGEXP *const rx|NN char *stringarg \
                                |NN char *strend|NN char *strbeg|I32 minend \
                                |NN SV *sv|NULLOK void *data|U32 flags
@@ -1169,6 +1190,9 @@ pd        |I32    |sv_clean_all
 : Used only in perl.c
 pd     |void   |sv_clean_objs
 Apd    |void   |sv_clear       |NN SV *const orig_sv
+#if defined(PERL_IN_SV_C)
+s      |bool   |curse          |NN SV * const sv|const bool check_refcnt
+#endif
 Aopd   |I32    |sv_cmp         |NULLOK SV *const sv1|NULLOK SV *const sv2
 Apd    |I32    |sv_cmp_flags   |NULLOK SV *const sv1|NULLOK SV *const sv2 \
                                |const U32 flags
@@ -1272,7 +1296,25 @@ Apd      |void   |sv_vsetpvfn    |NN SV *const sv|NN const char *const pat|const STRLEN pa
 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
 Ap     |UV     |swash_fetch    |NN SV *swash|NN const U8 *ptr|bool do_utf8
-EMpRX  |HV*    |_swash_inversion_hash  |NN SV *swash
+EXMpR  |HV*    |_swash_inversion_hash  |NN SV* const swash
+EXMpR  |HV*    |_new_invlist   |IV initial_size
+EXMpR  |HV*    |_swash_to_invlist      |NN SV* const swash
+EXMp   |void   |_append_range_to_invlist   |NN HV* const invlist|const UV start|const UV end
+#ifdef PERL_IN_REGCOMP_C
+EiMR   |HV*    |add_cp_to_invlist      |NULLOK HV* invlist|const UV cp
+EsMR   |HV*    |add_range_to_invlist   |NULLOK HV* invlist|const UV start|const UV end
+EiMR   |UV*    |invlist_array  |NN HV* const invlist
+EiM    |void   |invlist_destroy        |NN HV* const invlist
+EsM    |void   |invlist_extend    |NN HV* const invlist|const UV len
+EsMR   |HV*    |invlist_intersection   |NN HV* const a|NN HV* const b
+EiMR   |UV     |invlist_len    |NN HV* const invlist
+EiMR   |UV     |invlist_max    |NN HV* const invlist
+EiM    |void   |invlist_set_array      |NN HV* const invlist|NN const UV* const array
+EiM    |void   |invlist_set_len        |NN HV* const invlist|const UV len
+EiM    |void   |invlist_set_max        |NN HV* const invlist|const UV max
+EiM    |void   |invlist_trim   |NN HV* const invlist
+EsMR   |HV*    |invlist_union  |NN HV* const a|NN HV* const b
+#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 \
@@ -1311,6 +1353,7 @@ 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
 Apd    |UV     |utf8_to_uvchr  |NN const U8 *s|NULLOK STRLEN *retlen
 Apd    |UV     |utf8_to_uvuni  |NN const U8 *s|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
@@ -1343,7 +1386,7 @@ Ap        |U32    |seed
 : Only used in perl.c
 pR     |UV     |get_hash_seed
 : Used in doio.c, pp_hot.c, pp_sys.c
-p      |void   |report_evil_fh |NULLOK const GV *gv|I32 op
+p      |void   |report_evil_fh |NULLOK const GV *gv
 : Used in doio.c, pp_hot.c, pp_sys.c
 p      |void   |report_wrongway_fh|NULLOK const GV *gv|const char have
 : Used in mg.c, pp.c, pp_hot.c, regcomp.c
@@ -1639,7 +1682,9 @@ so        |void   |validate_suid  |NN PerlIO *rsfp
 
 s      |void*  |parse_body     |NULLOK char **env|XSINIT_t xsinit
 rs     |void   |run_body       |I32 oldscope
+#  ifndef PERL_IS_MINIPERL
 s      |SV *   |incpush_if_exists|NN AV *const av|NN SV *dir|NN SV *const stem
+#  endif
 #endif
 
 #if defined(PERL_IN_PP_C)
@@ -1720,10 +1765,10 @@ s       |OP*    |doform         |NN CV *cv|NN GV *gv|NN OP *retop
 sR     |int    |dooneliner     |NN const char *cmd|NN const char *filename
 #  endif
 s      |SV *   |space_join_names_mortal|NN char *const *array
-so     |OP *   |tied_handle_method|NN const char *const methname|NN SV **sp \
-                               |NN IO *const io|NN MAGIC *const mg \
-                               |const U32 flags|...
 #endif
+p      |OP *   |tied_method|NN const char *const methname|NN SV **sp \
+                               |NN SV *const sv|NN const MAGIC *const mg \
+                               |const U32 flags|U32 argc|...
 
 #if defined(PERL_IN_REGCOMP_C)
 Es     |regnode*|reg           |NN struct RExC_state_t *pRExC_state \
@@ -1742,7 +1787,7 @@ Es        |UV     |reg_recode     |const char value|NN SV **encp
 Es     |regnode*|regpiece      |NN struct RExC_state_t *pRExC_state \
                                |NN I32 *flagp|U32 depth
 Es     |regnode*|reg_namedseq  |NN struct RExC_state_t *pRExC_state \
-                               |NULLOK UV *valuep|NULLOK I32 *flagp
+                               |NULLOK UV *valuep|NULLOK I32 *flagp|U32 depth
 Es     |void   |reginsert      |NN struct RExC_state_t *pRExC_state \
                                |U8 op|NN regnode *opnd|U32 depth
 Es     |void   |regtail        |NN struct RExC_state_t *pRExC_state \
@@ -1763,8 +1808,6 @@ Esn       |void   |cl_anything    |NN const struct RExC_state_t *pRExC_state \
 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_init_zero   |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 \
@@ -1946,7 +1989,6 @@ s |U8*    |add_utf16_textfilter|NN U8 *const s|bool reversed
 #endif
 s      |void   |checkcomma     |NN const char *s|NN const char *name \
                                |NN const char *what
-s      |bool   |feature_is_enabled|NN const char *const name|STRLEN namelen
 s      |void   |force_ident    |NN const char *s|int kind
 s      |void   |incline        |NN const char *s
 s      |int    |intuit_method  |NN char *s|NULLOK GV *gv|NULLOK CV *cv
@@ -2418,4 +2460,7 @@ Anop      |void   |clone_params_del|NN CLONE_PARAMS *param
 : Used in perl.c and toke.c
 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
+
 : ex: set ts=8 sts=4 sw=4 noet: