:
: proto.h: add __attribute__malloc__
:
-: b Binary backward compatibility; function is a macro
-: but has also Perl_ implementation (which is exported); often
-: implemented in mathoms.c (whose compilation can be suppressed; see
-: INSTALL):
+: b Binary backward compatibility; has an exported Perl_ implementation
+: but function is also normally a macro (i.e. has the "m" flag as well).
+: Backcompat functions ("b") can be anywhere, but if they are also
+: macros ("m") then they have no proto.h entries so must either be in
+: mathoms.c to get marked EXTERN_C (and skipped for -DNO_MATHOMS builds)
+: or else will require special attention to ensure they are marked
+: EXTERN_C (and then won't be automatically skipped for -DNO_MATHOMS
+: builds).
:
: add entry to the list of exported symbols;
: don't define PERL_ARGS_ASSERT_FOO
Afp |void |deb |NN const char* pat|...
Ap |void |vdeb |NN const char* pat|NULLOK va_list* args
Ap |void |debprofdump
+EXp |SV* |multideref_stringify |NN const OP* o|NN CV *cv
Ap |I32 |debop |NN const OP* o
Ap |I32 |debstack
Ap |I32 |debstackptrs
Apd |HV* |gv_stashpv |NN const char* name|I32 flags
Apd |HV* |gv_stashpvn |NN const char* name|U32 namelen|I32 flags
#if defined(PERL_IN_GV_C)
-i |HV* |gv_stashpvn_internal|NN const char* name|U32 namelen|I32 flags
-i |HV* |gv_stashsvpvn_cached|NULLOK SV *namesv|NULLOK const char* name|U32 namelen|I32 flags
+i |HV* |gv_stashpvn_internal |NN const char* name|U32 namelen|I32 flags
+i |HV* |gv_stashsvpvn_cached |NULLOK SV *namesv|NULLOK const char* name|U32 namelen|I32 flags
+i |GV* |gv_fetchmeth_internal |NULLOK HV* stash|NULLOK SV* meth|NULLOK const char* name \
+ |STRLEN len|I32 level|U32 flags
#endif
Apd |HV* |gv_stashsv |NN SV* sv|I32 flags
Apd |void |hv_clear |NULLOK HV *hv
|const STRLEN len
#endif
Apd |UV |grok_hex |NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV *result
-Apdn |int |grok_infnan |NN const char** sp|NN const char *send
+Apd |int |grok_infnan |NN const char** sp|NN const char *send
Apd |int |grok_number |NN const char *pv|STRLEN len|NULLOK UV *valuep
Apd |int |grok_number_flags|NN const char *pv|STRLEN len|NULLOK UV *valuep|U32 flags
ApdR |bool |grok_numeric_radix|NN const char **sp|NN const char *send
ApaR |HV* |newHVhv |NULLOK HV *hv
Apabm |IO* |newIO
Apda |OP* |newLISTOP |I32 type|I32 flags|NULLOK OP* first|NULLOK OP* last
+AMpdan |PADNAME *|newPADNAMEouter|NN PADNAME *outer
+AMpdan |PADNAME *|newPADNAMEpvn|NN const char *s|STRLEN len
+AMpdan |PADNAMELIST *|newPADNAMELIST|size_t max
#ifdef USE_ITHREADS
Apda |OP* |newPADOP |I32 type|I32 flags|NN SV* sv
#endif
Apda |OP* |newPMOP |I32 type|I32 flags
Apda |OP* |newPVOP |I32 type|I32 flags|NULLOK char* pv
Apa |SV* |newRV |NN SV *const sv
-Apda |SV* |newRV_noinc |NN SV *const sv
+Apda |SV* |newRV_noinc |NN SV *const tmpRef
Apda |SV* |newSV |const STRLEN len
Apa |OP* |newSVREF |NN OP* o
Apda |OP* |newSVOP |I32 type|I32 flags|NN SV* sv
Apda |SV* |newSVsv |NULLOK SV *const old
Apda |SV* |newSV_type |const svtype type
Apda |OP* |newUNOP |I32 type|I32 flags|NULLOK OP* first
+Apda |OP* |newUNOP_AUX |I32 type|I32 flags|NULLOK OP* first \
+ |NULLOK UNOP_AUX_item *aux
Apda |OP* |newWHENOP |NULLOK OP* cond|NN OP* block
Apda |OP* |newWHILEOP |I32 flags|I32 debuggable|NULLOK LOOP* loop \
|NULLOK OP* expr|NULLOK OP* block|NULLOK OP* cont \
ApM |char* |my_strerror |const int errnum
ApOM |void |new_collate |NULLOK const char* newcoll
ApOM |void |new_ctype |NN const char* newctype
+ApMn |void |_warn_problematic_locale
ApOM |void |new_numeric |NULLOK const char* newcoll
Ap |void |set_numeric_local
Ap |void |set_numeric_radix
s |void |pidgone |Pid_t pid|int status
#endif
: Used in perly.y
-p |OP* |pmruntime |NN OP *o|NN OP *expr|bool isreg|I32 floor
+p |OP* |pmruntime |NN OP *o|NN OP *expr|NULLOK OP *repl \
+ |bool isreg|I32 floor
#if defined(PERL_IN_OP_C)
s |OP* |pmtrans |NN OP* o|NN OP* expr|NN OP* repl
#endif
EiMR |SV* |add_cp_to_invlist |NULLOK SV* invlist|const UV cp
EsM |void |_append_range_to_invlist |NN SV* const invlist|const UV start|const UV end
EiMRn |UV* |_invlist_array_init |NN SV* const invlist|const bool will_have_0
-EiMRn |UV* |invlist_array |NN SV* const invlist
EsM |void |invlist_extend |NN SV* const invlist|const UV len
EiMRn |UV |invlist_max |NN SV* const invlist
EiM |void |invlist_set_len|NN SV* const invlist|const UV len|const bool offset
+#ifndef PERL_EXT_RE_BUILD
EiMRn |IV* |get_invlist_previous_index_addr|NN SV* invlist
-EiMRn |IV |invlist_previous_index|NN SV* const invlist
+EiMRn |bool |invlist_is_iterating|NN SV* const invlist
EiMn |void |invlist_set_previous_index|NN SV* const invlist|const IV index
+EiMRn |IV |invlist_previous_index|NN SV* const invlist
EiMn |void |invlist_trim |NN SV* const invlist
+#endif
EiMR |SV* |invlist_clone |NN SV* const invlist
-EiMRn |bool |invlist_is_iterating|NN SV* const invlist
EiMRn |STRLEN*|get_invlist_iter_addr |NN SV* invlist
EiMn |void |invlist_iterinit|NN SV* invlist
EsMRn |bool |invlist_iternext|NN SV* invlist|NN UV* start|NN UV* end
EiMn |void |invlist_iterfinish|NN SV* invlist
EiMRn |UV |invlist_highest|NN SV* const invlist
+EMRs |SV* |_make_exactf_invlist |NN RExC_state_t *pRExC_state \
+ |NN regnode *node
#endif
#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_UTF8_C)
EXmM |void |_invlist_intersection |NN SV* const a|NN SV* const b|NN SV** i
|NULLOK SV* invlist|NULLOK U8* const flags_p
#endif
#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) || defined(PERL_IN_UTF8_C)
+EiMRn |UV* |invlist_array |NN SV* const invlist
EXMpR |SV* |_invlist_contents|NN SV* const invlist
EiMRn |bool* |get_invlist_offset_addr|NN SV* invlist
EiMRn |UV |_invlist_len |NN SV* const invlist
Apd |void |sv_force_normal_flags|NN SV *const sv|const U32 flags
pX |SSize_t|tmps_grow_p |SSize_t ix
Apd |SV* |sv_rvweaken |NN SV *const sv
+AnpPMd |SV* |sv_get_backrefs|NN SV *const sv
: This is indirectly referenced by globals.c. This is somewhat annoying.
p |int |magic_killbackrefs|NN SV *sv|NN MAGIC *mg
Ap |OP* |newANONATTRSUB |I32 floor|NULLOK OP *proto|NULLOK OP *attrs|NULLOK OP *block
s |OP * |dup_attrlist |NN OP *o
s |void |apply_attrs |NN HV *stash|NN SV *target|NULLOK OP *attrs
s |void |apply_attrs_my |NN HV *stash|NN OP *target|NULLOK OP *attrs|NN OP **imopsp
-s |void |bad_type_pv |I32 n|NN const char *t|NN const char *name|U32 flags|NN const OP *kid
-s |void |bad_type_gv |I32 n|NN const char *t|NN GV *gv|U32 flags|NN const OP *kid
+s |void |bad_type_pv |I32 n|NN const char *t|NN const OP *o|NN const OP *kid
+s |void |bad_type_gv |I32 n|NN GV *gv|NN const OP *kid|NN const char *t
s |void |no_bareword_allowed|NN OP *o
sR |OP* |no_fh_allowed|NN OP *o
sR |OP* |too_few_arguments_pv|NN OP *o|NN const char* name|U32 flags
#if defined(PERL_IN_PP_HOT_C)
s |void |do_oddball |NN SV **oddkey|NN SV **firstkey
-sR |SV* |method_common |NN SV* meth|NULLOK U32* hashp
+i |HV* |opmethod_stash |NN SV* meth
#endif
#if defined(PERL_IN_PP_SORT_C)
|NN I32 *flagp|U32 depth
Es |regnode*|regbranch |NN RExC_state_t *pRExC_state \
|NN I32 *flagp|I32 first|U32 depth
-Ei |STRLEN |reguni |NN const RExC_state_t *pRExC_state \
- |UV uv|NN char *s
Es |void |set_ANYOF_arg |NN RExC_state_t* const pRExC_state \
|NN regnode* const node \
|NULLOK SV* const cp_list \
Es |AV* |add_multi_match|NULLOK AV* multi_char_matches \
|NN SV* multi_string \
|const STRLEN cp_count
-Es |regnode*|regclass |NN RExC_state_t *pRExC_state \
+Es |regnode*|regclass |NN RExC_state_t *pRExC_state \
|NN I32 *flagp|U32 depth|const bool stop_at_1 \
|bool allow_multi_fold \
- |const bool silence_non_portable \
+ |const bool silence_non_portable \
+ |const bool strict \
|NULLOK SV** ret_invlist
Es |void|add_above_Latin1_folds|NN RExC_state_t *pRExC_state|const U8 cp \
|NN SV** invlist
|U32 word_count|U32 flags|U32 depth
Es |regnode *|construct_ahocorasick_from_trie|NN RExC_state_t *pRExC_state \
|NN regnode *source|U32 depth
+EnPs |const char *|cntrl_to_mnemonic|const U8 c
# ifdef DEBUGGING
Es |void |regdump_intflags|NULLOK const char *lead| const U32 flags
Es |void |regdump_extflags|NULLOK const char *lead| const U32 flags
|NULLOK const regnode *last \
|NULLOK const regnode *plast \
|NN SV* sv|I32 indent|U32 depth
-EnPs |const char *|cntrl_to_mnemonic|const U8 c
Es |void |put_code_point |NN SV* sv|UV c
Es |bool |put_charclass_bitmap_innards|NN SV* sv \
|NN char* bitmap \
Es |bool |to_byte_substr |NN regexp * prog
ERsn |I32 |reg_check_named_buff_matched |NN const regexp *rex \
|NN const regnode *scan
+EsnR |bool |isGCB |const PL_GCB_enum before|const PL_GCB_enum after
+EsR |PL_WB_enum|advance_one_WB|NN U8 ** curpos \
+ |NN const U8 * const strend \
+ |const bool utf8_target
+EsR |PL_WB_enum|backup_one_WB|NN PL_WB_enum * previous \
+ |NN const U8 * const strbeg \
+ |NN U8 ** curpos \
+ |const bool utf8_target
+EsR |bool |isWB |PL_WB_enum previous \
+ |PL_WB_enum before \
+ |PL_WB_enum after \
+ |NN const U8 * const strbeg \
+ |NN const U8 * const curpos \
+ |NN const U8 * const strend \
+ |const bool utf8_target
# ifdef DEBUGGING
Es |void |dump_exec_pos |NN const char *locinput|NN const regnode *scan|NN const char *loc_regeol\
|NN const char *loc_bostr|NN const char *loc_reg_starttry|const bool do_utf8
|STRLEN len|U32 flags
#endif
+#if defined(USE_LOCALE) && defined(PERL_IN_LOCALE_C)
+s |char* |stdize_locale |NN char* locs
+#endif
+
#if defined(USE_LOCALE) \
&& (defined(PERL_IN_LOCALE_C) || defined (PERL_EXT_POSIX))
-s |char* |stdize_locale |NN char* locs
ApM |bool |_is_cur_LC_category_utf8|int category
#endif
#if defined(PERL_IN_UTF8_C)
sRM |UV |check_locale_boundary_crossing \
- |NN const char * const func_name \
|NN const U8* const p \
|const UV result \
|NN U8* const ustrp \
pnX |void|set_padlist| NN CV * cv | NULLOK PADLIST * padlist
#endif
#if defined(PERL_IN_PAD_C)
-s |PADOFFSET|pad_alloc_name|NN SV *namesv|U32 flags \
+s |PADOFFSET|pad_alloc_name|NN PADNAME *name|U32 flags \
|NULLOK HV *typestash|NULLOK HV *ourstash
#endif
Apd |PADOFFSET|pad_add_name_pvn|NN const char *namepv|STRLEN namelen\
|NULLOK HV *ourstash
AMpd |PADOFFSET|pad_alloc |I32 optype|U32 tmptype
Apd |PADOFFSET|pad_add_anon |NN CV* func|I32 optype
+p |void |pad_add_weakref|NN CV* func
#if defined(PERL_IN_PAD_C)
-sd |void |pad_check_dup |NN SV *name|U32 flags|NULLOK const HV *ourstash
+sd |void |pad_check_dup |NN PADNAME *name|U32 flags \
+ |NULLOK const HV *ourstash
#endif
Apd |PADOFFSET|pad_findmy_pvn|NN const char* namepv|STRLEN namelen|U32 flags
Apd |PADOFFSET|pad_findmy_pv|NN const char* name|U32 flags
#if defined(PERL_IN_PAD_C)
sd |PADOFFSET|pad_findlex |NN const char *namepv|STRLEN namelen|U32 flags \
|NN const CV* cv|U32 seq|int warn \
- |NULLOK SV** out_capture|NN SV** out_name_sv \
- |NN int *out_flags
+ |NULLOK SV** out_capture \
+ |NN PADNAME** out_name|NN int *out_flags
#endif
#ifdef DEBUGGING
Apd |SV* |pad_sv |PADOFFSET po
p |CV* |cv_clone_into |NN CV* proto|NN CV *target
pd |void |pad_fixup_inner_anons|NN PADLIST *padlist|NN CV *old_cv|NN CV *new_cv
pdX |void |pad_push |NN PADLIST *padlist|int depth
-ApdR |HV* |pad_compname_type|const PADOFFSET po
+ApbdR |HV* |pad_compname_type|const PADOFFSET po
+AMpdRn |PADNAME *|padnamelist_fetch|NN PADNAMELIST *pnl|SSize_t key
+Xop |void |padnamelist_free|NN PADNAMELIST *pnl
+AMpd |PADNAME **|padnamelist_store|NN PADNAMELIST *pnl|SSize_t key \
+ |NULLOK PADNAME *val
+Xop |void |padname_free |NN PADNAME *pn
#if defined(USE_ITHREADS)
+pdR |PADNAME *|padname_dup |NN PADNAME *src|NN CLONE_PARAMS *param
+pR |PADNAMELIST *|padnamelist_dup|NN PADNAMELIST *srcpad \
+ |NN CLONE_PARAMS *param
pdR |PADLIST *|padlist_dup |NN PADLIST *srcpad \
|NN CLONE_PARAMS *param
#endif
s |I32 |find_array_subscript|NULLOK const AV *const av \
|NN const SV *const val
sMd |SV* |find_uninit_var|NULLOK const OP *const obase \
- |NULLOK const SV *const uninit_sv|bool top
+ |NULLOK const SV *const uninit_sv|bool match \
+ |NN const char **desc_p
#endif
Ap |GV* |gv_fetchpvn_flags|NN const char* name|STRLEN len|I32 flags|const svtype sv_type
Apo |void* |my_cxt_init |NN int *index|size_t size
#endif
#endif
-
-: This function is an implementation detail. The public API for this is
-: XS_VERSION_BOOTCHECK
-Xpo |void |xs_version_bootcheck|U32 items|U32 ax|NN const char *xs_p \
+#if defined(PERL_IN_UTIL_C)
+so |void |xs_version_bootcheck|U32 items|U32 ax|NN const char *xs_p \
|STRLEN xs_len
+#endif
Xpon |I32 |xs_handshake |const U32 key|NN void * v_my_perl\
|NN const char * file| ...
Xp |void |xs_boot_epilog |const U32 ax