X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/389f4c1ef819a38480243c17f0b35a2f088cd855..07e4dd7aad22c455c54f35c4807bee7a81a93801:/embed.fnc diff --git a/embed.fnc b/embed.fnc index 5e2b061..9d40940 100644 --- a/embed.fnc +++ b/embed.fnc @@ -23,21 +23,40 @@ : If the function is only exported for use in a public : macro, see X. : -: a Allocates memory a la malloc/calloc. Also implies "R": +: a Allocates memory a la malloc/calloc. Also implies "R". +: This should only be on functions which returns 'empty' memory +: which has no other pointers to it, and which does not contain +: any pointers to other things. So for example realloc() can't be +: 'a'. : : proto.h: add __attribute__malloc__ : -: 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). +: b Binary backward compatibility. This is used for functions which are +: kept only to not have to change legacy applications that call them. If +: there are no such legacy applications in a Perl installation for all +: functions flagged with this, the installation can run Configure with the +: -Accflags='-DNO_MATHOMS' parameter to not even compile them. If there +: is a macro form of this function that provides equivalent functionality +: (using a different implementation), also specify the 'm' flag. The 'b' +: functions are normally moved to mathoms.c, but if circumstances dictate +: otherwise, they can be anywhere, provided the whole function is wrapped +: with +: #ifndef NO_MATHOMS +: ... +: #endif : +: Note that this flag no longer automatically adds a 'Perl_' prefix to the +: name. Additionally specify 'p' to do that. +: +: For functions, like wrappers, whose macro shortcut doesn't call the +: function, but which, for whatever reason, aren't considered legacy-only, +: use the 'o' flag +: +: This flag effectively causes nothing to happen if the perl interpreter +: is compiled with -DNO_MATHOMS; otherwise these happen: : add entry to the list of exported symbols; -: don't define PERL_ARGS_ASSERT_FOO +: create PERL_ARGS_ASSERT_FOO; +: add embed.h entry (unless overridden by the 'm' flag) : : D Function is deprecated: : @@ -65,9 +84,10 @@ : : i Static inline: function in source code has a S_ prefix: : -: proto.h: function is declared as S_foo rather than foo, +: proto.h: function is declared as S_foo rather than foo unless the 'p' +: flag is also given in which case 'Perl_foo' is used, : PERL_STATIC_INLINE is added to declaration; -: embed.h: "#define foo S_foo" entries added +: embed.h: "#define foo S_foo" or Perl_foo entries added : : M May change: : @@ -76,7 +96,8 @@ : : m Implemented as a macro: : -: suppress proto.h entry (actually, not suppressed, but commented out) +: suppress proto.h entry unless 'b' also specified (actually, not +: suppressed, but commented out) : suppress entry in the list of exported symbols : suppress embed.h entry : @@ -123,6 +144,13 @@ : : (currently no effect) : +: W Add a _pDEPTH argument to function prototypes, and an _aDEPTH +: argument to the function calls. This means that under DEBUGGING +: a depth argument is added to the functions, which is used for +: example by the regex engine for debugging and trace output. +: A non DEBUGGING build will not pass the unused argument. +: Currently restricted to functions with at least one argument. +: : X Explicitly exported: : : add entry to the list of exported symbols, unless x or m @@ -186,7 +214,7 @@ Ano |PerlInterpreter*|perl_clone_using \ Aanop |Malloc_t|malloc |MEM_SIZE nbytes Aanop |Malloc_t|calloc |MEM_SIZE elements|MEM_SIZE size -Aanop |Malloc_t|realloc |Malloc_t where|MEM_SIZE nbytes +ARnop |Malloc_t|realloc |Malloc_t where|MEM_SIZE nbytes Anop |Free_t |mfree |Malloc_t where #if defined(MYMALLOC) npR |MEM_SIZE|malloced_size |NN void *p @@ -282,13 +310,14 @@ Anprd |void |croak_xs_usage |NN const CV *const cv \ |NN const char *const params npr |void |croak_no_mem nprX |void |croak_popstack +fnrp |void |croak_caller|NULLOK const char* pat|... fnprx |void |noperl_die|NN const char* pat|... #if defined(WIN32) norx |void |win32_croak_not_implemented|NN const char * fname #endif #if defined(PERL_IMPLICIT_CONTEXT) Afnrp |void |croak_nocontext|NULLOK const char* pat|... -Afnrp |OP* |die_nocontext |NULLOK const char* pat|... +Afnrp |OP* |die_nocontext |NULLOK const char* pat|... Afnp |void |deb_nocontext |NN const char* pat|... Afnp |char* |form_nocontext |NN const char* pat|... Anp |void |load_module_nocontext|U32 flags|NN SV* name|NULLOK SV* ver|... @@ -344,10 +373,14 @@ Ap |I32 |debstackptrs pR |SV * |defelem_target |NN SV *sv|NULLOK MAGIC *mg Anp |char* |delimcpy |NN char* to|NN const char* toend|NN const char* from \ |NN const char* fromend|int delim|NN I32* retlen +np |char* |delimcpy_no_escape|NN char* to|NN const char* toend \ + |NN const char* from \ + |NN const char* fromend|int delim \ + |NN I32* retlen : Used in op.c, perl.c pM |void |delete_eval_scope -Aprd |OP* |die_sv |NN SV *baseex -Afrpd |OP* |die |NULLOK const char* pat|... +Aprd |OP* |die_sv |NN SV *baseex +Afrpd |OP* |die |NULLOK const char* pat|... : Used in util.c pr |void |die_unwind |NN SV* msv Ap |void |dounwind |I32 cxix @@ -459,7 +492,6 @@ Apd |void |fbm_compile |NN SV* sv|U32 flags ApdR |char* |fbm_instr |NN unsigned char* big|NN unsigned char* bigend \ |NN SV* littlestr|U32 flags p |CV * |find_lexical_cv|PADOFFSET off -pR |OP * |parse_subsignature : Defined in util.c, used only in perl.c p |char* |find_script |NN const char *scriptname|bool dosearch \ |NULLOK const char *const *const search_ext|I32 flags @@ -564,14 +596,14 @@ Apd |void |hv_clear |NULLOK HV *hv : used in SAVEHINTS() and op.c ApdR |HV * |hv_copy_hints_hv|NULLOK HV *const ohv Ap |void |hv_delayfree_ent|NN HV *hv|NULLOK HE *entry -Abmd |SV* |hv_delete |NULLOK HV *hv|NN const char *key|I32 klen \ +Abmdp |SV* |hv_delete |NULLOK HV *hv|NN const char *key|I32 klen \ |I32 flags -Abmd |SV* |hv_delete_ent |NULLOK HV *hv|NN SV *keysv|I32 flags|U32 hash -AbmdR |bool |hv_exists |NULLOK HV *hv|NN const char *key|I32 klen -AbmdR |bool |hv_exists_ent |NULLOK HV *hv|NN SV *keysv|U32 hash -Abmd |SV** |hv_fetch |NULLOK HV *hv|NN const char *key|I32 klen \ +Abmdp |SV* |hv_delete_ent |NULLOK HV *hv|NN SV *keysv|I32 flags|U32 hash +AbmdRp |bool |hv_exists |NULLOK HV *hv|NN const char *key|I32 klen +AbmdRp |bool |hv_exists_ent |NULLOK HV *hv|NN SV *keysv|U32 hash +Abmdp |SV** |hv_fetch |NULLOK HV *hv|NN const char *key|I32 klen \ |I32 lval -Abmd |HE* |hv_fetch_ent |NULLOK HV *hv|NN SV *keysv|I32 lval|U32 hash +Abmdp |HE* |hv_fetch_ent |NULLOK HV *hv|NN SV *keysv|I32 lval|U32 hash Ap |void* |hv_common |NULLOK HV *hv|NULLOK SV *keysv \ |NULLOK const char* key|STRLEN klen|int flags \ |int action|NULLOK SV *val|U32 hash @@ -613,11 +645,11 @@ Xpd |struct refcounted_he *|refcounted_he_new_sv \ |U32 hash|NULLOK SV *value|U32 flags Xpd |void |refcounted_he_free|NULLOK struct refcounted_he *he Xpd |struct refcounted_he *|refcounted_he_inc|NULLOK struct refcounted_he *he -Abmd |SV** |hv_store |NULLOK HV *hv|NULLOK const char *key \ +Apbmd |SV** |hv_store |NULLOK HV *hv|NULLOK const char *key \ |I32 klen|NULLOK SV *val|U32 hash -Abmd |HE* |hv_store_ent |NULLOK HV *hv|NULLOK SV *key|NULLOK SV *val\ +Apbmd |HE* |hv_store_ent |NULLOK HV *hv|NULLOK SV *key|NULLOK SV *val\ |U32 hash -AbmM |SV** |hv_store_flags |NULLOK HV *hv|NULLOK const char *key \ +ApbmM |SV** |hv_store_flags |NULLOK HV *hv|NULLOK const char *key \ |I32 klen|NULLOK SV *val|U32 hash|int flags Amd |void |hv_undef |NULLOK HV *hv poX |void |hv_undef_flags |NULLOK HV *hv|U32 flags @@ -647,7 +679,7 @@ p |void |init_debugger Ap |void |init_stacks Ap |void |init_tm |NN struct tm *ptm : Used in perly.y -AnpPR |char* |instr |NN const char* big|NN const char* little +AbmnpPR |char* |instr |NN const char* big|NN const char* little : Used in sv.c p |bool |io_close |NN IO* io|NULLOK GV *gv \ |bool not_implicit|bool warn_on_fail @@ -657,7 +689,7 @@ ApR |I32 |is_lvalue_sub : Used in cop.h XopR |I32 |was_lvalue_sub #ifndef PERL_NO_INLINE_FUNCTIONS -AiMRn |STRLEN |_is_utf8_char_slow|NN const U8 *s|NN const U8 *e +ApMRnP |STRLEN |_is_utf8_char_helper|NN const U8 * const s|NN const U8 * e|const U32 flags #endif ADMpPR |U32 |to_uni_upper_lc|U32 c ADMpPR |U32 |to_uni_title_lc|U32 c @@ -683,9 +715,10 @@ ADMpPR |bool |isIDFIRST_lazy |NN const char* p ADMpPR |bool |isALNUM_lazy |NN const char* p #ifdef PERL_IN_UTF8_C snR |U8 |to_lower_latin1|const U8 c|NULLOK U8 *p|NULLOK STRLEN *lenp +inPR |bool |is_utf8_cp_above_31_bits|NN const U8 * const s|NN const U8 * const e #endif #if defined(PERL_IN_UTF8_C) || defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C) -EXp |UV |_to_fold_latin1|const U8 c|NN U8 *p|NN STRLEN *lenp|const unsigned int flags +EXp |UV |_to_fold_latin1|const U8 c|NN U8 *p|NN STRLEN *lenp|const unsigned int 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 @@ -710,13 +743,49 @@ ADMpPR |bool |is_uni_lower_lc|UV c ADMpPR |bool |is_uni_print_lc|UV c ADMpPR |bool |is_uni_punct_lc|UV c ADMpPR |bool |is_uni_xdigit_lc|UV c -AnpdR |bool |is_invariant_string|NN const U8 *s|STRLEN len -AmpdR |bool |is_ascii_string|NN const U8 *s|STRLEN len +AnidRP |bool |is_utf8_invariant_string|NN const U8* const s|STRLEN const len +AmnpdRP |bool |is_ascii_string|NN const U8* const s|const STRLEN len +AmnpdRP |bool |is_invariant_string|NN const U8* const s|const STRLEN len AnpdD |STRLEN |is_utf8_char |NN const U8 *s Abmnpd |STRLEN |is_utf8_char_buf|NN const U8 *buf|NN const U8 *buf_end -Anpd |bool |is_utf8_string |NN const U8 *s|STRLEN len -Anpdmb |bool |is_utf8_string_loc|NN const U8 *s|STRLEN len|NULLOK const U8 **ep -Anpd |bool |is_utf8_string_loclen|NN const U8 *s|STRLEN len|NULLOK const U8 **ep|NULLOK STRLEN *el +AnipdP |bool |is_utf8_string |NN const U8 *s|const STRLEN len +AnidP |bool |is_utf8_string_flags \ + |NN const U8 *s|const STRLEN len|const U32 flags +AnidP |bool |is_strict_utf8_string|NN const U8 *s|const STRLEN len +AnidP |bool |is_c9strict_utf8_string|NN const U8 *s|const STRLEN len +Anpdmb |bool |is_utf8_string_loc \ + |NN const U8 *s|const STRLEN len|NN const U8 **ep +Andm |bool |is_utf8_string_loc_flags \ + |NN const U8 *s|const STRLEN len|NN const U8 **ep \ + |const U32 flags +Andm |bool |is_strict_utf8_string_loc \ + |NN const U8 *s|const STRLEN len|NN const U8 **ep +Andm |bool |is_c9strict_utf8_string_loc \ + |NN const U8 *s|const STRLEN len|NN const U8 **ep +Anipd |bool |is_utf8_string_loclen \ + |NN const U8 *s|const STRLEN len|NULLOK const U8 **ep \ + |NULLOK STRLEN *el +Anid |bool |is_utf8_string_loclen_flags \ + |NN const U8 *s|const STRLEN len|NULLOK const U8 **ep \ + |NULLOK STRLEN *el|const U32 flags +Anid |bool |is_strict_utf8_string_loclen \ + |NN const U8 *s|const STRLEN len|NULLOK const U8 **ep \ + |NULLOK STRLEN *el +Anid |bool |is_c9strict_utf8_string_loclen \ + |NN const U8 *s|const STRLEN len|NULLOK const U8 **ep \ + |NULLOK STRLEN *el +Amnd |bool |is_utf8_fixed_width_buf_flags \ + |NN const U8 * const s|const STRLEN len|const U32 flags +Amnd |bool |is_utf8_fixed_width_buf_loc_flags \ + |NN const U8 * const s|const STRLEN len \ + |NULLOK const U8 **ep|const U32 flags +Anid |bool |is_utf8_fixed_width_buf_loclen_flags \ + |NN const U8 * const s|const STRLEN len \ + |NULLOK const U8 **ep|NULLOK STRLEN *el|const U32 flags +AmndP |bool |is_utf8_valid_partial_char \ + |NN const U8 * const s|NN const U8 * const e +AnidP |bool |is_utf8_valid_partial_char_flags \ + |NN const U8 * const s|NN const U8 * const e|const U32 flags AMpR |bool |_is_uni_FOO|const U8 classnum|const UV c AMpR |bool |_is_utf8_FOO|const U8 classnum|NN const U8 *p ADMpR |bool |is_utf8_alnum |NN const U8 *p @@ -892,8 +961,14 @@ pod |SV* |magic_methcall |NN SV *sv|NN const MAGIC *mg \ Ap |I32 * |markstack_grow #if defined(USE_LOCALE_COLLATE) p |int |magic_setcollxfrm|NN SV* sv|NN MAGIC* mg +pb |char* |mem_collxfrm |NN const char* input_string|STRLEN len|NN STRLEN* xlen : Defined in locale.c, used only in sv.c -p |char* |mem_collxfrm |NN const char* s|STRLEN len|NN STRLEN* xlen +# if defined(PERL_IN_LOCALE_C) || defined(PERL_IN_SV_C) || defined(PERL_IN_MATHOMS_C) +pM |char* |_mem_collxfrm |NN const char* input_string \ + |STRLEN len \ + |NN STRLEN* xlen \ + |bool utf8 +# endif #endif Afpd |SV* |mess |NN const char* pat|... Apd |SV* |mess_sv |NN SV* basemsg|bool consume @@ -962,30 +1037,31 @@ pX |I32 |my_stat_flags |NULLOK const U32 flags Afp |char * |my_strftime |NN const char *fmt|int sec|int min|int hour|int mday|int mon|int year|int wday|int yday|int isdst : Used in pp_ctl.c p |void |my_unexec -ADMnoPR |UV |NATIVE_TO_NEED |const UV enc|const UV ch -ADMnoPR |UV |ASCII_TO_NEED |const UV enc|const UV ch -Apa |OP* |newANONLIST |NULLOK OP* o -Apa |OP* |newANONHASH |NULLOK OP* o +AbDMnPR |UV |NATIVE_TO_NEED |const UV enc|const UV ch +AbDMnPR |UV |ASCII_TO_NEED |const UV enc|const UV ch +ApR |OP* |newANONLIST |NULLOK OP* o +ApR |OP* |newANONHASH |NULLOK OP* o Ap |OP* |newANONSUB |I32 floor|NULLOK OP* proto|NULLOK OP* block -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 +ApdR |OP* |newASSIGNOP |I32 flags|NULLOK OP* left|I32 optype|NULLOK OP* right +ApdR |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|STRLEN len \ |U32 flags|NULLOK SV* sv Ap |void |newFORM |I32 floor|NULLOK OP* o|NULLOK OP* block -Apda |OP* |newFOROP |I32 flags|NULLOK OP* sv|NN OP* expr|NULLOK OP* block|NULLOK OP* cont -Apda |OP* |newGIVENOP |NN OP* cond|NN OP* block|PADOFFSET defsv_off -Apda |OP* |newLOGOP |I32 optype|I32 flags|NN OP *first|NN OP *other -Apda |OP* |newLOOPEX |I32 type|NN OP* label -Apda |OP* |newLOOPOP |I32 flags|I32 debuggable|NULLOK OP* expr|NULLOK OP* block -Apda |OP* |newNULLLIST -Apda |OP* |newOP |I32 optype|I32 flags +ApdR |OP* |newFOROP |I32 flags|NULLOK OP* sv|NN OP* expr|NULLOK OP* block|NULLOK OP* cont +ApdR |OP* |newGIVENOP |NN OP* cond|NN OP* block|PADOFFSET defsv_off +ApdR |OP* |newLOGOP |I32 optype|I32 flags|NN OP *first|NN OP *other +pM |LOGOP* |alloc_LOGOP |I32 type|NULLOK OP *first|NULLOK OP *other +ApdR |OP* |newLOOPEX |I32 type|NN OP* label +ApdR |OP* |newLOOPOP |I32 flags|I32 debuggable|NULLOK OP* expr|NULLOK OP* block +ApdR |OP* |newNULLLIST +ApdR |OP* |newOP |I32 optype|I32 flags Ap |void |newPROG |NN OP* o -Apda |OP* |newRANGE |I32 flags|NN OP* left|NN OP* right -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 \ +ApdR |OP* |newRANGE |I32 flags|NN OP* left|NN OP* right +ApdR |OP* |newSLICEOP |I32 flags|NULLOK OP* subscript|NULLOK OP* listop +ApdR |OP* |newSTATEOP |I32 flags|NULLOK char* label|NULLOK OP* o +Apbm |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\ @@ -998,57 +1074,57 @@ ApM |CV * |newXS_flags |NULLOK const char *name|NN XSUBADDR_t subaddr\ |NULLOK const char *const proto|U32 flags Apd |CV* |newXS |NULLOK const char *name|NN XSUBADDR_t subaddr\ |NN const char *filename -AmdbR |AV* |newAV -Apa |OP* |newAVREF |NN OP* o -Apda |OP* |newBINOP |I32 type|I32 flags|NULLOK OP* first|NULLOK OP* last -Apa |OP* |newCVREF |I32 flags|NULLOK OP* o -Apda |OP* |newGVOP |I32 type|I32 flags|NN GV* gv +ApmdbR |AV* |newAV +ApR |OP* |newAVREF |NN OP* o +ApdR |OP* |newBINOP |I32 type|I32 flags|NULLOK OP* first|NULLOK OP* last +ApR |OP* |newCVREF |I32 flags|NULLOK OP* o +ApdR |OP* |newGVOP |I32 type|I32 flags|NN GV* gv Am |GV* |newGVgen |NN const char* pack -Apa |GV* |newGVgen_flags |NN const char* pack|U32 flags -Apa |OP* |newGVREF |I32 type|NULLOK OP* o -ApaR |OP* |newHVREF |NN OP* o -AmdbR |HV* |newHV -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 +ApR |GV* |newGVgen_flags |NN const char* pack|U32 flags +ApR |OP* |newGVREF |I32 type|NULLOK OP* o +ApR |OP* |newHVREF |NN OP* o +ApmdbR |HV* |newHV +ApR |HV* |newHVhv |NULLOK HV *hv +ApRbm |IO* |newIO +ApdR |OP* |newLISTOP |I32 type|I32 flags|NULLOK OP* first|NULLOK OP* last +AMpdRn |PADNAME *|newPADNAMEouter|NN PADNAME *outer +AMpdRn |PADNAME *|newPADNAMEpvn|NN const char *s|STRLEN len +AMpdRn |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 tmpRef -Apda |SV* |newSV |const STRLEN len -Apa |OP* |newSVREF |NN OP* o -Apda |OP* |newSVOP |I32 type|I32 flags|NN SV* sv +ApdR |OP* |newPADOP |I32 type|I32 flags|NN SV* sv +#endif +ApdR |OP* |newPMOP |I32 type|I32 flags +ApdR |OP* |newPVOP |I32 type|I32 flags|NULLOK char* pv +ApR |SV* |newRV |NN SV *const sv +ApdR |SV* |newRV_noinc |NN SV *const tmpRef +ApdR |SV* |newSV |const STRLEN len +ApR |OP* |newSVREF |NN OP* o +ApdR |OP* |newSVOP |I32 type|I32 flags|NN SV* sv ApdR |OP* |newDEFSVOP -pa |SV* |newSVavdefelem |NN AV *av|SSize_t ix|bool extendible -Apda |SV* |newSViv |const IV i -Apda |SV* |newSVuv |const UV u -Apda |SV* |newSVnv |const NV n -Apda |SV* |newSVpv |NULLOK const char *const s|const STRLEN len -Apda |SV* |newSVpvn |NULLOK const char *const s|const STRLEN len -Apda |SV* |newSVpvn_flags |NULLOK const char *const s|const STRLEN len|const U32 flags -Apda |SV* |newSVhek |NULLOK const HEK *const hek -Apda |SV* |newSVpvn_share |NULLOK const char* s|I32 len|U32 hash -Apda |SV* |newSVpv_share |NULLOK const char* s|U32 hash -Afpda |SV* |newSVpvf |NN const char *const pat|... -Apa |SV* |vnewSVpvf |NN const char *const pat|NULLOK va_list *const args +pR |SV* |newSVavdefelem |NN AV *av|SSize_t ix|bool extendible +ApdR |SV* |newSViv |const IV i +ApdR |SV* |newSVuv |const UV u +ApdR |SV* |newSVnv |const NV n +ApdR |SV* |newSVpv |NULLOK const char *const s|const STRLEN len +ApdR |SV* |newSVpvn |NULLOK const char *const s|const STRLEN len +ApdR |SV* |newSVpvn_flags |NULLOK const char *const s|const STRLEN len|const U32 flags +ApdR |SV* |newSVhek |NULLOK const HEK *const hek +ApdR |SV* |newSVpvn_share |NULLOK const char* s|I32 len|U32 hash +ApdR |SV* |newSVpv_share |NULLOK const char* s|U32 hash +AfpdR |SV* |newSVpvf |NN const char *const pat|... +ApR |SV* |vnewSVpvf |NN const char *const pat|NULLOK va_list *const args Apd |SV* |newSVrv |NN SV *const rv|NULLOK const char *const classname -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 \ +ApdR |SV* |newSVsv |NULLOK SV *const old +ApdR |SV* |newSV_type |const svtype type +ApdR |OP* |newUNOP |I32 type|I32 flags|NULLOK OP* first +ApdR |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 \ +ApdR |OP* |newWHENOP |NULLOK OP* cond|NN OP* block +ApdR |OP* |newWHILEOP |I32 flags|I32 debuggable|NULLOK LOOP* loop \ |NULLOK OP* expr|NULLOK OP* block|NULLOK OP* cont \ |I32 has_my -Apda |OP* |newMETHOP |I32 type|I32 flags|NN OP* dynamic_meth -Apda |OP* |newMETHOP_named|I32 type|I32 flags|NN SV* const_meth +ApdR |OP* |newMETHOP |I32 type|I32 flags|NN OP* dynamic_meth +ApdR |OP* |newMETHOP_named|I32 type|I32 flags|NN SV* const_meth Apd |CV* |rv2cv_op_cv |NN OP *cvop|U32 flags Apd |OP* |ck_entersub_args_list|NN OP *entersubop Apd |OP* |ck_entersub_args_proto|NN OP *entersubop|NN GV *namegv|NN SV *protosv @@ -1061,7 +1137,7 @@ Apd |void |cv_set_call_checker_flags|NN CV *cv \ |NN Perl_call_checker ckfun \ |NN SV *ckobj|U32 flags Apd |void |wrap_op_checker|Optype opcode|NN Perl_check_t new_checker|NN Perl_check_t *old_checker_p -Apa |PERL_SI*|new_stackinfo|I32 stitems|I32 cxitems +ApR |PERL_SI*|new_stackinfo|I32 stitems|I32 cxitems Ap |char* |scan_vstring |NN const char *s|NN const char *const e \ |NN SV *sv Apd |const char* |scan_version |NN const char *s|NN SV *rv|bool qv @@ -1077,8 +1153,13 @@ Apd |SV* |vstringify |NN SV *vs Apd |int |vcmp |NN SV *lhv|NN SV *rhv : Used in pp_hot.c and pp_sys.c p |PerlIO*|nextargv |NN GV* gv|bool nomagicopen -AnpP |char* |ninstr |NN const char* big|NN const char* bigend \ +#ifdef HAS_MEMMEM +AdnopP |char* |ninstr |NN const char* big|NN const char* bigend \ + |NN const char* little|NN const char* lend +#else +AdnpP |char* |ninstr |NN const char* big|NN const char* bigend \ |NN const char* little|NN const char* lend +#endif Apd |void |op_free |NULLOK OP* arg Mp |OP* |op_unscope |NULLOK OP* o #ifdef PERL_CORE @@ -1154,13 +1235,13 @@ s |void |pidgone |Pid_t pid|int status #endif : Used in perly.y p |OP* |pmruntime |NN OP *o|NN OP *expr|NULLOK OP *repl \ - |bool isreg|I32 floor + |UV flags|I32 floor #if defined(PERL_IN_OP_C) s |OP* |pmtrans |NN OP* o|NN OP* expr|NN OP* repl #endif Ap |void |pop_scope Ap |void |push_scope -Amb |OP* |ref |NULLOK OP* o|I32 type +Apmb |OP* |ref |NULLOK OP* o|I32 type #if defined(PERL_IN_OP_C) s |OP* |refkids |NULLOK OP* o|I32 type #endif @@ -1205,16 +1286,16 @@ Ap |I32 |regexec_flags |NN REGEXP *const rx|NN char *stringarg \ |SSize_t minend|NN SV *sv \ |NULLOK void *data|U32 flags ApR |regnode*|regnext |NULLOK regnode* p -EXp |SV*|reg_named_buff |NN REGEXP * const rx|NULLOK SV * const key \ +EXp |SV*|reg_named_buff |NN REGEXP * const rx|NULLOK SV * const key \ |NULLOK SV * const value|const U32 flags -EXp |SV*|reg_named_buff_iter |NN REGEXP * const rx|NULLOK const SV * const lastkey \ +EXp |SV*|reg_named_buff_iter |NN REGEXP * const rx|NULLOK const SV * const lastkey \ |const U32 flags -Ap |SV*|reg_named_buff_fetch |NN REGEXP * const rx|NN SV * const namesv|const U32 flags -Ap |bool|reg_named_buff_exists |NN REGEXP * const rx|NN SV * const key|const U32 flags -Ap |SV*|reg_named_buff_firstkey |NN REGEXP * const rx|const U32 flags -Ap |SV*|reg_named_buff_nextkey |NN REGEXP * const rx|const U32 flags -Ap |SV*|reg_named_buff_scalar |NN REGEXP * const rx|const U32 flags -Ap |SV*|reg_named_buff_all |NN REGEXP * const rx|const U32 flags +Ap |SV*|reg_named_buff_fetch |NN REGEXP * const rx|NN SV * const namesv|const U32 flags +Ap |bool|reg_named_buff_exists |NN REGEXP * const rx|NN SV * const key|const U32 flags +Ap |SV*|reg_named_buff_firstkey |NN REGEXP * const rx|const U32 flags +Ap |SV*|reg_named_buff_nextkey |NN REGEXP * const rx|const U32 flags +Ap |SV*|reg_named_buff_scalar |NN REGEXP * const rx|const U32 flags +Ap |SV*|reg_named_buff_all |NN REGEXP * const rx|const U32 flags : FIXME - is anything in re using this now? EXp |void|reg_numbered_buff_fetch|NN REGEXP * const rx|const I32 paren|NULLOK SV * const sv @@ -1227,7 +1308,7 @@ EXp |I32|reg_numbered_buff_length|NN REGEXP * const rx|NN const SV * const sv|co EXp |SV*|reg_qr_package|NN REGEXP * const rx Anp |void |repeatcpy |NN char* to|NN const char* from|I32 len|IV count -AnpP |char* |rninstr |NN const char* big|NN const char* bigend \ +AdnpP |char* |rninstr |NN const char* big|NN const char* bigend \ |NN const char* little|NN const char* lend Ap |Sighandler_t|rsignal |int i|Sighandler_t t : Used in pp_sys.c @@ -1352,18 +1433,18 @@ Apd |IO* |sv_2io |NN SV *const sv #if defined(PERL_IN_SV_C) s |bool |glob_2number |NN GV* const gv #endif -Amb |IV |sv_2iv |NN SV *sv +Apmb |IV |sv_2iv |NN SV *sv Apd |IV |sv_2iv_flags |NN SV *const sv|const I32 flags Apd |SV* |sv_2mortal |NULLOK SV *const sv Apd |NV |sv_2nv_flags |NN SV *const sv|const I32 flags : Used in pp.c, pp_hot.c, sv.c pMd |SV* |sv_2num |NN SV *const sv -Amb |char* |sv_2pv |NN SV *sv|NULLOK STRLEN *lp +Apmb |char* |sv_2pv |NN SV *sv|NULLOK STRLEN *lp Apd |char* |sv_2pv_flags |NN SV *const sv|NULLOK STRLEN *const lp|const I32 flags 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 |NN SV *sv +Apmb |UV |sv_2uv |NN SV *sv Apd |UV |sv_2uv_flags |NN SV *const sv|const I32 flags Apd |IV |sv_iv |NN SV* sv Apd |UV |sv_uv |NN SV* sv @@ -1388,8 +1469,8 @@ Afpd |void |sv_catpvf |NN SV *const sv|NN const char *const pat|... Apd |void |sv_vcatpvf |NN SV *const sv|NN const char *const pat \ |NULLOK va_list *const args Apd |void |sv_catpv |NN SV *const sv|NULLOK const char* ptr -Amdb |void |sv_catpvn |NN SV *dsv|NN const char *sstr|STRLEN len -Amdb |void |sv_catsv |NN SV *dstr|NULLOK SV *sstr +Apmdb |void |sv_catpvn |NN SV *dsv|NN const char *sstr|STRLEN len +Apmdb |void |sv_catsv |NN SV *dstr|NULLOK SV *sstr Apd |void |sv_chop |NN SV *const sv|NULLOK const char *const ptr : Used only in perl.c pd |I32 |sv_clean_all @@ -1433,7 +1514,7 @@ Apd |char* |sv_gets |NN SV *const sv|NN PerlIO *const fp|I32 append Apd |char* |sv_grow |NN SV *const sv|STRLEN newlen Apd |void |sv_inc |NULLOK SV *const sv Apd |void |sv_inc_nomg |NULLOK SV *const sv -Amdb |void |sv_insert |NN SV *const bigstr|const STRLEN offset \ +Apmdb |void |sv_insert |NN SV *const bigstr|const STRLEN offset \ |const STRLEN len|NN const char *const little \ |const STRLEN littlelen Apd |void |sv_insert_flags|NN SV *const bigstr|const STRLEN offset|const STRLEN len \ @@ -1453,8 +1534,8 @@ Ein |bool |sv_only_taint_gmagic|NN SV *sv #endif : exported for re.pm EXp |MAGIC *|sv_magicext_mglob|NN SV *sv -ApdbamR |SV* |sv_mortalcopy |NULLOK SV *const oldsv -XpaR |SV* |sv_mortalcopy_flags|NULLOK SV *const oldsv|U32 flags +ApdbmR |SV* |sv_mortalcopy |NULLOK SV *const oldsv +XpR |SV* |sv_mortalcopy_flags|NULLOK SV *const oldsv|U32 flags ApdR |SV* |sv_newmortal Apd |SV* |sv_newref |NULLOK SV *const sv Ap |char* |sv_peek |NULLOK SV* sv @@ -1464,7 +1545,7 @@ Apd |STRLEN |sv_pos_u2b_flags|NN SV *const sv|STRLEN uoffset \ Apd |void |sv_pos_b2u |NULLOK SV *const sv|NN I32 *const offsetp Apd |STRLEN |sv_pos_b2u_flags|NN SV *const sv|STRLEN const offset \ |U32 flags -Amdb |char* |sv_pvn_force |NN SV* sv|NULLOK STRLEN* lp +Apmdb |char* |sv_pvn_force |NN SV* sv|NULLOK STRLEN* lp Apd |char* |sv_pvutf8n_force|NN SV *const sv|NULLOK STRLEN *const lp Apd |char* |sv_pvbyten_force|NN SV *const sv|NULLOK STRLEN *const lp Apd |char* |sv_recode_to_utf8 |NN SV* sv|NN SV *encoding @@ -1492,9 +1573,10 @@ Apd |SV* |sv_setref_pvn |NN SV *const rv|NULLOK const char *const classname \ |NN const char *const pv|const STRLEN n Apd |void |sv_setpv |NN SV *const sv|NULLOK const char *const ptr Apd |void |sv_setpvn |NN SV *const sv|NULLOK const char *const ptr|const STRLEN len +Apd |char *|sv_setpv_bufsize|NN SV *const sv|const STRLEN cur|const STRLEN len Xp |void |sv_sethek |NN SV *const sv|NULLOK const HEK *const hek -Amdb |void |sv_setsv |NN SV *dstr|NULLOK SV *sstr -Amdb |void |sv_taint |NN SV* sv +Apmdb |void |sv_setsv |NN SV *dstr|NULLOK SV *sstr +Apmdb |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 @@ -1519,13 +1601,13 @@ ApRM |SV* |swash_init |NN const char* pkg|NN const char* name|NN SV* listsv|I32 ApM |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 -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 -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 EiMRn |bool |invlist_is_iterating|NN SV* const invlist #ifndef PERL_EXT_RE_BUILD +EiMRn |UV* |_invlist_array_init |NN SV* const invlist|const bool will_have_0 +EiMRn |UV |invlist_max |NN SV* const invlist +EsM |void |_append_range_to_invlist |NN SV* const invlist|const UV start|const UV end +EsM |void |invlist_extend |NN SV* const invlist|const UV len EsM |void |invlist_replace_list_destroys_src|NN SV *dest|NN SV *src EiMRn |IV* |get_invlist_previous_index_addr|NN SV* invlist EiMn |void |invlist_set_previous_index|NN SV* const invlist|const IV index @@ -1557,7 +1639,7 @@ EXmM |void |_invlist_subtract|NN SV* const a|NN SV* const b|NN SV** result EXpM |void |_invlist_invert|NN SV* const invlist EXMpR |SV* |_new_invlist |IV initial_size EXMpR |SV* |_swash_to_invlist |NN SV* const swash -EXMpR |SV* |_add_range_to_invlist |NULLOK SV* invlist|const UV start|const UV end +EXMpR |SV* |_add_range_to_invlist |NULLOK SV* invlist|UV start|UV end EXMpR |SV* |_setup_canned_invlist|const STRLEN size|const UV element0|NN UV** other_elements_ptr EXMpn |void |_invlist_populate_swatch |NN SV* const invlist|const UV start|const UV end|NN U8* swatch #endif @@ -1571,7 +1653,7 @@ EiMRn |UV* |invlist_array |NN SV* const invlist EiMRn |bool* |get_invlist_offset_addr|NN SV* invlist EiMRn |UV |_invlist_len |NN SV* const invlist EMiRn |bool |_invlist_contains_cp|NN SV* const invlist|const UV cp -EXpMRn |IV |_invlist_search |NN SV* const invlist|const UV cp +EXpMRn |SSize_t|_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 #endif @@ -1599,6 +1681,15 @@ ApdD |UV |to_utf8_case |NN const U8 *p \ |NN const char *normal| \ NULLOK const char *special #if defined(PERL_IN_UTF8_C) +inRP |bool |does_utf8_overflow|NN const U8 * const s|NN const U8 * e +inRP |bool |is_utf8_overlong_given_start_byte_ok|NN const U8 * const s|const STRLEN len +inRP |bool |isFF_OVERLONG |NN const U8 * const s|const STRLEN len +sMR |char * |unexpected_non_continuation_text \ + |NN const U8 * const s \ + |STRLEN print_len \ + |const STRLEN non_cont_byte_pos \ + |const STRLEN expect_len +sM |char * |_byte_dump_string|NN const U8 * s|const STRLEN len s |UV |_to_utf8_case |const UV uv1 \ |NN const U8 *p \ |NN U8* ustrp \ @@ -1607,16 +1698,16 @@ s |UV |_to_utf8_case |const UV uv1 \ |NN const char *normal \ |NULLOK const char *special #endif -Abmd |UV |to_utf8_lower |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp +Apbmd |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|bool flags -Abmd |UV |to_utf8_upper |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp +Apbmd |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|bool flags -Abmd |UV |to_utf8_title |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp +Apbmd |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|bool flags -Abmd |UV |to_utf8_fold |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp +Apbmd |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 #if defined(PERL_IN_MG_C) || defined(PERL_IN_PP_C) @@ -1641,8 +1732,11 @@ p |void |utilize |int aver|I32 floor|NULLOK OP* version|NN OP* idop|NULLOK OP* a Ap |U8* |utf16_to_utf8 |NN U8* p|NN U8 *d|I32 bytelen|NN I32 *newlen Ap |U8* |utf16_to_utf8_reversed|NN U8* p|NN U8 *d|I32 bytelen|NN I32 *newlen AdpPR |STRLEN |utf8_length |NN const U8* s|NN const U8 *e -ApdPR |IV |utf8_distance |NN const U8 *a|NN const U8 *b -ApdPRn |U8* |utf8_hop |NN const U8 *s|I32 off +AipdPR |IV |utf8_distance |NN const U8 *a|NN const U8 *b +AipdPRn |U8* |utf8_hop |NN const U8 *s|SSize_t off +AipdPRn |U8* |utf8_hop_back|NN const U8 *s|SSize_t off|NN const U8 *start +AipdPRn |U8* |utf8_hop_forward|NN const U8 *s|SSize_t off|NN const U8 *end +AipdPRn |U8* |utf8_hop_safe |NN const U8 *s|SSize_t off|NN const U8 *start|NN const U8 *end ApMd |U8* |utf8_to_bytes |NN U8 *s|NN STRLEN *len Apd |int |bytes_cmp_utf8 |NN const U8 *b|STRLEN blen|NN const U8 *u \ |STRLEN ulen @@ -1655,9 +1749,16 @@ Amd |UV |utf8_to_uvchr_buf |NN const U8 *s|NN const U8 *send|NULLOK STRLEN *retl ApdD |UV |utf8_to_uvuni_buf |NN const U8 *s|NN const U8 *send|NULLOK STRLEN *retlen pM |bool |check_utf8_print |NN const U8 *s|const STRLEN len -Adp |UV |utf8n_to_uvchr |NN const U8 *s|STRLEN curlen|NULLOK STRLEN *retlen|U32 flags -ApM |UV |valid_utf8_to_uvchr |NN const U8 *s|NULLOK STRLEN *retlen - +Adop |UV |utf8n_to_uvchr |NN const U8 *s \ + |STRLEN curlen \ + |NULLOK STRLEN *retlen \ + |const U32 flags +Adp |UV |utf8n_to_uvchr_error|NN const U8 *s \ + |STRLEN curlen \ + |NULLOK STRLEN *retlen \ + |const U32 flags \ + |NULLOK U32 * errors +AipnR |UV |valid_utf8_to_uvchr |NN const U8 *s|NULLOK STRLEN *retlen Ap |UV |utf8n_to_uvuni|NN const U8 *s|STRLEN curlen|NULLOK STRLEN *retlen|U32 flags Adm |U8* |uvchr_to_utf8 |NN U8 *d|UV uv @@ -1679,7 +1780,7 @@ Ap |U32 |seed Xpno |double |drand48_r |NN perl_drand48_t *random_state Xpno |void |drand48_init_r |NN perl_drand48_t *random_state|U32 seed : Only used in perl.c -p |void |get_hash_seed |NN unsigned char * const seed_buffer +p |void |get_hash_seed |NN unsigned char * const seed_buffer : Used in doio.c, pp_hot.c, pp_sys.c p |void |report_evil_fh |NULLOK const GV *gv : Used in doio.c, pp_hot.c, pp_sys.c @@ -1707,9 +1808,9 @@ Apd |bool |dump_c_backtrace|NN PerlIO* fp|int max_depth|int skip : FIXME p |void |watch |NN char** addr Am |I32 |whichsig |NN const char* sig -Ap |I32 |whichsig_sv |NN SV* sigsv -Ap |I32 |whichsig_pv |NN const char* sig -Ap |I32 |whichsig_pvn |NN const char* sig|STRLEN len +Ap |I32 |whichsig_sv |NN SV* sigsv +Ap |I32 |whichsig_pv |NN const char* sig +Ap |I32 |whichsig_pvn |NN const char* sig|STRLEN len #ifndef PERL_NO_INLINE_FUNCTIONS : used to check for NULs in pathnames and other names AiR |bool |is_safe_syscall|NN const char *pv|STRLEN len|NN const char *what|NN const char *op_name @@ -1743,7 +1844,7 @@ Ap |int |get_mstats |NN perl_mstats_t *buf|int buflen|int level #endif 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 +AnpR |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) @@ -1777,7 +1878,7 @@ Apd |char* |pv_escape |NULLOK SV *dsv|NN char const * const str\ |const STRLEN count|const STRLEN max\ |NULLOK STRLEN * const escaped\ |const U32 flags -Apd |char* |pv_pretty |NN SV *dsv|NN char const * const str\ +Apd |char* |pv_pretty |NN SV *dsv|NN char const * const str\ |const STRLEN count|const STRLEN max\ |NULLOK char const * const start_color\ |NULLOK char const * const end_color\ @@ -1802,10 +1903,10 @@ Ap |void |reginitcolors ApdRmb |char* |sv_2pv_nolen |NN SV* sv ApdRmb |char* |sv_2pvutf8_nolen|NN SV* sv ApdRmb |char* |sv_2pvbyte_nolen|NN SV* sv -AmdbR |char* |sv_pv |NN SV *sv -AmdbR |char* |sv_pvutf8 |NN SV *sv -AmdbR |char* |sv_pvbyte |NN SV *sv -Amdb |STRLEN |sv_utf8_upgrade|NN SV *sv +ApmdbR |char* |sv_pv |NN SV *sv +ApmdbR |char* |sv_pvutf8 |NN SV *sv +ApmdbR |char* |sv_pvbyte |NN SV *sv +Apmdb |STRLEN |sv_utf8_upgrade|NN SV *sv Amd |STRLEN |sv_utf8_upgrade_nomg|NN SV *sv ApdM |bool |sv_utf8_downgrade|NN SV *const sv|const bool fail_ok Apd |void |sv_utf8_encode |NN SV *const sv @@ -1830,7 +1931,7 @@ p |OP * |my_attrs |NN OP *o|NULLOK OP *attrs #if defined(USE_ITHREADS) ApR |PERL_CONTEXT*|cx_dup |NULLOK PERL_CONTEXT* cx|I32 ix|I32 max|NN CLONE_PARAMS* param ApR |PERL_SI*|si_dup |NULLOK PERL_SI* si|NN CLONE_PARAMS* param -Apa |ANY* |ss_dup |NN PerlInterpreter* proto_perl|NN CLONE_PARAMS* param +ApR |ANY* |ss_dup |NN PerlInterpreter* proto_perl|NN CLONE_PARAMS* param ApR |void* |any_dup |NULLOK void* v|NN const PerlInterpreter* proto_perl ApR |HE* |he_dup |NULLOK const HE* e|bool shared|NN CLONE_PARAMS* param ApR |HEK* |hek_dup |NULLOK HEK* e|NN CLONE_PARAMS* param @@ -1852,7 +1953,7 @@ ApR |SV* |sv_dup_inc |NULLOK const SV *const sstr \ Ap |void |rvpv_dup |NN SV *const dstr|NN const SV *const sstr|NN CLONE_PARAMS *const param Ap |yy_parser*|parser_dup |NULLOK const yy_parser *const proto|NN CLONE_PARAMS *const param #endif -Apa |PTR_TBL_t*|ptr_table_new +ApR |PTR_TBL_t*|ptr_table_new ApR |void* |ptr_table_fetch|NN PTR_TBL_t *const tbl|NULLOK const void *const sv Ap |void |ptr_table_store|NN PTR_TBL_t *const tbl|NULLOK const void *const oldsv \ |NN void *const newsv @@ -1877,11 +1978,7 @@ Aop |void |custom_op_register |NN Perl_ppaddr_t ppaddr \ Adp |void |sv_nosharing |NULLOK SV *sv Adpbm |void |sv_nolocking |NULLOK SV *sv Adp |bool |sv_destroyable |NULLOK SV *sv -#ifdef NO_MATHOMS -Adpbm |void |sv_nounlocking |NULLOK SV *sv -#else Adpb |void |sv_nounlocking |NULLOK SV *sv -#endif Adp |int |nothreadhook p |void |init_constants @@ -1897,21 +1994,22 @@ sR |I32 |do_trans_complex_utf8 |NN SV * const sv #if defined(PERL_IN_GV_C) s |void |gv_init_svtype |NN GV *gv|const svtype sv_type s |void |gv_magicalize_isa |NN GV *gv -s |bool|parse_gv_stash_name|NN HV **stash|NN GV **gv \ +s |bool|parse_gv_stash_name|NN HV **stash|NN GV **gv \ |NN const char **name|NN STRLEN *len \ |NN const char *nambeg|STRLEN full_len \ |const U32 is_utf8|const I32 add -s |bool|find_default_stash|NN HV **stash|NN const char *name \ +s |bool|find_default_stash|NN HV **stash|NN const char *name \ |STRLEN len|const U32 is_utf8|const I32 add \ |const svtype sv_type -s |bool|gv_magicalize|NN GV *gv|NN HV *stash|NN const char *name \ - |STRLEN len|bool addmg \ +s |bool|gv_magicalize|NN GV *gv|NN HV *stash|NN const char *name \ + |STRLEN len \ |const svtype sv_type -s |void|maybe_multimagic_gv|NN GV *gv|NN const char *name|const svtype sv_type -s |bool|gv_is_in_main|NN const char *name|STRLEN len \ +s |void|maybe_multimagic_gv|NN GV *gv|NN const char *name|const svtype sv_type +s |bool|gv_is_in_main|NN const char *name|STRLEN len \ |const U32 is_utf8 -s |HV* |require_tie_mod|NN GV *gv|NN const char *varpv|NN SV* namesv \ - |NN const char *methpv|const U32 flags +s |void |require_tie_mod|NN GV *gv|NN const char varname \ + |NN const char * name|STRLEN len \ + |const U32 flags #endif #if defined(PERL_IN_HV_C) || defined(PERL_IN_SV_C) @@ -1922,7 +2020,7 @@ po |SV* |hfree_next_entry |NN HV *hv|NN STRLEN *indexp 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|NN HE *entry -sa |HE* |new_he +sR |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 @@ -1939,7 +2037,7 @@ sM |void |clear_placeholders |NN HV *hv|U32 items #if defined(PERL_IN_MG_C) s |void |save_magic_flags|I32 mgs_ix|NN SV *sv|U32 flags --s |int |magic_methpack |NN SV *sv|NN const MAGIC *mg|NN SV *meth +s |int |magic_methpack |NN SV *sv|NN const MAGIC *mg|NN SV *meth s |SV* |magic_methcall1|NN SV *sv|NN const MAGIC *mg \ |NN SV *meth|U32 flags \ |int n|NULLOK SV *val @@ -1982,7 +2080,7 @@ s |bool |process_special_blocks |I32 floor \ s |void |clear_special_blocks |NN const char *const fullname\ |NN GV *const gv|NN CV *const cv #endif -Xpa |void* |Slab_Alloc |size_t sz +XpR |void* |Slab_Alloc |size_t sz Xp |void |Slab_Free |NN void *op #if defined(PERL_DEBUG_READONLY_OPS) # if defined(PERL_CORE) @@ -2109,7 +2207,7 @@ s |OP* |doform |NN CV *cv|NN GV *gv|NULLOK OP *retop # if !defined(HAS_MKDIR) || !defined(HAS_RMDIR) sR |int |dooneliner |NN const char *cmd|NN const char *filename # endif -s |SV * |space_join_names_mortal|NN char *const *array +s |SV * |space_join_names_mortal|NULLOK char *const *array #endif p |OP * |tied_method|NN SV *methname|NN SV **sp \ |NN SV *const sv|NN const MAGIC *const mg \ @@ -2170,9 +2268,14 @@ Es |regnode*|handle_regex_sets|NN RExC_state_t *pRExC_state \ |NULLOK SV ** return_invlist \ |NN I32 *flagp|U32 depth \ |NN char * const oregcomp_parse +#if defined(DEBUGGING) && defined(ENABLE_REGEX_SETS_DEBUGGING) +Es |void |dump_regex_sets_structures \ + |NN RExC_state_t *pRExC_state \ + |NN AV * stack \ + |const IV fence|NN AV * fence_stack +#endif Es |void|parse_lparen_question_flags|NN RExC_state_t *pRExC_state Es |regnode*|reg_node |NN RExC_state_t *pRExC_state|U8 op -Es |UV |reg_recode |const U8 value|NN SV **encp Es |regnode*|regpiece |NN RExC_state_t *pRExC_state \ |NN I32 *flagp|U32 depth Es |bool |grok_bslash_N |NN RExC_state_t *pRExC_state \ @@ -2266,7 +2369,7 @@ EnPs |int |edit_distance |NN const UV *src \ |const SSize_t maxDistance # ifdef DEBUGGING Ep |int |re_indentf |NN const char *fmt|U32 depth|... -Es |void |regdump_intflags|NULLOK const char *lead| const U32 flags +Es |void |regdump_intflags|NULLOK const char *lead| const U32 flags Es |void |regdump_extflags|NULLOK const char *lead| const U32 flags Es |const regnode*|dumpuntil|NN const regexp *r|NN const regnode *start \ |NN const regnode *node \ @@ -2278,7 +2381,8 @@ Es |bool |put_charclass_bitmap_innards|NN SV* sv \ |NN char* bitmap \ |NULLOK SV* nonbitmap_invlist \ |NULLOK SV* only_utf8_locale_invlist\ - |NULLOK const regnode * const node + |NULLOK const regnode * const node \ + |const bool force_as_is_display Es |SV* |put_charclass_bitmap_innards_common \ |NN SV* invlist \ |NULLOK SV* posixes \ @@ -2309,25 +2413,24 @@ Es |U8 |regtail_study |NN 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 |SSize_t|regmatch |NN regmatch_info *reginfo|NN char *startpos|NN regnode *prog -ERs |I32 |regrepeat |NN regexp *prog|NN char **startposp \ +WERs |I32 |regrepeat |NN regexp *prog|NN char **startposp \ |NN const regnode *p \ |NN regmatch_info *const reginfo \ - |I32 max \ - |int depth + |I32 max ERs |bool |regtry |NN regmatch_info *reginfo|NN char **startposp ERs |bool |reginclass |NULLOK regexp * const prog \ |NN const regnode * const n \ |NN const U8 * const p \ |NN const U8 * const p_end \ |bool const utf8_target -Es |CHECKPOINT|regcppush |NN const regexp *rex|I32 parenfloor\ +WEs |CHECKPOINT|regcppush |NN const regexp *rex|I32 parenfloor\ |U32 maxopenparen -Es |void |regcppop |NN regexp *rex\ - |NN U32 *maxopenparen_p +WEs |void |regcppop |NN regexp *rex|NN U32 *maxopenparen_p +WEs |void |regcp_restore |NN regexp *rex|I32 ix|NN U32 *maxopenparen_p ERsn |U8* |reghop3 |NN U8 *s|SSize_t off|NN const U8 *lim ERsn |U8* |reghop4 |NN U8 *s|SSize_t off|NN const U8 *llim \ |NN const U8 *rlim -ERsn |U8* |reghopmaybe3 |NN U8 *s|SSize_t off|NN const U8 *lim +ERsn |U8* |reghopmaybe3 |NN U8 *s|SSize_t off|NN const U8 * const lim ERs |char* |find_byclass |NN regexp * prog|NN const regnode *c \ |NN char *s|NN const char *strend \ |NULLOK regmatch_info *reginfo @@ -2335,7 +2438,14 @@ Es |void |to_utf8_substr |NN regexp * prog Es |bool |to_byte_substr |NN regexp * prog ERsn |I32 |reg_check_named_buff_matched |NN const regexp *rex \ |NN const regnode *scan -EinR |bool |isGCB |const GCB_enum before|const GCB_enum after +EsR |bool |isGCB |const GCB_enum before \ + |const GCB_enum after \ + |NN const U8 * const strbeg \ + |NN const U8 * const curpos \ + |const bool utf8_target +EsR |GCB_enum|backup_one_GCB|NN const U8 * const strbeg \ + |NN U8 ** curpos \ + |const bool utf8_target EsR |bool |isLB |LB_enum before \ |LB_enum after \ |NN const U8 * const strbeg \ @@ -2410,7 +2520,7 @@ poM |void |sv_kill_backrefs |NN SV *const sv|NULLOK AV *const av #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 + |SSize_t aindex|int subscript_type #endif pX |void |sv_del_backref |NN SV *const tsv|NN SV *const sv @@ -2500,7 +2610,7 @@ s |void |force_ident_maybe_lex|char pit s |void |incline |NN const char *s s |int |intuit_method |NN char *s|NULLOK SV *ioname|NULLOK CV *cv s |int |intuit_more |NN char *s -s |I32 |lop |I32 f|int x|NN char *s +s |I32 |lop |I32 f|U8 x|NN char *s rs |void |missingterm |NULLOK char *s s |void |no_op |NN const char *const what|NULLOK char *s s |int |pending_ident @@ -2516,9 +2626,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 \ +s |void|parse_ident|NN char **s|NN char **d \ |NN char * const e|int allow_package \ - |bool is_utf8 + |bool is_utf8|bool check_dollar # if defined(PERL_CR_FILTER) s |I32 |cr_textfilter |int idx|NULLOK SV *sv|int maxlen s |void |strip_return |NN SV *sv @@ -2537,6 +2647,13 @@ s |bool |isa_lookup |NN HV *stash|NN const char * const name \ #if defined(USE_LOCALE) && defined(PERL_IN_LOCALE_C) s |char* |stdize_locale |NN char* locs +# ifdef DEBUGGING +s |void |print_collxfrm_input_and_return \ + |NN const char * const s \ + |NN const char * const e \ + |NULLOK const STRLEN * const xlen \ + |const bool is_utf8 +# endif #endif #if defined(USE_LOCALE) \ @@ -2563,6 +2680,12 @@ sn |void |mem_log_common |enum mem_log_type mlt|const UV n|const UV typesize \ #endif #endif +#if defined(PERL_MEM_LOG) +pn |Malloc_t |mem_log_alloc |const UV nconst|UV typesize|NN const char *type_name|Malloc_t newalloc|NN const char *filename|const int linenumber|NN const char *funcname +pn |Malloc_t |mem_log_realloc |const UV n|const UV typesize|NN const char *type_name|Malloc_t oldalloc|Malloc_t newalloc|NN const char *filename|const int linenumber|NN const char *funcname +pn |Malloc_t |mem_log_free |Malloc_t oldalloc|NN const char *filename|const int linenumber|NN const char *funcname +#endif + #if defined(PERL_IN_NUMERIC_C) #ifndef USE_QUADMATH sn |NV|mulexp10 |NV value|I32 exponent @@ -2595,7 +2718,7 @@ Apd |void |sv_catsv_flags |NN SV *const dsv|NULLOK SV *const ssv|const I32 flags Apmd |STRLEN |sv_utf8_upgrade_flags|NN SV *const sv|const I32 flags Ap |STRLEN |sv_utf8_upgrade_flags_grow|NN SV *const sv|const I32 flags|STRLEN extra Apd |char* |sv_pvn_force_flags|NN SV *const sv|NULLOK STRLEN *const lp|const I32 flags -pmb |void |sv_copypv |NN SV *const dsv|NN SV *const ssv +Apmb |void |sv_copypv |NN SV *const dsv|NN SV *const ssv Apmd |void |sv_copypv_nomg |NN SV *const dsv|NN SV *const ssv Apd |void |sv_copypv_flags |NN SV *const dsv|NN SV *const ssv|const I32 flags Ap |char* |my_atof2 |NN const char *s|NN NV* value @@ -2649,7 +2772,7 @@ s |void |deb_stack_n |NN SV** stack_base|I32 stack_min \ #endif : pad API -Apda |PADLIST*|pad_new |int flags +ApdR |PADLIST*|pad_new |int flags #ifdef DEBUGGING pnX |void|set_padlist| NN CV * cv | NULLOK PADLIST * padlist #endif @@ -2697,7 +2820,7 @@ sd |void |pad_reset #endif AMpd |void |pad_tidy |padtidy_type type pd |void |pad_free |PADOFFSET po -pd |void |do_dump_pad |I32 level|NN PerlIO *file|NULLOK PADLIST *padlist|int full +pd |void |do_dump_pad |I32 level|NN PerlIO *file|NULLOK PADLIST *padlist|int full #if defined(PERL_IN_PAD_C) # if defined(DEBUGGING) sd |void |cv_dump |NN const CV *cv|NN const char *title @@ -2738,11 +2861,12 @@ Apod |void |hv_assert |NN HV *hv #endif ApdR |SV* |hv_scalar |NN HV *hv +ApdRM |SV* |hv_bucket_ratio|NN HV *hv ApoR |I32* |hv_riter_p |NN HV *hv 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_rand_set |NN HV *hv|U32 new_xhv_rand +Ap |void |hv_rand_set |NN HV *hv|U32 new_xhv_rand 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 \ |U32 flags @@ -2764,7 +2888,7 @@ p |SV* |magic_scalarpack|NN HV *hv|NN MAGIC *mg #if defined(PERL_IN_SV_C) s |SV * |find_hash_subscript|NULLOK const HV *const hv \ |NN const SV *const val -s |I32 |find_array_subscript|NULLOK const AV *const av \ +s |SSize_t|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 match \ @@ -2788,7 +2912,7 @@ s |bool |ckwarn_common |U32 w Apo |bool |ckwarn |U32 w Apo |bool |ckwarn_d |U32 w : FIXME - exported for ByteLoader - public or private? -XEopMa |STRLEN *|new_warnings_bitfield|NULLOK STRLEN *buffer \ +XEopMR |STRLEN *|new_warnings_bitfield|NULLOK STRLEN *buffer \ |NN const char *const bits|STRLEN size #ifndef SPRINTF_RETURNS_STRLEN @@ -2825,7 +2949,7 @@ Apnod |Size_t |my_strlcat |NULLOK char *dst|NULLOK const char *src|Size_t size #endif #ifndef HAS_STRLCPY -Apnod |Size_t |my_strlcpy |NULLOK char *dst|NULLOK const char *src|Size_t size +Apnod |Size_t |my_strlcpy |NULLOK char *dst|NULLOK const char *src|Size_t size #endif Apdn |bool |isinfnan |NV nv @@ -2890,7 +3014,7 @@ xpo |int |keyword_plugin_standard|NN char* keyword_ptr|STRLEN keyword_len|NN OP* # if defined(PERL_IN_SV_C) s |void |unreferenced_to_tmp_stack|NN AV *const unreferenced # endif -Aanop |CLONE_PARAMS *|clone_params_new|NN PerlInterpreter *const from \ +ARnop |CLONE_PARAMS *|clone_params_new|NN PerlInterpreter *const from \ |NN PerlInterpreter *const to Anop |void |clone_params_del|NN CLONE_PARAMS *param #endif @@ -2909,7 +3033,6 @@ Ei |STRLEN |sv_or_pv_pos_u2b|NN SV *sv|NN const char *pv|STRLEN pos \ |NULLOK STRLEN *lenp #endif -EMpPX |SV* |_get_encoding Ap |void |clear_defarray |NN AV* av|bool abandon ApM |void |leave_adjust_stacks|NN SV **from_sp|NN SV **to_sp \ @@ -2940,4 +3063,11 @@ AiM |void |cx_pushgiven |NN PERL_CONTEXT *cx|NULLOK SV *orig_defsv AiM |void |cx_popgiven |NN PERL_CONTEXT *cx #endif +#ifdef USE_DTRACE +XEop |void |dtrace_probe_call |NN CV *cv|bool is_call +XEop |void |dtrace_probe_load |NN const char *name|bool is_loading +XEop |void |dtrace_probe_op |NN const OP *op +XEop |void |dtrace_probe_phase|enum perl_phase phase +#endif + : ex: set ts=8 sts=4 sw=4 noet: