: m Implemented as a macro - no export, no
: proto, no #define
: d function has documentation with its source
+: D function is deprecated
: s static function, should have an S_ prefix in
: source file; for macros (m), suffix the usage
: example with a semicolon
START_EXTERN_C
# include "pp_proto.h"
Ap |SV* |amagic_call |NN SV* left|NN SV* right|int method|int dir
-Ap |bool |Gv_AMupdate |NN HV* stash
+Ap |int |Gv_AMupdate |NN HV* stash|bool destructing
ApR |CV* |gv_handler |NULLOK HV* stash|I32 id
: Used in perly.y
p |OP* |append_elem |I32 optype|NULLOK OP* first|NULLOK OP* last
#if defined(PERL_IMPLICIT_CONTEXT)
Afnrp |void |croak_nocontext|NULLOK const char* pat|...
-Afnp |OP* |die_nocontext |NN const char* pat|...
+Afnp |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|...
pPR |U32* |get_opargs
ApPR |PPADDR_t*|get_ppaddr
: Used by CXINC, which appears to be in widespread use
-EXpR |I32 |cxinc
+ApR |I32 |cxinc
Afp |void |deb |NN const char* pat|...
Ap |void |vdeb |NN const char* pat|NULLOK va_list* args
Ap |void |debprofdump
Ap |I32 |debop |NN const OP* o
Ap |I32 |debstack
Ap |I32 |debstackptrs
-Ap |char* |delimcpy |NN char* to|NN const char* toend|NN const char* from \
+Anp |char* |delimcpy |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
pox |void |get_db_sub |NULLOK SV **svp|NN CV *cv
Ap |void |gp_free |NULLOK GV* gv
Ap |GP* |gp_ref |NULLOK GP* gp
-Ap |GV* |gv_AVadd |NN GV* gv
-Ap |GV* |gv_HVadd |NN GV* gv
-Ap |GV* |gv_IOadd |NN GV* gv
+Ap |GV* |gv_add_by_type |NULLOK GV *gv|svtype type
+Apmb |GV* |gv_AVadd |NULLOK GV *gv
+Apmb |GV* |gv_HVadd |NULLOK GV *gv
+Apmb |GV* |gv_IOadd |NULLOK GV* gv
ApR |GV* |gv_autoload4 |NULLOK HV* stash|NN const char* name|STRLEN len|I32 method
Ap |void |gv_check |NN const HV* stash
Ap |void |gv_efullname |NN SV* sv|NN const GV* gv
AbmdM |SV** |hv_store_flags |NULLOK HV *hv|NULLOK const char *key \
|I32 klen|NULLOK SV *val|U32 hash|int flags
Apd |void |hv_undef |NULLOK HV *hv
-ApP |I32 |ibcmp |NN const char* a|NN const char* b|I32 len
-ApP |I32 |ibcmp_locale |NN const char* a|NN const char* b|I32 len
+AnpP |I32 |ibcmp |NN const char* a|NN const char* b|I32 len
+AnpP |I32 |ibcmp_locale |NN const char* a|NN const char* b|I32 len
Apd |I32 |ibcmp_utf8 |NN const char *s1|NULLOK char **pe1|UV l1 \
|bool u1|NN const char *s2|NULLOK char **pe2 \
|UV l2|bool u2
Ap |void |init_tm |NN struct tm *ptm
: Used in perly.y
pd |U32 |intro_my
-ApPR |char* |instr |NN const char* big|NN const char* little
+AnpPR |char* |instr |NN const char* big|NN const char* little
: Used in sv.c
p |bool |io_close |NN IO* io|bool not_implicit
: Used in perly.y
ApPR |bool |is_uni_print_lc|UV c
ApPR |bool |is_uni_punct_lc|UV c
ApPR |bool |is_uni_xdigit_lc|UV c
-Apd |STRLEN |is_utf8_char |NN const U8 *s
-Apd |bool |is_utf8_string |NN const U8 *s|STRLEN len
-Apdmb |bool |is_utf8_string_loc|NN const U8 *s|STRLEN len|NULLOK const U8 **p
-Apd |bool |is_utf8_string_loclen|NN const U8 *s|STRLEN len|NULLOK const U8 **ep|NULLOK STRLEN *el
+Anpd |bool |is_ascii_string|NN const U8 *s|STRLEN len
+Anpd |STRLEN |is_utf8_char |NN const U8 *s
+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 **p
+Anpd |bool |is_utf8_string_loclen|NN const U8 *s|STRLEN len|NULLOK const U8 **ep|NULLOK STRLEN *el
ApR |bool |is_utf8_alnum |NN const U8 *p
ApR |bool |is_utf8_alnumc |NN const U8 *p
ApR |bool |is_utf8_idfirst|NN const U8 *p
p |int |magic_clearenv |NN SV* sv|NN MAGIC* mg
p |int |magic_clear_all_env|NN SV* sv|NN MAGIC* mg
dp |int |magic_clearhint|NN SV* sv|NN MAGIC* mg
-p |int |magic_clearisa |NN SV* sv|NN MAGIC* mg
+dp |int |magic_clearhints|NN SV* sv|NN MAGIC* mg
+p |int |magic_clearisa |NULLOK SV* sv|NN MAGIC* mg
p |int |magic_clearpack|NN SV* sv|NN MAGIC* mg
p |int |magic_clearsig |NN SV* sv|NN MAGIC* mg
p |int |magic_existspack|NN SV* sv|NN const MAGIC* mg
p |int |magic_setpack |NN SV* sv|NN MAGIC* mg
p |int |magic_setpos |NN SV* sv|NN MAGIC* mg
p |int |magic_setregexp|NN SV* sv|NN MAGIC* mg
-p |int |magic_setsig |NN SV* sv|NN MAGIC* mg
+p |int |magic_setsig |NULLOK SV* sv|NN MAGIC* mg
p |int |magic_setsubstr|NN SV* sv|NN MAGIC* mg
p |int |magic_settaint |NN SV* sv|NN MAGIC* mg
p |int |magic_setuvar |NN SV* sv|NN MAGIC* mg
ApaR |OP* |newHVREF |NN OP* o
AmdbR |HV* |newHV
ApaR |HV* |newHVhv |NULLOK HV *hv
-Apa |IO* |newIO
+Apabm |IO* |newIO
Apa |OP* |newLISTOP |I32 type|I32 flags|NULLOK OP* first|NULLOK OP* last
#ifdef USE_ITHREADS
Apa |OP* |newPADOP |I32 type|I32 flags|NN SV* sv
Apd |int |vcmp |NN SV *lhv|NN SV *rhv
: Used in pp_hot.c and pp_sys.c
p |PerlIO*|nextargv |NN GV* gv
-ApP |char* |ninstr |NN const char* big|NN const char* bigend \
+AnpP |char* |ninstr |NN const char* big|NN const char* bigend \
|NN const char* little|NN const char* lend
Ap |void |op_free |NULLOK OP* arg
: Used in perly.y
: FIXME - why the E?
Ep |void |regprop |NULLOK const regexp *prog|NN SV* sv|NN const regnode* o
-Ap |void |repeatcpy |NN char* to|NN const char* from|I32 len|I32 count
-ApP |char* |rninstr |NN const char* big|NN const char* bigend \
+Anp |void |repeatcpy |NN char* to|NN const char* from|I32 len|I32 count
+AnpP |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
Apda |char* |savesvpv |NN SV* sv
Ap |void |savestack_grow
Ap |void |savestack_grow_cnt |I32 need
-Ap |void |save_aelem |NN AV* av|I32 idx|NN SV **sptr
+Amp |void |save_aelem |NN AV* av|I32 idx|NN SV **sptr
+Ap |void |save_aelem_flags|NN AV* av|I32 idx|NN SV **sptr|const U32 flags
Ap |I32 |save_alloc |I32 size|I32 pad
Ap |void |save_aptr |NN AV** aptr
Ap |AV* |save_ary |NN GV* gv
Ap |void |save_bool |NN bool* boolp
Ap |void |save_clearsv |NN SV** svp
Ap |void |save_delete |NN HV *hv|NN char *key|I32 klen
+Ap |void |save_hdelete |NN HV *hv|NN SV *keysv
Ap |void |save_adelete |NN AV *av|I32 key
Ap |void |save_destructor|DESTRUCTORFUNC_NOCONTEXT_t f|NN void* p
Ap |void |save_destructor_x|DESTRUCTORFUNC_t f|NULLOK void* p
Apd |IO* |sv_2io |NN SV *const sv
#if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
s |bool |glob_2number |NN GV* const gv
-s |char* |glob_2pv |NN GV* const gv|NULLOK STRLEN * const len
#endif
Amb |IV |sv_2iv |NULLOK SV *sv
Apd |IV |sv_2iv_flags |NULLOK SV *const sv|const I32 flags
#endif
: Used in perly.y
p |OP * |my_attrs |NN OP *o|NULLOK OP *attrs
-: Only used in perl.c
-p |void |boot_core_xsutils
#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
ApR |DIR* |dirp_dup |NULLOK DIR *const dp
ApR |GP* |gp_dup |NULLOK GP *const gp|NN CLONE_PARAMS *const param
ApR |MAGIC* |mg_dup |NULLOK MAGIC *mg|NN CLONE_PARAMS *const param
+#if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT)
+s |SV ** |sv_dup_inc_multiple|NN SV *const *source|NN SV **dest \
+ |SSize_t items|NN CLONE_PARAMS *const param
+#endif
ApR |SV* |sv_dup |NULLOK const SV *const sstr|NN CLONE_PARAMS *const param
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
#if defined(PERL_IN_HV_C) || defined(PERL_DECL_PROT)
s |void |hsplit |NN HV *hv
s |void |hfreeentries |NN HV *hv
+s |I32 |anonymise_cv |NULLOK HEK *stash|NN SV *val
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
#if defined(PERL_IN_PERL_C) || defined(PERL_DECL_PROT)
s |void |find_beginning |NN SV* linestr_sv|NN PerlIO *rsfp
s |void |forbid_setid |const char flag|const bool suidscript
-s |void |incpush |NULLOK const char *const dir|STRLEN len \
+s |void |incpush |NN const char *const dir|STRLEN len \
|U32 flags
s |void |incpush_use_sep|NN const char *p|STRLEN len|U32 flags
s |void |init_interp
s |void |init_ids
s |void |init_main_stash
-s |void |init_perllib |U32 old_vers
+s |void |init_perllib
s |void |init_postdump_symbols|int argc|NN char **argv|NULLOK char **env
s |void |init_predump_symbols
rs |void |my_exit_jump
s |void* |parse_body |NULLOK char **env|XSINIT_t xsinit
rs |void |run_body |I32 oldscope
-s |SV * |incpush_if_exists|NN AV *const av|NN SV *dir
+s |SV * |incpush_if_exists|NN AV *const av|NN SV *dir|NN SV *const stem
#endif
#if defined(PERL_IN_PP_C) || defined(PERL_DECL_PROT)
+s |OP* |do_delete_local
sR |SV* |refto |NN SV* sv
#endif
#if defined(PERL_IN_PP_C) || defined(PERL_IN_PP_HOT_C) || defined(PERL_DECL_PROT)
Es |regnode*|regpiece |NN struct RExC_state_t *pRExC_state \
|NN I32 *flagp|U32 depth
Es |regnode*|reg_namedseq |NN struct RExC_state_t *pRExC_state \
- |NULLOK UV *valuep
+ |NULLOK UV *valuep|NULLOK I32 *flagp
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 \
#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
-Es |void |swap_match_buff|NN regexp * prog
Es |void |to_utf8_substr |NN regexp * prog
Es |void |to_byte_substr |NN regexp * prog
ERs |I32 |reg_check_named_buff_matched |NN const regexp *rex \
s |bool |vdie_common |NULLOK const char *message|STRLEN msglen\
|I32 utf8|bool warn
sr |char * |write_no_mem
-#if defined(PERL_MEM_LOG) && defined(PERL_MEM_LOG_STDERR)
+#if defined(PERL_MEM_LOG) && !defined(PERL_MEM_LOG_NOIMPL)
sn |void |mem_log_common |enum mem_log_type mlt|const UV n|const UV typesize \
|NN const char *type_name|NULLOK const SV *sv \
|Malloc_t oldalloc|Malloc_t newalloc \
Ap |int |my_dirfd |NULLOK DIR* dir
#ifdef PERL_OLD_COPY_ON_WRITE
: Used in pp_hot.c and regexec.c
-pMXE |SV* |sv_setsv_cow |NN SV* dstr|NN SV* sstr
+pMXE |SV* |sv_setsv_cow |NULLOK SV* dstr|NN SV* sstr
#endif
Aop |const char *|PerlIO_context_layers|NULLOK const char *mode
#endif
#ifdef PERL_DONT_CREATE_GVSV
-Ap |GV* |gv_SVadd |NN GV* gv
+Apbm |GV* |gv_SVadd |NULLOK GV *gv
#endif
Apo |bool |ckwarn |U32 w
Apo |bool |ckwarn_d |U32 w
Mp |void |addmad |NULLOK MADPROP* tm|NULLOK MADPROP** root \
|char slot
Mp |MADPROP*|newMADsv |char key|NN SV* sv
-Mp |MADPROP*|newMADPROP |char key|char type|NULLOK const void* val \
+Mp |MADPROP*|newMADPROP |char key|char type|NULLOK void* val \
|I32 vlen
Mp |void |mad_free |NULLOK MADPROP* mp