This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
If doing rcatline no point rescanning each time
[perl5.git] / embed.fnc
index 4005cb4..ca50143 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
 :      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: no Perl_ proto, but exported
-:       E              visible to Perl core extensions
-:       b              binary backward compatibility; function is a macro
+:      o               has no compatibility macro (#define foo Perl_foo)
+:      x               not exported
+:      X               explicitly exported
+:      M               may change
+:      E               visible to extensions included in the Perl core
+:      b               binary backward compatibility; function is a macro
 :                      but has also Perl_ implementation (which is exported)
-:       X              no Perl_ proto
 :
 : Individual flags may be separated by whitespace.
 :
@@ -45,6 +45,7 @@ Anod  |void   |perl_free      |PerlInterpreter* interp
 Anod   |int    |perl_run       |PerlInterpreter* interp
 Anod   |int    |perl_parse     |PerlInterpreter* interp|XSINIT_t xsinit \
                                |int argc|char** argv|char** env
+Anp    |bool   |doing_taint    |int argc|char** argv|char** env
 #if defined(USE_ITHREADS)
 Anod   |PerlInterpreter*|perl_clone|PerlInterpreter* interp, UV flags
 #  if defined(PERL_IMPLICIT_SYS)
@@ -336,6 +337,7 @@ Ap  |bool   |is_uni_punct_lc|UV c
 Ap     |bool   |is_uni_xdigit_lc|UV c
 Apd    |STRLEN |is_utf8_char   |U8 *p
 Apd    |bool   |is_utf8_string |U8 *s|STRLEN len
+Apd    |bool   |is_utf8_string_loc|U8 *s|STRLEN len|U8 **p
 Ap     |bool   |is_utf8_alnum  |U8 *p
 Ap     |bool   |is_utf8_alnumc |U8 *p
 Ap     |bool   |is_utf8_idfirst|U8 *p
@@ -532,7 +534,7 @@ Ap  |OP*    |newWHILEOP     |I32 flags|I32 debuggable|LOOP* loop \
                                |I32 whileline|OP* expr|OP* block|OP* cont
 
 Ap     |PERL_SI*|new_stackinfo|I32 stitems|I32 cxitems
-Apd    |char*  |scan_vstring   |char *vstr|SV *sv
+Ap     |char*  |scan_vstring   |char *vstr|SV *sv
 Apd    |char*  |scan_version   |char *vstr|SV *sv
 Apd    |SV*    |new_version    |SV *ver
 Apd    |SV*    |upg_version    |SV *ver
@@ -585,6 +587,7 @@ Ap  |void   |set_numeric_radix
 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
@@ -629,6 +632,7 @@ Apd |char*  |savepv         |const char* pv
 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
@@ -686,6 +690,7 @@ p   |I32    |setenv_getix   |char* nam
 p      |void   |setdefout      |GV* gv
 p      |HEK*   |share_hek      |const char* sv|I32 len|U32 hash
 np     |Signal_t |sighandler   |int sig
+Anp    |Signal_t |csighandler  |int sig
 Ap     |SV**   |stack_grow     |SV** sp|SV**p|int n
 Ap     |I32    |start_subparse |I32 is_format|U32 flags
 p      |void   |sub_crush_depth|CV* cv
@@ -731,7 +736,7 @@ Ap  |void   |sv_dump        |SV* sv
 Apd    |bool   |sv_derived_from|SV* sv|const char* name
 Apd    |I32    |sv_eq          |SV* sv1|SV* sv2
 Apd    |void   |sv_free        |SV* sv
-ApoMX  |void   |sv_free2       |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
@@ -807,9 +812,10 @@ Apd        |UV     |to_utf8_fold   |U8 *p|U8* ustrp|STRLEN *lenp
 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
@@ -833,6 +839,8 @@ 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      |U32    |seed
+p      |UV     |get_hash_seed
 p      |void   |report_evil_fh |GV *gv|IO *io|I32 op
 pd     |void   |report_uninit
 Afpd   |void   |warn           |const char* pat|...
@@ -841,6 +849,7 @@ Afp |void   |warner         |U32 err|const char* pat|...
 Ap     |void   |vwarner        |U32 err|const char* pat|va_list* args
 p      |void   |watch          |char** addr
 Ap     |I32    |whichsig       |char* sig
+p      |void   |write_to_stderr|const char* message|int msglen
 p      |int    |yyerror        |char* s
 #ifdef USE_PURE_BISON
 p      |int    |yylex_r        |YYSTYPE *lvalp|int *lcharp
@@ -947,8 +956,8 @@ Ap  |void   |sys_intern_clear
 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)
 pMX    |int    |sv_release_IVX |SV *sv
@@ -1017,10 +1026,10 @@ s       |OP *   |my_kid         |OP *o|OP *attrs|OP **imopsp
 s      |OP *   |dup_attrlist   |OP *o
 s      |void   |apply_attrs    |HV *stash|SV *target|OP *attrs|bool for_my
 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
-#  endif
+#endif
+#if defined(PL_OP_SLAB_ALLOC)
+Ap     |void*  |Slab_Alloc     |int m|size_t sz
+Ap     |void   |Slab_Free      |void *op
 #endif
 
 #if defined(PERL_IN_PERL_C) || defined(PERL_DECL_PROT)
@@ -1056,18 +1065,19 @@ s       |void*  |vcall_list_body|va_list args
 
 #if defined(PERL_IN_PP_C) || defined(PERL_DECL_PROT)
 s      |SV*    |refto          |SV* sv
-s      |U32    |seed
 #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)
@@ -1085,7 +1095,7 @@ s |I32    |dopoptosub     |I32 startingblock
 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
 
@@ -1218,7 +1228,7 @@ s |void   |sv_del_backref |SV *sv
 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
 #
@@ -1299,6 +1309,10 @@ s        |COP*   |closest_cop    |COP *cop|OP *o
 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
@@ -1366,13 +1380,19 @@ pd      |void   |pad_fixup_inner_anons|PADLIST *padlist|CV *old_cv|CV *new_cv
 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
+#if defined(DEBUGGING)
+p      |int    |get_debug_opts |char **s
+#endif
+Ap     |void   |save_set_svflags|SV* sv|U32 mask|U32 val