This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
For lexical subs, reify CvGV from CvSTASH and CvNAME_HEK
[perl5.git] / embed.fnc
index 56b482a..74f1ba9 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
@@ -71,7 +71,7 @@
 :
 :   m  Implemented as a macro:
 :
-:         suppress proto.h entry
+:         suppress proto.h entry (actually, not suppressed, but commented out)
 :         suppress entry in the list of exported symbols
 :         suppress embed.h entry
 :
@@ -316,6 +316,7 @@ ApdRn       |SV*    |cv_const_sv    |NULLOK const CV *const cv
 pRn    |SV*    |cv_const_sv_or_av|NULLOK const CV *const cv
 : Used in pad.c
 pR     |SV*    |op_const_sv    |NULLOK const OP* o|NULLOK CV* cv
+Ap     |SV *   |cv_name        |NN CV *cv|NULLOK SV *sv
 Apd    |void   |cv_undef       |NN CV* cv
 p      |void   |cv_forget_slab |NN CV *cv
 Ap     |void   |cx_dump        |NN PERL_CONTEXT* cx
@@ -466,7 +467,7 @@ pR  |OP *   |parse_subsignature
 p      |char*  |find_script    |NN const char *scriptname|bool dosearch \
                                |NULLOK const char *const *const search_ext|I32 flags
 #if defined(PERL_IN_OP_C)
-s      |OP*    |force_list     |NULLOK OP* arg
+s      |OP*    |force_list     |NULLOK OP* arg|bool nullit
 i      |OP*    |op_integerize  |NN OP *o
 i      |OP*    |op_std_init    |NN OP *o
 : FIXME
@@ -534,6 +535,7 @@ Ap  |void   |gv_fullname4   |NN SV* sv|NN const GV* gv|NULLOK const char* prefix|bool
 : Used in scope.c
 pMox   |GP *   |newGP          |NN GV *const gv
 pX     |void   |cvgv_set       |NN CV* cv|NULLOK GV* gv
+poX    |GV *   |cvgv_from_hek  |NN CV* cv
 pX     |void   |cvstash_set    |NN CV* cv|NULLOK HV* stash
 Amd    |void   |gv_init        |NN GV* gv|NULLOK HV* stash \
                                 |NN const char* name|STRLEN len|int multi
@@ -548,6 +550,10 @@ px |GV *   |gv_override    |NN const char * const name \
 XMpd   |void   |gv_try_downgrade|NN GV* gv
 Apd    |HV*    |gv_stashpv     |NN const char* name|I32 flags
 Apd    |HV*    |gv_stashpvn    |NN const char* name|U32 namelen|I32 flags
+#if defined(PERL_IN_GV_C)
+i      |HV*    |gv_stashpvn_internal|NN const char* name|U32 namelen|I32 flags
+i      |HV*    |gv_stashsvpvn_cached|NULLOK SV *namesv|NULLOK const char* name|U32 namelen|I32 flags
+#endif
 Apd    |HV*    |gv_stashsv     |NN SV* sv|I32 flags
 Apd    |void   |hv_clear       |NULLOK HV *hv
 : used in SAVEHINTS() and op.c
@@ -771,8 +777,9 @@ Apd |void   |op_null        |NN OP* o
 EXp    |void   |op_clear       |NN OP* o
 Ap     |void   |op_refcnt_lock
 Ap     |void   |op_refcnt_unlock
-Apd    |OP*    |op_sibling_splice|NN OP *parent|NULLOK OP *start \
+Apdn   |OP*    |op_sibling_splice|NN OP *parent|NULLOK OP *start \
                |int del_count|NULLOK OP* insert
+Apdn   |OP*    |op_parent|NN OP *o
 #if defined(PERL_IN_OP_C)
 s      |OP*    |listkids       |NULLOK OP* o
 #endif
@@ -802,10 +809,12 @@ EMsPR     |char*|form_short_octal_warning|NN const char * const s  \
                                |const STRLEN len
 #endif
 Apd    |UV     |grok_hex       |NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV *result
+Apdn   |int    |grok_infnan    |NN const char** sp|NN const char *send
 Apd    |int    |grok_number    |NN const char *pv|STRLEN len|NULLOK UV *valuep
 Apd    |int    |grok_number_flags|NN const char *pv|STRLEN len|NULLOK UV *valuep|U32 flags
 ApdR   |bool   |grok_numeric_radix|NN const char **sp|NN const char *send
 Apd    |UV     |grok_oct       |NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV *result
+Apdn   |UV     |grok_atou      |NN const char* pv|NULLOK const char** endptr
 : These are all indirectly referenced by globals.c. This is somewhat annoying.
 p      |int    |magic_clearenv |NN SV* sv|NN MAGIC* mg
 p      |int    |magic_clear_all_env|NN SV* sv|NN MAGIC* mg
@@ -1110,6 +1119,7 @@ Ap        |void   |set_numeric_local
 Ap     |void   |set_numeric_radix
 Ap     |void   |set_numeric_standard
 ApM    |bool   |_is_in_locale_category|const bool compiling|const int category
+Apd    |void   |sync_locale
 ApdO   |void   |require_pv     |NN const char* pv
 Apd    |void   |pack_cat       |NN SV *cat|NN const char *pat|NN const char *patend \
                                |NN SV **beglist|NN SV **endlist|NN SV ***next_in_list|U32 flags
@@ -1544,9 +1554,11 @@ EXMpR    |HV*    |_swash_inversion_hash  |NN SV* const swash
 #if defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)
 ApM    |SV*    |_get_regclass_nonbitmap_data                              \
                                |NULLOK const regexp *prog                 \
-                               |NN const struct regnode *node|bool doinit \
+                               |NN const struct regnode *node             \
+                               |bool doinit                               \
                                |NULLOK SV **listsvp                       \
-                               |NULLOK SV **lonly_utf8_locale
+                               |NULLOK SV **lonly_utf8_locale             \
+                               |NULLOK SV *exclude_list
 EXp    |void|_load_PL_utf8_foldclosures|
 #endif
 #if defined(PERL_IN_REGCOMP_C) || defined (PERL_IN_DUMP_C)
@@ -1932,6 +1944,8 @@ s |OP*    |ref_array_or_hash|NULLOK OP* cond
 s      |void   |process_special_blocks |I32 floor \
                                        |NN const char *const fullname\
                                        |NN GV *const gv|NN CV *const cv
+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
 Xp     |void   |Slab_Free      |NN void *op
@@ -2086,6 +2100,9 @@ Es        |void    |set_ANYOF_arg |NN RExC_state_t* const pRExC_state \
                                |NULLOK SV* const only_utf8_locale_list    \
                                |NULLOK SV* const swash                    \
                                |const bool has_user_defined_property
+Es     |AV*     |add_multi_match|NULLOK AV* multi_char_matches             \
+                               |NN SV* multi_string                        \
+                               |const STRLEN cp_count
 Es     |regnode*|regclass      |NN RExC_state_t *pRExC_state \
                                |NN I32 *flagp|U32 depth|const bool stop_at_1 \
                                |bool allow_multi_fold                        \
@@ -2103,10 +2120,10 @@ Es      |regnode*|reg_node      |NN RExC_state_t *pRExC_state|U8 op
 Es     |UV     |reg_recode     |const char 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        \
+Es     |STRLEN |grok_bslash_N  |NN RExC_state_t *pRExC_state               \
                                |NULLOK regnode** nodep|NULLOK UV *valuep   \
-                               |NN I32 *flagp|U32 depth|bool in_char_class \
-                               |const bool strict
+                               |NN I32 *flagp|U32 depth                    \
+                               |NULLOK SV** substitute_parse
 Es     |void   |reginsert      |NN RExC_state_t *pRExC_state \
                                |U8 op|NN regnode *opnd|U32 depth
 Es     |void   |regtail        |NN RExC_state_t *pRExC_state \
@@ -2182,9 +2199,13 @@ Es       |const regnode*|dumpuntil|NN const regexp *r|NN const regnode *start \
                                |NULLOK const regnode *last \
                                |NULLOK const regnode *plast \
                                |NN SV* sv|I32 indent|U32 depth
-Es     |void   |put_byte       |NN SV* sv|int c
-Es     |bool   |put_latin1_charclass_innards|NN SV* sv|NN char* bitmap
-Es     |void   |put_range      |NN SV* sv|UV start|UV end
+EnPs   |const char *|cntrl_to_mnemonic|const U8 c
+Es     |void   |put_code_point |NN SV* sv|UV c
+Es     |bool   |put_charclass_bitmap_innards|NN SV* sv     \
+                               |NN char* bitmap            \
+                               |NULLOK SV** bitmap_invlist
+Es     |void   |put_range      |NN SV* sv|UV start|const UV end    \
+                               |const bool allow_literals
 Es     |void   |dump_trie      |NN const struct _reg_trie_data *trie\
                                |NULLOK HV* widecharmap|NN AV *revcharmap\
                                |U32 depth
@@ -2354,7 +2375,7 @@ s |void   |checkcomma     |NN const char *s|NN const char *name \
 s      |void   |force_ident    |NN const char *s|int kind
 s      |void   |force_ident_maybe_lex|char pit
 s      |void   |incline        |NN const char *s
-s      |int    |intuit_method  |NN char *s|NULLOK GV *gv|NULLOK CV *cv
+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
 rs     |void   |missingterm    |NULLOK char *s
@@ -2476,7 +2497,7 @@ ApR       |SSize_t          |PerlIO_get_cnt       |NULLOK PerlIO *f
 ApR    |PerlIO *|PerlIO_stdin
 ApR    |PerlIO *|PerlIO_stdout
 ApR    |PerlIO *|PerlIO_stderr
-#endif /* PERLIO_LAYERS */
+#endif /* USE_PERLIO */
 
 : Only used in dump.c
 p      |void   |deb_stack_all
@@ -2652,6 +2673,8 @@ Apnod     |Size_t |my_strlcat     |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
+
 #if !defined(HAS_SIGNBIT)
 AMdnoP |int    |Perl_signbit   |NV f
 #endif