This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
make unloading of extension shared objects (change#5381) a build
[perl5.git] / embed.pl
index 820f7b7..593ab19 100755 (executable)
--- a/embed.pl
+++ b/embed.pl
@@ -291,6 +291,9 @@ print EM <<'END';
 
 /* provide binary compatible (but inconsistent) names */
 #if defined(PERL_BINCOMPAT_5005)
+#  define  Perl_call_atexit            perl_atexit
+#  define  Perl_eval_sv                        perl_eval_sv
+#  define  Perl_eval_pv                        perl_eval_pv
 #  define  Perl_call_argv              perl_call_argv
 #  define  Perl_call_method            perl_call_method
 #  define  Perl_call_pv                        perl_call_pv
@@ -500,6 +503,7 @@ print EM <<'END';
 #  define deb                          Perl_deb_nocontext
 #  define die                          Perl_die_nocontext
 #  define form                         Perl_form_nocontext
+#  define load_module                  Perl_load_module_nocontext
 #  define mess                         Perl_mess_nocontext
 #  define newSVpvf                     Perl_newSVpvf_nocontext
 #  define sv_catpvf                    Perl_sv_catpvf_nocontext
@@ -518,6 +522,7 @@ print EM <<'END';
 #  define Perl_die_nocontext           Perl_die
 #  define Perl_deb_nocontext           Perl_deb
 #  define Perl_form_nocontext          Perl_form
+#  define Perl_load_module_nocontext   Perl_load_module
 #  define Perl_mess_nocontext          Perl_mess
 #  define Perl_newSVpvf_nocontext      Perl_newSVpvf
 #  define Perl_sv_catpvf_nocontext     Perl_sv_catpvf
@@ -683,7 +688,7 @@ print EM <<'END';
 
 #endif /* PERL_GLOBAL_STRUCT */
 
-#ifdef PERL_POLLUTE            /* disabled by default in 5.006 */
+#ifdef PERL_POLLUTE            /* disabled by default in 5.6.0 */
 
 END
 
@@ -821,7 +826,7 @@ EXT void *PL_force_link_funcs[] = {
 #undef PERLVARA
 #undef PERLVARI
 #undef PERLVARIC
-#define PERLVAR(v,t)   Perl_##v##_ptr,
+#define PERLVAR(v,t)   (void*)Perl_##v##_ptr,
 #define PERLVARA(v,n,t)        PERLVAR(v,t)
 #define PERLVARI(v,t,i)        PERLVAR(v,t)
 #define PERLVARIC(v,t,i) PERLVAR(v,t)
@@ -865,6 +870,7 @@ print CAPIH <<'EOT';
 #endif /* __perlapi_h__ */
 
 EOT
+close CAPIH;
 
 print CAPI <<'EOT';
 /* !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!! 
@@ -931,6 +937,7 @@ my %vfuncs = qw(
     Perl_warner                        Perl_vwarner
     Perl_die                   Perl_vdie
     Perl_form                  Perl_vform
+    Perl_load_module           Perl_vload_module
     Perl_mess                  Perl_vmess
     Perl_deb                   Perl_vdeb
     Perl_newSVpvf              Perl_vnewSVpvf
@@ -1293,9 +1300,8 @@ Ajno      |PerlInterpreter*       |perl_alloc_using \
                                |struct IPerlStdIO* io|struct IPerlLIO* lio \
                                |struct IPerlDir* d|struct IPerlSock* s \
                                |struct IPerlProc* p
-#else
-Ajnod  |PerlInterpreter*       |perl_alloc
 #endif
+Ajnod  |PerlInterpreter*       |perl_alloc
 Ajnod  |void   |perl_construct |PerlInterpreter* interp
 Ajnod  |void   |perl_destruct  |PerlInterpreter* interp
 Ajnod  |void   |perl_free      |PerlInterpreter* interp
@@ -1323,6 +1329,9 @@ Ajnop     |Free_t |mfree          |Malloc_t where
 jnp    |MEM_SIZE|malloced_size |void *p
 #endif
 
+Ajnp   |void*  |get_context
+Ajnp   |void   |set_context    |void *thx
+
 END_EXTERN_C
 
 /* functions with flag 'n' should come before here */
@@ -1352,6 +1361,7 @@ p |I32    |apply          |I32 type|SV** mark|SV** sp
 Ap     |SV*    |avhv_delete_ent|AV *ar|SV* keysv|I32 flags|U32 hash
 Ap     |bool   |avhv_exists_ent|AV *ar|SV* keysv|U32 hash
 Ap     |SV**   |avhv_fetch_ent |AV *ar|SV* keysv|I32 lval|U32 hash
+Ap     |SV**   |avhv_store_ent |AV *ar|SV* keysv|SV* val|U32 hash
 Ap     |HE*    |avhv_iternext  |AV *ar
 Ap     |SV*    |avhv_iterval   |AV *ar|HE* entry
 Ap     |HV*    |avhv_keys      |AV *ar
@@ -1396,6 +1406,7 @@ Afnrp     |void   |croak_nocontext|const char* pat|...
 Afnp   |OP*    |die_nocontext  |const char* pat|...
 Afnp   |void   |deb_nocontext  |const char* pat|...
 Afnp   |char*  |form_nocontext |const char* pat|...
+Afnp   |void   |load_module_nocontext|U32 flags|SV* name|SV* ver|...
 Afnp   |SV*    |mess_nocontext |const char* pat|...
 Afnp   |void   |warn_nocontext |const char* pat|...
 Afnp   |void   |warner_nocontext|U32 err|const char* pat|...
@@ -1408,9 +1419,9 @@ Afnp      |int    |fprintf_nocontext|PerlIO* stream|const char* fmt|...
 #endif
 p      |void   |cv_ckproto     |CV* cv|GV* gv|char* p
 p      |CV*    |cv_clone       |CV* proto
-     |SV*    |cv_const_sv    |CV* cv
+Ap     |SV*    |cv_const_sv    |CV* cv
 p      |SV*    |op_const_sv    |OP* o|CV* cv
-     |void   |cv_undef       |CV* cv
+Ap     |void   |cv_undef       |CV* cv
 Ap     |void   |cx_dump        |PERL_CONTEXT* cs
 Ap     |SV*    |filter_add     |filter_t funcp|SV* datasv
 Ap     |void   |filter_del     |filter_t funcp
@@ -1438,7 +1449,7 @@ p |bool   |do_aexec       |SV* really|SV** mark|SV** sp
 p      |bool   |do_aexec5      |SV* really|SV** mark|SV** sp|int fd|int flag
 Ap     |int    |do_binmode     |PerlIO *fp|int iotype|int flag
 p      |void   |do_chop        |SV* asv|SV* sv
-     |bool   |do_close       |GV* gv|bool not_implicit
+Ap     |bool   |do_close       |GV* gv|bool not_implicit
 p      |bool   |do_eof         |GV* gv
 p      |bool   |do_exec        |char* cmd
 #if !defined(WIN32)
@@ -1590,6 +1601,7 @@ Ap        |bool   |is_uni_xdigit_lc|U32 c
 Ap     |U32    |to_uni_upper_lc|U32 c
 Ap     |U32    |to_uni_title_lc|U32 c
 Ap     |U32    |to_uni_lower_lc|U32 c
+Ap     |int    |is_utf8_char   |U8 *p
 Ap     |bool   |is_utf8_alnum  |U8 *p
 Ap     |bool   |is_utf8_alnumc |U8 *p
 Ap     |bool   |is_utf8_idfirst|U8 *p
@@ -1613,6 +1625,8 @@ p |void   |lex_start      |SV* line
 p      |OP*    |linklist       |OP* o
 p      |OP*    |list           |OP* o
 p      |OP*    |listkids       |OP* o
+Afp    |void   |load_module|U32 flags|SV* name|SV* ver|...
+Ap     |void   |vload_module|U32 flags|SV* name|SV* ver|va_list* args
 p      |OP*    |localize       |OP* arg|I32 lexical
 Apd    |I32    |looks_like_number|SV* sv
 p      |int    |magic_clearenv |SV* sv|MAGIC* mg
@@ -1683,6 +1697,7 @@ Apd       |void   |mg_magical     |SV* sv
 Apd    |int    |mg_set         |SV* sv
 Ap     |I32    |mg_size        |SV* sv
 p      |OP*    |mod            |OP* o|I32 type
+p      |int    |mode_from_discipline|SV* discp
 Ap     |char*  |moreswitches   |char* s
 p      |OP*    |my             |OP* o
 Ap     |NV     |my_atof        |const char *s
@@ -1755,6 +1770,7 @@ Ap        |SV*    |newSV          |STRLEN len
 Ap     |OP*    |newSVREF       |OP* o
 Ap     |OP*    |newSVOP        |I32 type|I32 flags|SV* sv
 Apd    |SV*    |newSViv        |IV i
+Apd    |SV*    |newSVuv        |UV u
 Apd    |SV*    |newSVnv        |NV n
 Apd    |SV*    |newSVpv        |const char* s|STRLEN len
 Apd    |SV*    |newSVpvn       |const char* s|STRLEN len
@@ -1827,7 +1843,7 @@ Ap        |void   |push_scope
 p      |OP*    |ref            |OP* o|I32 type
 p      |OP*    |refkids        |OP* o|I32 type
 Ap     |void   |regdump        |regexp* r
-     |I32    |pregexec       |regexp* prog|char* stringarg \
+Ap     |I32    |pregexec       |regexp* prog|char* stringarg \
                                |char* strend|char* strbeg|I32 minend \
                                |SV* screamer|U32 nosave
 Ap     |void   |pregfree       |struct regexp* r
@@ -2005,6 +2021,7 @@ Apd       |void   |sv_vcatpvfn    |SV* sv|const char* pat|STRLEN patlen \
 Apd    |void   |sv_vsetpvfn    |SV* sv|const char* pat|STRLEN patlen \
                                |va_list* args|SV** svargs|I32 svmax \
                                |bool *maybe_tainted
+Ap     |NV     |str_to_version |SV *sv
 Ap     |SV*    |swash_init     |char* pkg|char* name|SV* listsv \
                                |I32 minbits|I32 none
 Ap     |UV     |swash_fetch    |SV *sv|U8 *ptr
@@ -2049,6 +2066,7 @@ p |int    |yyparse
 p      |int    |yywarn         |char* s
 #if defined(MYMALLOC)
 Ap     |void   |dump_mstats    |char* s
+Ap     |int    |get_mstats     |perl_mstats_t *buf|int buflen|int level
 #endif
 Anp    |Malloc_t|safesysmalloc |MEM_SIZE nbytes
 Anp    |Malloc_t|safesyscalloc |MEM_SIZE elements|MEM_SIZE size
@@ -2096,10 +2114,12 @@ Ap      |void   |do_pmop_dump   |I32 level|PerlIO *file|PMOP *pm
 Ap     |void   |do_sv_dump     |I32 level|PerlIO *file|SV *sv|I32 nest \
                                |I32 maxnest|bool dumpops|STRLEN pvlim
 Ap     |void   |magic_dump     |MAGIC *mg
+#if defined(PERL_FLEXIBLE_EXCEPTIONS)
 Ap     |void*  |default_protect|volatile JMPENV *je|int *excpt \
                                |protect_body_t body|...
 Ap     |void*  |vdefault_protect|volatile JMPENV *je|int *excpt \
                                |protect_body_t body|va_list *args
+#endif
 Ap     |void   |reginitcolors
 Ap     |char*  |sv_2pv_nolen   |SV* sv
 Ap     |char*  |sv_2pvutf8_nolen|SV* sv
@@ -2107,6 +2127,10 @@ Ap       |char*  |sv_2pvbyte_nolen|SV* sv
 Ap     |char*  |sv_pv          |SV *sv
 Ap     |char*  |sv_pvutf8      |SV *sv
 Ap     |char*  |sv_pvbyte      |SV *sv
+Ap      |void   |sv_utf8_upgrade|SV *sv
+Ap      |bool   |sv_utf8_downgrade|SV *sv|bool fail_ok
+Ap      |void   |sv_utf8_encode |SV *sv
+Ap      |bool   |sv_utf8_decode |SV *sv
 Ap     |void   |sv_force_normal|SV *sv
 Ap     |void   |tmps_grow      |I32 n
 Ap     |SV*    |sv_rvweaken    |SV *sv
@@ -2146,6 +2170,7 @@ END_EXTERN_C
 
 #if defined(PERL_IN_AV_C) || defined(PERL_DECL_PROT)
 s      |I32    |avhv_index_sv  |SV* sv
+s      |I32    |avhv_index     |AV* av|SV* sv|U32 hash
 #endif
 
 #if defined(PERL_IN_DOOP_C) || defined(PERL_DECL_PROT)
@@ -2216,7 +2241,7 @@ s |void*  |Slab_Alloc     |int m|size_t sz
 #if defined(PERL_IN_PERL_C) || defined(PERL_DECL_PROT)
 s      |void   |find_beginning
 s      |void   |forbid_setid   |char *
-s      |void   |incpush        |char *|int
+s      |void   |incpush        |char *|int|int
 s      |void   |init_interp
 s      |void   |init_ids
 s      |void   |init_lexer
@@ -2232,11 +2257,16 @@ s       |void   |validate_suid  |char *|char*|int
 #  if defined(IAMSUID)
 s      |int    |fd_on_nosuid_fs|int fd
 #  endif
-s      |void*  |parse_body     |va_list args
-s      |void*  |run_body       |va_list args
-s      |void*  |call_body      |va_list args
-s      |void   |call_xbody     |OP *myop|int is_eval
-s      |void*  |call_list_body |va_list args
+s      |void*  |parse_body     |char **env|XSINIT_t xsinit
+s      |void*  |run_body       |I32 oldscope
+s      |void   |call_body      |OP *myop|int is_eval
+s      |void*  |call_list_body |CV *cv
+#if defined(PERL_FLEXIBLE_EXCEPTIONS)
+s      |void*  |vparse_body    |va_list args
+s      |void*  |vrun_body      |va_list args
+s      |void*  |vcall_body     |va_list args
+s      |void*  |vcall_list_body|va_list args
+#endif
 #  if defined(USE_THREADS)
 s      |struct perl_thread *   |init_main_thread
 #  endif
@@ -2253,7 +2283,10 @@ s        |int    |div128         |SV *pnum|bool *done
 
 #if defined(PERL_IN_PP_CTL_C) || defined(PERL_DECL_PROT)
 s      |OP*    |docatch        |OP *o
-s      |void*  |docatch_body   |va_list args
+s      |void*  |docatch_body
+#if defined(PERL_FLEXIBLE_EXCEPTIONS)
+s      |void*  |vdocatch_body  |va_list args
+#endif
 s      |OP*    |dofindlabel    |OP *o|char *label|OP **opstack|OP **oplimit
 s      |void   |doparseform    |SV *sv
 s      |I32    |dopoptoeval    |I32 startingblock
@@ -2269,6 +2302,9 @@ s |void   |qsortsv        |SV ** array|size_t num_elts|SVCOMPARE_t f
 #endif
 
 #if defined(PERL_IN_PP_HOT_C) || defined(PERL_DECL_PROT)
+s      |int    |do_maybe_phash |AV *ary|SV **lelem|SV **firstlelem \
+                               |SV **relem|SV **lastrelem
+s      |void   |do_oddball     |HV *hash|SV **relem|SV **firstrelem
 s      |CV*    |get_db_sub     |SV **svp|CV *cv
 s      |SV*    |method_common  |SV* meth|U32* hashp
 #endif
@@ -2385,12 +2421,6 @@ s        |void   |del_xrv        |XRV* p
 s      |void   |sv_unglob      |SV* sv
 s      |void   |not_a_number   |SV *sv
 s      |void   |visit          |SVFUNC_t f
-#  if defined(PURIFY)
-s      |void   |reg_add        |SV *sv
-s      |void   |reg_remove     |SV *sv
-#  else
-ns     |void*  |my_safemalloc  |MEM_SIZE size
-#  endif
 s      |void   |sv_add_backref |SV *tsv|SV *sv
 s      |void   |sv_del_backref |SV *sv
 #  if defined(DEBUGGING)
@@ -2436,8 +2466,10 @@ s        |SV*    |new_constant   |char *s|STRLEN len|const char *key|SV *sv \
 s      |int    |ao             |int toketype
 s      |void   |depcom
 s      |char*  |incl_perldb
+#if 0
 s      |I32    |utf16_textfilter|int idx|SV *sv|int maxlen
 s      |I32    |utf16rev_textfilter|int idx|SV *sv|int maxlen
+#endif
 #  if defined(CRIPPLED_CC)
 s      |int    |uni            |I32 f|char *s
 #  endif