X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=embed.pl;h=32e7925b637912cd90948b31218ae9762739c665;hb=c7254714b14d9ee5485ea0c63c897c9eb3c2c21e;hp=7e94a09146b83ca97eb7e8a0fd8a59b7b063a9a1;hpb=9bb8fa4d8ccca8c2de391a370dd92749d7f09354;p=p5sagit%2Fp5-mst-13.2.git diff --git a/embed.pl b/embed.pl index 7e94a09..32e7925 100755 --- a/embed.pl +++ b/embed.pl @@ -25,6 +25,7 @@ sub walk_table (&@) { $F = $filename; } else { + unlink $filename; open F, ">$filename" or die "Can't open $filename: $!"; $F = \*F; } @@ -44,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; @@ -112,6 +114,7 @@ sub write_protos { } else { my ($flags,$retval,$func,@args) = @_; + $ret .= '/* ' if $flags =~ /m/; if ($flags =~ /s/) { $retval = "STATIC $retval"; $func = "S_$func"; @@ -135,15 +138,17 @@ sub write_protos { } $ret .= ")"; $ret .= " __attribute__((noreturn))" if $flags =~ /r/; - if( $flags =~ /f/ ) { + if( $flags =~ /f/ ) { my $prefix = $flags =~ /n/ ? '' : 'pTHX_'; - my $args = scalar @args; + my $args = scalar @args; $ret .= "\n#ifdef CHECK_FORMAT\n"; $ret .= sprintf " __attribute__((format(printf,%s%d,%s%d)))", - $prefix, $args - 1, $prefix, $args; + $prefix, $args - 1, $prefix, $args; $ret .= "\n#endif\n"; } - $ret .= ";\n"; + $ret .= ";"; + $ret .= ' */' if $flags =~ /m/; + $ret .= "\n"; } $ret; } @@ -153,7 +158,7 @@ sub write_global_sym { my $ret = ""; if (@_ > 1) { my ($flags,$retval,$func,@args) = @_; - if ($flags =~ /A/ && $flags !~ /x/) { # public API, so export + if ($flags =~ /A/ && $flags !~ /[xm]/) { # public API, so export $func = "Perl_$func" if $flags =~ /p/; $ret = "$func\n"; } @@ -185,11 +190,11 @@ EOT # hints # copline my @extvars = qw(sv_undef sv_yes sv_no na dowarn - curcop compiling + curcop compiling tainting tainted stack_base stack_sp sv_arenaroot no_modify curstash DBsub DBsingle debstash - rsfp + rsfp stdingv defgv errgv @@ -198,6 +203,7 @@ my @extvars = qw(sv_undef sv_yes sv_no na dowarn diehook dirty perl_destruct_level + ppaddr ); sub readsyms (\%$) { @@ -245,7 +251,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}; } @@ -262,7 +269,7 @@ sub hide ($$) { sub bincompat_var ($$) { my ($pfx, $sym) = @_; - my $arg = ($pfx eq 'G' ? 'NULL' : 'aTHXo'); + my $arg = ($pfx eq 'G' ? 'NULL' : 'aTHX'); undefine("PL_$sym") . hide("PL_$sym", "(*Perl_${pfx}${sym}_ptr($arg))"); } @@ -280,7 +287,7 @@ unlink 'embed.h'; open(EM, '> embed.h') or die "Can't create embed.h: $!\n"; print EM <<'END'; -/* !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +/* !!!!!!! DO NOT EDIT THIS FILE !!!!!!! This file is built by embed.pl from data in embed.pl, pp.sym, intrpvar.h, perlvars.h and thrdvar.h. Any changes made here will be lost! */ @@ -327,7 +334,6 @@ print EM <<'END'; /* Hide global symbols */ -#if !defined(PERL_OBJECT) #if !defined(PERL_IMPLICIT_CONTEXT) END @@ -340,7 +346,7 @@ walk_table { } else { my ($flags,$retval,$func,@args) = @_; - unless ($flags =~ /o/) { + unless ($flags =~ /[om]/) { if ($flags =~ /s/) { $ret .= hide($func,"S_$func"); } @@ -373,7 +379,7 @@ walk_table { } else { my ($flags,$retval,$func,@args) = @_; - unless ($flags =~ /o/) { + unless ($flags =~ /[om]/) { my $args = scalar @args; if ($args and $args[$args-1] =~ /\.\.\./) { # we're out of luck for varargs functions under CPP @@ -421,43 +427,11 @@ for $sym (sort keys %ppsym) { print EM <<'END'; #endif /* PERL_IMPLICIT_CONTEXT */ -#else /* PERL_OBJECT */ END -walk_table { - my $ret = ""; - if (@_ == 1) { - my $arg = shift; - $ret .= "$arg\n" if $arg =~ /^#\s*(if|ifn?def|else|endif)\b/; - } - else { - my ($flags,$retval,$func,@args) = @_; - if ($flags =~ /s/) { - $ret .= hide("S_$func","CPerlObj::S_$func") if $flags !~ /j/; - $ret .= hide($func,"S_$func"); - } - elsif ($flags =~ /p/) { - $ret .= hide("Perl_$func","CPerlObj::Perl_$func") if $flags !~ /j/; - $ret .= hide($func,"Perl_$func"); - } - else { - $ret .= hide($func,"CPerlObj::$func") if $flags !~ /j/; - } - } - $ret; -} \*EM; - -for $sym (sort keys %ppsym) { - $sym =~ s/^Perl_//; - print EM hide("Perl_$sym", "CPerlObj::Perl_$sym"); - print EM hide($sym, "Perl_$sym"); -} - print EM <<'END'; -#endif /* PERL_OBJECT */ - /* Compatibility stubs. Compile extensions with -DPERL_NOCOMPAT to disable them. */ @@ -498,7 +472,7 @@ print EM <<'END'; an extra argument but grab the context pointer using the macro dTHX. */ -#if defined(PERL_IMPLICIT_CONTEXT) && !defined(PERL_OBJECT) +#if defined(PERL_IMPLICIT_CONTEXT) # define croak Perl_croak_nocontext # define deb Perl_deb_nocontext # define die Perl_die_nocontext @@ -542,7 +516,7 @@ open(EM, '> embedvar.h') or die "Can't create embedvar.h: $!\n"; print EM <<'END'; -/* !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +/* !!!!!!! DO NOT EDIT THIS FILE !!!!!!! This file is built by embed.pl from data in embed.pl, pp.sym, intrpvar.h, perlvars.h and thrdvar.h. Any changes made here will be lost! */ @@ -550,14 +524,13 @@ print EM <<'END'; /* (Doing namespace management portably in C is really gross.) */ /* - The following combinations of MULTIPLICITY, USE_THREADS, PERL_OBJECT + The following combinations of MULTIPLICITY, USE_5005THREADS and PERL_IMPLICIT_CONTEXT are supported: 1) none 2) MULTIPLICITY # supported for compatibility 3) MULTIPLICITY && PERL_IMPLICIT_CONTEXT - 4) USE_THREADS && PERL_IMPLICIT_CONTEXT - 5) MULTIPLICITY && USE_THREADS && PERL_IMPLICIT_CONTEXT - 6) PERL_OBJECT && PERL_IMPLICIT_CONTEXT + 4) USE_5005THREADS && PERL_IMPLICIT_CONTEXT + 5) MULTIPLICITY && USE_5005THREADS && PERL_IMPLICIT_CONTEXT All other combinations of these flags are errors. @@ -582,11 +555,7 @@ for $sym (sort keys %thread) { print EM <<'END'; -# if defined(PERL_OBJECT) -# include "error: PERL_OBJECT + MULTIPLICITY don't go together" -# endif - -# if defined(USE_THREADS) +# if defined(USE_5005THREADS) /* case 5 above */ END @@ -597,7 +566,7 @@ for $sym (sort keys %intrp) { print EM <<'END'; -# else /* !USE_THREADS */ +# else /* !USE_5005THREADS */ /* cases 2 and 3 above */ END @@ -608,28 +577,10 @@ for $sym (sort keys %intrp) { print EM <<'END'; -# endif /* USE_THREADS */ +# endif /* USE_5005THREADS */ #else /* !MULTIPLICITY */ -# if defined(PERL_OBJECT) -/* case 6 above */ - -END - -for $sym (sort keys %thread) { - print EM multon($sym,'T','aTHXo->interp.'); -} - - -for $sym (sort keys %intrp) { - print EM multon($sym,'I','aTHXo->interp.'); -} - -print EM <<'END'; - -# else /* !PERL_OBJECT */ - /* cases 1 and 4 above */ END @@ -640,7 +591,7 @@ for $sym (sort keys %intrp) { print EM <<'END'; -# if defined(USE_THREADS) +# if defined(USE_5005THREADS) /* case 4 above */ END @@ -651,7 +602,7 @@ for $sym (sort keys %thread) { print EM <<'END'; -# else /* !USE_THREADS */ +# else /* !USE_5005THREADS */ /* case 1 above */ END @@ -662,8 +613,7 @@ for $sym (sort keys %thread) { print EM <<'END'; -# endif /* USE_THREADS */ -# endif /* PERL_OBJECT */ +# endif /* USE_5005THREADS */ #endif /* MULTIPLICITY */ #if defined(PERL_GLOBAL_STRUCT) @@ -703,70 +653,13 @@ END close(EM); -unlink 'objXSUB.h'; -open(OBX, '> objXSUB.h') - or die "Can't create objXSUB.h: $!\n"; - -print OBX <<'EOT'; -/* !!!!!!! DO NOT EDIT THIS FILE !!!!!!! - This file is built by embed.pl from data in embed.pl, pp.sym, intrpvar.h, - perlvars.h and thrdvar.h. Any changes made here will be lost! -*/ - -#ifndef __objXSUB_h__ -#define __objXSUB_h__ - -/* method calls via pPerl (static functions without a "this" pointer need these) */ - -#if defined(PERL_CORE) && defined(PERL_OBJECT) - -/* XXX soon to be eliminated, only a few things in PERLCORE need these now */ - -EOT - -walk_table { - my $ret = ""; - if (@_ == 1) { - my $arg = shift; - $ret .= "$arg\n" if $arg =~ /^#\s*(if|ifn?def|else|endif)\b/; - } - else { - my ($flags,$retval,$func,@args) = @_; - if ($flags =~ /A/ && $flags !~ /j/) { # API function needing macros - if ($flags =~ /p/) { - $ret .= undefine("Perl_$func") . hide("Perl_$func","pPerl->Perl_$func"); - $ret .= undefine($func) . hide($func,"Perl_$func"); - } - else { - $ret .= undefine($func) . hide($func,"pPerl->$func"); - } - } - } - $ret; -} \*OBX; - -# NOTE: not part of API -#for $sym (sort keys %ppsym) { -# $sym =~ s/^Perl_//; -# print OBX undefine("Perl_$sym") . hide("Perl_$sym", "pPerl->Perl_$sym"); -# print OBX undefine($sym) . hide($sym, "Perl_$sym"); -#} - -print OBX <<'EOT'; - -#endif /* PERL_CORE && PERL_OBJECT */ -#endif /* __objXSUB_h__ */ -EOT - -close(OBX); - unlink 'perlapi.h'; unlink 'perlapi.c'; open(CAPI, '> perlapi.c') or die "Can't create perlapi.c: $!\n"; open(CAPIH, '> perlapi.h') or die "Can't create perlapi.h: $!\n"; print CAPIH <<'EOT'; -/* !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +/* !!!!!!! DO NOT EDIT THIS FILE !!!!!!! This file is built by embed.pl from data in embed.pl, pp.sym, intrpvar.h, perlvars.h and thrdvar.h. Any changes made here will be lost! */ @@ -775,14 +668,7 @@ print CAPIH <<'EOT'; #ifndef __perlapi_h__ #define __perlapi_h__ -#if defined(PERL_OBJECT) || defined (MULTIPLICITY) - -#if defined(PERL_OBJECT) -# undef aTHXo -# define aTHXo pPerl -# undef aTHXo_ -# define aTHXo_ aTHXo, -#endif /* PERL_OBJECT */ +#if defined (MULTIPLICITY) START_EXTERN_C @@ -790,9 +676,9 @@ START_EXTERN_C #undef PERLVARA #undef PERLVARI #undef PERLVARIC -#define PERLVAR(v,t) EXTERN_C t* Perl_##v##_ptr(pTHXo); +#define PERLVAR(v,t) EXTERN_C t* Perl_##v##_ptr(pTHX); #define PERLVARA(v,n,t) typedef t PL_##v##_t[n]; \ - EXTERN_C PL_##v##_t* Perl_##v##_ptr(pTHXo); + EXTERN_C PL_##v##_t* Perl_##v##_ptr(pTHX); #define PERLVARI(v,t,i) PERLVAR(v,t) #define PERLVARIC(v,t,i) PERLVAR(v, const t) @@ -842,7 +728,7 @@ EXT void *PL_force_link_funcs[] = { }; #endif /* DOINIT */ -START_EXTERN_C +END_EXTERN_C #endif /* PERL_NO_FORCE_LINK */ @@ -850,22 +736,22 @@ 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); } print CAPIH <<'EOT'; #endif /* !PERL_CORE */ -#endif /* PERL_OBJECT || MULTIPLICITY */ +#endif /* MULTIPLICITY */ #endif /* __perlapi_h__ */ @@ -873,7 +759,7 @@ EOT close CAPIH; print CAPI <<'EOT'; -/* !!!!!!! DO NOT EDIT THIS FILE !!!!!!! +/* !!!!!!! DO NOT EDIT THIS FILE !!!!!!! This file is built by embed.pl from data in embed.pl, pp.sym, intrpvar.h, perlvars.h and thrdvar.h. Any changes made here will be lost! */ @@ -882,7 +768,7 @@ print CAPI <<'EOT'; #include "perl.h" #include "perlapi.h" -#if defined(PERL_OBJECT) || defined (MULTIPLICITY) +#if defined (MULTIPLICITY) /* accessor functions for Perl variables (provides binary compatibility) */ START_EXTERN_C @@ -892,17 +778,10 @@ START_EXTERN_C #undef PERLVARI #undef PERLVARIC -#if defined(PERL_OBJECT) -#define PERLVAR(v,t) t* Perl_##v##_ptr(pTHXo) \ - { return &(aTHXo->interp.v); } -#define PERLVARA(v,n,t) PL_##v##_t* Perl_##v##_ptr(pTHXo) \ - { return &(aTHXo->interp.v); } -#else /* MULTIPLICITY */ #define PERLVAR(v,t) t* Perl_##v##_ptr(pTHX) \ { return &(aTHX->v); } #define PERLVARA(v,n,t) PL_##v##_t* Perl_##v##_ptr(pTHX) \ { return &(aTHX->v); } -#endif #define PERLVARI(v,t,i) PERLVAR(v,t) #define PERLVARIC(v,t,i) PERLVAR(v, const t) @@ -912,12 +791,12 @@ START_EXTERN_C #undef PERLVAR #undef PERLVARA -#define PERLVAR(v,t) t* Perl_##v##_ptr(pTHXo) \ +#define PERLVAR(v,t) t* Perl_##v##_ptr(pTHX) \ { return &(PL_##v); } -#define PERLVARA(v,n,t) PL_##v##_t* Perl_##v##_ptr(pTHXo) \ +#define PERLVARA(v,n,t) PL_##v##_t* Perl_##v##_ptr(pTHX) \ { return &(PL_##v); } #undef PERLVARIC -#define PERLVARIC(v,t,i) const t* Perl_##v##_ptr(pTHXo) \ +#define PERLVARIC(v,t,i) const t* Perl_##v##_ptr(pTHX) \ { return (const t *)&(PL_##v); } #include "perlvars.h" @@ -926,14 +805,16 @@ START_EXTERN_C #undef PERLVARI #undef PERLVARIC -#if defined(PERL_OBJECT) - -/* C-API layer for PERL_OBJECT */ +END_EXTERN_C +#endif /* MULTIPLICITY */ EOT +close(CAPI); + # functions that take va_list* for implementing vararg functions # NOTE: makedef.pl must be updated if you add symbols to %vfuncs +# XXX %vfuncs currently unused my %vfuncs = qw( Perl_croak Perl_vcroak Perl_warn Perl_vwarn @@ -952,129 +833,6 @@ my %vfuncs = qw( Perl_default_protect Perl_vdefault_protect ); -sub emit_func { - my ($addcontext, $rettype,$func,@args) = @_; - my @aargs = @args; - my $a; - for $a (@aargs) { $a =~ s/^.*\b(\w+)$/$1/ } - my $ctxarg = ''; - if (not $addcontext) { - $ctxarg = 'pTHXo'; - $ctxarg .= '_ ' if @args; - } - my $decl = ''; - if ($addcontext) { - $decl .= " dTHXo;\n"; - } - local $" = ', '; - my $return = ($rettype =~ /^\s*(void|Free_t|Signal_t)\s*$/ - ? '' : 'return '); - my $emitval = ''; - if (@args and $args[$#args] =~ /\.\.\./) { - pop @aargs; - my $retarg = ''; - my $ctxfunc = $func; - $ctxfunc =~ s/_nocontext$//; - return $emitval unless exists $vfuncs{$ctxfunc}; - if (length $return) { - $decl .= " $rettype retval;\n"; - $retarg .= "retval = "; - $return = "\n ${return}retval;\n"; - } - $emitval .= <$vfuncs{$ctxfunc}(@aargs, &args); - va_end(args);$return -} -EOT - } - else { - $emitval .= <$func(@aargs); -} -EOT - } - $emitval; -} - -# XXXX temporary hack -my $sym; -for $sym (qw( - perl_construct - perl_destruct - perl_free - perl_run - perl_parse - )) -{ - $skipapi_funcs{$sym}++; -} - -walk_table { - my $ret = ""; - if (@_ == 1) { - my $arg = shift; - $ret .= "$arg\n" if $arg =~ /^#\s*(if|ifn?def|else|endif)\b/; - } - else { - my ($flags,$retval,$func,@args) = @_; - return $ret if exists $skipapi_funcs{$func}; - if ($flags =~ /A/ && $flags !~ /j/) { # in public API, needed for XSUBS - $ret .= "\n"; - my $addctx = 1 if $flags =~ /n/; - if ($flags =~ /p/) { - $ret .= undefine("Perl_$func"); - $ret .= emit_func($addctx,$retval,"Perl_$func",@args); - } - else { - $ret .= undefine($func); - $ret .= emit_func($addctx,$retval,$func,@args); - } - } - } - $ret; -} \*CAPI; - -# NOTE: not part of the API -#for $sym (sort keys %ppsym) { -# $sym =~ s/^Perl_//; -# print CAPI "\n"; -# print CAPI undefine("Perl_$sym"); -# if ($sym =~ /^ck_/) { -# print CAPI emit_func(0, 'OP *',"Perl_$sym",'OP *o'); -# } -# else { # pp_foo -# print CAPI emit_func(0, 'OP *',"Perl_$sym"); -# } -#} - -print CAPI <<'EOT'; - -#undef Perl_fprintf_nocontext -int -Perl_fprintf_nocontext(PerlIO *stream, const char *format, ...) -{ - dTHXo; - va_list(arglist); - va_start(arglist, format); - return (*PL_StdIO->pVprintf)(PL_StdIO, stream, format, arglist); -} - -END_EXTERN_C - -#endif /* PERL_OBJECT */ -#endif /* PERL_OBJECT || MULTIPLICITY */ -EOT - -close(CAPI); - # autogenerate documentation from comments in source files my %apidocs; @@ -1120,7 +878,7 @@ DOC: redo FUNC; } } else { - warn "$file:$line:$in"; + warn "$file:$line:$in (=cut missing?)"; } } } @@ -1130,7 +888,9 @@ sub docout ($$$) { # output the docs for one function my($fh, $name, $docref) = @_; my($flags, $docs, $ret, $file, @args) = @$docref; - $docs .= "NOTE: the perl_ form of this function is deprecated.\n\n" + $docs .= "NOTE: this function is experimental and may change or be +removed without notice.\n\n" if $flags =~ /x/; + $docs .= "NOTE: the perl_ form of this function is deprecated.\n\n" if $flags =~ /p/; print $fh "=item $name\n$docs"; @@ -1157,7 +917,7 @@ for $file (glob('*.c'), glob('*.h')) { } unlink "pod/perlapi.pod"; -open (DOC, ">pod/perlapi.pod") or +open (DOC, ">pod/perlapi.pod") or die "Can't create pod/perlapi.pod: $!\n"; walk_table { # load documented functions into approriate hash @@ -1169,6 +929,7 @@ walk_table { # load documented functions into approriate hash if ($flags =~ /A/) { my $docref = delete $docfuncs{$func}; warn "no docs for $func\n" unless $docref and @$docref; + $docref->[0].="x" if $flags =~ /M/; $apidocs{$func} = [$docref->[0] . 'A', $docref->[1], $retval, $docref->[3], @args]; } else { @@ -1181,7 +942,7 @@ walk_table { # load documented functions into approriate hash } \*DOC; for (sort keys %docfuncs) { - # Have you used a full for apidoc or just a func name? + # Have you used a full for apidoc or just a func name? # Have you used Ap instead of Am in the for apidoc? warn "Unable to place $_!\n"; } @@ -1193,9 +954,9 @@ perlapi - autogenerated documentation for the perl public API =head1 DESCRIPTION -This file contains the documentation of the perl public API generated by -embed.pl, specifically a listing of functions, macros, flags, and variables -that may be used by extension writers. The interfaces of any functions that +This file contains the documentation of the perl public API generated by +embed.pl, specifically a listing of functions, macros, flags, and variables +that may be used by extension writers. The interfaces of any functions that are not listed here are subject to change without notice. For this reason, blindly using functions listed in proto.h is to be avoided when writing extensions. @@ -1241,19 +1002,21 @@ _EOE_ close(DOC); -open(GUTS, ">pod/perlintern.pod") or +unlink "pod/perlintern.pod"; + +open(GUTS, ">pod/perlintern.pod") or die "Unable to create pod/perlintern.pod: $!\n"; print GUTS <<'END'; =head1 NAME -perlintern - autogenerated documentation of purely B +perlintern - autogenerated documentation of purely B Perl functions =head1 DESCRIPTION -This file is the autogenerated documentation of functions in the +This file is the autogenerated documentation of functions in the Perl interpreter that are documented using Perl's internal documentation -format but are not marked as part of the Perl API. In other words, +format but are not marked as part of the Perl API. In other words, B! =over 8 @@ -1269,8 +1032,8 @@ print GUTS <<'END'; =head1 AUTHORS -The autodocumentation system was originally added to the Perl core by -Benjamin Stuhl. Documentation is by whoever was kind enough to +The autodocumentation system was originally added to the Perl core by +Benjamin Stuhl. Documentation is by whoever was kind enough to document their functions. =head1 SEE ALSO @@ -1292,6 +1055,7 @@ __END__ : : flags are single letters with following meanings: : A member of public API +: m Implemented as a macro - no export, no proto, no #define : d function has documentation with its source : s static function, should have an S_ prefix in source : file @@ -1300,8 +1064,8 @@ __END__ : f function takes printf style format string, varargs : r function never returns : o has no compatibility macro (#define foo Perl_foo) -: j not a member of CPerlObj : x not exported +: M may change : : Individual flags may be separated by whitespace. : @@ -1311,25 +1075,24 @@ __END__ START_EXTERN_C #if defined(PERL_IMPLICIT_SYS) -Ajno |PerlInterpreter* |perl_alloc_using \ +Ano |PerlInterpreter* |perl_alloc_using \ |struct IPerlMem* m|struct IPerlMem* ms \ |struct IPerlMem* mp|struct IPerlEnv* e \ |struct IPerlStdIO* io|struct IPerlLIO* lio \ |struct IPerlDir* d|struct IPerlSock* s \ |struct IPerlProc* p #endif -Ajnod |PerlInterpreter* |perl_alloc -Ajnod |void |perl_construct |PerlInterpreter* interp -Ajnod |void |perl_destruct |PerlInterpreter* interp -Ajnod |void |perl_free |PerlInterpreter* interp -Ajnod |int |perl_run |PerlInterpreter* interp -Ajnod |int |perl_parse |PerlInterpreter* interp|XSINIT_t xsinit \ +Anod |PerlInterpreter* |perl_alloc +Anod |void |perl_construct |PerlInterpreter* interp +Anod |int |perl_destruct |PerlInterpreter* interp +Anod |void |perl_free |PerlInterpreter* interp +Anod |int |perl_run |PerlInterpreter* interp +Anod |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 +Anod |PerlInterpreter*|perl_clone|PerlInterpreter* interp, UV flags # if defined(PERL_IMPLICIT_SYS) -Ajno |PerlInterpreter*|perl_clone_using|PerlInterpreter *interp|UV flags \ +Ano |PerlInterpreter*|perl_clone_using|PerlInterpreter *interp|UV flags \ |struct IPerlMem* m|struct IPerlMem* ms \ |struct IPerlMem* mp|struct IPerlEnv* e \ |struct IPerlStdIO* io|struct IPerlLIO* lio \ @@ -1338,44 +1101,29 @@ Ajno |PerlInterpreter*|perl_clone_using|PerlInterpreter *interp|UV flags \ # endif #endif +Anop |Malloc_t|malloc |MEM_SIZE nbytes +Anop |Malloc_t|calloc |MEM_SIZE elements|MEM_SIZE size +Anop |Malloc_t|realloc |Malloc_t where|MEM_SIZE nbytes +Anop |Free_t |mfree |Malloc_t where #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 -jnp |MEM_SIZE|malloced_size |void *p +np |MEM_SIZE|malloced_size |void *p #endif -Ajnp |void* |get_context -Ajnp |void |set_context |void *thx +Anp |void* |get_context +Anp |void |set_context |void *thx END_EXTERN_C /* functions with flag 'n' should come before here */ -#if defined(PERL_OBJECT) -class CPerlObj { -public: - struct interpreter interp; - CPerlObj(IPerlMem*, IPerlMem*, IPerlMem*, IPerlEnv*, IPerlStdIO*, - IPerlLIO*, IPerlDir*, IPerlSock*, IPerlProc*); - void* operator new(size_t nSize, IPerlMem *pvtbl); -#ifndef __BORLANDC__ - static void operator delete(void* pPerl, IPerlMem *pvtbl); -#endif - int do_aspawn (void *vreally, void **vmark, void **vsp); -#endif -#if defined(PERL_OBJECT) -public: -#else START_EXTERN_C -#endif # include "pp_proto.h" Ap |SV* |amagic_call |SV* left|SV* right|int method|int dir Ap |bool |Gv_AMupdate |HV* stash +Ap |CV* |gv_handler |HV* stash|I32 id p |OP* |append_elem |I32 optype|OP* head|OP* tail p |OP* |append_list |I32 optype|LISTOP* first|LISTOP* last p |I32 |apply |I32 type|SV** mark|SV** sp -Afp |void |apply_attrs_string|char *stashpv|CV *cv|char *attrstr|STRLEN len +ApM |void |apply_attrs_string|char *stashpv|CV *cv|char *attrstr|STRLEN len 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 @@ -1384,17 +1132,17 @@ Ap |HE* |avhv_iternext |AV *ar Ap |SV* |avhv_iterval |AV *ar|HE* entry Ap |HV* |avhv_keys |AV *ar Apd |void |av_clear |AV* ar -Ap |SV* |av_delete |AV* ar|I32 key|I32 flags -Ap |bool |av_exists |AV* ar|I32 key +Apd |SV* |av_delete |AV* ar|I32 key|I32 flags +Apd |bool |av_exists |AV* ar|I32 key Apd |void |av_extend |AV* ar|I32 key -Ap |AV* |av_fake |I32 size|SV** svp +p |AV* |av_fake |I32 size|SV** svp Apd |SV** |av_fetch |AV* ar|I32 key|I32 lval -Ap |void |av_fill |AV* ar|I32 fill +Apd |void |av_fill |AV* ar|I32 fill Apd |I32 |av_len |AV* ar Apd |AV* |av_make |I32 size|SV** svp Apd |SV* |av_pop |AV* ar Apd |void |av_push |AV* ar|SV* val -Ap |void |av_reify |AV* ar +p |void |av_reify |AV* ar Apd |SV* |av_shift |AV* ar Apd |SV** |av_store |AV* ar|I32 key|SV* val Apd |void |av_undef |AV* ar @@ -1404,6 +1152,7 @@ p |OP* |block_end |I32 floor|OP* seq Ap |I32 |block_gimme p |int |block_start |int full p |void |boot_core_UNIVERSAL +p |void |boot_core_PerlIO Ap |void |call_list |I32 oldscope|AV* av_list p |bool |cando |Mode_t mode|Uid_t effective|Stat_t* statbufp Ap |U32 |cast_ulong |NV f @@ -1413,7 +1162,7 @@ Ap |UV |cast_uv |NV f #if !defined(HAS_TRUNCATE) && !defined(HAS_CHSIZE) && defined(F_FREESP) Ap |I32 |my_chsize |int fd|Off_t length #endif -#if defined(USE_THREADS) +#if defined(USE_5005THREADS) Ap |MAGIC* |condpair_magic |SV *sv #endif p |OP* |convert |I32 optype|I32 flags|OP* o @@ -1424,7 +1173,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|... +Anp |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|... @@ -1434,10 +1183,11 @@ Afnp |void |sv_setpvf_nocontext|SV* sv|const char* pat|... Afnp |void |sv_catpvf_mg_nocontext|SV* sv|const char* pat|... Afnp |void |sv_setpvf_mg_nocontext|SV* sv|const char* pat|... Afnp |int |fprintf_nocontext|PerlIO* stream|const char* fmt|... +Afnp |int |printf_nocontext|const char* fmt|... #endif p |void |cv_ckproto |CV* cv|GV* gv|char* p p |CV* |cv_clone |CV* proto -Ap |SV* |cv_const_sv |CV* cv +Apd |SV* |cv_const_sv |CV* cv p |SV* |op_const_sv |OP* o|CV* cv Ap |void |cv_undef |CV* cv Ap |void |cx_dump |PERL_CONTEXT* cs @@ -1489,12 +1239,15 @@ Ap |bool |do_open |GV* gv|char* name|I32 len|int as_raw \ Ap |bool |do_open9 |GV *gv|char *name|I32 len|int as_raw \ |int rawmode|int rawperm|PerlIO *supplied_fp \ |SV *svs|I32 num +Ap |bool |do_openn |GV *gv|char *name|I32 len|int as_raw \ + |int rawmode|int rawperm|PerlIO *supplied_fp \ + |SV **svp|I32 num p |void |do_pipe |SV* sv|GV* rgv|GV* wgv p |bool |do_print |SV* sv|PerlIO* fp p |OP* |do_readline p |I32 |do_chomp |SV* sv p |bool |do_seek |GV* gv|Off_t pos|int whence -p |void |do_sprintf |SV* sv|I32 len|SV** sarg +Ap |void |do_sprintf |SV* sv|I32 len|SV** sarg p |Off_t |do_sysseek |GV* gv|Off_t pos|int whence p |Off_t |do_tell |GV* gv p |I32 |do_trans |SV* sv @@ -1519,12 +1272,12 @@ Apd |char* |fbm_instr |unsigned char* big|unsigned char* bigend \ |SV* littlesv|U32 flags p |char* |find_script |char *scriptname|bool dosearch \ |char **search_ext|I32 flags -#if defined(USE_THREADS) +#if defined(USE_5005THREADS) p |PADOFFSET|find_threadsv|const char *name #endif p |OP* |force_list |OP* arg p |OP* |fold_constants |OP* arg -Afp |char* |form |const char* pat|... +Afpd |char* |form |const char* pat|... Ap |char* |vform |const char* pat|va_list* args Ap |void |free_tmps p |OP* |gen_constant_list|OP* o @@ -1541,6 +1294,7 @@ Ap |GV* |gv_autoload4 |HV* stash|const char* name|STRLEN len \ Ap |void |gv_check |HV* stash Ap |void |gv_efullname |SV* sv|GV* gv Ap |void |gv_efullname3 |SV* sv|GV* gv|const char* prefix +Ap |void |gv_efullname4 |SV* sv|GV* gv|const char* prefix|bool keepmain Ap |GV* |gv_fetchfile |const char* name Apd |GV* |gv_fetchmeth |HV* stash|const char* name|STRLEN len \ |I32 level @@ -1550,6 +1304,7 @@ Apd |GV* |gv_fetchmethod_autoload|HV* stash|const char* name \ Ap |GV* |gv_fetchpv |const char* name|I32 add|I32 sv_type Ap |void |gv_fullname |SV* sv|GV* gv Ap |void |gv_fullname3 |SV* sv|GV* gv|const char* prefix +Ap |void |gv_fullname4 |SV* sv|GV* gv|const char* prefix|bool keepmain Ap |void |gv_init |GV* gv|HV* stash|const char* name \ |STRLEN len|int multi Apd |HV* |gv_stashpv |const char* name|I32 create @@ -1557,11 +1312,11 @@ Ap |HV* |gv_stashpvn |const char* name|U32 namelen|I32 create Apd |HV* |gv_stashsv |SV* sv|I32 create Apd |void |hv_clear |HV* tb Ap |void |hv_delayfree_ent|HV* hv|HE* entry -Apd |SV* |hv_delete |HV* tb|const char* key|U32 klen|I32 flags +Apd |SV* |hv_delete |HV* tb|const char* key|I32 klen|I32 flags Apd |SV* |hv_delete_ent |HV* tb|SV* key|I32 flags|U32 hash -Apd |bool |hv_exists |HV* tb|const char* key|U32 klen +Apd |bool |hv_exists |HV* tb|const char* key|I32 klen Apd |bool |hv_exists_ent |HV* tb|SV* key|U32 hash -Apd |SV** |hv_fetch |HV* tb|const char* key|U32 klen|I32 lval +Apd |SV** |hv_fetch |HV* tb|const char* key|I32 klen|I32 lval Apd |HE* |hv_fetch_ent |HV* tb|SV* key|I32 lval|U32 hash Ap |void |hv_free_ent |HV* hv|HE* entry Apd |I32 |hv_iterinit |HV* tb @@ -1572,56 +1327,61 @@ Apd |SV* |hv_iternextsv |HV* hv|char** key|I32* retlen Apd |SV* |hv_iterval |HV* tb|HE* entry Ap |void |hv_ksplit |HV* hv|IV newmax Apd |void |hv_magic |HV* hv|GV* gv|int how -Apd |SV** |hv_store |HV* tb|const char* key|U32 klen|SV* val \ +Apd |SV** |hv_store |HV* tb|const char* key|I32 klen|SV* val \ |U32 hash Apd |HE* |hv_store_ent |HV* tb|SV* key|SV* val|U32 hash Apd |void |hv_undef |HV* tb Ap |I32 |ibcmp |const char* a|const char* b|I32 len Ap |I32 |ibcmp_locale |const char* a|const char* b|I32 len +Apd |I32 |ibcmp_utf8 |const char* a|bool ua|I32 len1|const char* b|bool ub|I32 len2 p |bool |ingroup |Gid_t testgid|Uid_t effective +p |void |init_argv_symbols|int|char ** p |void |init_debugger Ap |void |init_stacks +Ap |void |init_tm |struct tm *ptm p |U32 |intro_my Ap |char* |instr |const char* big|const char* little p |bool |io_close |IO* io|bool not_implicit p |OP* |invert |OP* cmd dp |bool |is_gv_magical |char *name|STRLEN len|U32 flags -Ap |bool |is_uni_alnum |U32 c -Ap |bool |is_uni_alnumc |U32 c -Ap |bool |is_uni_idfirst |U32 c -Ap |bool |is_uni_alpha |U32 c -Ap |bool |is_uni_ascii |U32 c -Ap |bool |is_uni_space |U32 c -Ap |bool |is_uni_cntrl |U32 c -Ap |bool |is_uni_graph |U32 c -Ap |bool |is_uni_digit |U32 c -Ap |bool |is_uni_upper |U32 c -Ap |bool |is_uni_lower |U32 c -Ap |bool |is_uni_print |U32 c -Ap |bool |is_uni_punct |U32 c -Ap |bool |is_uni_xdigit |U32 c -Ap |U32 |to_uni_upper |U32 c -Ap |U32 |to_uni_title |U32 c -Ap |U32 |to_uni_lower |U32 c -Ap |bool |is_uni_alnum_lc|U32 c -Ap |bool |is_uni_alnumc_lc|U32 c -Ap |bool |is_uni_idfirst_lc|U32 c -Ap |bool |is_uni_alpha_lc|U32 c -Ap |bool |is_uni_ascii_lc|U32 c -Ap |bool |is_uni_space_lc|U32 c -Ap |bool |is_uni_cntrl_lc|U32 c -Ap |bool |is_uni_graph_lc|U32 c -Ap |bool |is_uni_digit_lc|U32 c -Ap |bool |is_uni_upper_lc|U32 c -Ap |bool |is_uni_lower_lc|U32 c -Ap |bool |is_uni_print_lc|U32 c -Ap |bool |is_uni_punct_lc|U32 c -Ap |bool |is_uni_xdigit_lc|U32 c +Ap |I32 |is_lvalue_sub 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_string |U8 *s|STRLEN len +Ap |bool |is_uni_alnum |UV c +Ap |bool |is_uni_alnumc |UV c +Ap |bool |is_uni_idfirst |UV c +Ap |bool |is_uni_alpha |UV c +Ap |bool |is_uni_ascii |UV c +Ap |bool |is_uni_space |UV c +Ap |bool |is_uni_cntrl |UV c +Ap |bool |is_uni_graph |UV c +Ap |bool |is_uni_digit |UV c +Ap |bool |is_uni_upper |UV c +Ap |bool |is_uni_lower |UV c +Ap |bool |is_uni_print |UV c +Ap |bool |is_uni_punct |UV c +Ap |bool |is_uni_xdigit |UV c +Ap |UV |to_uni_upper |UV c|U8 *p|STRLEN *lenp +Ap |UV |to_uni_title |UV c|U8 *p|STRLEN *lenp +Ap |UV |to_uni_lower |UV c|U8 *p|STRLEN *lenp +Ap |UV |to_uni_fold |UV c|U8 *p|STRLEN *lenp +Ap |bool |is_uni_alnum_lc|UV c +Ap |bool |is_uni_alnumc_lc|UV c +Ap |bool |is_uni_idfirst_lc|UV c +Ap |bool |is_uni_alpha_lc|UV c +Ap |bool |is_uni_ascii_lc|UV c +Ap |bool |is_uni_space_lc|UV c +Ap |bool |is_uni_cntrl_lc|UV c +Ap |bool |is_uni_graph_lc|UV c +Ap |bool |is_uni_digit_lc|UV c +Ap |bool |is_uni_upper_lc|UV c +Ap |bool |is_uni_lower_lc|UV c +Ap |bool |is_uni_print_lc|UV c +Ap |bool |is_uni_punct_lc|UV c +Ap |bool |is_uni_xdigit_lc|UV c +Apd |STRLEN |is_utf8_char |U8 *p +Apd |bool |is_utf8_string |U8 *s|STRLEN len Ap |bool |is_utf8_alnum |U8 *p Ap |bool |is_utf8_alnumc |U8 *p Ap |bool |is_utf8_idfirst|U8 *p @@ -1642,19 +1402,27 @@ p |I32 |keyword |char* d|I32 len Ap |void |leave_scope |I32 base p |void |lex_end p |void |lex_start |SV* line +Ap |void |op_null |OP* o +p |void |op_clear |OP* o 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|... +Apd |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 +Apd |UV |grok_bin |char* start|STRLEN* len|I32* flags|NV *result +Apd |UV |grok_hex |char* start|STRLEN* len|I32* flags|NV *result +Apd |int |grok_number |const char *pv|STRLEN len|UV *valuep +Apd |bool |grok_numeric_radix|const char **sp|const char *send +Apd |UV |grok_oct |char* start|STRLEN* len|I32* flags|NV *result p |int |magic_clearenv |SV* sv|MAGIC* mg p |int |magic_clear_all_env|SV* sv|MAGIC* mg p |int |magic_clearpack|SV* sv|MAGIC* mg p |int |magic_clearsig |SV* sv|MAGIC* mg p |int |magic_existspack|SV* sv|MAGIC* mg p |int |magic_freeregexp|SV* sv|MAGIC* mg +p |int |magic_freeovrld|SV* sv|MAGIC* mg p |int |magic_get |SV* sv|MAGIC* mg p |int |magic_getarylen|SV* sv|MAGIC* mg p |int |magic_getdefelem|SV* sv|MAGIC* mg @@ -1668,12 +1436,13 @@ p |int |magic_gettaint |SV* sv|MAGIC* mg p |int |magic_getuvar |SV* sv|MAGIC* mg p |int |magic_getvec |SV* sv|MAGIC* mg p |U32 |magic_len |SV* sv|MAGIC* mg -#if defined(USE_THREADS) +#if defined(USE_5005THREADS) p |int |magic_mutexfree|SV* sv|MAGIC* mg #endif p |int |magic_nextpack |SV* sv|MAGIC* mg|SV* key p |U32 |magic_regdata_cnt|SV* sv|MAGIC* mg p |int |magic_regdatum_get|SV* sv|MAGIC* mg +p |int |magic_regdatum_set|SV* sv|MAGIC* mg p |int |magic_set |SV* sv|MAGIC* mg p |int |magic_setamagic|SV* sv|MAGIC* mg p |int |magic_setarylen|SV* sv|MAGIC* mg @@ -1707,6 +1476,7 @@ p |char* |mem_collxfrm |const char* s|STRLEN len|STRLEN* xlen Afp |SV* |mess |const char* pat|... Ap |SV* |vmess |const char* pat|va_list* args p |void |qerror |SV* err +Apd |void |sortsv |SV ** array|size_t num_elts|SVCOMPARE_t cmp Apd |int |mg_clear |SV* sv Apd |int |mg_copy |SV* sv|SV* nsv|const char* key|I32 klen Apd |MAGIC* |mg_find |SV* sv|int type @@ -1716,12 +1486,13 @@ Apd |U32 |mg_length |SV* sv Apd |void |mg_magical |SV* sv Apd |int |mg_set |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 Ap |char* |moreswitches |char* s p |OP* |my |OP* o Ap |NV |my_atof |const char *s -#if !defined(HAS_BCOPY) || !defined(HAS_SAFE_BCOPY) +#if (!defined(HAS_MEMCPY) && !defined(HAS_BCOPY)) || (!defined(HAS_MEMMOVE) && !defined(HAS_SAFE_MEMCPY) && !defined(HAS_SAFE_BCOPY)) Anp |char* |my_bcopy |const char* from|char* to|I32 len #endif #if !defined(HAS_BZERO) && !defined(HAS_MEMSET) @@ -1730,6 +1501,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 @@ -1737,12 +1511,12 @@ Anp |I32 |my_memcmp |const char* s1|const char* s2|I32 len #if !defined(HAS_MEMSET) Anp |void* |my_memset |char* loc|I32 ch|I32 len #endif -#if !defined(PERL_OBJECT) Ap |I32 |my_pclose |PerlIO* ptr Ap |PerlIO*|my_popen |char* cmd|char* mode -#endif +Ap |PerlIO*|my_popen_list |char* mode|int n|SV ** args Ap |void |my_setenv |char* nam|char* val Ap |I32 |my_stat +Ap |char * |my_strftime |char *fmt|int sec|int min|int hour|int mday|int mon|int year|int wday|int yday|int isdst #if defined(MYSWAP) Ap |short |my_swap |short s Ap |long |my_htonl |long l @@ -1754,7 +1528,7 @@ Ap |OP* |newANONHASH |OP* o Ap |OP* |newANONSUB |I32 floor|OP* proto|OP* block Ap |OP* |newASSIGNOP |I32 flags|OP* left|I32 optype|OP* right Ap |OP* |newCONDOP |I32 flags|OP* expr|OP* trueop|OP* falseop -Apd |void |newCONSTSUB |HV* stash|char* name|SV* sv +Apd |CV* |newCONSTSUB |HV* stash|char* name|SV* sv Ap |void |newFORM |I32 floor|OP* o|OP* block Ap |OP* |newFOROP |I32 flags|char* label|line_t forline \ |OP* sclr|OP* expr|OP*block|OP*cont @@ -1786,7 +1560,7 @@ Ap |OP* |newPMOP |I32 type|I32 flags 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 @@ -1794,6 +1568,7 @@ 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 +Apd |SV* |newSVpvn_share |const char* s|I32 len|U32 hash Afpd |SV* |newSVpvf |const char* pat|... Ap |SV* |vnewSVpvf |const char* pat|va_list* args Apd |SV* |newSVrv |SV* rv|const char* classname @@ -1803,6 +1578,7 @@ Ap |OP* |newWHILEOP |I32 flags|I32 debuggable|LOOP* loop \ |I32 whileline|OP* expr|OP* block|OP* cont Ap |PERL_SI*|new_stackinfo|I32 stitems|I32 cxitems +Apd |char* |new_vstring |char *vstr|SV *sv p |PerlIO*|nextargv |GV* gv Ap |char* |ninstr |const char* big|const char* bigend \ |const char* little|const char* lend @@ -1820,15 +1596,8 @@ p |void |pad_free |PADOFFSET po p |void |pad_reset p |void |pad_swipe |PADOFFSET po p |void |peep |OP* o -#if defined(PERL_OBJECT) -Aox |void |Perl_construct -Aox |void |Perl_destruct -Aox |void |Perl_free -Aox |int |Perl_run -Aox |int |Perl_parse |XSINIT_t xsinit \ - |int argc|char** argv|char** env -#endif -#if defined(USE_THREADS) +dopM |PerlIO*|start_glob |SV* pattern|IO *io +#if defined(USE_5005THREADS) Ap |struct perl_thread* |new_struct_thread|struct perl_thread *t #endif Ap |void |call_atexit |ATEXIT_t fn|void *ptr @@ -1836,6 +1605,7 @@ Apd |I32 |call_argv |const char* sub_name|I32 flags|char** argv Apd |I32 |call_method |const char* methname|I32 flags Apd |I32 |call_pv |const char* sub_name|I32 flags Apd |I32 |call_sv |SV* sv|I32 flags +p |void |despatch_signals Apd |SV* |eval_pv |const char* p|I32 croak_on_error Apd |I32 |eval_sv |SV* sv|I32 flags Apd |SV* |get_sv |const char* name|I32 create @@ -1844,9 +1614,9 @@ Apd |HV* |get_hv |const char* name|I32 create Apd |CV* |get_cv |const char* name|I32 create Ap |int |init_i18nl10n |int printwarn Ap |int |init_i18nl14n |int printwarn -Ap |void |new_collate |const char* newcoll -Ap |void |new_ctype |const char* newctype -Ap |void |new_numeric |const char* newcoll +Ap |void |new_collate |char* newcoll +Ap |void |new_ctype |char* newctype +Ap |void |new_numeric |char* newcoll Ap |void |set_numeric_local Ap |void |set_numeric_radix Ap |void |set_numeric_standard @@ -1863,6 +1633,7 @@ Ap |void |push_scope p |OP* |ref |OP* o|I32 type p |OP* |refkids |OP* o|I32 type Ap |void |regdump |regexp* r +Ap |SV* |regclass_swash |struct regnode *n|bool doinit|SV **initsvp Ap |I32 |pregexec |regexp* prog|char* stringarg \ |char* strend|char* strbeg|I32 minend \ |SV* screamer|U32 nosave @@ -1883,7 +1654,7 @@ Ap |char* |rninstr |const char* big|const char* bigend \ Ap |Sighandler_t|rsignal |int i|Sighandler_t t p |int |rsignal_restore|int i|Sigsave_t* t p |int |rsignal_save |int i|Sighandler_t t1|Sigsave_t* t2 -p |Sighandler_t|rsignal_state|int i +Ap |Sighandler_t|rsignal_state|int i p |void |rxres_free |void** rsp p |void |rxres_restore |void** rsp|REGEXP* prx p |void |rxres_save |void** rsp|REGEXP* prx @@ -1919,12 +1690,14 @@ Ap |void |save_item |SV* item Ap |void |save_iv |IV* iv Ap |void |save_list |SV** sarg|I32 maxsarg Ap |void |save_long |long* longp +Ap |void |save_mortalizesv|SV* sv Ap |void |save_nogv |GV* gv p |void |save_op Ap |SV* |save_scalar |GV* gv Ap |void |save_pptr |char** pptr Ap |void |save_vptr |void* pptr Ap |void |save_re_context +Ap |void |save_padsv |PADOFFSET off Ap |void |save_sptr |SV** sptr Ap |SV* |save_svref |SV** sptr Ap |SV** |save_threadsv |PADOFFSET i @@ -1933,10 +1706,10 @@ p |OP* |scalar |OP* o p |OP* |scalarkids |OP* o p |OP* |scalarseq |OP* o p |OP* |scalarvoid |OP* o -Ap |NV |scan_bin |char* start|I32 len|I32* retlen -Ap |NV |scan_hex |char* start|I32 len|I32* retlen -Ap |char* |scan_num |char* s -Ap |NV |scan_oct |char* start|I32 len|I32* retlen +Apd |NV |scan_bin |char* start|STRLEN len|STRLEN* retlen +Apd |NV |scan_hex |char* start|STRLEN len|STRLEN* retlen +Ap |char* |scan_num |char* s|YYSTYPE *lvalp +Apd |NV |scan_oct |char* start|STRLEN len|STRLEN* retlen p |OP* |scope |OP* o Ap |char* |screaminstr |SV* bigsv|SV* littlesv|I32 start_shift \ |I32 end_shift|I32 *state|I32 last @@ -1944,54 +1717,55 @@ Ap |char* |screaminstr |SV* bigsv|SV* littlesv|I32 start_shift \ p |I32 |setenv_getix |char* nam #endif p |void |setdefout |GV* gv -Ap |char* |sharepvn |const char* sv|I32 len|U32 hash p |HEK* |share_hek |const char* sv|I32 len|U32 hash np |Signal_t |sighandler |int sig 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 -Ap |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 -Ap |I32 |sv_true |SV *sv -p |void |sv_add_arena |char* ptr|U32 size|U32 flags -Ap |int |sv_backoff |SV* sv +Apd |NV |sv_2nv |SV* sv +Am |char* |sv_2pv |SV* sv|STRLEN* lp +Apd |char* |sv_2pvutf8 |SV* sv|STRLEN* lp +Apd |char* |sv_2pvbyte |SV* sv|STRLEN* lp +Ap |char* |sv_pvn_nomg |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 +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 Apd |void |sv_catpv |SV* sv|const char* ptr -Apd |void |sv_catpvn |SV* sv|const char* ptr|STRLEN len -Apd |void |sv_catsv |SV* dsv|SV* ssv +Amd |void |sv_catpvn |SV* sv|const char* ptr|STRLEN len +Amd |void |sv_catsv |SV* dsv|SV* ssv Apd |void |sv_chop |SV* sv|char* ptr -p |void |sv_clean_all -p |void |sv_clean_objs -Ap |void |sv_clear |SV* sv +pd |I32 |sv_clean_all +pd |void |sv_clean_objs +Apd |void |sv_clear |SV* sv Apd |I32 |sv_cmp |SV* sv1|SV* sv2 -Ap |I32 |sv_cmp_locale |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 |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 -Ap |void |sv_free |SV* sv -p |void |sv_free_arenas -Ap |char* |sv_gets |SV* sv|PerlIO* fp|I32 append +Apd |void |sv_free |SV* sv +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 Apd |void |sv_insert |SV* bigsv|STRLEN offset|STRLEN len \ @@ -1999,22 +1773,23 @@ Apd |void |sv_insert |SV* bigsv|STRLEN offset|STRLEN len \ Apd |int |sv_isa |SV* sv|const char* name Apd |int |sv_isobject |SV* sv Apd |STRLEN |sv_len |SV* sv -Ap |STRLEN |sv_len_utf8 |SV* sv +Apd |STRLEN |sv_len_utf8 |SV* sv Apd |void |sv_magic |SV* sv|SV* obj|int how|const char* name \ |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 -Ap |char* |sv_pvn_force |SV* sv|STRLEN* lp -Ap |char* |sv_pvutf8n_force|SV* sv|STRLEN* lp -Ap |char* |sv_pvbyten_force|SV* sv|STRLEN* lp -Ap |char* |sv_reftype |SV* sv|int ob -Ap |void |sv_replace |SV* sv|SV* nsv -Ap |void |sv_report_used -Ap |void |sv_reset |char* s|HV* stash +Apd |void |sv_pos_u2b |SV* sv|I32* offsetp|I32* lenp +Apd |void |sv_pos_b2u |SV* sv|I32* offsetp +Amd |char* |sv_pvn_force |SV* sv|STRLEN* lp +Apd |char* |sv_pvutf8n_force|SV* sv|STRLEN* lp +Apd |char* |sv_pvbyten_force|SV* sv|STRLEN* lp +Apd |char* |sv_recode_to_utf8 |SV* sv|SV *encoding +Apd |char* |sv_reftype |SV* sv|int ob +Apd |void |sv_replace |SV* sv|SV* nsv +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 @@ -2022,18 +1797,20 @@ Apd |void |sv_setpviv |SV* sv|IV num Apd |void |sv_setuv |SV* sv|UV num Apd |void |sv_setnv |SV* sv|NV num Apd |SV* |sv_setref_iv |SV* rv|const char* classname|IV iv +Apd |SV* |sv_setref_uv |SV* rv|const char* classname|UV uv Apd |SV* |sv_setref_nv |SV* rv|const char* classname|NV nv Apd |SV* |sv_setref_pv |SV* rv|const char* classname|void* pv Apd |SV* |sv_setref_pvn |SV* rv|const char* classname|char* pv \ |STRLEN n Apd |void |sv_setpv |SV* sv|const char* ptr Apd |void |sv_setpvn |SV* sv|const char* ptr|STRLEN len -Apd |void |sv_setsv |SV* dsv|SV* ssv -Ap |void |sv_taint |SV* sv -Ap |bool |sv_tainted |SV* sv -Ap |int |sv_unmagic |SV* sv|int type +Amd |void |sv_setsv |SV* dsv|SV* ssv +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 -Ap |void |sv_untaint |SV* sv +Apd |void |sv_unref_flags |SV* sv|U32 flags +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 \ @@ -2045,34 +1822,48 @@ Apd |void |sv_vsetpvfn |SV* sv|const char* pat|STRLEN patlen \ 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 +Ap |UV |swash_fetch |SV *sv|U8 *ptr|bool do_utf8 Ap |void |taint_env Ap |void |taint_proper |const char* f|const char* s -Ap |UV |to_utf8_lower |U8 *p -Ap |UV |to_utf8_upper |U8 *p -Ap |UV |to_utf8_title |U8 *p +Apd |UV |to_utf8_case |U8 *p|U8* ustrp|STRLEN *lenp \ + |SV **swash|char *normal|char *special +Ap |UV |to_utf8_lower |U8 *p|U8* ustrp|STRLEN *lenp +Ap |UV |to_utf8_upper |U8 *p|U8* ustrp|STRLEN *lenp +Ap |UV |to_utf8_title |U8 *p|U8* ustrp|STRLEN *lenp +Ap |UV |to_utf8_fold |U8 *p|U8* ustrp|STRLEN *lenp #if defined(UNLINK_ALL_VERSIONS) Ap |I32 |unlnk |char* f #endif -#if defined(USE_THREADS) +#if defined(USE_5005THREADS) Ap |void |unlock_condpair|void* svv #endif Ap |void |unsharepvn |const char* sv|I32 len|U32 hash p |void |unshare_hek |HEK* hek p |void |utilize |int aver|I32 floor|OP* version|OP* id|OP* arg -Ap |U8* |utf16_to_utf8 |U16* p|U8 *d|I32 bytelen -Ap |U8* |utf16_to_utf8_reversed|U16* p|U8 *d|I32 bytelen -Ap |I32 |utf8_distance |U8 *a|U8 *b -Ap |U8* |utf8_hop |U8 *s|I32 off -Ap |U8* |utf8_to_bytes |U8 *s|STRLEN len -Ap |U8* |bytes_to_utf8 |U8 *s|STRLEN *len -Ap |UV |utf8_to_uv |U8 *s|I32* retlen -Ap |U8* |uv_to_utf8 |U8 *d|UV uv +Ap |U8* |utf16_to_utf8 |U8* p|U8 *d|I32 bytelen|I32 *newlen +Ap |U8* |utf16_to_utf8_reversed|U8* p|U8 *d|I32 bytelen|I32 *newlen +Adp |STRLEN |utf8_length |U8* s|U8 *e +Apd |IV |utf8_distance |U8 *a|U8 *b +Apd |U8* |utf8_hop |U8 *s|I32 off +ApMd |U8* |utf8_to_bytes |U8 *s|STRLEN *len +ApMd |U8* |bytes_from_utf8|U8 *s|STRLEN *len|bool *is_utf8 +ApMd |U8* |bytes_to_utf8 |U8 *s|STRLEN *len +Apd |UV |utf8_to_uvchr |U8 *s|STRLEN* retlen +Apd |UV |utf8_to_uvuni |U8 *s|STRLEN* retlen +Adp |UV |utf8n_to_uvchr |U8 *s|STRLEN curlen|STRLEN* retlen|U32 flags +Adp |UV |utf8n_to_uvuni |U8 *s|STRLEN curlen|STRLEN* retlen|U32 flags +Apd |U8* |uvchr_to_utf8 |U8 *d|UV uv +Ap |U8* |uvuni_to_utf8 |U8 *d|UV uv +Ap |U8* |uvchr_to_utf8_flags |U8 *d|UV uv|UV flags +Apd |U8* |uvuni_to_utf8_flags |U8 *d|UV uv|UV flags +Apd |char* |pv_uni_display |SV *dsv|U8 *spv|STRLEN len \ + |STRLEN pvlim|UV flags +Apd |char* |sv_uni_display |SV *dsv|SV *ssv|STRLEN pvlim|UV flags p |void |vivify_defelem |SV* sv p |void |vivify_ref |SV* sv|U32 to_what p |I32 |wait4pid |Pid_t pid|int* statusp|int flags -p |void |report_closed_fh|GV *gv|IO *io|const char *func|const char *obj -p |void |report_uninit +p |void |report_evil_fh |GV *gv|IO *io|I32 op +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|... @@ -2080,11 +1871,10 @@ Ap |void |vwarner |U32 err|const char* pat|va_list* args p |void |watch |char** addr Ap |I32 |whichsig |char* sig p |int |yyerror |char* s -#if defined(USE_PURE_BISON) -p |int |yylex |YYSTYPE *lvalp|int *lcharp -#else -p |int |yylex +#ifdef USE_PURE_BISON +p |int |yylex_r |YYSTYPE *lvalp|int *lcharp #endif +p |int |yylex p |int |yyparse p |int |yywarn |char* s #if defined(MYMALLOC) @@ -2106,6 +1896,9 @@ Ap |struct perl_vars *|GetVars #endif Ap |int |runops_standard Ap |int |runops_debug +#if defined(USE_5005THREADS) +Ap |SV* |sv_lock |SV *sv +#endif Afpd |void |sv_catpvf_mg |SV *sv|const char* pat|... Ap |void |sv_vcatpvf_mg |SV* sv|const char* pat|va_list* args Apd |void |sv_catpv_mg |SV *sv|const char *ptr @@ -2122,7 +1915,7 @@ Apd |void |sv_setpvn_mg |SV *sv|const char *ptr|STRLEN len Apd |void |sv_setsv_mg |SV *dstr|SV *sstr Apd |void |sv_usepvn_mg |SV *sv|char *ptr|STRLEN len Ap |MGVTBL*|get_vtbl |int vtbl_id -p |char* |pv_display |SV *sv|char *pv|STRLEN cur|STRLEN len \ +p |char* |pv_display |SV *dsv|char *pv|STRLEN cur|STRLEN len \ |STRLEN pvlim Afp |void |dump_indent |I32 level|PerlIO *file|const char* pat|... Ap |void |dump_vindent |I32 level|PerlIO *file|const char* pat \ @@ -2144,19 +1937,20 @@ 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 -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 +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 +Amd |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 +Apd |void |sv_force_normal|SV *sv +Apd |void |sv_force_normal_flags|SV *sv|U32 flags Ap |void |tmps_grow |I32 n -Ap |SV* |sv_rvweaken |SV *sv +Apd |SV* |sv_rvweaken |SV *sv p |int |magic_killbackrefs|SV *sv|MAGIC *mg Ap |OP* |newANONATTRSUB |I32 floor|OP *proto|OP *attrs|OP *block Ap |CV* |newATTRSUB |I32 floor|OP *o|OP *proto|OP *attrs|OP *block @@ -2164,17 +1958,17 @@ Ap |void |newMYSUB |I32 floor|OP *o|OP *proto|OP *attrs|OP *block 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 |PerlIO*|fp_dup |PerlIO* fp|char type +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|CLONE_PARAMS* param 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 @@ -2183,17 +1977,19 @@ Ap |PTR_TBL_t*|ptr_table_new Ap |void* |ptr_table_fetch|PTR_TBL_t *tbl|void *sv Ap |void |ptr_table_store|PTR_TBL_t *tbl|void *oldsv|void *newsv Ap |void |ptr_table_split|PTR_TBL_t *tbl +Ap |void |ptr_table_clear|PTR_TBL_t *tbl +Ap |void |ptr_table_free|PTR_TBL_t *tbl #endif #if defined(HAVE_INTERP_INTERN) Ap |void |sys_intern_clear Ap |void |sys_intern_init #endif -#if defined(PERL_OBJECT) -protected: -#else +Ap |char * |custom_op_name|OP* op +Ap |char * |custom_op_desc|OP* op + + END_EXTERN_C -#endif #if defined(PERL_IN_AV_C) || defined(PERL_DECL_PROT) s |I32 |avhv_index_sv |SV* sv @@ -2211,6 +2007,7 @@ s |I32 |do_trans_complex_utf8 |SV *sv #if defined(PERL_IN_GV_C) || defined(PERL_DECL_PROT) s |void |gv_init_sv |GV *gv|I32 sv_type +s |void |require_errno |GV *gv #endif #if defined(PERL_IN_HV_C) || defined(PERL_DECL_PROT) @@ -2240,8 +2037,6 @@ s |OP* |no_fh_allowed |OP *o s |OP* |scalarboolean |OP *o s |OP* |too_few_arguments|OP *o|char* name s |OP* |too_many_arguments|OP *o|char* name -s |void |op_clear |OP* o -s |void |null |OP* o s |PADOFFSET|pad_addlex |SV* name s |PADOFFSET|pad_findlex |char* name|PADOFFSET newoff|U32 seq \ |CV* startcv|I32 cx_ix|I32 saweval|U32 flags @@ -2250,13 +2045,15 @@ s |OP* |new_logop |I32 type|I32 flags|OP **firstp|OP **otherp s |void |simplify_sort |OP *o s |bool |is_handle_constructor |OP *o|I32 argnum s |char* |gv_ename |GV *gv +# if defined(DEBUG_CLOSURES) s |void |cv_dump |CV *cv +# endif s |CV* |cv_clone2 |CV *proto|CV *outside s |bool |scalar_mod_type|OP *o|I32 type -s |OP * |method_2entersub|OP *o|OP *o2|OP *svop -s |OP * |my_kid |OP *o|OP *attrs +s |OP * |my_kid |OP *o|OP *attrs|OP **imopsp s |OP * |dup_attrlist |OP *o -s |void |apply_attrs |HV *stash|SV *target|OP *attrs +s |void |apply_attrs |HV *stash|SV *target|OP *attrs|bool for_my +s |void |apply_attrs_my |HV *stash|OP *target|OP *attrs|OP **imopsp # if defined(PL_OP_SLAB_ALLOC) s |void* |Slab_Alloc |int m|size_t sz # endif @@ -2291,15 +2088,18 @@ 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) +# if defined(USE_5005THREADS) s |struct perl_thread * |init_main_thread # endif #endif #if defined(PERL_IN_PP_C) || defined(PERL_DECL_PROT) -s |void |doencodes |SV* sv|char* s|I32 len s |SV* |refto |SV* sv s |U32 |seed +#endif + +#if defined(PERL_IN_PP_PACK_C) || defined(PERL_DECL_PROT) +s |void |doencodes |SV* sv|char* s|I32 len s |SV* |mul128 |SV *sv|U8 m s |SV* |is_an_int |char *s|STRLEN l s |int |div128 |SV *pnum|bool *done @@ -2318,11 +2118,9 @@ s |I32 |dopoptolabel |char *label s |I32 |dopoptoloop |I32 startingblock s |I32 |dopoptosub |I32 startingblock s |I32 |dopoptosub_at |PERL_CONTEXT* cxstk|I32 startingblock -s |void |free_closures s |void |save_lines |AV *array|SV *sv s |OP* |doeval |int gimme|OP** startop s |PerlIO *|doopen_pmc |const char *name|const char *mode -s |void |qsortsv |SV ** array|size_t num_elts|SVCOMPARE_t f #endif #if defined(PERL_IN_PP_HOT_C) || defined(PERL_DECL_PROT) @@ -2342,40 +2140,41 @@ s |int |dooneliner |char *cmd|char *filename #endif #if defined(PERL_IN_REGCOMP_C) || defined(PERL_DECL_PROT) -s |regnode*|reg |I32|I32 * -s |regnode*|reganode |U8|U32 -s |regnode*|regatom |I32 * -s |regnode*|regbranch |I32 *|I32 -s |void |reguni |UV|char *|I32* -s |regnode*|regclass -s |regnode*|regclassutf8 +s |regnode*|reg |struct RExC_state_t*|I32|I32 * +s |regnode*|reganode |struct RExC_state_t*|U8|U32 +s |regnode*|regatom |struct RExC_state_t*|I32 * +s |regnode*|regbranch |struct RExC_state_t*|I32 *|I32 +s |void |reguni |struct RExC_state_t*|UV|char *|STRLEN* +s |regnode*|regclass |struct RExC_state_t* s |I32 |regcurly |char * -s |regnode*|reg_node |U8 -s |regnode*|regpiece |I32 * -s |void |reginsert |U8|regnode * -s |void |regoptail |regnode *|regnode * -s |void |regtail |regnode *|regnode * +s |regnode*|reg_node |struct RExC_state_t*|U8 +s |regnode*|regpiece |struct RExC_state_t*|I32 * +s |void |reginsert |struct RExC_state_t*|U8|regnode * +s |void |regoptail |struct RExC_state_t*|regnode *|regnode * +s |void |regtail |struct RExC_state_t*|regnode *|regnode * s |char*|regwhite |char *|char * -s |char*|nextchar +s |char*|nextchar |struct RExC_state_t* +# ifdef DEBUGGING s |regnode*|dumpuntil |regnode *start|regnode *node \ |regnode *last|SV* sv|I32 l s |void |put_byte |SV* sv|int c -s |void |scan_commit |struct scan_data_t *data -s |void |cl_anything |struct regnode_charclass_class *cl +# endif +s |void |scan_commit |struct RExC_state_t*|struct scan_data_t *data +s |void |cl_anything |struct RExC_state_t*|struct regnode_charclass_class *cl s |int |cl_is_anything |struct regnode_charclass_class *cl -s |void |cl_init |struct regnode_charclass_class *cl -s |void |cl_init_zero |struct regnode_charclass_class *cl +s |void |cl_init |struct RExC_state_t*|struct regnode_charclass_class *cl +s |void |cl_init_zero |struct RExC_state_t*|struct regnode_charclass_class *cl s |void |cl_and |struct regnode_charclass_class *cl \ |struct regnode_charclass_class *and_with -s |void |cl_or |struct regnode_charclass_class *cl \ +s |void |cl_or |struct RExC_state_t*|struct regnode_charclass_class *cl \ |struct regnode_charclass_class *or_with -s |I32 |study_chunk |regnode **scanp|I32 *deltap \ +s |I32 |study_chunk |struct RExC_state_t*|regnode **scanp|I32 *deltap \ |regnode *last|struct scan_data_t *data \ |U32 flags -s |I32 |add_data |I32 n|char *s +s |I32 |add_data |struct RExC_state_t*|I32 n|char *s rs |void|re_croak2 |const char* pat1|const char* pat2|... -s |I32 |regpposixcc |I32 value -s |void |checkposixcc +s |I32 |regpposixcc |struct RExC_state_t*|I32 value +s |void |checkposixcc |struct RExC_state_t* #endif #if defined(PERL_IN_REGEXEC_C) || defined(PERL_DECL_PROT) @@ -2383,18 +2182,20 @@ s |I32 |regmatch |regnode *prog s |I32 |regrepeat |regnode *p|I32 max s |I32 |regrepeat_hard |regnode *p|I32 max|I32 *lp s |I32 |regtry |regexp *prog|char *startpos -s |bool |reginclass |regnode *p|I32 c -s |bool |reginclassutf8 |regnode *f|U8* p +s |bool |reginclass |regnode *n|U8 *p|bool do_utf8sv_is_utf8 s |CHECKPOINT|regcppush |I32 parenfloor s |char*|regcppop s |char*|regcp_set_to |I32 ss s |void |cache_re |regexp *prog s |U8* |reghop |U8 *pos|I32 off +s |U8* |reghop3 |U8 *pos|I32 off|U8 *lim s |U8* |reghopmaybe |U8 *pos|I32 off +s |U8* |reghopmaybe3 |U8 *pos|I32 off|U8 *lim s |char* |find_byclass |regexp * prog|regnode *c|char *s|char *strend|char *startpos|I32 norun #endif -#if defined(PERL_IN_RUN_C) || defined(PERL_DECL_PROT) +#if defined(PERL_IN_DUMP_C) || defined(PERL_DECL_PROT) +s |CV* |deb_curcv |I32 ix s |void |debprof |OP *o #endif @@ -2402,6 +2203,17 @@ s |void |debprof |OP *o s |SV* |save_scalar_at |SV **sptr #endif +#if defined(USE_ITHREADS) +Adp |void |sharedsv_init +Adp |shared_sv* |sharedsv_new +Adp |shared_sv* |sharedsv_find |SV* sv +Adp |void |sharedsv_lock |shared_sv* ssv +Adp |void |sharedsv_unlock |shared_sv* ssv +p |void |sharedsv_unlock_scope |shared_sv* ssv +Adp |void |sharedsv_thrcnt_inc |shared_sv* ssv +Adp |void |sharedsv_thrcnt_dec |shared_sv* ssv +#endif + #if defined(PERL_IN_SV_C) || defined(PERL_DECL_PROT) s |IV |asIV |SV* sv s |UV |asUV |SV* sv @@ -2444,21 +2256,30 @@ s |void |del_xpvbm |XPVBM* p 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 +s |I32 |visit |SVFUNC_t f s |void |sv_add_backref |SV *tsv|SV *sv s |void |sv_del_backref |SV *sv -# if defined(DEBUGGING) +# ifdef DEBUGGING s |void |del_sv |SV *p # endif +# if !defined(NV_PRESERVES_UV) +s |int |sv_2iuv_non_preserve |SV *sv|I32 numtype +# endif +s |I32 |expect_number |char** pattern +# +# if defined(USE_ITHREADS) +s |SV* |gv_share |SV *sv +# endif #endif #if defined(PERL_IN_TOKE_C) || defined(PERL_DECL_PROT) s |void |check_uni s |void |force_next |I32 type -s |char* |force_version |char *start +s |char* |force_version |char *start|int guessing 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 @@ -2472,7 +2293,7 @@ s |char* |scan_trans |char *start s |char* |scan_word |char *s|char *dest|STRLEN destlen \ |int allow_package|STRLEN *slp s |char* |skipspace |char *s -s |char* |swallow_bom |char *s +s |char* |swallow_bom |U8 *s s |void |checkcomma |char *s|char *name|char *what s |void |force_ident |char *s|int kind s |void |incline |char *s @@ -2489,6 +2310,9 @@ s |char * |filter_gets |SV *sv|PerlIO *fp|STRLEN append s |HV * |find_in_my_stash|char *pkgname|I32 len s |SV* |new_constant |char *s|STRLEN len|const char *key|SV *sv \ |SV *pv|const char *type +# if defined(DEBUGGING) +s |void |tokereport |char *thing|char *s|I32 rv +# endif s |int |ao |int toketype s |void |depcom s |char* |incl_perldb @@ -2508,15 +2332,58 @@ s |I32 |cr_textfilter |int idx|SV *sv|int maxlen s |SV*|isa_lookup |HV *stash|const char *name|int len|int level #endif +#if defined(PERL_IN_LOCALE_C) || defined(PERL_DECL_PROT) +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 # endif #endif -Arp |SV* |lock |SV *sv +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 +Apd |char* |sv_2pv_flags |SV* sv|STRLEN* lp|I32 flags +Ap |char* |my_atof2 |const char *s|NV* value +#if !defined(HAS_SOCKETPAIR) && defined(HAS_SOCKET) +Apn |int |my_socketpair |int family|int type|int protocol|int fd[2] +#endif + + +#if defined(USE_PERLIO) && !defined(USE_SFIO) +Ap |int |PerlIO_close |PerlIO * +Ap |int |PerlIO_fill |PerlIO * +Ap |int |PerlIO_fileno |PerlIO * +Ap |int |PerlIO_eof |PerlIO * +Ap |int |PerlIO_error |PerlIO * +Ap |int |PerlIO_flush |PerlIO * +Ap |void |PerlIO_clearerr |PerlIO * +Ap |void |PerlIO_set_cnt |PerlIO *|int +Ap |void |PerlIO_set_ptrcnt |PerlIO *|STDCHAR *|int +Ap |void |PerlIO_setlinebuf |PerlIO * +Ap |SSize_t|PerlIO_read |PerlIO *|void *|Size_t +Ap |SSize_t|PerlIO_write |PerlIO *|const void *|Size_t +Ap |SSize_t|PerlIO_unread |PerlIO *|const void *|Size_t +Ap |Off_t |PerlIO_tell |PerlIO * +Ap |int |PerlIO_seek |PerlIO *|Off_t|int + +Ap |STDCHAR *|PerlIO_get_base |PerlIO * +Ap |STDCHAR *|PerlIO_get_ptr |PerlIO * +Ap |int |PerlIO_get_bufsiz |PerlIO * +Ap |int |PerlIO_get_cnt |PerlIO * + +Ap |PerlIO *|PerlIO_stdin +Ap |PerlIO *|PerlIO_stdout +Ap |PerlIO *|PerlIO_stderr +#endif /* PERLIO_LAYERS */ + +END_EXTERN_C -#if defined(PERL_OBJECT) -}; -#endif