This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perldelta: semicolon there isn't code
[perl5.git] / embed.fnc
index 0ad711f..ecdde73 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
@@ -51,7 +51,8 @@
 :      Should always be combined with "X" to be usable from dynamically
 :      loaded extensions.
 :
-:   f  Function takes printf style format string, varargs:
+:   f  Function takes printf style format string, varargs (hence any entry that
+:      would otherwise go in embed.h is suppressed):
 :
 :         proto.h: add __attribute__format__ (or ...null_ok__)
 :
@@ -218,6 +219,8 @@ Apd |void   |av_push        |NN AV *av|NN SV *val
 EXp    |void   |av_reify       |NN AV *av
 ApdR   |SV*    |av_shift       |NN AV *av
 Apd    |SV**   |av_store       |NN AV *av|I32 key|NULLOK SV *val
+AidR   |I32    |av_top_index   |NN AV *av
+AmpdR  |I32    |av_tindex      |NN AV *av
 Apd    |void   |av_undef       |NN AV *av
 ApdoxM |SV**   |av_create_and_unshift_one|NN AV **const avp|NN SV *const val
 Apd    |void   |av_unshift     |NN AV *av|I32 num
@@ -262,6 +265,8 @@ Anprd       |void   |croak_no_modify
 Anprd  |void   |croak_xs_usage |NN const CV *const cv \
                                |NN const char *const params
 npr    |void   |croak_no_mem
+nroX   |void   |Perl_croak_memory_wrap
+nprX   |void   |croak_popstack
 #if defined(WIN32)
 norx   |void   |win32_croak_not_implemented|NN const char * fname
 #endif
@@ -286,7 +291,7 @@ Afnp        |int    |printf_nocontext|NN const char *format|...
 p      |SV *   |core_prototype |NULLOK SV *sv|NN const char *name \
                                |const int code|NULLOK int * const opnum
 : Used in gv.c
-p      |OP *   |coresub_op     |NN SV *coreargssv|const int code \
+p      |OP *   |coresub_op     |NN SV *const coreargssv|const int code \
                                |const int opnum
 : Used in sv.c
 p      |void   |cv_ckproto_len_flags   |NN const CV* cv|NULLOK const GV* gv\
@@ -526,7 +531,7 @@ Ap  |void*  |hv_common_key_len|NULLOK HV *hv|NN const char *key \
                                |I32 klen_i32|const int action|NULLOK SV *val \
                                |const U32 hash
 Apod   |STRLEN |hv_fill        |NN HV const *const hv
-Ap     |void   |hv_free_ent    |NN HV *hv|NULLOK HE *entryK
+Ap     |void   |hv_free_ent    |NN HV *hv|NULLOK HE *entry
 Apd    |I32    |hv_iterinit    |NN HV *hv
 ApdR   |char*  |hv_iterkey     |NN HE* entry|NN I32* retlen
 ApdR   |SV*    |hv_iterkeysv   |NN HE* entry
@@ -622,6 +627,8 @@ ADMpPR      |bool   |is_uni_punct   |UV c
 ADMpPR |bool   |is_uni_xdigit  |UV c
 AMp    |UV     |to_uni_upper   |UV c|NN U8 *p|NN STRLEN *lenp
 AMp    |UV     |to_uni_title   |UV c|NN U8 *p|NN STRLEN *lenp
+iDMPR  |bool   |isIDFIRST_lazy |NN const char* p
+iDMPR  |bool   |isALNUM_lazy   |NN const char* p
 #ifdef PERL_IN_UTF8_C
 sR     |U8     |to_lower_latin1|const U8 c|NULLOK U8 *p|NULLOK STRLEN *lenp
 #endif
@@ -637,6 +644,7 @@ AMp |UV     |_to_uni_fold_flags|UV c|NN U8 *p|NN STRLEN *lenp|const U8 flags
 ADMpPR |bool   |is_uni_alnum_lc|UV c
 ADMpPR |bool   |is_uni_alnumc_lc|UV c
 ADMpPR |bool   |is_uni_idfirst_lc|UV c
+AMpR   |bool   |_is_uni_perl_idcont|UV c
 AMpR   |bool   |_is_uni_perl_idstart|UV c
 ADMpPR |bool   |is_uni_alpha_lc|UV c
 ADMpPR |bool   |is_uni_ascii_lc|UV c
@@ -662,6 +670,7 @@ ADMpR       |bool   |is_utf8_alnum  |NN const U8 *p
 ADMpR  |bool   |is_utf8_alnumc |NN const U8 *p
 ADMpR  |bool   |is_utf8_idfirst|NN const U8 *p
 ADMpR  |bool   |is_utf8_xidfirst|NN const U8 *p
+AMpR   |bool   |_is_utf8_perl_idcont|NN const U8 *p
 AMpR   |bool   |_is_utf8_perl_idstart|NN const U8 *p
 ADMpR  |bool   |is_utf8_idcont |NN const U8 *p
 ADMpR  |bool   |is_utf8_xidcont        |NN const U8 *p
@@ -733,8 +742,20 @@ 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
 #if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_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
-EMiR   |bool   |grok_bslash_x  |NN const char* s|NN UV* uv|NN STRLEN* len|NN const char** error_msg|const bool output_warning
+EMsR   |bool   |grok_bslash_o  |NN char** s|NN UV* uv           \
+                               |NN const char** error_msg       \
+                               |const bool output_warning       \
+                               |const bool strict               \
+                               |const bool silence_non_portable \
+                               |const bool utf8
+EMiR   |bool   |grok_bslash_x  |NN char** s|NN UV* uv           \
+                               |NN const char** error_msg       \
+                               |const bool output_warning       \
+                               |const bool strict               \
+                               |const bool silence_non_portable \
+                               |const bool utf8
+EMsPR  |char*|form_short_octal_warning|NN const char * const s  \
+                               |const STRLEN len
 #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
@@ -766,7 +787,13 @@ p  |int    |magic_getvec   |NN SV* sv|NN MAGIC* mg
 p      |int    |magic_nextpack |NN SV *sv|NN MAGIC *mg|NN SV *key
 p      |U32    |magic_regdata_cnt|NN SV* sv|NN MAGIC* mg
 p      |int    |magic_regdatum_get|NN SV* sv|NN MAGIC* mg
+:removing noreturn to silence a warning for this function resulted in no
+:change to the interpreter DLL image under VS 2003 -O1 -GL 32 bits
+#ifdef _MSC_VER
+p      |int    |magic_regdatum_set|NN SV* sv|NN MAGIC* mg
+#else
 pr     |int    |magic_regdatum_set|NN SV* sv|NN MAGIC* mg
+#endif
 p      |int    |magic_set      |NN SV* sv|NN MAGIC* mg
 p      |int    |magic_setarylen|NN SV* sv|NN MAGIC* mg
 p      |int    |magic_cleararylen_p|NN SV* sv|NN MAGIC* mg
@@ -1080,7 +1107,7 @@ Ap        |REGEXP*|pregcomp       |NN SV * const pattern|const U32 flags
 p      |REGEXP*|re_op_compile  |NULLOK SV ** const patternp \
                                |int pat_count|NULLOK OP *expr \
                                |NN const regexp_engine* eng \
-                               |NULLOK REGEXP *VOL old_re \
+                               |NULLOK REGEXP *old_re \
                                |NULLOK bool *is_bare_re \
                                |U32 rx_flags|U32 pm_flags
 Ap     |REGEXP*|re_compile     |NN SV * const pattern|U32 orig_rx_flags
@@ -1089,7 +1116,8 @@ Ap        |char*  |re_intuit_start|NN REGEXP * const rx|NULLOK SV* sv|NN char* strpos \
                                |NULLOK re_scream_pos_data *data
 Ap     |SV*    |re_intuit_string|NN REGEXP  *const r
 #if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_TOKE_C)
-EiPR   |I32    |regcurly       |NN const char *s
+EiPR   |I32    |regcurly       |NN const char *s                   \
+                               |const bool rbrace_must_be_escaped
 #endif
 Ap     |I32    |regexec_flags  |NN REGEXP *const rx|NN char *stringarg \
                                |NN char *strend|NN char *strbeg|I32 minend \
@@ -1408,10 +1436,12 @@ EiMR    |IV     |invlist_previous_index|NN SV* const invlist
 EiM    |void   |invlist_set_previous_index|NN SV* const invlist|const IV index
 EiM    |void   |invlist_trim   |NN SV* const invlist
 EiMR   |SV*    |invlist_clone  |NN SV* const invlist
+EiMR   |bool   |invlist_is_iterating|NN SV* const invlist
 EiMR   |UV*    |get_invlist_iter_addr  |NN SV* invlist
 EiMR   |UV*    |get_invlist_version_id_addr    |NN SV* invlist
 EiM    |void   |invlist_iterinit|NN SV* invlist
 EsMR   |bool   |invlist_iternext|NN SV* invlist|NN UV* start|NN UV* end
+EiM    |void   |invlist_iterfinish|NN SV* invlist
 EiMR   |UV     |invlist_highest|NN SV* const invlist
 #endif
 #if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_UTF8_C)
@@ -1440,7 +1470,7 @@ EMiR      |bool   |_invlist_contains_cp|NN SV* const invlist|const UV cp
 EXpMR  |IV     |_invlist_search        |NN SV* const invlist|const UV cp
 EXMpR  |SV*    |_get_swash_invlist|NN SV* const swash
 EXMpR  |HV*    |_swash_inversion_hash  |NN SV* const swash
-: Not used currently: Mp       |void   |_invlist_dump  |NN SV* const invlist|NN const char * const header
+: Not used currently: EXMp     |void   |_invlist_dump  |NN SV* const invlist|NN const char * const header
 #endif
 Ap     |void   |taint_env
 Ap     |void   |taint_proper   |NULLOK const char* f|NN const char *const s
@@ -1579,7 +1609,6 @@ Anpa      |Malloc_t|safesysmalloc |MEM_SIZE nbytes
 Anpa   |Malloc_t|safesyscalloc |MEM_SIZE elements|MEM_SIZE size
 Anpa   |Malloc_t|safesysrealloc|Malloc_t where|MEM_SIZE nbytes
 Anp    |Free_t |safesysfree    |Malloc_t where
-Asrnx  |void   |croak_memory_wrap
 #if defined(PERL_GLOBAL_STRUCT)
 Ap     |struct perl_vars *|GetVars
 Ap     |struct perl_vars*|init_global_struct
@@ -1740,16 +1769,17 @@ po      |SV*    |hfree_next_entry       |NN HV *hv|NN STRLEN *indexp
 #endif
 
 #if defined(PERL_IN_HV_C)
-s      |void   |hsplit         |NN HV *hv
+s      |void   |hsplit         |NN HV *hv|STRLEN const oldsize|STRLEN newsize
 s      |void   |hfreeentries   |NN HV *hv
-s      |SV*    |hv_free_ent_ret|NN HV *hv|NULLOK HE *entryK
+s      |SV*    |hv_free_ent_ret|NN HV *hv|NN HE *entry
 sa     |HE*    |new_he
 sanR   |HEK*   |save_hek_flags |NN const char *str|I32 len|U32 hash|int flags
 sn     |void   |hv_magic_check |NN HV *hv|NN bool *needs_copy|NN bool *needs_store
 s      |void   |unshare_hek_or_pvn|NULLOK const HEK* hek|NULLOK const char* str|I32 len|U32 hash
 sR     |HEK*   |share_hek_flags|NN const char *str|I32 len|U32 hash|int flags
 rs     |void   |hv_notallowed  |int flags|NN const char *key|I32 klen|NN const char *msg
-sn     |struct xpvhv_aux*|hv_auxinit|NN HV *hv
+sn      |U32|ptr_hash|PTRV u
+s      |struct xpvhv_aux*|hv_auxinit|NN HV *hv
 sM     |SV*    |hv_delete_common|NULLOK HV *hv|NULLOK SV *keysv \
                |NULLOK const char *key|STRLEN klen|int k_flags|I32 d_flags \
                |U32 hash
@@ -1945,14 +1975,24 @@ Es      |regnode*|regbranch     |NN struct RExC_state_t *pRExC_state \
 Es     |STRLEN |reguni         |NN const struct RExC_state_t *pRExC_state \
                                |UV uv|NN char *s
 Es     |regnode*|regclass      |NN struct RExC_state_t *pRExC_state \
-                               |NN I32 *flagp|U32 depth
+                               |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 \
+                               |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     |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     |bool   |grok_bslash_N  |NN struct RExC_state_t *pRExC_state \
-                               |NULLOK regnode** nodep|NULLOK UV *valuep \
-                               |NN I32 *flagp|U32 depth|bool in_char_class
+Es     |bool   |grok_bslash_N  |NN struct 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 \
                                |U8 op|NN regnode *opnd|U32 depth
 Es     |void   |regtail        |NN struct RExC_state_t *pRExC_state \
@@ -1965,6 +2005,8 @@ Es        |U32    |join_exact     |NN struct RExC_state_t *pRExC_state \
                                |U32 flags|NULLOK regnode *val|U32 depth
 EsRn   |char * |regwhite       |NN struct RExC_state_t *pRExC_state \
                                |NN char *p
+EsRn   |char * |regpatws       |NN struct 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 \
                                |NN regnode *node|NN I32 *flagp|STRLEN len \
                                |UV code_point
@@ -1995,7 +2037,7 @@ 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 \
-                               |I32 value|NULLOK SV *free_me
+                               |I32 value|const bool strict
 Es     |I32    |make_trie      |NN struct RExC_state_t *pRExC_state \
                                |NN regnode *startbranch|NN regnode *first \
                                |NN regnode *last|NN regnode *tail \
@@ -2029,9 +2071,11 @@ Es       |U8     |regtail_study  |NN struct RExC_state_t *pRExC_state \
 ERs    |bool   |isFOO_lc       |const U8 classnum|const U8 character
 ERs    |bool   |isFOO_utf8_lc  |const U8 classnum|NN const U8* character
 ERs    |I32    |regmatch       |NN regmatch_info *reginfo|NN char *startpos|NN regnode *prog
-ERs    |I32    |regrepeat      |NN const regexp *prog|NN char **startposp|NN const regnode *p|I32 max|int depth
+ERs    |I32    |regrepeat      |NN regexp *prog|NN char **startposp \
+                               |NN const regnode *p|I32 max|int depth \
+                               |bool is_utf8_pat
 ERs    |I32    |regtry         |NN regmatch_info *reginfo|NN char **startposp
-ERs    |bool   |reginclass     |NULLOK const regexp * const prog|NN const regnode * const n|NN const U8 * const p\
+ERs    |bool   |reginclass     |NULLOK regexp * const prog|NN const regnode * const n|NN const U8 * const p\
                                |bool const utf8_target
 Es     |CHECKPOINT|regcppush   |NN const regexp *rex|I32 parenfloor\
                                |U32 maxopenparen
@@ -2046,7 +2090,10 @@ ERsn     |U8*    |reghop4        |NN U8 *s|I32 off|NN const U8 *llim \
                                |NN const U8 *rlim
 #endif
 ERsn   |U8*    |reghopmaybe3   |NN U8 *s|I32 off|NN const U8 *lim
-ERs    |char*  |find_byclass   |NN regexp * prog|NN const regnode *c|NN char *s|NN const char *strend|NULLOK regmatch_info *reginfo
+ERs    |char*  |find_byclass   |NN regexp * prog|NN const regnode *c \
+                               |NN char *s|NN const char *strend \
+                               |NULLOK regmatch_info *reginfo \
+                               |bool is_utf_pat
 Es     |void   |to_utf8_substr |NN regexp * prog
 Es     |bool   |to_byte_substr |NN regexp * prog
 ERs    |I32    |reg_check_named_buff_matched   |NN const regexp *rex \
@@ -2156,7 +2203,8 @@ s |char*  |scan_ident     |NN char *s|NN const char *send|NN char *dest \
 sR     |char*  |scan_inputsymbol|NN char *start
 sR     |char*  |scan_pat       |NN char *start|I32 type
 sR     |char*  |scan_str       |NN char *start|int keep_quoted \
-                               |int keep_delims|int re_reparse
+                               |int keep_delims|int re_reparse \
+                               |bool deprecate_escaped_matching
 sR     |char*  |scan_subst     |NN char *start
 sR     |char*  |scan_trans     |NN char *start
 s      |char*  |scan_word      |NN char *s|NN char *dest|STRLEN destlen \
@@ -2192,6 +2240,9 @@ so        |SV*    |new_constant   |NULLOK const char *s|STRLEN len \
                                |STRLEN typelen
 s      |int    |deprecate_commaless_var_list
 s      |int    |ao             |int toketype
+s  |void|parse_ident|NN char **s|NN char **d \
+                     |NN char * const e|int allow_package \
+                     |bool is_utf8
 #  if defined(PERL_CR_FILTER)
 s      |I32    |cr_textfilter  |int idx|NULLOK SV *sv|int maxlen
 s      |void   |strip_return   |NN SV *sv