This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
No dots in directory names, please.
[perl5.git] / embed.fnc
index 8fd43df..f48d8ce 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
@@ -263,11 +263,13 @@ Afnp      |void   |sv_setpvf_mg_nocontext|NN SV *const sv|NN const char *const pat|...
 Afnp   |int    |fprintf_nocontext|NN PerlIO *stream|NN const char *format|...
 Afnp   |int    |printf_nocontext|NN const char *format|...
 #endif
+: Used in pp.c
+p      |SV *   |core_prototype |NULLOK SV *sv|NN const char *name \
+                               |const STRLEN len|const bool croak
 : Used in sv.c
 p      |void   |cv_ckproto_len |NN const CV* cv|NULLOK const GV* gv\
                                |NULLOK const char* p|const STRLEN len
 : Used in pp.c and pp_sys.c
-pd     |CV*    |cv_clone       |NN CV* proto
 ApdR   |SV*    |gv_const_sv    |NN GV* gv
 ApdR   |SV*    |cv_const_sv    |NULLOK const CV *const cv
 : Used in pad.c
@@ -312,7 +314,7 @@ Ap  |bool   |do_close       |NULLOK GV* gv|bool not_implicit
 p      |bool   |do_eof         |NN GV* gv
 
 #ifdef PERL_DEFAULT_DO_EXEC3_IMPLEMENTATION
-pmb    |bool   |do_exec        |NN const char* cmd
+pm     |bool   |do_exec        |NN const char* cmd
 #else
 p      |bool   |do_exec        |NN const char* cmd
 #endif
@@ -538,13 +540,14 @@ p |void   |init_debugger
 Ap     |void   |init_stacks
 Ap     |void   |init_tm        |NN struct tm *ptm
 : Used in perly.y
-pd     |U32    |intro_my
 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
 pR     |OP*    |invert         |NULLOK OP* cmd
 ApR    |I32    |is_lvalue_sub
+: Used in cop.h
+XopR   |I32    |was_lvalue_sub
 ApPR   |U32    |to_uni_upper_lc|U32 c
 ApPR   |U32    |to_uni_title_lc|U32 c
 ApPR   |U32    |to_uni_lower_lc|U32 c
@@ -755,8 +758,10 @@ Ap |I32    |mg_size        |NN SV* sv
 Ap     |void   |mini_mktime    |NN struct tm *ptm
 AMmd   |OP*    |op_lvalue      |NULLOK OP* o|I32 type
 poX    |OP*    |op_lvalue_flags|NULLOK OP* o|I32 type|U32 flags
-: To be removed after 5.14 (see [perl #78908]):
-EXp    |OP*    |mod            |NULLOK OP* o|I32 type
+p      |void   |finalize_optree                |NN OP* o
+#if defined(PERL_IN_OP_C)
+s      |void   |finalize_op    |NN OP* o
+#endif
 : Used in op.c and pp_sys.c
 p      |int    |mode_from_discipline|NULLOK const char* s|STRLEN len
 Ap     |const char*    |moreswitches   |NN const char* s
@@ -781,8 +786,10 @@ AnpP       |I32    |my_memcmp      |NN const char* s1|NN const char* s2|I32 len
 #if !defined(HAS_MEMSET)
 Anp    |void*  |my_memset      |NN char* loc|I32 ch|I32 len
 #endif
+#if !defined(PERL_IMPLICIT_SYS)
 Ap     |I32    |my_pclose      |NULLOK PerlIO* ptr
 Ap     |PerlIO*|my_popen       |NN const char* cmd|NN const char* mode
+#endif
 Ap     |PerlIO*|my_popen_list  |NN const char* mode|int n|NN SV ** args
 Ap     |void   |my_setenv      |NULLOK const char* nam|NULLOK const char* val
 Apmb   |I32    |my_stat
@@ -898,32 +905,14 @@ p |void   |package        |NN OP* o
 #endif
 : Used in perly.y
 p      |void   |package_version|NN OP* v
-: Used in op.c
-pd     |PADOFFSET|pad_alloc    |I32 optype|U32 tmptype
 : Used in toke.c and perly.y
 p      |PADOFFSET|allocmy      |NN const char *const name|const STRLEN len\
                                |const U32 flags
-: Used in op.c and toke.c
-AMpdR  |PADOFFSET|pad_findmy   |NN const char* name|STRLEN len|U32 flags
-ApD    |PADOFFSET|find_rundefsvoffset  |
-: Used in pp.c
-Ap     |SV*    |find_rundefsv  |
 : Used in perly.y
 pR     |OP*    |oopsAV         |NN OP* o
 : Used in perly.y
 pR     |OP*    |oopsHV         |NN OP* o
-: Defined in pad.c, used only in op.c
-pd     |void   |pad_leavemy
-#ifdef DEBUGGING
-Apd    |SV*    |pad_sv         |PADOFFSET po
-#endif
-: Defined in pad.c, used only in op.c
-pd     |void   |pad_free       |PADOFFSET po
-#if defined(PERL_IN_PAD_C)
-sd     |void   |pad_reset
-#endif
-: Used in op.c
-pd     |void   |pad_swipe      |PADOFFSET po|bool refadjust
+
 : peephole optimiser
 p      |void   |peep           |NULLOK OP* o
 p      |void   |rpeep          |NULLOK OP* o
@@ -1300,10 +1289,6 @@ Apd      |void   |sv_vsetpvfn    |NN SV *const sv|NN const char *const pat|const STRLEN pa
 ApR    |NV     |str_to_version |NN SV *sv
 Ap     |SV*    |swash_init     |NN const char* pkg|NN const char* name|NN SV* listsv|I32 minbits|I32 none
 Ap     |UV     |swash_fetch    |NN SV *swash|NN const U8 *ptr|bool do_utf8
-EXMpR  |HV*    |_swash_inversion_hash  |NN SV* const swash
-EXMpR  |SV*    |_new_invlist   |IV initial_size
-EXMpR  |SV*    |_swash_to_invlist      |NN SV* const swash
-EXMp   |void   |_append_range_to_invlist   |NN SV* const invlist|const UV start|const UV end
 #ifdef PERL_IN_REGCOMP_C
 EiMR   |SV*    |add_cp_to_invlist      |NULLOK SV* invlist|const UV cp
 EsMR   |SV*    |add_range_to_invlist   |NULLOK SV* invlist|const UV start|const UV end
@@ -1320,10 +1305,16 @@ EiMR    |SV*    |invlist_clone  |NN SV* const invlist
 EiMR   |UV*    |get_invlist_iter_addr  |NN SV* invlist
 EiM    |void   |invlist_iterinit|NN SV* invlist
 EsMR   |bool   |invlist_iternext|NN SV* invlist|NN UV* start|NN UV* end
-EsM    |void   |_invlist_intersection  |NN SV* const a|NN SV* const b|NN SV** i
-EsM    |void   |_invlist_union |NN SV* const a|NN SV* const b|NN SV** output
-EsM    |void   |_invlist_subtract|NN SV* const a|NN SV* const b|NN SV** result
-EsM    |void   |_invlist_invert|NN SV* const invlist
+#endif
+#if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_UTF8_C)
+EXpM   |void   |_invlist_intersection  |NN SV* const a|NN SV* const b|NN SV** i
+EXpM   |void   |_invlist_union |NN SV* const a|NN SV* const b|NN SV** output
+EXpM   |void   |_invlist_subtract|NN SV* const a|NN SV* const b|NN SV** result
+EXpM   |void   |_invlist_invert|NN SV* const invlist
+EXMpR  |HV*    |_swash_inversion_hash  |NN SV* const swash
+EXMpR  |SV*    |_new_invlist   |IV initial_size
+EXMpR  |SV*    |_swash_to_invlist      |NN SV* const swash
+EXMp   |void   |_append_range_to_invlist   |NN SV* const invlist|const UV start|const UV end
 #endif
 Ap     |void   |taint_env
 Ap     |void   |taint_proper   |NULLOK const char* f|NN const char *const s
@@ -1641,7 +1632,7 @@ sR        |OP*    |search_const   |NN OP *o
 sR     |OP*    |new_logop      |I32 type|I32 flags|NN OP **firstp|NN OP **otherp
 s      |void   |simplify_sort  |NN OP *o
 s      |const char*    |gv_ename       |NN GV *gv
-sRn    |bool   |scalar_mod_type|NN const OP *o|I32 type
+sRn    |bool   |scalar_mod_type|NULLOK const OP *o|I32 type
 s      |OP *   |my_kid         |NULLOK OP *o|NULLOK OP *attrs|NN OP **imopsp
 s      |OP *   |dup_attrlist   |NN OP *o
 s      |void   |apply_attrs    |NN HV *stash|NN SV *target|NULLOK OP *attrs|bool for_my
@@ -2128,51 +2119,67 @@ s       |void   |deb_stack_n    |NN SV** stack_base|I32 stack_min \
                                |I32 stack_max|I32 mark_min|I32 mark_max
 #endif
 
-: Used in perl.c, pp_ctl.c, toke.c
-pda    |PADLIST*|pad_new       |int flags
-: Only used in op.c
-Mpd    |PADOFFSET|pad_add_name |NN const char *name|const STRLEN len\
+: pad API
+#ifdef PERL_MAD
+Mnpd   |void   |pad_peg        |NN const char* s
+#endif
+Apda   |PADLIST*|pad_new       |int flags
+#if defined(PERL_IN_PAD_C)
+s      |PADOFFSET|pad_alloc_name|NN SV *namesv|U32 flags \
+                               |NULLOK HV *typestash|NULLOK HV *ourstash
+#endif
+Apd    |PADOFFSET|pad_add_name_pvn|NN const char *namepv|STRLEN namelen\
+                               |U32 flags|NULLOK HV *typestash\
+                               |NULLOK HV *ourstash
+Apd    |PADOFFSET|pad_add_name_pv|NN const char *name\
                                |const U32 flags|NULLOK HV *typestash\
                                |NULLOK HV *ourstash
-: Only used in op.c
-pd     |PADOFFSET|pad_add_anon |NN SV* sv|OPCODE op_type
+Apd    |PADOFFSET|pad_add_name_sv|NN SV *name\
+                               |U32 flags|NULLOK HV *typestash\
+                               |NULLOK HV *ourstash
+AMpd   |PADOFFSET|pad_alloc    |I32 optype|U32 tmptype
+Apd    |PADOFFSET|pad_add_anon |NN CV* func|I32 optype
+#if defined(PERL_IN_PAD_C)
+sd     |void   |pad_check_dup  |NN SV *name|U32 flags|NULLOK const HV *ourstash
+#endif
+ApdR   |PADOFFSET|pad_findmy_pvn|NN const char* namepv|STRLEN namelen|U32 flags
+ApdR   |PADOFFSET|pad_findmy_pv|NN const char* name|U32 flags
+ApdR   |PADOFFSET|pad_findmy_sv|NN SV* name|U32 flags
+ApdD   |PADOFFSET|find_rundefsvoffset  |
+Apd    |SV*    |find_rundefsv  |
 #if defined(PERL_IN_PAD_C)
-sd     |void   |pad_check_dup  |NN SV *name|const U32 flags \
-                               |NULLOK const HV *ourstash
+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
 #endif
 #ifdef DEBUGGING
-: Only used PAD_SETSV() in op.c
-pd     |void   |pad_setsv      |PADOFFSET po|NN SV* sv
+Apd    |SV*    |pad_sv         |PADOFFSET po
+Apd    |void   |pad_setsv      |PADOFFSET po|NN SV* sv
 #endif
-: Only used in op.c
 pd     |void   |pad_block_start|int full
-: Only used in op.c
-pd     |void   |pad_tidy       |padtidy_type type
-: Used in dump.c
-pd     |void   |do_dump_pad    |I32 level|NN PerlIO *file|NULLOK PADLIST *padlist|int full
-: Only used in op.c
-pd     |void   |pad_fixup_inner_anons|NN PADLIST *padlist|NN CV *old_cv|NN CV *new_cv
-
-: Used in pp_ctl.c, pp_hot.c, pp_sort.c
-pdX    |void   |pad_push       |NN PADLIST *padlist|int depth
-: Only used in PAD_COMPNAME_TYPE() in op.c
-pR     |HV*    |pad_compname_type|const PADOFFSET po
-: Used in sv.c
-#if defined(USE_ITHREADS)
-pR     |AV*    |padlist_dup    |NULLOK AV *const srcpad \
-                               |NN CLONE_PARAMS *const param
+pd     |U32    |intro_my
+pd     |void   |pad_leavemy
+pd     |void   |pad_swipe      |PADOFFSET po|bool refadjust
+#if defined(PERL_IN_PAD_C)
+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
 #if defined(PERL_IN_PAD_C)
-sd     |PADOFFSET|pad_findlex  |NN const char *name|NN const CV* cv|U32 seq|int warn \
-                               |NULLOK SV** out_capture|NN SV** out_name_sv \
-                               |NN int *out_flags
-s      |PADOFFSET|pad_add_name_sv|NN SV *namesv|const U32 flags \
-                               |NULLOK HV *typestash|NULLOK HV *ourstash
 #  if defined(DEBUGGING)
 sd     |void   |cv_dump        |NN const CV *cv|NN const char *title
 #  endif
 #endif
+Apd    |CV*    |cv_clone       |NN CV* proto
+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
+#if defined(USE_ITHREADS)
+pdR    |AV*    |padlist_dup    |NULLOK AV *srcpad|NN CLONE_PARAMS *param
+#endif
+
 ApdR   |CV*    |find_runcv     |NULLOK U32 *db_seqp
 : Only used in perl.c
 p      |void   |free_tied_hv_pool
@@ -2357,7 +2364,6 @@ Apno     |Size_t |my_strlcpy     |NULLOK char *dst|NULLOK const char *src|Size_t
 #endif
 
 #ifdef PERL_MAD
-Mnp    |void   |pad_peg        |NN const char* s
 #if defined(PERL_IN_DUMP_C)
 sf     |void   |xmldump_attr   |I32 level|NN PerlIO *file|NN const char* pat \
                                |...
@@ -2455,10 +2461,10 @@ p       |void   |boot_core_mro
 Apon   |void   |sys_init       |NN int* argc|NN char*** argv
 Apon   |void   |sys_init3      |NN int* argc|NN char*** argv|NN char*** env
 Apon   |void   |sys_term
-ApoM   |const char *|fetch_cop_label|NN COP *const cop \
+ApoM   |const char *|cop_fetch_label|NN COP *const cop \
                |NULLOK STRLEN *len|NULLOK U32 *flags
-: Only used  in op.c
-xpoM   |void|store_cop_label \
+: Only used  in op.c and the perl compiler
+ApoM   |void|cop_store_label \
                |NN COP *const cop|NN const char *label|STRLEN len|U32 flags
 
 xpo    |int    |keyword_plugin_standard|NN char* keyword_ptr|STRLEN keyword_len|NN OP** op_ptr