From: Marcus Holland-Moritz Date: Mon, 29 May 2006 17:50:48 +0000 (+0000) Subject: Upgrade to Devel::PPPort 3.08_04 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=ba120f6f1adb8a4a568f647dd8537f80457a9536;p=p5sagit%2Fp5-mst-13.2.git Upgrade to Devel::PPPort 3.08_04 p4raw-id: //depot/perl@28332 --- diff --git a/ext/Devel/PPPort/Changes b/ext/Devel/PPPort/Changes index 115bba3..cd74b31 100755 --- a/ext/Devel/PPPort/Changes +++ b/ext/Devel/PPPort/Changes @@ -1,3 +1,11 @@ +3.08_04 - 2006-05-29 + + * update API info + * fix a bug in the automated API info generator that + caused slightly wrong output + * improve the speed of the automated API info generator; + we're now down from several hours to a few minutes + 3.08_03 - 2006-05-25 * update API info diff --git a/ext/Devel/PPPort/HACKERS b/ext/Devel/PPPort/HACKERS index c73d372..5ebd7f1 100644 --- a/ext/Devel/PPPort/HACKERS +++ b/ext/Devel/PPPort/HACKERS @@ -66,10 +66,15 @@ work with less than a certain version of Perl. This information is in turn used by F to mask API calls in the generated C file for these versions, so the process can be stopped by the time F compiles cleanly -and the dynamic linker is happy. (Actually, this process generates -false positives, so each API call is checked once more afterwards.) +and the dynamic linker is happy. (Actually, this process may generate +false positives, so by default each API call is checked once more +afterwards.) -Running C takes a couple of hours. +Running C takes about an hour, depending of course +on the machine you're running it on. If you run it with +the C<--nocheck> option, it won't recheck the API calls that failed +in the compilation stage and it'll take significantly less time. +Running with C<--nocheck> should usually be safe. When running C with the C<--base> option, it will generate the I todo files by disabling all functionality @@ -85,9 +90,13 @@ to figure out the baseline information for all remaining provided macros by scanning the include files in the F directory of various Perl versions. -It's not very often that one has to regenerate the baseline and -todo files, and the process hasn't been automated yet, but it's -basically only the following steps: +The whole process isn't platform independent. It has currently been +tested only under Linux, and it definitely requires at least C and +the C utility. + +It's not very often that one has to regenerate the baseline and todo +files. If you have to, you can either run F or just +execute the following steps by hand: =over 4 @@ -134,8 +143,6 @@ Finally, add the remaining baseline information by running =back -Alternatively, you can try to use the F script. - =head2 Implementation Residing in F is the "heart" of C. Each @@ -294,7 +301,7 @@ modify it under the same terms as Perl itself. =head1 SEE ALSO -See L. +See L and L. =cut diff --git a/ext/Devel/PPPort/Makefile.PL b/ext/Devel/PPPort/Makefile.PL index 6cb3a11..50599c6 100644 --- a/ext/Devel/PPPort/Makefile.PL +++ b/ext/Devel/PPPort/Makefile.PL @@ -4,9 +4,9 @@ # ################################################################################ # -# $Revision: 19 $ +# $Revision: 20 $ # $Author: mhx $ -# $Date: 2006/01/19 19:35:25 +0100 $ +# $Date: 2006/05/28 19:36:23 +0200 $ # ################################################################################ # @@ -43,10 +43,13 @@ else { @clean = qw{ $(H_FILES) PPPort.c }; +%depend = ( '$(OBJECT)' => '$(H_FILES)' ); + if ($opt{'apicheck'}) { $PL_FILES{'apicheck_c.PL'} = 'apicheck.c'; push @C_FILES, qw{ apicheck.c }; - push @clean, qw{ apicheck.c }; + push @clean, qw{ apicheck.c apicheck.i }; + $depend{'apicheck.i'} = 'ppport.h'; } if (eval $ExtUtils::MakeMaker::VERSION >= 6) { @@ -71,7 +74,7 @@ WriteMakefile( OBJECT => '$(BASEEXT)$(OBJ_EXT) $(O_FILES)', XSPROTOARG => '-noprototypes', clean => { FILES => "@clean" }, - depend => { '$(OBJECT)' => '$(H_FILES)' }, + depend => \%depend, @moreopts, ); @@ -93,3 +96,18 @@ POSTAMBLE return $post; } +sub MY::c_o { + package MY; + my $co = shift->SUPER::c_o(@_); + + $co .= <<'CO' if $::opt{'apicheck'} && $co !~ /^\.c\.i:/m; + +.SUFFIXES: .i + +.c.i: + $(CCCMD) -E -I$(PERL_INC) $(DEFINE) $*.c > $*.i +CO + + return $co; +} + diff --git a/ext/Devel/PPPort/PPPort.pm b/ext/Devel/PPPort/PPPort.pm index fe7557a..212b1a5 100644 --- a/ext/Devel/PPPort/PPPort.pm +++ b/ext/Devel/PPPort/PPPort.pm @@ -1012,7 +1012,7 @@ require DynaLoader; use strict; use vars qw($VERSION @ISA $data); -$VERSION = do { my @r = '$Snapshot: /Devel-PPPort/3.08_03 $' =~ /(\d+\.\d+(?:_\d+)?)/; @r ? $r[0] : '9.99' }; +$VERSION = do { my @r = '$Snapshot: /Devel-PPPort/3.08_04 $' =~ /(\d+\.\d+(?:_\d+)?)/; @r ? $r[0] : '9.99' }; @ISA = qw(DynaLoader); @@ -2310,7 +2310,7 @@ gv_handler||5.007001| gv_init_sv||| gv_init||| gv_name_set||5.009004| -gv_stashpvn|5.006000||p +gv_stashpvn|5.004000||p gv_stashpvs||5.009003| gv_stashpv||| gv_stashsv||| @@ -2640,7 +2640,7 @@ newAVREF||| newAV||| newBINOP||| newCONDOP||| -newCONSTSUB|5.006000||p +newCONSTSUB|5.004050||p newCVREF||| newDEFSVOP||| newFORM||| @@ -2670,7 +2670,7 @@ newPROG||| newPVOP||| newRANGE||| newRV_inc|5.004000||p -newRV_noinc|5.006000||p +newRV_noinc|5.004000||p newRV||| newSLICEOP||| newSTATEOP||| @@ -2683,7 +2683,7 @@ newSVnv||| newSVpvf_nocontext|||vn newSVpvf||5.004000|v newSVpvn_share||5.007001| -newSVpvn|5.006000||p +newSVpvn|5.004050||p newSVpvs_share||5.009003| newSVpvs|5.009003||p newSVpv||| @@ -3020,7 +3020,7 @@ sv_add_backref||| sv_backoff||| sv_bless||| sv_cat_decode||5.008001| -sv_catpv_mg|5.006000||p +sv_catpv_mg|5.004050||p sv_catpvf_mg_nocontext|||pvn sv_catpvf_mg|5.006000|5.004000|pv sv_catpvf_nocontext|||vn @@ -3093,7 +3093,7 @@ sv_pvbyte||5.006000| sv_pvn_force_flags||5.007002| sv_pvn_force|||p sv_pvn_nomg|5.007003||p -sv_pvn|5.006000||p +sv_pvn|5.005000||p sv_pvutf8n_force||5.006000| sv_pvutf8n||5.006000| sv_pvutf8||5.006000| @@ -3106,18 +3106,18 @@ sv_replace||| sv_report_used||| sv_reset||| sv_rvweaken||5.006000| -sv_setiv_mg|5.006000||p +sv_setiv_mg|5.004050||p sv_setiv||| sv_setnv_mg|5.006000||p sv_setnv||| -sv_setpv_mg|5.006000||p +sv_setpv_mg|5.004050||p sv_setpvf_mg_nocontext|||pvn sv_setpvf_mg|5.006000|5.004000|pv sv_setpvf_nocontext|||vn sv_setpvf||5.004000|v sv_setpviv_mg||5.008001| sv_setpviv||5.008001| -sv_setpvn_mg|5.006000||p +sv_setpvn_mg|5.004050||p sv_setpvn||| sv_setpvs|5.009004||p sv_setpv||| @@ -3128,11 +3128,11 @@ sv_setref_pv||| sv_setref_uv||5.007001| sv_setsv_cow||| sv_setsv_flags||5.007002| -sv_setsv_mg|5.006000||p +sv_setsv_mg|5.004050||p sv_setsv_nomg|5.007002||p sv_setsv||| -sv_setuv_mg|5.006000||p -sv_setuv|5.006000||p +sv_setuv_mg|5.004050||p +sv_setuv|5.004000||p sv_tainted||5.004000| sv_taint||5.004000| sv_true||5.005000| @@ -3151,7 +3151,7 @@ sv_utf8_downgrade||5.006000| sv_utf8_encode||5.006000| sv_utf8_upgrade_flags||5.007002| sv_utf8_upgrade||5.007001| -sv_uv|5.006000||p +sv_uv|5.005000||p sv_vcatpvf_mg|5.006000|5.004000|p sv_vcatpvfn||5.004000| sv_vcatpvf|5.006000|5.004000|p diff --git a/ext/Devel/PPPort/PPPort_pm.PL b/ext/Devel/PPPort/PPPort_pm.PL index f0b4416..2f81cb6 100644 --- a/ext/Devel/PPPort/PPPort_pm.PL +++ b/ext/Devel/PPPort/PPPort_pm.PL @@ -499,7 +499,7 @@ require DynaLoader; use strict; use vars qw($VERSION @ISA $data); -$VERSION = do { my @r = '$Snapshot: /Devel-PPPort/3.08_03 $' =~ /(\d+\.\d+(?:_\d+)?)/; @r ? $r[0] : '9.99' }; +$VERSION = do { my @r = '$Snapshot: /Devel-PPPort/3.08_04 $' =~ /(\d+\.\d+(?:_\d+)?)/; @r ? $r[0] : '9.99' }; @ISA = qw(DynaLoader); diff --git a/ext/Devel/PPPort/TODO b/ext/Devel/PPPort/TODO index 0517c99..6b77ebe 100644 --- a/ext/Devel/PPPort/TODO +++ b/ext/Devel/PPPort/TODO @@ -1,10 +1,5 @@ TODO: -* figure out why many of the function for which Perl_* exists - fail the automated API check - -* use 'nm' to more efficiently find 'undefined' symbols? - * implement snprintf with newSVpvf for >= 5.004, which is safer? * add support for my_vsnprintf? diff --git a/ext/Devel/PPPort/apicheck_c.PL b/ext/Devel/PPPort/apicheck_c.PL index b6a6c28..6a84536 100644 --- a/ext/Devel/PPPort/apicheck_c.PL +++ b/ext/Devel/PPPort/apicheck_c.PL @@ -4,9 +4,9 @@ # ################################################################################ # -# $Revision: 7 $ +# $Revision: 8 $ # $Author: mhx $ -# $Date: 2006/05/25 17:20:38 +0200 $ +# $Date: 2006/05/28 19:33:09 +0200 $ # ################################################################################ # @@ -23,7 +23,7 @@ use strict; my $out = 'apicheck.c'; my @api = map { /^--api=(\w+)$/ ? ($1) : () } @ARGV; -print "creating $out", (@ARGV ? " (@api)" : ''), "\n"; +print "creating $out", (@api ? " (@api)" : ''), "\n"; system $^X, 'parts/apicheck.pl', @api, $out and die "couldn't create $out\n"; diff --git a/ext/Devel/PPPort/devel/buildperl.pl b/ext/Devel/PPPort/devel/buildperl.pl index 4194f9a..792974a 100644 --- a/ext/Devel/PPPort/devel/buildperl.pl +++ b/ext/Devel/PPPort/devel/buildperl.pl @@ -5,9 +5,9 @@ # ################################################################################ # -# $Revision: 8 $ +# $Revision: 9 $ # $Author: mhx $ -# $Date: 2006/01/14 22:41:11 +0100 $ +# $Date: 2006/05/28 20:42:53 +0200 $ # ################################################################################ # @@ -395,12 +395,12 @@ and don't install them, run: =head1 COPYRIGHT -Copyright (c) 2004-2005, Marcus Holland-Moritz. +Copyright (c) 2004-2006, Marcus Holland-Moritz. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =head1 SEE ALSO -See L. +See L and L. diff --git a/ext/Devel/PPPort/devel/devtools.pl b/ext/Devel/PPPort/devel/devtools.pl index a2b1e26..076fa6f 100644 --- a/ext/Devel/PPPort/devel/devtools.pl +++ b/ext/Devel/PPPort/devel/devtools.pl @@ -4,9 +4,9 @@ # ################################################################################ # -# $Revision: 1 $ +# $Revision: 2 $ # $Author: mhx $ -# $Date: 2006/05/25 17:19:22 +0200 $ +# $Date: 2006/05/28 19:33:35 +0200 $ # ################################################################################ # @@ -66,8 +66,8 @@ sub run runtool({ 'out' => 'tmp.out', 'err' => 'tmp.err' }, $prog, @args); - my $out = new IO::File "tmp.out" || die "tmp.out: $!\n"; - my $err = new IO::File "tmp.err" || die "tmp.err: $!\n"; + my $out = IO::File->new("tmp.out") or die "tmp.out: $!\n"; + my $err = IO::File->new("tmp.err") or die "tmp.err: $!\n"; my %rval = ( status => $? >> 8, diff --git a/ext/Devel/PPPort/devel/mktodo b/ext/Devel/PPPort/devel/mktodo index 7eaffa8..4dda017 100644 --- a/ext/Devel/PPPort/devel/mktodo +++ b/ext/Devel/PPPort/devel/mktodo @@ -5,9 +5,9 @@ # ################################################################################ # -# $Revision: 12 $ +# $Revision: 13 $ # $Author: mhx $ -# $Date: 2006/05/25 17:22:31 +0200 $ +# $Date: 2006/05/28 19:36:03 +0200 $ # ################################################################################ # @@ -27,23 +27,16 @@ require 'devel/devtools.pl'; our %opt = ( base => 0, + check => 1, verbose => 0, ); -GetOptions(\%opt, qw( - base - verbose - )) or die; +GetOptions(\%opt, qw( base check! verbose )) or die; identify(); -# my $outdir = $opt{base} ? 'parts/base' : 'parts/todo'; my $outdir = 'parts/todo'; -# for (glob "$outdir/*") { -# unlink or die "$_: $!\n"; -# } - my $install = '/tmp/perl/install/default'; # my $install = '/tmp/perl/install/thread'; @@ -63,6 +56,7 @@ for (@perls) { my @args = ('--perl', $_->{path}, '--todo', "$outdir/$todo", '--version', "$_->{todo}"); push @args, '--base' if $opt{base}; push @args, '--verbose' if $opt{verbose}; + push @args, '--nocheck' unless $opt{check}; runperl('devel/mktodo.pl', @args) or die "error running mktodo.pl [$!] [$?]\n"; } diff --git a/ext/Devel/PPPort/devel/mktodo.pl b/ext/Devel/PPPort/devel/mktodo.pl index 9d3f2c8..326923d 100644 --- a/ext/Devel/PPPort/devel/mktodo.pl +++ b/ext/Devel/PPPort/devel/mktodo.pl @@ -5,9 +5,9 @@ # ################################################################################ # -# $Revision: 11 $ +# $Revision: 13 $ # $Author: mhx $ -# $Date: 2006/05/25 17:22:32 +0200 $ +# $Date: 2006/05/28 19:39:10 +0200 $ # ################################################################################ # @@ -25,6 +25,7 @@ use Getopt::Long; use Data::Dumper; use IO::File; use IO::Select; +use Config; use Time::HiRes qw( gettimeofday tv_interval ); require 'devel/devtools.pl'; @@ -33,10 +34,12 @@ our %opt = ( debug => 0, base => 0, verbose => 0, + check => 1, + shlib => 'blib/arch/auto/Devel/PPPort/PPPort.so', ); GetOptions(\%opt, qw( - perl=s todo=s version=s debug base verbose + perl=s todo=s version=s shlib=s debug base verbose check! )) or die; identify(); @@ -51,7 +54,7 @@ $ENV{SKIP_SLOW_TESTS} = 1; regen_all(); my %sym; -for (`nm $fullperl`) { +for (`$Config{nm} $fullperl`) { chomp; /\s+T\s+(\w+)\s*$/ and $sym{$1}++; } @@ -60,14 +63,19 @@ keys %sym >= 50 or die "less than 50 symbols found in $fullperl\n"; my %all = %{load_todo($opt{todo}, $opt{version})}; my @recheck; +my $symmap = get_apicheck_symbol_map(); + for (;;) { my $retry = 1; + my $trynm = 1; regen_apicheck(); + retry: - my $r = run(qw(make test)); - $r->{didnotrun} and die "couldn't run make test: $!\n"; - $r->{status} == 0 and last; my(@new, @tmp, %seen); + + my $r = run(qw(make)); + $r->{didnotrun} and die "couldn't run make: $!\n"; + for my $l (@{$r->{stderr}}) { if ($l =~ /_DPPP_test_(\w+)/) { if (!$seen{$1}++) { @@ -80,19 +88,48 @@ retry: } } } - if ($l =~ /undefined symbol: (?:[Pp]erl_)?(\w+)/) { - if (!$seen{$1}++) { - my @s = grep { exists $sym{$_} } $1, "Perl_$1", "perl_$1"; - push @new, [$1, @s ? "U (@s)" : "U"]; + } + + if ($r->{status} == 0) { + my @u; + my @usym; + + if ($trynm) { + @u = eval { find_undefined_symbols($fullperl, $opt{shlib}) }; + warn "warning: $@" if $@; + $trynm = 0; + } + + unless (@u) { + $r = run(qw(make test)); + $r->{didnotrun} and die "couldn't run make test: $!\n"; + $r->{status} == 0 and last; + + for my $l (@{$r->{stderr}}) { + if ($l =~ /undefined symbol: (\w+)/) { + push @u, $1; + } + } + } + + for my $u (@u) { + for my $m (keys %{$symmap->{$u}}) { + if (!$seen{$m}++) { + my $pl = $m; + $pl =~ s/^[Pp]erl_//; + my @s = grep { exists $sym{$_} } $pl, "Perl_$pl", "perl_$pl"; + push @new, [$m, @s ? "U (@s)" : "U"]; + } } } } + @new = grep !$all{$_->[0]}, @new; + unless (@new) { @new = grep !$all{$_->[0]}, @tmp; - # TODO: @recheck was here, find a better way to get recheck syms - # * try to grep out warnings before making symlist ? } + unless (@new) { if ($retry > 0) { $retry--; @@ -102,51 +139,56 @@ retry: print Dumper($r); die "no new TODO symbols found..."; } + # don't recheck undefined symbols reported by the dynamic linker push @recheck, map { $_->[0] } grep { $_->[1] !~ /^U/ } @new; + for (@new) { - printf "[$opt{version}] new symbol: %-30s # %s\n", @$_; + sym('new', @$_); $all{$_->[0]} = $_->[1]; } - write_todo($opt{todo}, $opt{version}, \%all); -} - -my $ifmt = '%' . length(scalar @recheck) . 'd'; -my $t0 = [gettimeofday]; - -RECHECK: for my $i (0 .. $#recheck) { - my $sym = $recheck[$i]; - my $cur = delete $all{$sym}; - - printf "[$opt{version}] chk symbol: %-30s # %s [$ifmt/$ifmt, ETA %s]\n", - $sym, $cur, $i + 1, scalar @recheck, eta($t0, $i, scalar @recheck); write_todo($opt{todo}, $opt{version}, \%all); +} - if ($cur eq "E (Perl_$sym)") { - # we can try a shortcut here - regen_apicheck($sym); - +if ($opt{check}) { + my $ifmt = '%' . length(scalar @recheck) . 'd'; + my $t0 = [gettimeofday]; + + RECHECK: for my $i (0 .. $#recheck) { + my $sym = $recheck[$i]; + my $cur = delete $all{$sym}; + + sym('chk', $sym, $cur, sprintf(" [$ifmt/$ifmt, ETA %s]", + $i + 1, scalar @recheck, eta($t0, $i, scalar @recheck))); + + write_todo($opt{todo}, $opt{version}, \%all); + + if ($cur eq "E (Perl_$sym)") { + # we can try a shortcut here + regen_apicheck($sym); + + my $r = run(qw(make test)); + + if (!$r->{didnotrun} && $r->{status} == 0) { + sym('del', $sym, $cur); + next RECHECK; + } + } + + # run the full test + regen_all(); + my $r = run(qw(make test)); - - if (!$r->{didnotrun} && $r->{status} == 0) { - printf "[$opt{version}] del symbol: %-30s # %s\n", $sym, $cur; - next RECHECK; + + $r->{didnotrun} and die "couldn't run make test: $!\n"; + + if ($r->{status} == 0) { + sym('del', $sym, $cur); + } + else { + $all{$sym} = $cur; } - } - - # run the full test - regen_all(); - - my $r = run(qw(make test)); - - $r->{didnotrun} and die "couldn't run make test: $!\n"; - - if ($r->{status} == 0) { - printf "[$opt{version}] del symbol: %-30s # %s\n", $sym, $cur; - } - else { - $all{$sym} = $cur; } } @@ -156,9 +198,24 @@ run(qw(make realclean)); exit 0; +sub sym +{ + my($what, $sym, $reason, $extra) = @_; + $extra ||= ''; + my %col = ( + 'new' => 'bold red', + 'chk' => 'bold magenta', + 'del' => 'bold green', + ); + $what = colored("$what symbol", $col{$what}); + + printf "[%s] %s %-30s # %s%s\n", + $opt{version}, $what, $sym, $reason, $extra; +} + sub regen_all { - my @mf_arg = ('--with-apicheck', 'OPTIMIZE=-O0'); + my @mf_arg = ('--with-apicheck', 'OPTIMIZE=-O0 -w'); push @mf_arg, qw( DEFINE=-DDPPP_APICHECK_NO_PPPORT_H ) if $opt{base}; # just to be sure @@ -214,3 +271,76 @@ sub write_todo } } +sub find_undefined_symbols +{ + my($perl, $shlib) = @_; + + my $ps = read_sym(file => $perl, options => [qw( --defined-only )]); + my $ls = read_sym(file => $shlib, options => [qw( --undefined-only )]); + + my @undefined; + + for my $sym (keys %$ls) { + unless (exists $ps->{$sym}) { + if ($sym !~ /\@/ and $sym !~ /^_/) { + push @undefined, $sym; + } + } + } + + return @undefined; +} + +sub read_sym +{ + my %opt = ( options => [], @_ ); + + my $r = run($Config{nm}, @{$opt{options}}, $opt{file}); + + if ($r->{didnotrun} or $r->{status}) { + die "cannot run $Config{nm}"; + } + + my %sym; + + for (@{$r->{stdout}}) { + chomp; + my($adr, $fmt, $sym) = /^\s*([[:xdigit:]]+)?\s+([ABCDGINRSTUVW?-])\s+(\S+)\s*$/i + or die "cannot parse $Config{nm} output:\n[$_]\n"; + $sym{$sym} = { format => $fmt }; + $sym{$sym}{address} = $adr if defined $adr; + } + + return \%sym; +} + +sub get_apicheck_symbol_map +{ + my $r = run(qw(make apicheck.i)); + + if ($r->{didnotrun} or $r->{status}) { + die "cannot run make apicheck.i"; + } + + my $fh = IO::File->new('apicheck.i') + or die "cannot open apicheck.i: $!"; + + local $_; + my %symmap; + my $cur; + + while (<$fh>) { + next if /^#/; + if (defined $cur) { + for my $sym (/\b([A-Za-z_]\w+)\b/g) { + $symmap{$sym}{$cur}++; + } + undef $cur if /^}$/; + } + else { + /_DPPP_test_(\w+)/ and $cur = $1; + } + } + + return \%symmap; +} diff --git a/ext/Devel/PPPort/devel/regenerate b/ext/Devel/PPPort/devel/regenerate index d280f3e..bdbda8b 100644 --- a/ext/Devel/PPPort/devel/regenerate +++ b/ext/Devel/PPPort/devel/regenerate @@ -5,9 +5,9 @@ # ################################################################################ # -# $Revision: 2 $ +# $Revision: 5 $ # $Author: mhx $ -# $Date: 2006/05/25 17:22:32 +0200 $ +# $Date: 2006/05/28 20:43:04 +0200 $ # ################################################################################ # @@ -29,10 +29,11 @@ use Pod::Usage; require 'devel/devtools.pl'; our %opt = ( - verbose => 0 + check => 1, + verbose => 0, ); -GetOptions(\%opt, qw( verbose )) or die pod2usage(); +GetOptions(\%opt, qw( check! verbose )) or die pod2usage(); identify(); @@ -83,10 +84,12 @@ for my $dir (qw( base todo )) { } my $T0 = time; +my @args = ddverbose(); +push @args, '--nocheck' unless $opt{check}; print "\nBuilding baseline files...\n\n"; -unless (runperl('devel/mktodo', '--base', ddverbose())) { +unless (runperl('devel/mktodo', '--base', @args)) { print "\nSomething went wrong while building the baseline files.\n"; quit_now(); } @@ -101,7 +104,7 @@ for my $src (glob 'parts/todo/5*') { print "\nBuilding todo files...\n\n"; -unless (runperl('devel/mktodo', ddverbose())) { +unless (runperl('devel/mktodo', @args)) { print "\nSomething went wrong while building the baseline files.\n"; quit_now(); } @@ -130,3 +133,29 @@ Don't forget to check in the files in parts/base and parts/todo. END +__END__ + +=head1 NAME + +regenerate - Automatically regeneate Devel::PPPort's API information + +=head1 SYNOPSIS + + regenerate [options] + + --nocheck don't recheck symbols that caused an error + --verbose show verbose output + +=head1 COPYRIGHT + +Copyright (c) 2006, Marcus Holland-Moritz. + +This program is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. + +=head1 SEE ALSO + +See L and L. + +=cut + diff --git a/ext/Devel/PPPort/parts/apicheck.pl b/ext/Devel/PPPort/parts/apicheck.pl index 45e1006..a1c6ebd 100644 --- a/ext/Devel/PPPort/parts/apicheck.pl +++ b/ext/Devel/PPPort/parts/apicheck.pl @@ -5,9 +5,9 @@ # ################################################################################ # -# $Revision: 19 $ +# $Revision: 20 $ # $Author: mhx $ -# $Date: 2006/05/25 17:21:23 +0200 $ +# $Date: 2006/05/28 19:35:39 +0200 $ # ################################################################################ # @@ -104,20 +104,6 @@ my %stack = ( XCPT_RETHROW => ['dXCPT;'], ); -my %postcode = ( - dSP => "some_global_var = !sp;", - dMARK => "some_global_var = !mark;", - dORIGMARK => "some_global_var = !origmark;", - dAX => "some_global_var = !ax;", - dITEMS => "some_global_var = !items;", - dXSARGS => "some_global_var = ax && items;", - NEWSV => "some_global_var = !arg1;", - New => "some_global_var = !arg1;", - Newc => "some_global_var = !arg1;", - Newz => "some_global_var = !arg1;", - dUNDERBAR => "(void) UNDERBAR;", -); - my %ignore = ( map { ($_ => 1) } qw( svtype @@ -145,7 +131,15 @@ print OUT <{name}} ? '(void) ' : ''; } else { - $ret = $ignorerv{$f->{name}} ? '(void) ' : "return "; + $stack .= " $rvt rval;\n"; + $ret = $ignorerv{$f->{name}} ? '(void) ' : "rval = "; } my $aTHX_args = "$aTHX$args"; - my $post = ''; - if ($postcode{$f->{name}}) { - $post = $postcode{$f->{name}}; - $post =~ s/^/ /g; - $post = "\n$post"; - } - unless ($f->{flags}{'m'} and @arg == 0) { $args = "($args)"; $aTHX_args = "($aTHX_args)"; @@ -294,24 +279,21 @@ HEAD $f->{cond} and print OUT "#if $f->{cond}\n"; print OUT <{name} (void) +void _DPPP_test_$f->{name} (void) { dXSARGS; $stack -#ifdef $f->{name} - if (some_global_var) { - $ret$f->{name}$args;$post - } +#ifdef $f->{name} + $ret$f->{name}$args; #endif - - some_global_var = items && ax; + } { #ifdef $f->{name} - $ret$final;$post + $ret$final; #else - $ret$Perl_$f->{name}$aTHX_args;$post + $ret$Perl_$f->{name}$aTHX_args; #endif } } diff --git a/ext/Devel/PPPort/parts/base/5004000 b/ext/Devel/PPPort/parts/base/5004000 index 523a205..41a7f96 100644 --- a/ext/Devel/PPPort/parts/base/5004000 +++ b/ext/Devel/PPPort/parts/base/5004000 @@ -3,13 +3,13 @@ GIMME_V # E G_VOID # E HEf_SVKEY # E HeHASH # U -HeKEY # E +HeKEY # U HeKLEN # U -HePV # E -HeSVKEY # E -HeSVKEY_force # E -HeSVKEY_set # E -HeVAL # E +HePV # U +HeSVKEY # U +HeSVKEY_force # U +HeSVKEY_set # U +HeVAL # U PUSHu # U SvSetMagicSV # U SvSetMagicSV_nosteal # U @@ -21,13 +21,48 @@ SvUV # U SvUVX # U SvUVx # U XPUSHu # U +block_gimme # E +call_list # E +cv_const_sv # E +delimcpy # E do_open # E (Perl_do_open) +gv_autoload4 # E gv_efullname3 # U +gv_fetchmethod_autoload # E gv_fullname3 # U +gv_stashpvn # E +hv_delayfree_ent # E +hv_delete_ent # E +hv_exists_ent # E +hv_fetch_ent # E +hv_free_ent # E +hv_iterkeysv # E +hv_ksplit # E +hv_store_ent # E +ibcmp_locale # E +my_failure_exit # E my_memcmp # U -newRV_inc # E +my_pclose # E (Perl_my_pclose) +my_popen # E (Perl_my_popen) +newRV_inc # U +newRV_noinc # E +rsignal # E +rsignal_state # E +save_I16 # E +save_gp # E +share_hek # E +start_subparse # E (Perl_start_subparse) sv_2uv # U +sv_cmp_locale # E +sv_derived_from # E +sv_gets # E (Perl_sv_gets) +sv_setuv # E sv_taint # U +sv_tainted # E +sv_untaint # E +sv_vcatpvfn # E +sv_vsetpvfn # E +unsharepvn # E PERL_INT_MAX # added by devel/scanprov PERL_INT_MIN # added by devel/scanprov PERL_LONG_MAX # added by devel/scanprov diff --git a/ext/Devel/PPPort/parts/base/5004050 b/ext/Devel/PPPort/parts/base/5004050 index fdd3c62..992642b 100644 --- a/ext/Devel/PPPort/parts/base/5004050 +++ b/ext/Devel/PPPort/parts/base/5004050 @@ -4,8 +4,19 @@ PL_sv_no # E PL_sv_undef # E PL_sv_yes # E SvGETMAGIC # U +do_binmode # E +newCONSTSUB # E +newSVpvn # E +save_aelem # E +save_helem # E +sv_catpv_mg # E sv_catpvn_mg # U sv_catsv_mg # U +sv_setiv_mg # E +sv_setpv_mg # E +sv_setpvn_mg # E +sv_setsv_mg # E +sv_setuv_mg # E sv_usepvn_mg # U AvFILLp # added by devel/scanprov DEFSV # added by devel/scanprov diff --git a/ext/Devel/PPPort/parts/base/5005000 b/ext/Devel/PPPort/parts/base/5005000 index 553a4be..c5781e8 100644 --- a/ext/Devel/PPPort/parts/base/5005000 +++ b/ext/Devel/PPPort/parts/base/5005000 @@ -1,5 +1,30 @@ 5.005000 PL_modglobal # E +cx_dump # U +debop # U +debprofdump # U +fbm_compile # E (Perl_fbm_compile) +fbm_instr # E (Perl_fbm_instr) +get_op_descs # E +get_op_names # E +init_stacks # E +mg_length # E +mg_size # E +newHVhv # E +new_stackinfo # E +regdump # U +regexec_flags # E +regnext # E (Perl_regnext) +runops_debug # E +runops_standard # E +save_hints # E +save_iv # E (save_iv) +screaminstr # E (Perl_screaminstr) +sv_iv # E +sv_peek # U +sv_pvn # E +sv_true # E +sv_uv # E END_EXTERN_C # added by devel/scanprov EXTERN_C # added by devel/scanprov NOOP # added by devel/scanprov diff --git a/ext/Devel/PPPort/parts/base/5005030 b/ext/Devel/PPPort/parts/base/5005030 index 3a7d375..f268c75 100644 --- a/ext/Devel/PPPort/parts/base/5005030 +++ b/ext/Devel/PPPort/parts/base/5005030 @@ -1,2 +1,4 @@ 5.005030 POPpx # E +get_vtbl # E +save_generic_svref # E diff --git a/ext/Devel/PPPort/parts/base/5006000 b/ext/Devel/PPPort/parts/base/5006000 index ea6360f..6a3c111 100644 --- a/ext/Devel/PPPort/parts/base/5006000 +++ b/ext/Devel/PPPort/parts/base/5006000 @@ -1,5 +1,4 @@ 5.006000 -Gv_AMupdate # E (Perl_Gv_AMupdate) POPn # E PUSHn # E SvIOK_UV # U @@ -10,41 +9,26 @@ SvNVX # E SvNV_set # E SvNVx # E SvPOK_only_UTF8 # U -SvPV_nolen # E -SvPVbyte # E -SvPVbyte_nolen # E -SvPVbytex # E -SvPVbytex_force # E -SvPVutf8 # E -SvPVutf8_force # E -SvPVutf8_nolen # E -SvPVutf8x # E -SvPVutf8x_force # E +SvPV_nolen # U +SvPVbyte # U +SvPVbyte_nolen # U +SvPVbytex # U +SvPVbytex_force # U +SvPVutf8 # U +SvPVutf8_force # U +SvPVutf8_nolen # U +SvPVutf8x # U +SvPVutf8x_force # U SvUTF8 # U SvUTF8_off # U SvUTF8_on # U XPUSHn # E XSRETURN_NV # E XST_mNV # E -amagic_call # E (Perl_amagic_call) -av_clear # E (Perl_av_clear) av_delete # E av_exists # E -av_extend # E (Perl_av_extend) -av_fetch # E (Perl_av_fetch) -av_fill # E (Perl_av_fill) -av_len # E (Perl_av_len) -av_make # E (Perl_av_make) -av_pop # E (Perl_av_pop) -av_push # E (Perl_av_push) -av_shift # E (Perl_av_shift) -av_store # E (Perl_av_store) -av_undef # E (Perl_av_undef) -av_unshift # E (Perl_av_unshift) -block_gimme # E (Perl_block_gimme) call_argv # E (perl_call_argv) call_atexit # E -call_list # E (Perl_call_list) call_method # E (perl_call_method) call_pv # E (perl_call_pv) call_sv # E (perl_call_sv) @@ -53,94 +37,34 @@ cast_iv # E (cast_iv) cast_ulong # E cast_uv # E (cast_uv) croak # E (Perl_croak) -cv_const_sv # E (Perl_cv_const_sv) -cv_undef # E (Perl_cv_undef) -cx_dump # E (Perl_cx_dump) -debop # E (Perl_debop) -debprofdump # E (Perl_debprofdump) -delimcpy # E (Perl_delimcpy) die # E (Perl_die) -do_binmode # E (Perl_do_binmode) -do_close # E (Perl_do_close) do_gv_dump # E do_gvgv_dump # E do_hv_dump # E -do_join # E (Perl_do_join) do_magic_dump # E do_op_dump # E do_open9 # E do_pmop_dump # E -do_sprintf # E (Perl_do_sprintf) do_sv_dump # E -dounwind # E (Perl_dounwind) -dowantarray # E (Perl_dowantarray) -dump_all # E -dump_eval # E -dump_form # E +dump_all # U +dump_eval # U +dump_form # U dump_indent # E -dump_packsubs # E -dump_sub # E +dump_packsubs # U +dump_sub # U dump_vindent # E eval_pv # E (perl_eval_pv) eval_sv # E (perl_eval_sv) -fbm_compile # E (Perl_fbm_compile) -fbm_instr # E (Perl_fbm_instr) -filter_add # E (Perl_filter_add) -filter_del # E (Perl_filter_del) -filter_read # E (Perl_filter_read) form # E (Perl_form) -free_tmps # E (Perl_free_tmps) get_av # E (perl_get_av) -get_context # E +get_context # U get_cv # E (perl_get_cv) get_hv # E (perl_get_hv) -get_op_descs # E (Perl_get_op_descs) -get_op_names # E (Perl_get_op_names) get_ppaddr # E get_sv # E (perl_get_sv) -get_vtbl # E (Perl_get_vtbl) -gp_free # E (Perl_gp_free) -gp_ref # E (Perl_gp_ref) -gv_AVadd # E (Perl_gv_AVadd) -gv_HVadd # E (Perl_gv_HVadd) -gv_IOadd # E (Perl_gv_IOadd) -gv_autoload4 # E (Perl_gv_autoload4) -gv_check # E (Perl_gv_check) gv_dump # E -gv_efullname # E (Perl_gv_efullname) -gv_fetchfile # E (Perl_gv_fetchfile) -gv_fetchmeth # E (Perl_gv_fetchmeth) -gv_fetchmethod_autoload # E (Perl_gv_fetchmethod_autoload) -gv_fetchpv # E (Perl_gv_fetchpv) -gv_fullname # E (Perl_gv_fullname) -gv_init # E (Perl_gv_init) -gv_stashpv # E (Perl_gv_stashpv) -gv_stashpvn # E (Perl_gv_stashpvn) -gv_stashsv # E (Perl_gv_stashsv) -hv_clear # E (Perl_hv_clear) -hv_delayfree_ent # E (Perl_hv_delayfree_ent) -hv_delete # E (Perl_hv_delete) -hv_delete_ent # E (Perl_hv_delete_ent) -hv_exists # E (Perl_hv_exists) -hv_exists_ent # E (Perl_hv_exists_ent) -hv_fetch # E (Perl_hv_fetch) -hv_fetch_ent # E (Perl_hv_fetch_ent) -hv_free_ent # E (Perl_hv_free_ent) -hv_iterinit # E (Perl_hv_iterinit) -hv_iterkey # E (Perl_hv_iterkey) -hv_iterkeysv # E (Perl_hv_iterkeysv) -hv_iternextsv # E (Perl_hv_iternextsv) -hv_iterval # E (Perl_hv_iterval) -hv_ksplit # E (Perl_hv_ksplit) -hv_store # E (Perl_hv_store) -hv_store_ent # E (Perl_hv_store_ent) -hv_undef # E (Perl_hv_undef) -ibcmp # E (Perl_ibcmp) -ibcmp_locale # E (Perl_ibcmp_locale) init_i18nl10n # E (perl_init_i18nl10n) init_i18nl14n # E (perl_init_i18nl14n) -init_stacks # E (Perl_init_stacks) -instr # E (Perl_instr) is_uni_alnum # E is_uni_alnum_lc # E is_uni_alnumc # E @@ -185,257 +109,86 @@ is_utf8_punct # E is_utf8_space # E is_utf8_upper # E is_utf8_xdigit # E -leave_scope # E (Perl_leave_scope) load_module # E -looks_like_number # E (Perl_looks_like_number) magic_dump # E -markstack_grow # E (Perl_markstack_grow) mess # E (Perl_mess) -mg_clear # E (Perl_mg_clear) -mg_copy # E (Perl_mg_copy) -mg_find # E (Perl_mg_find) -mg_free # E (Perl_mg_free) -mg_get # E (Perl_mg_get) -mg_length # E (Perl_mg_length) -mg_magical # E (Perl_mg_magical) -mg_set # E (Perl_mg_set) -mg_size # E (Perl_mg_size) -moreswitches # E (Perl_moreswitches) my_atof # E -my_exit # E (Perl_my_exit) -my_failure_exit # E (Perl_my_failure_exit) my_fflush_all # E -my_lstat # E (Perl_my_lstat) -my_pclose # E (Perl_my_pclose) -my_popen # E (Perl_my_popen) -my_setenv # E (Perl_my_setenv) -my_stat # E (Perl_my_stat) newANONATTRSUB # E -newANONHASH # E (Perl_newANONHASH) -newANONLIST # E (Perl_newANONLIST) -newANONSUB # E (Perl_newANONSUB) -newASSIGNOP # E (Perl_newASSIGNOP) newATTRSUB # E -newAV # E (Perl_newAV) -newAVREF # E (Perl_newAVREF) -newBINOP # E (Perl_newBINOP) -newCONDOP # E (Perl_newCONDOP) -newCONSTSUB # E (Perl_newCONSTSUB) -newCVREF # E (Perl_newCVREF) -newFOROP # E (Perl_newFOROP) -newGVOP # E (Perl_newGVOP) -newGVREF # E (Perl_newGVREF) -newGVgen # E (Perl_newGVgen) -newHV # E (Perl_newHV) -newHVREF # E (Perl_newHVREF) -newHVhv # E (Perl_newHVhv) -newIO # E (Perl_newIO) -newLISTOP # E (Perl_newLISTOP) -newLOGOP # E (Perl_newLOGOP) -newLOOPEX # E (Perl_newLOOPEX) -newLOOPOP # E (Perl_newLOOPOP) -newNULLLIST # E (Perl_newNULLLIST) -newOP # E (Perl_newOP) newPADOP # E -newPMOP # E (Perl_newPMOP) -newPROG # E (Perl_newPROG) -newPVOP # E (Perl_newPVOP) -newRANGE # E (Perl_newRANGE) -newRV # E (Perl_newRV) -newRV_noinc # E (Perl_newRV_noinc) -newSLICEOP # E (Perl_newSLICEOP) -newSTATEOP # E (Perl_newSTATEOP) -newSUB # E (Perl_newSUB) -newSV # E (Perl_newSV) -newSVOP # E (Perl_newSVOP) -newSVREF # E (Perl_newSVREF) -newSViv # E (Perl_newSViv) newSVnv # E (Perl_newSVnv) -newSVpv # E (Perl_newSVpv) newSVpvf # E (Perl_newSVpvf) -newSVpvn # E (Perl_newSVpvn) -newSVrv # E (Perl_newSVrv) -newSVsv # E (Perl_newSVsv) newSVuv # E -newUNOP # E (Perl_newUNOP) newXS # E (Perl_newXS) newXSproto # E new_collate # E (perl_new_collate) new_ctype # E (perl_new_ctype) new_numeric # E (perl_new_numeric) -new_stackinfo # E (Perl_new_stackinfo) -ninstr # E (Perl_ninstr) op_dump # E -op_free # E (Perl_op_free) perl_parse # E (perl_parse) -pmflag # E (Perl_pmflag) pmop_dump # E -pop_scope # E (Perl_pop_scope) -pregcomp # E (Perl_pregcomp) -pregexec # E (Perl_pregexec) -pregfree # E (Perl_pregfree) -push_scope # E (Perl_push_scope) pv_display # E re_intuit_start # E re_intuit_string # E -regdump # E (Perl_regdump) -regexec_flags # E (Perl_regexec_flags) reginitcolors # E -regnext # E (Perl_regnext) -repeatcpy # E (Perl_repeatcpy) require_pv # E (perl_require_pv) -rninstr # E (Perl_rninstr) -rsignal # E (Perl_rsignal) -rsignal_state # E (Perl_rsignal_state) -runops_debug # E (Perl_runops_debug) -runops_standard # E (Perl_runops_standard) -safesyscalloc # E +safesyscalloc # U safesysfree # U -safesysmalloc # E -safesysrealloc # E -save_I16 # E (Perl_save_I16) -save_I32 # E (Perl_save_I32) +safesysmalloc # U +safesysrealloc # U save_I8 # E -save_aelem # E (Perl_save_aelem) save_alloc # E -save_aptr # E (Perl_save_aptr) -save_ary # E (Perl_save_ary) -save_clearsv # E (Perl_save_clearsv) -save_delete # E (Perl_save_delete) save_destructor # E (Perl_save_destructor) save_destructor_x # E -save_freepv # E (Perl_save_freepv) -save_freesv # E (Perl_save_freesv) -save_generic_svref # E (Perl_save_generic_svref) -save_gp # E (Perl_save_gp) -save_hash # E (Perl_save_hash) -save_helem # E (Perl_save_helem) -save_hints # E (Perl_save_hints) -save_hptr # E (Perl_save_hptr) -save_int # E (Perl_save_int) -save_item # E (Perl_save_item) -save_iv # E (Perl_save_iv) -save_list # E (Perl_save_list) -save_long # E (Perl_save_long) -save_nogv # E (Perl_save_nogv) -save_pptr # E (Perl_save_pptr) save_re_context # E -save_scalar # E (Perl_save_scalar) -save_sptr # E (Perl_save_sptr) -save_svref # E (Perl_save_svref) save_vptr # E -savepv # E (Perl_savepv) -savepvn # E (Perl_savepvn) -savestack_grow # E (Perl_savestack_grow) scan_bin # E scan_hex # E (Perl_scan_hex) scan_oct # E (Perl_scan_oct) -screaminstr # E (Perl_screaminstr) set_context # U set_numeric_local # E (perl_set_numeric_local) set_numeric_radix # E set_numeric_standard # E (perl_set_numeric_standard) -share_hek # E (Perl_share_hek) -stack_grow # E (Perl_stack_grow) -start_subparse # E (Perl_start_subparse) str_to_version # E -sv_2bool # E (Perl_sv_2bool) -sv_2cv # E (Perl_sv_2cv) -sv_2io # E (Perl_sv_2io) -sv_2mortal # E (Perl_sv_2mortal) sv_2nv # E (Perl_sv_2nv) -sv_2pv_nolen # E +sv_2pv_nolen # U sv_2pvbyte # E -sv_2pvbyte_nolen # E +sv_2pvbyte_nolen # U sv_2pvutf8 # E -sv_2pvutf8_nolen # E -sv_backoff # E (Perl_sv_backoff) -sv_bless # E (Perl_sv_bless) -sv_catpv # E (Perl_sv_catpv) -sv_catpv_mg # E (Perl_sv_catpv_mg) +sv_2pvutf8_nolen # U sv_catpvf # E (Perl_sv_catpvf) sv_catpvf_mg # E (Perl_sv_catpvf_mg) -sv_chop # E (Perl_sv_chop) -sv_clear # E (Perl_sv_clear) -sv_cmp # E (Perl_sv_cmp) -sv_cmp_locale # E (Perl_sv_cmp_locale) -sv_collxfrm # E (Perl_sv_collxfrm) -sv_dec # E (Perl_sv_dec) -sv_derived_from # E (Perl_sv_derived_from) -sv_dump # E (Perl_sv_dump) -sv_eq # E (Perl_sv_eq) sv_force_normal # U -sv_free # E (Perl_sv_free) -sv_gets # E (Perl_sv_gets) -sv_grow # E (Perl_sv_grow) -sv_inc # E (Perl_sv_inc) -sv_insert # E (Perl_sv_insert) -sv_isa # E (Perl_sv_isa) -sv_isobject # E (Perl_sv_isobject) -sv_iv # E (Perl_sv_iv) -sv_len # E (Perl_sv_len) sv_len_utf8 # E -sv_magic # E (Perl_sv_magic) -sv_mortalcopy # E (Perl_sv_mortalcopy) -sv_newmortal # E (Perl_sv_newmortal) -sv_newref # E (Perl_sv_newref) sv_nv # E (Perl_sv_nv) -sv_peek # E (Perl_sv_peek) sv_pos_b2u # E sv_pos_u2b # E -sv_pv # E -sv_pvbyte # E +sv_pv # U +sv_pvbyte # U sv_pvbyten # E sv_pvbyten_force # E -sv_pvn # E (Perl_sv_pvn) -sv_pvutf8 # E +sv_pvutf8 # U sv_pvutf8n # E sv_pvutf8n_force # E -sv_reftype # E (Perl_sv_reftype) -sv_replace # E (Perl_sv_replace) -sv_report_used # E (Perl_sv_report_used) -sv_reset # E (Perl_sv_reset) sv_rvweaken # E -sv_setiv # E (Perl_sv_setiv) -sv_setiv_mg # E (Perl_sv_setiv_mg) sv_setnv # E (Perl_sv_setnv) sv_setnv_mg # E (Perl_sv_setnv_mg) -sv_setpv # E (Perl_sv_setpv) -sv_setpv_mg # E (Perl_sv_setpv_mg) sv_setpvf # E (Perl_sv_setpvf) sv_setpvf_mg # E (Perl_sv_setpvf_mg) -sv_setpvn # E (Perl_sv_setpvn) -sv_setpvn_mg # E (Perl_sv_setpvn_mg) -sv_setref_iv # E (Perl_sv_setref_iv) sv_setref_nv # E (Perl_sv_setref_nv) -sv_setref_pv # E (Perl_sv_setref_pv) -sv_setref_pvn # E (Perl_sv_setref_pvn) -sv_setsv_mg # E (Perl_sv_setsv_mg) -sv_setuv # E (Perl_sv_setuv) -sv_setuv_mg # E (Perl_sv_setuv_mg) -sv_tainted # E (Perl_sv_tainted) -sv_true # E (Perl_sv_true) -sv_unmagic # E (Perl_sv_unmagic) -sv_untaint # E (Perl_sv_untaint) -sv_upgrade # E (Perl_sv_upgrade) sv_utf8_decode # E sv_utf8_downgrade # E sv_utf8_encode # E -sv_uv # E (Perl_sv_uv) sv_vcatpvf # E sv_vcatpvf_mg # E -sv_vcatpvfn # E (Perl_sv_vcatpvfn) sv_vsetpvf # E sv_vsetpvf_mg # E -sv_vsetpvfn # E (Perl_sv_vsetpvfn) swash_init # E -taint_env # E (Perl_taint_env) -taint_proper # E (Perl_taint_proper) tmps_grow # E to_uni_lower_lc # E to_uni_title_lc # E to_uni_upper_lc # E -unsharepvn # E (Perl_unsharepvn) utf8_distance # E utf8_hop # E vcroak # E @@ -447,7 +200,6 @@ vwarn # E vwarner # E warn # E (Perl_warn) warner # E -whichsig # E (Perl_whichsig) CopFILE # added by devel/scanprov CopFILEAV # added by devel/scanprov CopFILEGV # added by devel/scanprov diff --git a/ext/Devel/PPPort/parts/base/5006001 b/ext/Devel/PPPort/parts/base/5006001 index 5daad5a..a6369d5 100644 --- a/ext/Devel/PPPort/parts/base/5006001 +++ b/ext/Devel/PPPort/parts/base/5006001 @@ -1,14 +1,14 @@ 5.006001 -SvGAMAGIC # E +SvGAMAGIC # U apply_attrs_string # U -bytes_to_utf8 # E +bytes_to_utf8 # U gv_efullname4 # U gv_fullname4 # U is_utf8_string # U save_generic_pvref # U utf16_to_utf8 # E (Perl_utf16_to_utf8) utf16_to_utf8_reversed # E (Perl_utf16_to_utf8_reversed) -utf8_to_bytes # E +utf8_to_bytes # U NVef # added by devel/scanprov NVff # added by devel/scanprov NVgf # added by devel/scanprov diff --git a/ext/Devel/PPPort/parts/base/5007001 b/ext/Devel/PPPort/parts/base/5007001 index be36e35..08d952b 100644 --- a/ext/Devel/PPPort/parts/base/5007001 +++ b/ext/Devel/PPPort/parts/base/5007001 @@ -1,24 +1,24 @@ 5.007001 POPpbytex # E SvUOK # U -bytes_from_utf8 # E +bytes_from_utf8 # U despatch_signals # U do_openn # U -gv_handler # E +gv_handler # U is_lvalue_sub # U -my_popen_list # E -newSVpvn_share # E +my_popen_list # U +newSVpvn_share # U save_mortalizesv # U save_padsv # U scan_num # E (Perl_scan_num) sv_force_normal_flags # U -sv_setref_uv # E +sv_setref_uv # U sv_unref_flags # U sv_utf8_upgrade # E (Perl_sv_utf8_upgrade) utf8_length # U utf8_to_uvchr # U utf8_to_uvuni # U utf8n_to_uvuni # U -uvuni_to_utf8 # E +uvuni_to_utf8 # U PTR2ul # added by devel/scanprov UVXf # added by devel/scanprov diff --git a/ext/Devel/PPPort/parts/base/5007002 b/ext/Devel/PPPort/parts/base/5007002 index a526903..63b9ee7 100644 --- a/ext/Devel/PPPort/parts/base/5007002 +++ b/ext/Devel/PPPort/parts/base/5007002 @@ -1,26 +1,26 @@ 5.007002 -SvPV_force_nomg # E -SvPV_nomg # E -calloc # E +SvPV_force_nomg # U +SvPV_nomg # U +calloc # U dAX # E dITEMS # E getcwd_sv # U grok_number # U grok_numeric_radix # U init_tm # U -malloc # E +malloc # U mfree # U mini_mktime # U -my_atof2 # E -my_strftime # E +my_atof2 # U +my_strftime # U op_null # U -realloc # E -sv_2pv_flags # E +realloc # U +sv_2pv_flags # U sv_catpvn_flags # U sv_catpvn_nomg # U sv_catsv_flags # U sv_catsv_nomg # U -sv_pvn_force_flags # E +sv_pvn_force_flags # U sv_setsv_flags # U sv_setsv_nomg # U sv_utf8_upgrade_flags # U diff --git a/ext/Devel/PPPort/parts/base/5007003 b/ext/Devel/PPPort/parts/base/5007003 index 63a0449..325f06a 100644 --- a/ext/Devel/PPPort/parts/base/5007003 +++ b/ext/Devel/PPPort/parts/base/5007003 @@ -1,68 +1,68 @@ 5.007003 -PerlIO_clearerr # E (PerlIO_clearerr) -PerlIO_close # E (PerlIO_close) -PerlIO_eof # E (PerlIO_eof) -PerlIO_error # E (PerlIO_error) -PerlIO_fileno # E (PerlIO_fileno) -PerlIO_fill # E (PerlIO_fill) -PerlIO_flush # E (PerlIO_flush) -PerlIO_get_base # E (PerlIO_get_base) -PerlIO_get_bufsiz # E (PerlIO_get_bufsiz) -PerlIO_get_cnt # E (PerlIO_get_cnt) -PerlIO_get_ptr # E (PerlIO_get_ptr) -PerlIO_read # E (PerlIO_read) -PerlIO_seek # E (PerlIO_seek) -PerlIO_set_cnt # E (PerlIO_set_cnt) -PerlIO_set_ptrcnt # E (PerlIO_set_ptrcnt) -PerlIO_setlinebuf # E (PerlIO_setlinebuf) -PerlIO_stderr # E (PerlIO_stderr) -PerlIO_stdin # E (PerlIO_stdin) -PerlIO_stdout # E (PerlIO_stdout) -PerlIO_tell # E (PerlIO_tell) -PerlIO_unread # E (PerlIO_unread) -PerlIO_write # E (PerlIO_write) -SvLOCK # E -SvSHARE # E -SvUNLOCK # E -atfork_lock # E -atfork_unlock # E -custom_op_desc # E -custom_op_name # E +PerlIO_clearerr # U (PerlIO_clearerr) +PerlIO_close # U (PerlIO_close) +PerlIO_eof # U (PerlIO_eof) +PerlIO_error # U (PerlIO_error) +PerlIO_fileno # U (PerlIO_fileno) +PerlIO_fill # U (PerlIO_fill) +PerlIO_flush # U (PerlIO_flush) +PerlIO_get_base # U (PerlIO_get_base) +PerlIO_get_bufsiz # U (PerlIO_get_bufsiz) +PerlIO_get_cnt # U (PerlIO_get_cnt) +PerlIO_get_ptr # U (PerlIO_get_ptr) +PerlIO_read # U (PerlIO_read) +PerlIO_seek # U (PerlIO_seek) +PerlIO_set_cnt # U (PerlIO_set_cnt) +PerlIO_set_ptrcnt # U (PerlIO_set_ptrcnt) +PerlIO_setlinebuf # U (PerlIO_setlinebuf) +PerlIO_stderr # U (PerlIO_stderr) +PerlIO_stdin # U (PerlIO_stdin) +PerlIO_stdout # U (PerlIO_stdout) +PerlIO_tell # U (PerlIO_tell) +PerlIO_unread # U (PerlIO_unread) +PerlIO_write # U (PerlIO_write) +SvLOCK # U +SvSHARE # U +SvUNLOCK # U +atfork_lock # U +atfork_unlock # U +custom_op_desc # U +custom_op_name # U deb # U debstack # U debstackptrs # U -grok_bin # E -grok_hex # E -grok_oct # E -gv_fetchmeth_autoload # E -ibcmp_utf8 # E -my_fork # E -my_socketpair # E -pack_cat # E +grok_bin # U +grok_hex # U +grok_oct # U +gv_fetchmeth_autoload # U +ibcmp_utf8 # U +my_fork # U +my_socketpair # U +pack_cat # U perl_destruct # E (perl_destruct) -pv_uni_display # E -save_shared_pvref # E -savesharedpv # E -sortsv # E -sv_copypv # E -sv_magicext # E -sv_nolocking # E -sv_nosharing # E -sv_pvn_nomg # E -sv_recode_to_utf8 # E -sv_uni_display # E -to_uni_fold # E +pv_uni_display # U +save_shared_pvref # U +savesharedpv # U +sortsv # U +sv_copypv # U +sv_magicext # U +sv_nolocking # U +sv_nosharing # U +sv_pvn_nomg # U +sv_recode_to_utf8 # U +sv_uni_display # U +to_uni_fold # U to_uni_lower # E (Perl_to_uni_lower) to_uni_title # E (Perl_to_uni_title) to_uni_upper # E (Perl_to_uni_upper) -to_utf8_case # E -to_utf8_fold # E +to_utf8_case # U +to_utf8_fold # U to_utf8_lower # E (Perl_to_utf8_lower) to_utf8_title # E (Perl_to_utf8_title) to_utf8_upper # E (Perl_to_utf8_upper) -unpack_str # E -uvchr_to_utf8_flags # E -uvuni_to_utf8_flags # E +unpack_str # U +uvchr_to_utf8_flags # U +uvuni_to_utf8_flags # U vdeb # U IS_NUMBER_NAN # added by devel/scanprov MY_CXT # added by devel/scanprov diff --git a/ext/Devel/PPPort/parts/base/5008000 b/ext/Devel/PPPort/parts/base/5008000 index 9a91f3d..8af2dfa 100644 --- a/ext/Devel/PPPort/parts/base/5008000 +++ b/ext/Devel/PPPort/parts/base/5008000 @@ -1,7 +1,7 @@ 5.008000 Poison # E -hv_iternext_flags # E -hv_store_flags # E +hv_iternext_flags # U +hv_store_flags # U is_utf8_idcont # U nothreadhook # U WARN_LAYER # added by devel/scanprov diff --git a/ext/Devel/PPPort/parts/base/5008001 b/ext/Devel/PPPort/parts/base/5008001 index d0fec85..420b56c 100644 --- a/ext/Devel/PPPort/parts/base/5008001 +++ b/ext/Devel/PPPort/parts/base/5008001 @@ -6,7 +6,7 @@ is_utf8_string_loc # U packlist # U save_bool # U savestack_grow_cnt # U -scan_vstring # E +scan_vstring # U seed # U sv_cat_decode # U sv_compile_2op # E (Perl_sv_compile_2op) diff --git a/ext/Devel/PPPort/parts/base/5009000 b/ext/Devel/PPPort/parts/base/5009000 index 8c39ded..86f67f6 100644 --- a/ext/Devel/PPPort/parts/base/5009000 +++ b/ext/Devel/PPPort/parts/base/5009000 @@ -1,8 +1,8 @@ 5.009000 -new_version # E +new_version # U save_set_svflags # U -upg_version # E +upg_version # U vcmp # U -vnumify # E -vstringify # E +vnumify # U +vstringify # U WARN_ASSERTIONS # added by devel/scanprov diff --git a/ext/Devel/PPPort/parts/base/5009001 b/ext/Devel/PPPort/parts/base/5009001 index 335f490..14967d0 100644 --- a/ext/Devel/PPPort/parts/base/5009001 +++ b/ext/Devel/PPPort/parts/base/5009001 @@ -3,7 +3,7 @@ SvIV_nomg # U SvUV_nomg # U hv_assert # U hv_clear_placeholders # U -hv_scalar # E +hv_scalar # U scan_version # E (Perl_scan_version) sv_2iv_flags # U sv_2uv_flags # U diff --git a/ext/Devel/PPPort/parts/base/5009002 b/ext/Devel/PPPort/parts/base/5009002 index ffc0ffc..1b5b8f9 100644 --- a/ext/Devel/PPPort/parts/base/5009002 +++ b/ext/Devel/PPPort/parts/base/5009002 @@ -2,7 +2,7 @@ CopyD # E MoveD # E PUSHmortal # E -SvPVbyte_force # E +SvPVbyte_force # U UNDERBAR # E XCPT_CATCH # E XCPT_RETHROW # E @@ -13,8 +13,8 @@ ZeroD # E dUNDERBAR # E dXCPT # E find_rundefsvoffset # U -gv_fetchpvn_flags # E -gv_fetchsv # E +gv_fetchpvn_flags # U +gv_fetchsv # U mPUSHi # U mPUSHn # U mPUSHp # U @@ -25,6 +25,6 @@ mXPUSHp # U mXPUSHu # U op_refcnt_lock # U op_refcnt_unlock # U -savesvpv # E -vnormal # E +savesvpv # U +vnormal # U MY_CXT_CLONE # added by devel/scanprov diff --git a/ext/Devel/PPPort/parts/base/5009003 b/ext/Devel/PPPort/parts/base/5009003 index 10191c5..320fdfd 100644 --- a/ext/Devel/PPPort/parts/base/5009003 +++ b/ext/Devel/PPPort/parts/base/5009003 @@ -6,34 +6,34 @@ SvMAGIC_set # U SvRV_set # U SvSTASH_set # U SvUV_set # U -av_arylen_p # E +av_arylen_p # U ckwarn # U ckwarn_d # U csighandler # E (Perl_csighandler) dAXMARK # E dMULTICALL # E -doref # E -gv_const_sv # E -gv_stashpvs # E -hv_eiter_p # E +doref # U +gv_const_sv # U +gv_stashpvs # U +hv_eiter_p # U hv_eiter_set # U -hv_fetchs # E +hv_fetchs # U hv_name_set # U hv_placeholders_get # U -hv_placeholders_p # E +hv_placeholders_p # U hv_placeholders_set # U -hv_riter_p # E +hv_riter_p # U hv_riter_set # U is_utf8_string_loclen # U my_sprintf # U -newGIVENOP # E -newSVhek # E -newSVpvs # E -newSVpvs_share # E -newWHENOP # E +newGIVENOP # U +newSVhek # U +newSVpvs # U +newSVpvs_share # U +newWHENOP # U newWHILEOP # E (Perl_newWHILEOP) -ref # E (Perl_ref) -savepvs # E +ref # U (Perl_ref) +savepvs # U sortsv_flags # U sv_catpvs # U vverify # U diff --git a/ext/Devel/PPPort/parts/base/5009004 b/ext/Devel/PPPort/parts/base/5009004 index 6d0d84b..a3ec54a 100644 --- a/ext/Devel/PPPort/parts/base/5009004 +++ b/ext/Devel/PPPort/parts/base/5009004 @@ -2,22 +2,22 @@ MULTICALL # E POP_MULTICALL # E PUSH_MULTICALL # E -PerlIO_context_layers # E +PerlIO_context_layers # U PoisonFree # E PoisonNew # E PoisonWith # E -SvREFCNT_inc_NN # E -SvREFCNT_inc_simple # E -SvREFCNT_inc_simple_NN # E +SvREFCNT_inc_NN # U +SvREFCNT_inc_simple # U +SvREFCNT_inc_simple_NN # U SvREFCNT_inc_simple_void # U SvREFCNT_inc_simple_void_NN # U SvREFCNT_inc_void # U SvREFCNT_inc_void_NN # U gv_name_set # U -hv_stores # E +hv_stores # U my_snprintf # U my_vsnprintf # U -newXS_flags # E +newXS_flags # U pad_sv # U regclass_swash # E (Perl_regclass_swash) stashpv_hvname_match # U diff --git a/ext/Devel/PPPort/parts/inc/podtest b/ext/Devel/PPPort/parts/inc/podtest index 4dbb464..3243c17 100644 --- a/ext/Devel/PPPort/parts/inc/podtest +++ b/ext/Devel/PPPort/parts/inc/podtest @@ -1,8 +1,8 @@ ################################################################################ ## -## $Revision: 3 $ +## $Revision: 5 $ ## $Author: mhx $ -## $Date: 2006/05/24 09:25:00 +0200 $ +## $Date: 2006/05/28 20:43:18 +0200 $ ## ################################################################################ ## @@ -17,7 +17,7 @@ =tests plan => 0 -my @pods = qw( HACKERS PPPort.pm ppport.h ); +my @pods = qw( HACKERS PPPort.pm ppport.h devel/regenerate devel/buildperl.pl ); my $reason = ''; diff --git a/ext/Devel/PPPort/parts/todo/5004000 b/ext/Devel/PPPort/parts/todo/5004000 index 9ec8545..4d33a77 100644 --- a/ext/Devel/PPPort/parts/todo/5004000 +++ b/ext/Devel/PPPort/parts/todo/5004000 @@ -3,13 +3,13 @@ GIMME_V # E G_VOID # E HEf_SVKEY # E HeHASH # U -HeKEY # E +HeKEY # U HeKLEN # U -HePV # E -HeSVKEY # E -HeSVKEY_force # E -HeSVKEY_set # E -HeVAL # E +HePV # U +HeSVKEY # U +HeSVKEY_force # U +HeSVKEY_set # U +HeVAL # U SvSetMagicSV # U SvSetMagicSV_nosteal # U SvSetSV_nosteal # U @@ -18,28 +18,28 @@ SvTAINTED_off # U SvTAINTED_on # U block_gimme # U call_list # U -cv_const_sv # E -delimcpy # E +cv_const_sv # U +delimcpy # U do_open # E (Perl_do_open) -form # E -gv_autoload4 # E +form # U +gv_autoload4 # U gv_efullname3 # U -gv_fetchmethod_autoload # E +gv_fetchmethod_autoload # U gv_fullname3 # U hv_delayfree_ent # U -hv_delete_ent # E +hv_delete_ent # U hv_exists_ent # U -hv_fetch_ent # E +hv_fetch_ent # U hv_free_ent # U -hv_iterkeysv # E +hv_iterkeysv # U hv_ksplit # U -hv_store_ent # E +hv_store_ent # U ibcmp_locale # U my_failure_exit # U my_memcmp # U my_pclose # E (Perl_my_pclose) my_popen # E (Perl_my_popen) -newSVpvf # E +newSVpvf # U rsignal # E rsignal_state # E save_I16 # U @@ -63,5 +63,5 @@ sv_vsetpvf # U sv_vsetpvf_mg # U sv_vsetpvfn # U unsharepvn # U -vnewSVpvf # E +vnewSVpvf # U warner # U diff --git a/ext/Devel/PPPort/parts/todo/5005000 b/ext/Devel/PPPort/parts/todo/5005000 index 5c469b1..ef7078a 100644 --- a/ext/Devel/PPPort/parts/todo/5005000 +++ b/ext/Devel/PPPort/parts/todo/5005000 @@ -1,18 +1,18 @@ 5.005000 PL_modglobal # E cx_dump # U -debop # E +debop # U debprofdump # U fbm_compile # E (Perl_fbm_compile) fbm_instr # E (Perl_fbm_instr) -get_op_descs # E -get_op_names # E +get_op_descs # U +get_op_names # U init_stacks # U mg_length # U mg_size # U -newHVhv # E +newHVhv # U new_stackinfo # E -regdump # E +regdump # U regexec_flags # U regnext # E (Perl_regnext) runops_debug # U diff --git a/ext/Devel/PPPort/parts/todo/5005030 b/ext/Devel/PPPort/parts/todo/5005030 index 362e8f2..885afa0 100644 --- a/ext/Devel/PPPort/parts/todo/5005030 +++ b/ext/Devel/PPPort/parts/todo/5005030 @@ -1,4 +1,4 @@ 5.005030 POPpx # E -get_vtbl # E +get_vtbl # U save_generic_svref # U diff --git a/ext/Devel/PPPort/parts/todo/5006000 b/ext/Devel/PPPort/parts/todo/5006000 index 09e97c3..188f448 100644 --- a/ext/Devel/PPPort/parts/todo/5006000 +++ b/ext/Devel/PPPort/parts/todo/5006000 @@ -3,18 +3,18 @@ SvIOK_UV # U SvIOK_notUV # U SvIOK_only_UV # U SvPOK_only_UTF8 # U -SvPVbyte_nolen # E -SvPVbytex # E -SvPVbytex_force # E -SvPVutf8 # E -SvPVutf8_force # E -SvPVutf8_nolen # E -SvPVutf8x # E -SvPVutf8x_force # E +SvPVbyte_nolen # U +SvPVbytex # U +SvPVbytex_force # U +SvPVutf8 # U +SvPVutf8_force # U +SvPVutf8_nolen # U +SvPVutf8x # U +SvPVutf8x_force # U SvUTF8 # U SvUTF8_off # U SvUTF8_on # U -av_delete # E +av_delete # U av_exists # U call_atexit # E cast_i32 # U (cast_i32) @@ -31,12 +31,12 @@ do_pmop_dump # U do_sv_dump # U dump_all # U dump_eval # U -dump_form # E +dump_form # U dump_indent # U -dump_packsubs # E -dump_sub # E +dump_packsubs # U +dump_sub # U dump_vindent # U -get_context # E +get_context # U get_ppaddr # E gv_dump # U init_i18nl10n # U (perl_init_i18nl10n) @@ -90,9 +90,9 @@ magic_dump # U mess # E (Perl_mess) my_atof # U my_fflush_all # U -newANONATTRSUB # E -newATTRSUB # E -newPADOP # E +newANONATTRSUB # U +newATTRSUB # U +newPADOP # U newXS # E (Perl_newXS) newXSproto # E new_collate # U (perl_new_collate) @@ -101,15 +101,15 @@ new_numeric # U (perl_new_numeric) op_dump # U perl_parse # E (perl_parse) pmop_dump # U -pv_display # E -re_intuit_start # E -re_intuit_string # E +pv_display # U +re_intuit_start # U +re_intuit_string # U reginitcolors # U require_pv # U (perl_require_pv) -safesyscalloc # E +safesyscalloc # U safesysfree # U -safesysmalloc # E -safesysrealloc # E +safesysmalloc # U +safesysrealloc # U save_I8 # U save_alloc # U save_destructor # E (Perl_save_destructor) @@ -122,33 +122,33 @@ set_numeric_local # U (perl_set_numeric_local) set_numeric_radix # U set_numeric_standard # U (perl_set_numeric_standard) str_to_version # U -sv_2pvutf8 # E -sv_2pvutf8_nolen # E +sv_2pvutf8 # U +sv_2pvutf8_nolen # U sv_force_normal # U sv_len_utf8 # U sv_pos_b2u # U sv_pos_u2b # U -sv_pv # E -sv_pvbyte # E -sv_pvbyten # E -sv_pvbyten_force # E -sv_pvutf8 # E -sv_pvutf8n # E -sv_pvutf8n_force # E -sv_rvweaken # E +sv_pv # U +sv_pvbyte # U +sv_pvbyten # U +sv_pvbyten_force # U +sv_pvutf8 # U +sv_pvutf8n # U +sv_pvutf8n_force # U +sv_rvweaken # U sv_utf8_decode # U sv_utf8_downgrade # U sv_utf8_encode # U -swash_init # E +swash_init # U tmps_grow # U to_uni_lower_lc # U to_uni_title_lc # U to_uni_upper_lc # U utf8_distance # U -utf8_hop # E +utf8_hop # U vcroak # U -vform # E +vform # U vload_module # U -vmess # E +vmess # U vwarn # U vwarner # U diff --git a/ext/Devel/PPPort/parts/todo/5006001 b/ext/Devel/PPPort/parts/todo/5006001 index 59ceb46..3f4ea79 100644 --- a/ext/Devel/PPPort/parts/todo/5006001 +++ b/ext/Devel/PPPort/parts/todo/5006001 @@ -1,11 +1,11 @@ 5.006001 -SvGAMAGIC # E +SvGAMAGIC # U apply_attrs_string # U -bytes_to_utf8 # E +bytes_to_utf8 # U gv_efullname4 # U gv_fullname4 # U is_utf8_string # U save_generic_pvref # U utf16_to_utf8 # E (Perl_utf16_to_utf8) utf16_to_utf8_reversed # E (Perl_utf16_to_utf8_reversed) -utf8_to_bytes # E +utf8_to_bytes # U diff --git a/ext/Devel/PPPort/parts/todo/5007001 b/ext/Devel/PPPort/parts/todo/5007001 index 553e6d6..d9dc66f 100644 --- a/ext/Devel/PPPort/parts/todo/5007001 +++ b/ext/Devel/PPPort/parts/todo/5007001 @@ -1,22 +1,22 @@ 5.007001 POPpbytex # E SvUOK # U -bytes_from_utf8 # E +bytes_from_utf8 # U despatch_signals # U do_openn # U -gv_handler # E +gv_handler # U is_lvalue_sub # U -my_popen_list # E -newSVpvn_share # E +my_popen_list # U +newSVpvn_share # U save_mortalizesv # U save_padsv # U scan_num # E (Perl_scan_num) sv_force_normal_flags # U -sv_setref_uv # E +sv_setref_uv # U sv_unref_flags # U sv_utf8_upgrade # E (Perl_sv_utf8_upgrade) utf8_length # U utf8_to_uvchr # U utf8_to_uvuni # U utf8n_to_uvuni # U -uvuni_to_utf8 # E +uvuni_to_utf8 # U diff --git a/ext/Devel/PPPort/parts/todo/5007002 b/ext/Devel/PPPort/parts/todo/5007002 index 805bcae..f4f4b8d 100644 --- a/ext/Devel/PPPort/parts/todo/5007002 +++ b/ext/Devel/PPPort/parts/todo/5007002 @@ -1,18 +1,18 @@ 5.007002 -calloc # E +calloc # U getcwd_sv # U init_tm # U -malloc # E +malloc # U mfree # U mini_mktime # U -my_atof2 # E -my_strftime # E +my_atof2 # U +my_strftime # U op_null # U -realloc # E -sv_2pv_flags # E +realloc # U +sv_2pv_flags # U sv_catpvn_flags # U sv_catsv_flags # U -sv_pvn_force_flags # E +sv_pvn_force_flags # U sv_setsv_flags # U sv_utf8_upgrade_flags # U swash_fetch # E (Perl_swash_fetch) diff --git a/ext/Devel/PPPort/parts/todo/5007003 b/ext/Devel/PPPort/parts/todo/5007003 index 9a81d8d..2271d2b 100644 --- a/ext/Devel/PPPort/parts/todo/5007003 +++ b/ext/Devel/PPPort/parts/todo/5007003 @@ -1,62 +1,62 @@ 5.007003 -PerlIO_clearerr # E (PerlIO_clearerr) -PerlIO_close # E (PerlIO_close) -PerlIO_eof # E (PerlIO_eof) -PerlIO_error # E (PerlIO_error) -PerlIO_fileno # E (PerlIO_fileno) -PerlIO_fill # E (PerlIO_fill) -PerlIO_flush # E (PerlIO_flush) -PerlIO_get_base # E (PerlIO_get_base) -PerlIO_get_bufsiz # E (PerlIO_get_bufsiz) -PerlIO_get_cnt # E (PerlIO_get_cnt) -PerlIO_get_ptr # E (PerlIO_get_ptr) -PerlIO_read # E (PerlIO_read) -PerlIO_seek # E (PerlIO_seek) -PerlIO_set_cnt # E (PerlIO_set_cnt) -PerlIO_set_ptrcnt # E (PerlIO_set_ptrcnt) -PerlIO_setlinebuf # E (PerlIO_setlinebuf) -PerlIO_stderr # E (PerlIO_stderr) -PerlIO_stdin # E (PerlIO_stdin) -PerlIO_stdout # E (PerlIO_stdout) -PerlIO_tell # E (PerlIO_tell) -PerlIO_unread # E (PerlIO_unread) -PerlIO_write # E (PerlIO_write) -SvLOCK # E -SvSHARE # E -SvUNLOCK # E -atfork_lock # E -atfork_unlock # E -custom_op_desc # E -custom_op_name # E +PerlIO_clearerr # U (PerlIO_clearerr) +PerlIO_close # U (PerlIO_close) +PerlIO_eof # U (PerlIO_eof) +PerlIO_error # U (PerlIO_error) +PerlIO_fileno # U (PerlIO_fileno) +PerlIO_fill # U (PerlIO_fill) +PerlIO_flush # U (PerlIO_flush) +PerlIO_get_base # U (PerlIO_get_base) +PerlIO_get_bufsiz # U (PerlIO_get_bufsiz) +PerlIO_get_cnt # U (PerlIO_get_cnt) +PerlIO_get_ptr # U (PerlIO_get_ptr) +PerlIO_read # U (PerlIO_read) +PerlIO_seek # U (PerlIO_seek) +PerlIO_set_cnt # U (PerlIO_set_cnt) +PerlIO_set_ptrcnt # U (PerlIO_set_ptrcnt) +PerlIO_setlinebuf # U (PerlIO_setlinebuf) +PerlIO_stderr # U (PerlIO_stderr) +PerlIO_stdin # U (PerlIO_stdin) +PerlIO_stdout # U (PerlIO_stdout) +PerlIO_tell # U (PerlIO_tell) +PerlIO_unread # U (PerlIO_unread) +PerlIO_write # U (PerlIO_write) +SvLOCK # U +SvSHARE # U +SvUNLOCK # U +atfork_lock # U +atfork_unlock # U +custom_op_desc # U +custom_op_name # U deb # U debstack # U debstackptrs # U -gv_fetchmeth_autoload # E -ibcmp_utf8 # E -my_fork # E -my_socketpair # E -pack_cat # E +gv_fetchmeth_autoload # U +ibcmp_utf8 # U +my_fork # U +my_socketpair # U +pack_cat # U perl_destruct # E (perl_destruct) -pv_uni_display # E -save_shared_pvref # E -savesharedpv # E -sortsv # E -sv_copypv # E -sv_magicext # E -sv_nolocking # E -sv_nosharing # E -sv_recode_to_utf8 # E -sv_uni_display # E -to_uni_fold # E +pv_uni_display # U +save_shared_pvref # U +savesharedpv # U +sortsv # U +sv_copypv # U +sv_magicext # U +sv_nolocking # U +sv_nosharing # U +sv_recode_to_utf8 # U +sv_uni_display # U +to_uni_fold # U to_uni_lower # E (Perl_to_uni_lower) to_uni_title # E (Perl_to_uni_title) to_uni_upper # E (Perl_to_uni_upper) -to_utf8_case # E -to_utf8_fold # E +to_utf8_case # U +to_utf8_fold # U to_utf8_lower # E (Perl_to_utf8_lower) to_utf8_title # E (Perl_to_utf8_title) to_utf8_upper # E (Perl_to_utf8_upper) -unpack_str # E -uvchr_to_utf8_flags # E -uvuni_to_utf8_flags # E +unpack_str # U +uvchr_to_utf8_flags # U +uvuni_to_utf8_flags # U vdeb # U diff --git a/ext/Devel/PPPort/parts/todo/5008000 b/ext/Devel/PPPort/parts/todo/5008000 index 461ce9c..a22b04e 100644 --- a/ext/Devel/PPPort/parts/todo/5008000 +++ b/ext/Devel/PPPort/parts/todo/5008000 @@ -1,5 +1,5 @@ 5.008000 -hv_iternext_flags # E -hv_store_flags # E +hv_iternext_flags # U +hv_store_flags # U is_utf8_idcont # U nothreadhook # U diff --git a/ext/Devel/PPPort/parts/todo/5008001 b/ext/Devel/PPPort/parts/todo/5008001 index d269061..b0a018c 100644 --- a/ext/Devel/PPPort/parts/todo/5008001 +++ b/ext/Devel/PPPort/parts/todo/5008001 @@ -5,7 +5,7 @@ is_utf8_string_loc # U packlist # U save_bool # U savestack_grow_cnt # U -scan_vstring # E +scan_vstring # U seed # U sv_cat_decode # U sv_compile_2op # E (Perl_sv_compile_2op) diff --git a/ext/Devel/PPPort/parts/todo/5009000 b/ext/Devel/PPPort/parts/todo/5009000 index 8b45dc7..3b2ffc3 100644 --- a/ext/Devel/PPPort/parts/todo/5009000 +++ b/ext/Devel/PPPort/parts/todo/5009000 @@ -1,7 +1,7 @@ 5.009000 -new_version # E +new_version # U save_set_svflags # U -upg_version # E +upg_version # U vcmp # U -vnumify # E -vstringify # E +vnumify # U +vstringify # U diff --git a/ext/Devel/PPPort/parts/todo/5009001 b/ext/Devel/PPPort/parts/todo/5009001 index 19e05e4..4503f80 100644 --- a/ext/Devel/PPPort/parts/todo/5009001 +++ b/ext/Devel/PPPort/parts/todo/5009001 @@ -1,7 +1,7 @@ 5.009001 hv_assert # U hv_clear_placeholders # U -hv_scalar # E +hv_scalar # U scan_version # E (Perl_scan_version) sv_2iv_flags # U sv_2uv_flags # U diff --git a/ext/Devel/PPPort/parts/todo/5009002 b/ext/Devel/PPPort/parts/todo/5009002 index ae91fd7..c6d8a1e 100644 --- a/ext/Devel/PPPort/parts/todo/5009002 +++ b/ext/Devel/PPPort/parts/todo/5009002 @@ -1,9 +1,9 @@ 5.009002 -SvPVbyte_force # E +SvPVbyte_force # U find_rundefsvoffset # U -gv_fetchpvn_flags # E -gv_fetchsv # E +gv_fetchpvn_flags # U +gv_fetchsv # U op_refcnt_lock # U op_refcnt_unlock # U -savesvpv # E -vnormal # E +savesvpv # U +vnormal # U diff --git a/ext/Devel/PPPort/parts/todo/5009003 b/ext/Devel/PPPort/parts/todo/5009003 index a7e2147..b6bde5d 100644 --- a/ext/Devel/PPPort/parts/todo/5009003 +++ b/ext/Devel/PPPort/parts/todo/5009003 @@ -1,28 +1,28 @@ 5.009003 -av_arylen_p # E +av_arylen_p # U ckwarn # U ckwarn_d # U csighandler # E (Perl_csighandler) dMULTICALL # E -doref # E -gv_const_sv # E -gv_stashpvs # E -hv_eiter_p # E +doref # U +gv_const_sv # U +gv_stashpvs # U +hv_eiter_p # U hv_eiter_set # U hv_name_set # U hv_placeholders_get # U -hv_placeholders_p # E +hv_placeholders_p # U hv_placeholders_set # U -hv_riter_p # E +hv_riter_p # U hv_riter_set # U is_utf8_string_loclen # U my_sprintf # U -newGIVENOP # E -newSVhek # E -newSVpvs_share # E -newWHENOP # E +newGIVENOP # U +newSVhek # U +newSVpvs_share # U +newWHENOP # U newWHILEOP # E (Perl_newWHILEOP) -ref # E (Perl_ref) -savepvs # E +ref # U (Perl_ref) +savepvs # U sortsv_flags # U vverify # U diff --git a/ext/Devel/PPPort/parts/todo/5009004 b/ext/Devel/PPPort/parts/todo/5009004 index cc78c24..d234bee 100644 --- a/ext/Devel/PPPort/parts/todo/5009004 +++ b/ext/Devel/PPPort/parts/todo/5009004 @@ -2,10 +2,10 @@ MULTICALL # E POP_MULTICALL # E PUSH_MULTICALL # E -PerlIO_context_layers # E +PerlIO_context_layers # U gv_name_set # U my_vsnprintf # U -newXS_flags # E +newXS_flags # U pad_sv # U regclass_swash # E (Perl_regclass_swash) stashpv_hvname_match # U diff --git a/ext/Devel/PPPort/soak b/ext/Devel/PPPort/soak index ce7a655..fe2933a 100644 --- a/ext/Devel/PPPort/soak +++ b/ext/Devel/PPPort/soak @@ -33,7 +33,7 @@ use File::Find; use List::Util qw(max); use Config; -my $VERSION = do { my @r = '$Snapshot: /Devel-PPPort/3.08_03 $' =~ /(\d+\.\d+(?:_\d+)?)/; @r ? $r[0] : '9.99' }; +my $VERSION = do { my @r = '$Snapshot: /Devel-PPPort/3.08_04 $' =~ /(\d+\.\d+(?:_\d+)?)/; @r ? $r[0] : '9.99' }; $| = 1; my $verbose = 0; diff --git a/ext/Devel/PPPort/t/podtest.t b/ext/Devel/PPPort/t/podtest.t index f772a6a..257197f 100644 --- a/ext/Devel/PPPort/t/podtest.t +++ b/ext/Devel/PPPort/t/podtest.t @@ -36,7 +36,7 @@ use Devel::PPPort; use strict; $^W = 1; -my @pods = qw( HACKERS PPPort.pm ppport.h ); +my @pods = qw( HACKERS PPPort.pm ppport.h devel/regenerate devel/buildperl.pl ); my $reason = '';