SV: END {} blocks run in perl_run
[p5sagit/p5-mst-13.2.git] / embed.pl
index 4a9176f..60d0046 100755 (executable)
--- a/embed.pl
+++ b/embed.pl
@@ -1,9 +1,5 @@
 #!/usr/bin/perl -w
 
-BEGIN {
-    unshift @INC, "./lib";
-}
-
 require 5.003; # keep this compatible, an old perl is all we may have before
                 # we build the new one
 
@@ -49,7 +45,8 @@ sub walk_table (&@) {
        else {
            @args = split /\s*\|\s*/, $_;
        }
-       print $F $function->(@args);
+        my @outs = &{$function}(@args);
+        print $F @outs; # $function->(@args) is not 5.003
     }
     print $F $trailer if $trailer;
     close $F unless ref $filename;
@@ -251,7 +248,8 @@ readvars %intrp,  'intrpvar.h','I';
 readvars %thread, 'thrdvar.h','T';
 readvars %globvar, 'perlvars.h','G';
 
-foreach my $sym (sort keys %thread) {
+my $sym;
+foreach $sym (sort keys %thread) {
   warn "$sym in intrpvar.h as well as thrdvar.h\n" if exists $intrp{$sym};
 }
 
@@ -856,15 +854,15 @@ START_EXTERN_C
 
 EOT
 
-foreach my $sym (sort keys %intrp) {
+foreach $sym (sort keys %intrp) {
     print CAPIH bincompat_var('I',$sym);
 }
 
-foreach my $sym (sort keys %thread) {
+foreach $sym (sort keys %thread) {
     print CAPIH bincompat_var('T',$sym);
 }
 
-foreach my $sym (sort keys %globvar) {
+foreach $sym (sort keys %globvar) {
     print CAPIH bincompat_var('G',$sym);
 }
 
@@ -985,7 +983,7 @@ sub emit_func {
        if (length $return) {
            $decl .= "    $rettype retval;\n";
            $retarg .= "retval = ";
-           $return = "\n    ${return}retval;\n";
+           $return = "\n    " . $return . "retval;\n";
        }
        $emitval .= <<EOT
 $rettype
@@ -1011,7 +1009,6 @@ EOT
 }
 
 # XXXX temporary hack
-my $sym;
 for $sym (qw(
                perl_construct
                perl_destruct
@@ -1359,11 +1356,11 @@ Ajno    |PerlInterpreter*|perl_clone_using|PerlInterpreter *interp|UV flags \
 #  endif
 #endif
 
-#if defined(MYMALLOC)
 Ajnop  |Malloc_t|malloc        |MEM_SIZE nbytes
 Ajnop  |Malloc_t|calloc        |MEM_SIZE elements|MEM_SIZE size
 Ajnop  |Malloc_t|realloc       |Malloc_t where|MEM_SIZE nbytes
 Ajnop  |Free_t |mfree          |Malloc_t where
+#if defined(MYMALLOC)
 jnp    |MEM_SIZE|malloced_size |void *p
 #endif
 
@@ -1768,6 +1765,9 @@ Anp       |char*  |my_bzero       |char* loc|I32 len
 Apr    |void   |my_exit        |U32 status
 Apr    |void   |my_failure_exit
 Ap     |I32    |my_fflush_all
+Anp    |Pid_t  |my_fork
+Anp    |void   |atfork_lock
+Anp    |void   |atfork_unlock
 Ap     |I32    |my_lstat
 #if !defined(HAS_MEMCMP) || !defined(HAS_SANE_MEMCMP)
 Anp    |I32    |my_memcmp      |const char* s1|const char* s2|I32 len
@@ -2031,7 +2031,7 @@ Apd       |I32    |sv_cmp_locale  |SV* sv1|SV* sv2
 Apd    |char*  |sv_collxfrm    |SV* sv|STRLEN* nxp
 #endif
 Ap     |OP*    |sv_compile_2op |SV* sv|OP** startp|char* code|AV** avp
-Apd    |int    |sv_getcwd      |SV* sv
+Apd    |int    |getcwd_sv      |SV* sv
 Apd    |void   |sv_dec         |SV* sv
 Ap     |void   |sv_dump        |SV* sv
 Apd    |bool   |sv_derived_from|SV* sv|const char* name
@@ -2227,7 +2227,7 @@ Ap        |PERL_SI*|si_dup        |PERL_SI* si|clone_params* param
 Ap     |ANY*   |ss_dup         |PerlInterpreter* proto_perl|clone_params* param
 Ap     |void*  |any_dup        |void* v|PerlInterpreter* proto_perl
 Ap     |HE*    |he_dup         |HE* e|bool shared|clone_params* param
-Ap     |REGEXP*|re_dup         |REGEXP* r
+Ap     |REGEXP*|re_dup         |REGEXP* r|clone_params* param
 Ap     |PerlIO*|fp_dup         |PerlIO* fp|char type
 Ap     |DIR*   |dirp_dup       |DIR* dp
 Ap     |GP*    |gp_dup         |GP* gp|clone_params* param
@@ -2534,6 +2534,7 @@ s |char*  |force_version  |char *start
 s      |char*  |force_word     |char *start|int token|int check_keyword \
                                |int allow_pack|int allow_tick
 s      |SV*    |tokeq          |SV *sv
+s      |int    |pending_ident
 s      |char*  |scan_const     |char *start
 s      |char*  |scan_formline  |char *s
 s      |char*  |scan_heredoc   |char *s
@@ -2591,6 +2592,7 @@ s |char*  |stdize_locale  |char* locs
 #endif
 
 #if defined(PERL_IN_UTIL_C) || defined(PERL_DECL_PROT)
+s      |COP*   |closest_cop    |COP *cop|OP *o
 s      |SV*    |mess_alloc
 #  if defined(LEAKTEST)
 s      |void   |xstat          |int
@@ -2600,6 +2602,9 @@ s |void   |xstat          |int
 #if defined(PERL_OBJECT)
 };
 #endif
+
+START_EXTERN_C
+
 Apd    |void   |sv_setsv_flags |SV* dsv|SV* ssv|I32 flags
 Apd    |void   |sv_catpvn_flags|SV* sv|const char* ptr|STRLEN len|I32 flags
 Apd    |void   |sv_catsv_flags |SV* dsv|SV* ssv|I32 flags
@@ -2607,3 +2612,6 @@ Apd       |STRLEN |sv_utf8_upgrade_flags|SV *sv|I32 flags
 Apd    |char*  |sv_pvn_force_flags|SV* sv|STRLEN* lp|I32 flags
 Apd    |char*  |sv_2pv_flags   |SV* sv|STRLEN* lp|I32 flags
 Ap     |char*  |my_atof2       |const char *s|NV* value
+
+END_EXTERN_C
+