#!/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
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;
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};
}
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);
}
if (length $return) {
$decl .= " $rettype retval;\n";
$retarg .= "retval = ";
- $return = "\n ${return}retval;\n";
+ $return = "\n " . $return . "retval;\n";
}
$emitval .= <<EOT
$rettype
}
# XXXX temporary hack
-my $sym;
for $sym (qw(
perl_construct
perl_destruct
Ajnod |int |perl_parse |PerlInterpreter* interp|XSINIT_t xsinit \
|int argc|char** argv|char** env
#if defined(USE_ITHREADS)
-: XXX: perl_clone needs docs
-Ajno |PerlInterpreter*|perl_clone|PerlInterpreter* interp, UV flags
+Ajnod |PerlInterpreter*|perl_clone|PerlInterpreter* interp, UV flags
# if defined(PERL_IMPLICIT_SYS)
Ajno |PerlInterpreter*|perl_clone_using|PerlInterpreter *interp|UV flags \
|struct IPerlMem* m|struct IPerlMem* ms \
# 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
Apd |U32 |mg_length |SV* sv
Apd |void |mg_magical |SV* sv
Apd |int |mg_set |SV* sv
-Ap |IV |mg_size |SV* sv
+Ap |I32 |mg_size |SV* sv
Ap |void |mini_mktime |struct tm *pm
p |OP* |mod |OP* o|I32 type
p |int |mode_from_discipline|SV* discp
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
Ap |OP* |newPVOP |I32 type|I32 flags|char* pv
Ap |SV* |newRV |SV* pref
Apd |SV* |newRV_noinc |SV *sv
-Ap |SV* |newSV |STRLEN len
+Apd |SV* |newSV |STRLEN len
Ap |OP* |newSVREF |OP* o
Ap |OP* |newSVOP |I32 type|I32 flags|SV* sv
Apd |SV* |newSViv |IV i
Ap |SV** |stack_grow |SV** sp|SV**p|int n
Ap |I32 |start_subparse |I32 is_format|U32 flags
p |void |sub_crush_depth|CV* cv
-Ap |bool |sv_2bool |SV* sv
-Ap |CV* |sv_2cv |SV* sv|HV** st|GV** gvp|I32 lref
-Ap |IO* |sv_2io |SV* sv
-Ap |IV |sv_2iv |SV* sv
+Apd |bool |sv_2bool |SV* sv
+Apd |CV* |sv_2cv |SV* sv|HV** st|GV** gvp|I32 lref
+Apd |IO* |sv_2io |SV* sv
+Apd |IV |sv_2iv |SV* sv
Apd |SV* |sv_2mortal |SV* sv
-Ap |NV |sv_2nv |SV* sv
+Apd |NV |sv_2nv |SV* sv
Aop |char* |sv_2pv |SV* sv|STRLEN* lp
-Ap |char* |sv_2pvutf8 |SV* sv|STRLEN* lp
-Ap |char* |sv_2pvbyte |SV* sv|STRLEN* lp
-Ap |UV |sv_2uv |SV* sv
-Ap |IV |sv_iv |SV* sv
-Ap |UV |sv_uv |SV* sv
-Ap |NV |sv_nv |SV* sv
-Ap |char* |sv_pvn |SV *sv|STRLEN *len
-Ap |char* |sv_pvutf8n |SV *sv|STRLEN *len
-Ap |char* |sv_pvbyten |SV *sv|STRLEN *len
+Apd |char* |sv_2pvutf8 |SV* sv|STRLEN* lp
+Apd |char* |sv_2pvbyte |SV* sv|STRLEN* lp
+Apd |UV |sv_2uv |SV* sv
+Apd |IV |sv_iv |SV* sv
+Apd |UV |sv_uv |SV* sv
+Apd |NV |sv_nv |SV* sv
+Apd |char* |sv_pvn |SV *sv|STRLEN *len
+Apd |char* |sv_pvutf8n |SV *sv|STRLEN *len
+Apd |char* |sv_pvbyten |SV *sv|STRLEN *len
Apd |I32 |sv_true |SV *sv
-p |void |sv_add_arena |char* ptr|U32 size|U32 flags
-Ap |int |sv_backoff |SV* sv
+pd |void |sv_add_arena |char* ptr|U32 size|U32 flags
+Apd |int |sv_backoff |SV* sv
Apd |SV* |sv_bless |SV* sv|HV* stash
Afpd |void |sv_catpvf |SV* sv|const char* pat|...
Ap |void |sv_vcatpvf |SV* sv|const char* pat|va_list* args
Aopd |void |sv_catpvn |SV* sv|const char* ptr|STRLEN len
Aopd |void |sv_catsv |SV* dsv|SV* ssv
Apd |void |sv_chop |SV* sv|char* ptr
-p |I32 |sv_clean_all
-p |void |sv_clean_objs
+pd |I32 |sv_clean_all
+pd |void |sv_clean_objs
Apd |void |sv_clear |SV* sv
Apd |I32 |sv_cmp |SV* sv1|SV* sv2
Apd |I32 |sv_cmp_locale |SV* sv1|SV* sv2
#if defined(USE_LOCALE_COLLATE)
-Ap |char* |sv_collxfrm |SV* sv|STRLEN* nxp
+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
Apd |I32 |sv_eq |SV* sv1|SV* sv2
Apd |void |sv_free |SV* sv
-p |void |sv_free_arenas
+pd |void |sv_free_arenas
Apd |char* |sv_gets |SV* sv|PerlIO* fp|I32 append
Apd |char* |sv_grow |SV* sv|STRLEN newlen
Apd |void |sv_inc |SV* sv
|I32 namlen
Apd |SV* |sv_mortalcopy |SV* oldsv
Apd |SV* |sv_newmortal
-Ap |SV* |sv_newref |SV* sv
+Apd |SV* |sv_newref |SV* sv
Ap |char* |sv_peek |SV* sv
-Ap |void |sv_pos_u2b |SV* sv|I32* offsetp|I32* lenp
-Ap |void |sv_pos_b2u |SV* sv|I32* offsetp
+Apd |void |sv_pos_u2b |SV* sv|I32* offsetp|I32* lenp
+Apd |void |sv_pos_b2u |SV* sv|I32* offsetp
Aopd |char* |sv_pvn_force |SV* sv|STRLEN* lp
Apd |char* |sv_pvutf8n_force|SV* sv|STRLEN* lp
-Ap |char* |sv_pvbyten_force|SV* sv|STRLEN* lp
-Apd |int |sv_realpath |SV* sv|char *path|STRLEN len
+Apd |char* |sv_pvbyten_force|SV* sv|STRLEN* lp
Apd |char* |sv_reftype |SV* sv|int ob
Apd |void |sv_replace |SV* sv|SV* nsv
-Ap |void |sv_report_used
-Ap |void |sv_reset |char* s|HV* stash
+Apd |void |sv_report_used
+Apd |void |sv_reset |char* s|HV* stash
Afpd |void |sv_setpvf |SV* sv|const char* pat|...
Ap |void |sv_vsetpvf |SV* sv|const char* pat|va_list* args
Apd |void |sv_setiv |SV* sv|IV num
Apd |void |sv_setpv |SV* sv|const char* ptr
Apd |void |sv_setpvn |SV* sv|const char* ptr|STRLEN len
Aopd |void |sv_setsv |SV* dsv|SV* ssv
-Ap |void |sv_taint |SV* sv
-Ap |bool |sv_tainted |SV* sv
+Apd |void |sv_taint |SV* sv
+Apd |bool |sv_tainted |SV* sv
Apd |int |sv_unmagic |SV* sv|int type
Apd |void |sv_unref |SV* sv
Apd |void |sv_unref_flags |SV* sv|U32 flags
-Ap |void |sv_untaint |SV* sv
+Apd |void |sv_untaint |SV* sv
Apd |bool |sv_upgrade |SV* sv|U32 mt
Apd |void |sv_usepvn |SV* sv|char* ptr|STRLEN len
Apd |void |sv_vcatpvfn |SV* sv|const char* pat|STRLEN patlen \
p |void |vivify_ref |SV* sv|U32 to_what
p |I32 |wait4pid |Pid_t pid|int* statusp|int flags
p |void |report_evil_fh |GV *gv|IO *io|I32 op
-p |void |report_uninit
+pd |void |report_uninit
Afpd |void |warn |const char* pat|...
Ap |void |vwarn |const char* pat|va_list* args
Afp |void |warner |U32 err|const char* pat|...
|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
-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
+Apd |char* |sv_2pv_nolen |SV* sv
+Apd |char* |sv_2pvutf8_nolen|SV* sv
+Apd |char* |sv_2pvbyte_nolen|SV* sv
+Apd |char* |sv_pv |SV *sv
+Apd |char* |sv_pvutf8 |SV *sv
+Apd |char* |sv_pvbyte |SV *sv
Aopd |STRLEN |sv_utf8_upgrade|SV *sv
ApdM |bool |sv_utf8_downgrade|SV *sv|bool fail_ok
Apd |void |sv_utf8_encode |SV *sv
ApdM |bool |sv_utf8_decode |SV *sv
-Ap |void |sv_force_normal|SV *sv
-Ap |void |sv_force_normal_flags|SV *sv|U32 flags
+Apd |void |sv_force_normal|SV *sv
+Apd |void |sv_force_normal_flags|SV *sv|U32 flags
Ap |void |tmps_grow |I32 n
Apd |SV* |sv_rvweaken |SV *sv
p |int |magic_killbackrefs|SV *sv|MAGIC *mg
p |OP * |my_attrs |OP *o|OP *attrs
p |void |boot_core_xsutils
#if defined(USE_ITHREADS)
-Ap |PERL_CONTEXT*|cx_dup |PERL_CONTEXT* cx|I32 ix|I32 max
-Ap |PERL_SI*|si_dup |PERL_SI* si
-Ap |ANY* |ss_dup |PerlInterpreter* proto_perl
+Ap |PERL_CONTEXT*|cx_dup |PERL_CONTEXT* cx|I32 ix|I32 max|clone_params* param
+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
-Ap |REGEXP*|re_dup |REGEXP* r
+Ap |HE* |he_dup |HE* e|bool shared|clone_params* param
+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
-Ap |MAGIC* |mg_dup |MAGIC* mg
-Ap |SV* |sv_dup |SV* sstr
+Ap |GP* |gp_dup |GP* gp|clone_params* param
+Ap |MAGIC* |mg_dup |MAGIC* mg|clone_params* param
+Ap |SV* |sv_dup |SV* sstr|clone_params* param
#if defined(HAVE_INTERP_INTERN)
Ap |void |sys_intern_dup |struct interp_intern* src \
|struct interp_intern* dst
#endif
#if defined(PERL_IN_MG_C) || defined(PERL_DECL_PROT)
-s |void |save_magic |IV mgs_ix|SV *sv
+s |void |save_magic |I32 mgs_ix|SV *sv
s |int |magic_methpack |SV *sv|MAGIC *mg|char *meth
s |int |magic_methcall |SV *sv|MAGIC *mg|char *meth|I32 f \
|int n|SV *val
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
#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
#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
Apd |STRLEN |sv_utf8_upgrade_flags|SV *sv|I32 flags
Apd |char* |sv_pvn_force_flags|SV* sv|STRLEN* lp|I32 flags
-Ap |char* |sv_2pv_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
+