This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Fix up \cX for 5.14
[perl5.git] / embed.fnc
index 6245965..233d1a4 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
@@ -301,7 +307,6 @@ pmb |bool   |do_aexec       |NULLOK SV* really|NN SV** mark|NN SV** sp
 p      |bool   |do_aexec5      |NULLOK SV* really|NN SV** mark|NN SV** sp|int fd|int do_report
 Ap     |int    |do_binmode     |NN PerlIO *fp|int iotype|int mode
 : Used in pp.c
-p      |void   |do_chop        |NN SV *astr|NN SV *sv
 Ap     |bool   |do_close       |NULLOK GV* gv|bool not_implicit
 : Defined in doio.c, used only in pp_sys.c
 p      |bool   |do_eof         |NN GV* gv
@@ -339,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 \
@@ -354,8 +359,6 @@ Ap  |bool   |do_openn       |NN GV *gv|NN const char *oname|I32 len \
 p      |bool   |do_print       |NULLOK SV* sv|NN PerlIO* fp
 : Used in pp_sys.c
 pR     |OP*    |do_readline
-: Used in pp.c
-p      |I32    |do_chomp       |NN SV* sv
 : Defined in doio.c, used only in pp_sys.c
 p      |bool   |do_seek        |NULLOK GV* gv|Off_t pos|int whence
 Ap     |void   |do_sprintf     |NN SV* sv|I32 len|NN SV** sarg
@@ -517,6 +520,7 @@ Am  |I32    |ibcmp_utf8     |NN const char *s1|NULLOK char **pe1|UV l1 \
 Apd    |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
+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
 #endif
@@ -626,6 +630,10 @@ AMpd       |I32    |lex_peek_unichar|U32 flags
 AMpd   |I32    |lex_read_unichar|U32 flags
 AMpd   |void   |lex_read_space |U32 flags
 : Public parser API
+AMpd   |OP*    |parse_arithexpr|U32 flags
+AMpd   |OP*    |parse_termexpr |U32 flags
+AMpd   |OP*    |parse_listexpr |U32 flags
+AMpd   |OP*    |parse_fullexpr |U32 flags
 AMpd   |OP*    |parse_block    |U32 flags
 AMpd   |OP*    |parse_barestmt |U32 flags
 AMpd   |SV*    |parse_label    |U32 flags
@@ -648,8 +656,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
+EXMsR  |char   |grok_bslash_c  |const char source|const bool utf8|const bool output_warning
+EXMsR  |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
@@ -726,6 +736,7 @@ Apd |int    |mg_copy        |NN SV *sv|NN SV *nsv|NULLOK const char *key \
 : Defined in mg.c, used only in scope.c
 pd     |void   |mg_localize    |NN SV* sv|NN SV* nsv|bool setmagic
 ApdR   |MAGIC* |mg_find        |NULLOK const SV* sv|int type
+ApdR   |MAGIC* |mg_findext     |NULLOK const SV* sv|int type|NULLOK const MGVTBL *vtbl
 Apd    |int    |mg_free        |NN SV* sv
 Apd    |void   |mg_free_type   |NN SV* sv|int how
 Apd    |int    |mg_get         |NN SV* sv
@@ -735,6 +746,8 @@ Apd |int    |mg_set         |NN SV* sv
 Ap     |I32    |mg_size        |NN SV* sv
 Ap     |void   |mini_mktime    |NN struct tm *ptm
 AMpd   |OP*    |op_lvalue      |NULLOK OP* o|I32 type
+: To be removed after 5.14 (see [perl #78908]):
+EXp    |OP*    |mod            |NULLOK OP* o|I32 type
 : Used in op.c and pp_sys.c
 p      |int    |mode_from_discipline|NULLOK const char* s|STRLEN len
 Ap     |const char*    |moreswitches   |NN const char* s
@@ -977,6 +990,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
@@ -1164,6 +1180,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
@@ -1174,7 +1193,12 @@ Apd      |I32    |sv_cmp_locale_flags    |NULLOK SV *const sv1 \
 Amd    |char*  |sv_collxfrm    |NN SV *const sv|NN STRLEN *const nxp
 Apd    |char*  |sv_collxfrm_flags      |NN SV *const sv|NN STRLEN *const nxp|I32 const flags
 #endif
-Ap     |OP*    |sv_compile_2op |NN SV *sv|NN OP **startop \
+: Frustratingly, because regcomp.c is also compiled as ext/re/re_comp.c,
+: anything it needs has to be exported. So this has to be X. I'd rather it
+: wasn't.
+Xpo    |OP*    |sv_compile_2op_is_broken|NN SV *sv|NN OP **startop \
+                               |NN const char *code|NN PAD **padp
+ApD    |OP*    |sv_compile_2op |NN SV *sv|NN OP **startop \
                                |NN const char *code|NN PAD **padp
 Apd    |int    |getcwd_sv      |NN SV* sv
 Apd    |void   |sv_dec         |NULLOK SV *const sv
@@ -1245,6 +1269,7 @@ 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
 Apd    |int    |sv_unmagic     |NN SV *const sv|const int type
+Apd    |int    |sv_unmagicext  |NN SV *const sv|const int type|NULLOK MGVTBL *vtbl
 Apdmb  |void   |sv_unref       |NN SV* sv
 Apd    |void   |sv_unref_flags |NN SV *const ref|const U32 flags
 Apd    |void   |sv_untaint     |NN SV *const sv
@@ -1261,7 +1286,24 @@ 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
+EsMR   |HV*    |add_range_to_invlist   |NN HV* const 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 \
@@ -1300,6 +1342,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
@@ -1332,7 +1375,9 @@ 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|NULLOK const IO *io|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
 XEpd   |void   |report_uninit  |NULLOK const SV *uninit_sv
 Apd    |void   |warn_sv        |NN SV *baseex
@@ -1630,6 +1675,7 @@ s |SV *   |incpush_if_exists|NN AV *const av|NN SV *dir|NN SV *const stem
 #endif
 
 #if defined(PERL_IN_PP_C)
+s      |void   |do_chomp       |NN SV *retval|NN SV *sv|bool chomping
 s      |OP*    |do_delete_local
 sR     |SV*    |refto          |NN SV* sv
 #endif
@@ -1706,10 +1752,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 \
@@ -1932,7 +1978,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
@@ -2118,8 +2163,10 @@ ApoR     |HE**   |hv_eiter_p     |NN HV *hv
 Apo    |void   |hv_riter_set   |NN HV *hv|I32 riter
 Apo    |void   |hv_eiter_set   |NN HV *hv|NULLOK HE *eiter
 Ap     |void   |hv_name_set    |NN HV *hv|NULLOK const char *name|U32 len|U32 flags
-p      |void   |hv_ename_add   |NN HV *hv|NN const char *name|U32 len
-p      |void   |hv_ename_delete|NN HV *hv|NN const char *name|U32 len
+p      |void   |hv_ename_add   |NN HV *hv|NN const char *name|U32 len \
+                               |U32 flags
+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)
@@ -2369,7 +2416,7 @@ s |void   |mro_gather_and_rename|NN HV * const stashes \
                                      |NN HV * const seen_stashes \
                                      |NULLOK HV *stash \
                                      |NULLOK HV *oldstash \
-                                     |NN const char *name|I32 namlen
+                                     |NN SV *namesv
 #endif
 : Used in hv.c, mg.c, pp.c, sv.c
 pd     |void   |mro_isa_changed_in|NN HV* stash
@@ -2402,4 +2449,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: