Regen. Lots of under-the-hood changes accumulated.
[p5sagit/p5-mst-13.2.git] / embed.fnc
index a37d54f..972e541 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
@@ -1,3 +1,5 @@
+: BEGIN {die "You meant to run embed.pl"} # Stop early if fed to perl.
+:
 : Lines are of the form:
 :    flags|return_type|function_name|arg1|arg2|...|argN
 :
@@ -38,9 +40,6 @@
 : which is ambiguous.
 :
 : Individual flags may be separated by whitespace.
-:
-: New global functions should be added at the end for binary compatibility
-: in some configurations.
 
 START_EXTERN_C
 
@@ -115,6 +114,10 @@ Apd        |void   |av_undef       |NN AV* ar
 ApdoxM |SV**   |av_create_and_unshift_one|NN AV **const avp|NN SV *const val
 Apd    |void   |av_unshift     |NN AV* ar|I32 num
 Apo    |SV**   |av_arylen_p    |NN AV* av
+Apo    |IV*    |av_iter_p      |NN AV* av
+#if defined(PERL_IN_AV_C) || defined(PERL_DECL_PROT)
+s      |MAGIC* |get_aux_mg     |NN AV *av
+#endif
 pR     |OP*    |bind_match     |I32 type|NN OP* left|NN OP* pat
 pR     |OP*    |block_end      |I32 floor|NULLOK OP* seq
 ApR    |I32    |block_gimme
@@ -430,10 +433,10 @@ Apd       |UV     |grok_oct       |NN const char* start|NN STRLEN* len_p|NN I32* flags|NULLOK NV
 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
 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_freeregexp|NN SV* sv|NN MAGIC* mg
 p      |int    |magic_freeovrld|NN SV* sv|NN MAGIC* mg
 p      |int    |magic_get      |NN SV* sv|NN MAGIC* mg
 p      |int    |magic_getarylen|NN SV* sv|NN const MAGIC* mg
@@ -455,16 +458,11 @@ p |int    |magic_set      |NN SV* sv|NN MAGIC* mg
 p      |int    |magic_setamagic|NN SV* sv|NN MAGIC* mg
 p      |int    |magic_setarylen|NN SV* sv|NN MAGIC* mg
 p      |int    |magic_freearylen_p|NN SV* sv|NN MAGIC* mg
-p      |int    |magic_setbm    |NN SV* sv|NN MAGIC* mg
 p      |int    |magic_setdbline|NN SV* sv|NN MAGIC* mg
 p      |int    |magic_setdefelem|NN SV* sv|NN MAGIC* mg
 p      |int    |magic_setenv   |NN SV* sv|NN MAGIC* mg
-p      |int    |magic_setfm    |NN SV* sv|NN MAGIC* mg
 dp     |int    |magic_sethint  |NN SV* sv|NN MAGIC* mg
 p      |int    |magic_setisa   |NN SV* sv|NN MAGIC* mg
-#ifndef NO_MATHOMS
-p      |int    |magic_setglob  |NN SV* sv|NN MAGIC* mg
-#endif
 p      |int    |magic_setmglob |NN SV* sv|NN MAGIC* mg
 p      |int    |magic_setnkeys |NN SV* sv|NN MAGIC* mg
 p      |int    |magic_setpack  |NN SV* sv|NN MAGIC* mg
@@ -565,7 +563,7 @@ ApM |CV *   |newXS_flags    |NULLOK const char *name|NN XSUBADDR_t subaddr\
                                |NN const char *const filename \
                                |NULLOK const char *const proto|U32 flags
 Apd    |CV*    |newXS          |NULLOK const char* name|NN XSUBADDR_t f|NN const char* filename
-Amdba  |AV*    |newAV
+AmdbR  |AV*    |newAV
 Apa    |OP*    |newAVREF       |NN OP* o
 Apa    |OP*    |newBINOP       |I32 type|I32 flags|NULLOK OP* first|NULLOK OP* last
 Apa    |OP*    |newCVREF       |I32 flags|NULLOK OP* o
@@ -573,7 +571,7 @@ Apa |OP*    |newGVOP        |I32 type|I32 flags|NN GV* gv
 Apa    |GV*    |newGVgen       |NN const char* pack
 Apa    |OP*    |newGVREF       |I32 type|NULLOK OP* o
 ApaR   |OP*    |newHVREF       |NN OP* o
-AmdbaR |HV*    |newHV
+AmdbR  |HV*    |newHV
 ApaR   |HV*    |newHVhv        |NULLOK HV* hv
 Apa    |IO*    |newIO
 Apa    |OP*    |newLISTOP      |I32 type|I32 flags|NULLOK OP* first|NULLOK OP* last
@@ -592,6 +590,7 @@ Apda        |SV*    |newSVuv        |UV u
 Apda   |SV*    |newSVnv        |NV n
 Apda   |SV*    |newSVpv        |NULLOK const char* s|STRLEN len
 Apda   |SV*    |newSVpvn       |NULLOK const char* s|STRLEN len
+Apda   |SV*    |newSVpvn_flags |NULLOK const char* s|STRLEN len|U32 flags
 Apda   |SV*    |newSVhek       |NULLOK const HEK *hek
 Apda   |SV*    |newSVpvn_share |NULLOK const char* s|I32 len|U32 hash
 Afpda  |SV*    |newSVpvf       |NN const char* pat|...
@@ -686,15 +685,15 @@ Ap        |SV*    |regclass_swash |NULLOK const regexp *prog|NN const struct regnode *n|bo
 Ap     |I32    |pregexec       |NN REGEXP * const prog|NN char* stringarg \
                                |NN char* strend|NN char* strbeg|I32 minend \
                                |NN SV* screamer|U32 nosave
-Ap     |void   |pregfree       |NULLOK struct regexp* r
-EXp    |struct regexp* |reg_temp_copy  |NN struct regexp* r
+Ap     |void   |pregfree       |NULLOK REGEXP* r
+Ap     |void   |pregfree2      |NN REGEXP* prog
+EXp    |REGEXP*|reg_temp_copy  |NN REGEXP* r
 Ap     |void   |regfree_internal|NULLOK REGEXP * const r
-Ap     |char * |reg_stringify  |NN MAGIC *mg|NULLOK STRLEN *lp|NULLOK U32 *flags|NULLOK I32 *haseval
 #if defined(USE_ITHREADS)
 Ap     |void*  |regdupe_internal|NN REGEXP * const r|NN CLONE_PARAMS* param
 #endif
 Ap     |REGEXP*|pregcomp       |NN const SV * const pattern|const U32 flags
-Ap     |REGEXP*|re_compile     |NN const SV * const pattern|const U32 flags
+Ap     |REGEXP*|re_compile     |NN const SV * const pattern|U32 flags
 Ap     |char*  |re_intuit_start|NN REGEXP * const rx|NULLOK SV* sv|NN char* strpos \
                                |NN char* strend|const U32 flags \
                                |NULLOK re_scream_pos_data *data
@@ -1086,7 +1085,8 @@ Apa       |ANY*   |ss_dup         |NN PerlInterpreter* proto_perl|NN CLONE_PARAMS* param
 ApR    |void*  |any_dup        |NULLOK void* v|NN const PerlInterpreter* proto_perl
 ApR    |HE*    |he_dup         |NULLOK const HE* e|bool shared|NN CLONE_PARAMS* param
 ApR    |HEK*   |hek_dup        |NULLOK HEK* e|NN CLONE_PARAMS* param
-ApR    |REGEXP*|re_dup         |NULLOK const REGEXP* r|NN CLONE_PARAMS* param
+Ap     |void   |re_dup_guts    |NN const REGEXP *sstr|NN REGEXP *dstr \
+                               |NN CLONE_PARAMS* param
 Ap     |PerlIO*|fp_dup         |NULLOK PerlIO* fp|char type|NN CLONE_PARAMS* param
 ApR    |DIR*   |dirp_dup       |NULLOK DIR* dp
 ApR    |GP*    |gp_dup         |NULLOK GP* gp|NN CLONE_PARAMS* param
@@ -1215,6 +1215,7 @@ pR        |OP*    |ck_substr      |NN OP *o
 pR     |OP*    |ck_svconst     |NN OP *o
 pR     |OP*    |ck_trunc       |NN OP *o
 pR     |OP*    |ck_unpack      |NN OP *o
+pR     |OP*    |ck_each        |NN OP *o
 sRn    |bool   |is_handle_constructor|NN const OP *o|I32 numargs
 sR     |I32    |is_list_assignment|NULLOK const OP *o
 #  ifdef USE_ITHREADS
@@ -1263,7 +1264,7 @@ s |void   |Slab_to_rw     |NN void *op
 
 #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 int suidscript
+s      |void   |forbid_setid   |const char flag|const bool suidscript
 s      |void   |incpush        |NULLOK const char *dir|bool addsubdirs|bool addoldvers|bool usesep|bool canrelocate
 s      |void   |init_interp
 s      |void   |init_ids
@@ -1274,12 +1275,25 @@ s       |void   |init_predump_symbols
 rs     |void   |my_exit_jump
 s      |void   |nuke_stacks
 s      |int    |open_script    |NN const char *scriptname|bool dosearch \
-                               |NN SV *sv|NN int *suidscript|NN PerlIO **rsfpp
+                               |NN bool *suidscript|NN PerlIO **rsfpp
 s      |void   |usage          |NN const char *name
-s      |void   |validate_suid  |NN const char *validarg \
+#ifdef DOSUID
+#  ifdef IAMSUID
+so     |void   |validate_suid  |NN const char *validarg \
+                               |int fdscript \
+                               |bool suidscript|NN SV* linestr_sv \
+                               |NN PerlIO *rsfp
+#  else
+so     |void   |validate_suid  |NN const char *validarg \
                                |NN const char *scriptname|int fdscript \
-                               |int suidscript|NN SV* linestr_sv \
+                               |NN SV* linestr_sv \
                                |NN PerlIO *rsfp
+#  endif
+#else
+#  ifndef SETUID_SCRIPTS_ARE_SECURE_NOW
+so     |void   |validate_suid  |NN PerlIO *rsfp
+#  endif
+#endif
 
 #  if defined(IAMSUID)
 s      |int    |fd_on_nosuid_fs|int fd
@@ -1333,7 +1347,7 @@ sR        |PerlIO *|doopen_pm     |NN const char *name|const STRLEN namelen
 #endif
 sRn    |bool   |path_is_absolute|NN const char *name
 sR     |I32    |run_user_filter|int idx|NN SV *buf_sv|int maxlen
-sR     |PMOP*  |make_matcher   |NN regexp* re
+sR     |PMOP*  |make_matcher   |NN REGEXP* re
 sR     |bool   |matcher_matches_sv|NN PMOP* matcher|NN SV* sv
 s      |void   |destroy_matcher|NN PMOP* matcher
 s      |OP*    |do_smartmatch  |NULLOK HV* seen_this|NULLOK HV* seen_other
@@ -1450,7 +1464,9 @@ ERs       |I32    |reg_check_named_buff_matched   |NN const regexp *rex|NN const regnode *p
 #  ifdef DEBUGGING
 Es     |void   |dump_exec_pos  |NN const char *locinput|NN const regnode *scan|NN const char *loc_regeol\
                                |NN const char *loc_bostr|NN const char *loc_reg_starttry|const bool do_utf8
-Es     |void   |debug_start_match|NN const regexp *prog|const bool do_utf8|NN const char *start|NN const char *end|NN const char *blurb
+Es     |void   |debug_start_match|NN const REGEXP *prog|const bool do_utf8\
+                               |NN const char *start|NN const char *end\
+                               |NN const char *blurb
 #  endif
 #endif
 
@@ -1487,7 +1503,11 @@ sR       |SV *   |varname        |NULLOK GV *gv|const char gvtype|PADOFFSET targ \
 s      |void   |del_sv |NN SV *p
 #  endif
 #  if !defined(NV_PRESERVES_UV)
+#    ifdef DEBUGGING
 s      |int    |sv_2iuv_non_preserve   |NN SV *sv|I32 numtype
+#    else
+s      |int    |sv_2iuv_non_preserve   |NN SV *sv
+#    endif
 #  endif
 sR     |I32    |expect_number  |NN char** pattern
 #