:
: flags are single letters with following meanings:
: A member of public API
-: m Implemented as a macro - no export, no proto, no #define
+: m Implemented as a macro - no export, no
+: proto, no #define
: d function has documentation with its source
-: s static function, should have an S_ prefix in source
-: file
+: s static function, should have an S_ prefix in
+: source file
: n has no implicit interpreter/thread context argument
: p function has a Perl_ prefix
: f function takes printf style format string, varargs
: r function never returns
-: o has no compatibility macro (#define foo Perl_foo)
-: x not exported
-: M may change
-: E visible to Perl core extensions
+: o has no compatibility macro (#define foo Perl_foo)
+: x not exported
+: X explicitly exported
+: M may change
+: E visible to Perl core extensions
+: b binary backward compatibility; function is a macro
+: but has also Perl_ implementation (which is exported)
:
: Individual flags may be separated by whitespace.
:
p |int |magic_setnkeys |SV* sv|MAGIC* mg
p |int |magic_setpack |SV* sv|MAGIC* mg
p |int |magic_setpos |SV* sv|MAGIC* mg
+p |int |magic_setregexp|SV* sv|MAGIC* mg
p |int |magic_setsig |SV* sv|MAGIC* mg
p |int |magic_setsubstr|SV* sv|MAGIC* mg
p |int |magic_settaint |SV* sv|MAGIC* mg
Ap |void |set_numeric_standard
Apd |void |require_pv |const char* pv
Apd |void |pack_cat |SV *cat|char *pat|char *patend|SV **beglist|SV **endlist|SV ***next_in_list|U32 flags
+Apd |void |packlist |SV *cat|char *pat|char *patend|SV **beglist|SV **endlist
p |void |pidgone |Pid_t pid|int status
Ap |void |pmflag |U32* pmfl|int ch
p |OP* |pmruntime |OP* pm|OP* expr|OP* repl
Apd |char* |savesharedpv |const char* pv
Apd |char* |savepvn |const char* pv|I32 len
Ap |void |savestack_grow
+Ap |void |savestack_grow_cnt |I32 need
Ap |void |save_aelem |AV* av|I32 idx|SV **sptr
Ap |I32 |save_alloc |I32 size|I32 pad
Ap |void |save_aptr |AV** aptr
Apd |IV |sv_2iv |SV* sv
Apd |SV* |sv_2mortal |SV* sv
Apd |NV |sv_2nv |SV* sv
-Am |char* |sv_2pv |SV* sv|STRLEN* lp
+Amb |char* |sv_2pv |SV* sv|STRLEN* lp
Apd |char* |sv_2pvutf8 |SV* sv|STRLEN* lp
Apd |char* |sv_2pvbyte |SV* sv|STRLEN* lp
Ap |char* |sv_pvn_nomg |SV* sv|STRLEN* lp
Afpd |void |sv_catpvf |SV* sv|const char* pat|...
Ap |void |sv_vcatpvf |SV* sv|const char* pat|va_list* args
Apd |void |sv_catpv |SV* sv|const char* ptr
-Amd |void |sv_catpvn |SV* sv|const char* ptr|STRLEN len
-Amd |void |sv_catsv |SV* dsv|SV* ssv
+Amdb |void |sv_catpvn |SV* sv|const char* ptr|STRLEN len
+Amdb |void |sv_catsv |SV* dsv|SV* ssv
Apd |void |sv_chop |SV* sv|char* ptr
pd |I32 |sv_clean_all
pd |void |sv_clean_objs
Apd |bool |sv_derived_from|SV* sv|const char* name
Apd |I32 |sv_eq |SV* sv1|SV* sv2
Apd |void |sv_free |SV* sv
+poMX |void |sv_free2 |SV* sv
pd |void |sv_free_arenas
Apd |char* |sv_gets |SV* sv|PerlIO* fp|I32 append
Apd |char* |sv_grow |SV* sv|STRLEN newlen
Ap |char* |sv_peek |SV* sv
Apd |void |sv_pos_u2b |SV* sv|I32* offsetp|I32* lenp
Apd |void |sv_pos_b2u |SV* sv|I32* offsetp
-Amd |char* |sv_pvn_force |SV* sv|STRLEN* lp
+Amdb |char* |sv_pvn_force |SV* sv|STRLEN* lp
Apd |char* |sv_pvutf8n_force|SV* sv|STRLEN* lp
Apd |char* |sv_pvbyten_force|SV* sv|STRLEN* lp
Apd |char* |sv_recode_to_utf8 |SV* sv|SV *encoding
Afpd |void |sv_setpvf |SV* sv|const char* pat|...
Ap |void |sv_vsetpvf |SV* sv|const char* pat|va_list* args
Apd |void |sv_setiv |SV* sv|IV num
+Apdb |void |sv_setpviv |SV* sv|IV num
Apd |void |sv_setuv |SV* sv|UV num
Apd |void |sv_setnv |SV* sv|NV num
Apd |SV* |sv_setref_iv |SV* rv|const char* classname|IV iv
|STRLEN n
Apd |void |sv_setpv |SV* sv|const char* ptr
Apd |void |sv_setpvn |SV* sv|const char* ptr|STRLEN len
-Amd |void |sv_setsv |SV* dsv|SV* ssv
+Amdb |void |sv_setsv |SV* dsv|SV* ssv
Apd |void |sv_taint |SV* sv
Apd |bool |sv_tainted |SV* sv
Apd |int |sv_unmagic |SV* sv|int type
Ap |I32 |unlnk |char* f
#endif
Apd |I32 |unpack_str |char *pat|char *patend|char *s|char *strbeg|char *strend|char **new_s|I32 ocnt|U32 flags
+Apd |I32 |unpackstring |char *pat|char *patend|char *s|char *strend|U32 flags
Ap |void |unsharepvn |const char* sv|I32 len|U32 hash
p |void |unshare_hek |HEK* hek
-p |void |utilize |int aver|I32 floor|OP* version|OP* id|OP* arg
+p |void |utilize |int aver|I32 floor|OP* version|OP* idop|OP* arg
Ap |U8* |utf16_to_utf8 |U8* p|U8 *d|I32 bytelen|I32 *newlen
Ap |U8* |utf16_to_utf8_reversed|U8* p|U8 *d|I32 bytelen|I32 *newlen
Adp |STRLEN |utf8_length |U8* s|U8 *e
p |void |vivify_defelem |SV* sv
p |void |vivify_ref |SV* sv|U32 to_what
p |I32 |wait4pid |Pid_t pid|int* statusp|int flags
+p |U32 |parse_unicode_opts|char **popt
p |void |report_evil_fh |GV *gv|IO *io|I32 op
pd |void |report_uninit
Afpd |void |warn |const char* pat|...
Afpd |void |sv_setpvf_mg |SV *sv|const char* pat|...
Ap |void |sv_vsetpvf_mg |SV* sv|const char* pat|va_list* args
Apd |void |sv_setiv_mg |SV *sv|IV i
+Apdb |void |sv_setpviv_mg |SV *sv|IV iv
Apd |void |sv_setuv_mg |SV *sv|UV u
Apd |void |sv_setnv_mg |SV *sv|NV num
Apd |void |sv_setpv_mg |SV *sv|const char *ptr
Apd |char* |sv_2pv_nolen |SV* sv
Apd |char* |sv_2pvutf8_nolen|SV* sv
Apd |char* |sv_2pvbyte_nolen|SV* sv
-Amd |char* |sv_pv |SV *sv
-Amd |char* |sv_pvutf8 |SV *sv
-Amd |char* |sv_pvbyte |SV *sv
-Amd |STRLEN |sv_utf8_upgrade|SV *sv
+Amdb |char* |sv_pv |SV *sv
+Amdb |char* |sv_pvutf8 |SV *sv
+Amdb |char* |sv_pvbyte |SV *sv
+Amdb |STRLEN |sv_utf8_upgrade|SV *sv
ApdM |bool |sv_utf8_downgrade|SV *sv|bool fail_ok
Apd |void |sv_utf8_encode |SV *sv
ApdM |bool |sv_utf8_decode |SV *sv
Ap |void |sys_intern_init
#endif
-Ap |char * |custom_op_name|OP* op
-Ap |char * |custom_op_desc|OP* op
+Ap |char * |custom_op_name |OP* op
+Ap |char * |custom_op_desc |OP* op
#if defined(PERL_COPY_ON_WRITE)
-pM |int |sv_release_IVX |SV *sv
+pMX |int |sv_release_IVX |SV *sv
#endif
Adp |void |sv_nosharing |SV *
s |void |apply_attrs_my |HV *stash|OP *target|OP *attrs|OP **imopsp
# if defined(PL_OP_SLAB_ALLOC)
s |void* |Slab_Alloc |int m|size_t sz
-s |void |Slab_Free |void *op
+s |void |Slab_Free |void *op
# endif
#endif
#endif
#if defined(PERL_IN_PP_PACK_C) || defined(PERL_DECL_PROT)
-s |void |doencodes |SV* sv|char* s|I32 len
+s |I32 |unpack_rec |tempsym_t* symptr|char *s|char *strbeg|char *strend|char **new_s
+s |SV ** |pack_rec |SV *cat|tempsym_t* symptr|SV **beglist|SV **endlist
s |SV* |mul128 |SV *sv|U8 m
+s |I32 |measure_struct |tempsym_t* symptr
+s |char * |group_end |char *pat|char *patend|char ender
+s |char * |get_num |char *ppat|I32 *
+s |bool |next_symbol |tempsym_t* symptr
+s |void |doencodes |SV* sv|char* s|I32 len
s |SV* |is_an_int |char *s|STRLEN l
s |int |div128 |SV *pnum|bool *done
-s |char * |next_symbol |char *pat|char *patend
-s |I32 |find_count |char **ppat|char *patend|int *star
-s |char * |group_end |char *pat|char *patend|char ender
-s |I32 |measure_struct |char *pat|char *patend
#endif
#if defined(PERL_IN_PP_CTL_C) || defined(PERL_DECL_PROT)
s |I32 |dopoptosub_at |PERL_CONTEXT* cxstk|I32 startingblock
s |void |save_lines |AV *array|SV *sv
s |OP* |doeval |int gimme|OP** startop|CV* outside|U32 seq
-s |PerlIO *|doopen_pmc |const char *name|const char *mode
+s |PerlIO *|doopen_pm |const char *name|const char *mode
s |bool |path_is_absolute|char *name
#endif
s |void |del_sv |SV *p
# endif
# if !defined(NV_PRESERVES_UV)
-s |int |sv_2iuv_non_preserve |SV *sv|I32 numtype
+s |int |sv_2iuv_non_preserve |SV *sv|I32 numtype
# endif
s |I32 |expect_number |char** pattern
#
s |SV* |mess_alloc
#endif
+#if defined(PERL_IN_NUMERIC_C) || defined(PERL_DECL_PROT)
+sn |NV|mulexp10 |NV value|I32 exponent
+#endif
+
START_EXTERN_C
Apd |void |sv_setsv_flags |SV* dsv|SV* ssv|I32 flags
Apd |void |sv_copypv |SV* dsv|SV* ssv
Ap |char* |my_atof2 |const char *s|NV* value
Apn |int |my_socketpair |int family|int type|int protocol|int fd[2]
+#ifdef PERL_COPY_ON_WRITE
+pMX |SV* |sv_setsv_cow |SV* dsv|SV* ssv
+#endif
#if defined(USE_PERLIO) && !defined(USE_SFIO)
Ap |int |PerlIO_close |PerlIO *
pd |void |pad_push |PADLIST *padlist|int depth|int has_args
#if defined(PERL_IN_PAD_C) || defined(PERL_DECL_PROT)
-sd |PADOFFSET|pad_findlex |char* name|PADOFFSET newoff|CV* innercv
+sd |PADOFFSET|pad_findlex |char *name|CV* cv|U32 seq|int warn \
+ |SV** out_capture|SV** out_name_sv \
+ |int *out_flags
# if defined(DEBUGGING)
sd |void |cv_dump |CV *cv|char *title
# endif
-s |CV* |cv_clone2 |CV *proto|CV *outside
#endif
pd |CV* |find_runcv |U32 *db_seqp
+p |void |free_tied_hv_pool