dist/Devel-PPPort/devel/mktodo.pl Devel::PPPort baseline/todo generator
dist/Devel-PPPort/devel/regenerate Devel::PPPort API re-generator
dist/Devel-PPPort/devel/scanprov Devel::PPPort provided API scanner
+dist/Devel-PPPort/devel/update_release_date.pl Devel::PPPort timestamp builder
dist/Devel-PPPort/HACKERS Devel::PPPort hackers documentation
dist/Devel-PPPort/Makefile.PL Devel::PPPort makefile writer
dist/Devel-PPPort/MANIFEST.SKIP Devel::PPPort manifest skip file
dist/Devel-PPPort/parts/base/5027011 Devel::PPPort baseline todo file
dist/Devel-PPPort/parts/base/5028000 Devel::PPPort baseline todo file
dist/Devel-PPPort/parts/base/5028001 Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5028002 Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5028003 Devel::PPPort baseline todo file
dist/Devel-PPPort/parts/base/5029000 Devel::PPPort baseline todo file
dist/Devel-PPPort/parts/base/5029001 Devel::PPPort baseline todo file
dist/Devel-PPPort/parts/base/5029002 Devel::PPPort baseline todo file
dist/Devel-PPPort/parts/base/5029009 Devel::PPPort baseline todo file
dist/Devel-PPPort/parts/base/5029010 Devel::PPPort baseline todo file
dist/Devel-PPPort/parts/base/5030000 Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5030001 Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5030002 Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5030003 Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5031000 Devel::PPPort baseline todo file
dist/Devel-PPPort/parts/base/5031001 Devel::PPPort baseline todo file
dist/Devel-PPPort/parts/base/5031002 Devel::PPPort baseline todo file
dist/Devel-PPPort/parts/base/5031003 Devel::PPPort baseline todo file
dist/Devel-PPPort/parts/base/5031006 Devel::PPPort baseline todo file
dist/Devel-PPPort/parts/base/5031007 Devel::PPPort baseline todo file
dist/Devel-PPPort/parts/base/5031008
+dist/Devel-PPPort/parts/base/5031009 Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5031010 Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5031011 Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5032000 Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5033000 Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5033001 Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/base/5033002 Devel::PPPort baseline todo file
dist/Devel-PPPort/parts/embed.fnc Devel::PPPort Perl API listing
dist/Devel-PPPort/parts/inc/01_test Devel::PPPort include
dist/Devel-PPPort/parts/inc/call Devel::PPPort include
dist/Devel-PPPort/parts/todo/5027011 Devel::PPPort baseline todo file
dist/Devel-PPPort/parts/todo/5028000 Devel::PPPort baseline todo file
dist/Devel-PPPort/parts/todo/5028001 Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5028002 Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5028003 Devel::PPPort todo file
dist/Devel-PPPort/parts/todo/5029000 Devel::PPPort baseline todo file
dist/Devel-PPPort/parts/todo/5029001 Devel::PPPort baseline todo file
dist/Devel-PPPort/parts/todo/5029002 Devel::PPPort baseline todo file
dist/Devel-PPPort/parts/todo/5029009 Devel::PPPort baseline todo file
dist/Devel-PPPort/parts/todo/5029010 Devel::PPPort baseline todo file
dist/Devel-PPPort/parts/todo/5030000 Devel::PPPort baseline todo file
+dist/Devel-PPPort/parts/todo/5030001 Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5030002 Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5030003 Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5031000 Devel::PPPort todo file
dist/Devel-PPPort/parts/todo/5031001 Devel::PPPort baseline todo file
dist/Devel-PPPort/parts/todo/5031002 Devel::PPPort baseline todo file
dist/Devel-PPPort/parts/todo/5031003 Devel::PPPort baseline todo file
dist/Devel-PPPort/parts/todo/5031006 Devel::PPPort baseline todo file
dist/Devel-PPPort/parts/todo/5031007 Devel::PPPort baseline todo file
dist/Devel-PPPort/parts/todo/5031008
+dist/Devel-PPPort/parts/todo/5031009 Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5031010 Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5031011 Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5032000 Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5033000 Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5033001 Devel::PPPort todo file
+dist/Devel-PPPort/parts/todo/5033002 Devel::PPPort todo file
dist/Devel-PPPort/PPPort.xs Devel::PPPort dummy PPPort.xs
dist/Devel-PPPort/ppport_h.PL Devel::PPPort ppport.h writer
dist/Devel-PPPort/PPPort_pm.PL Devel::PPPort PPPort.pm writer
dist/Devel-PPPort/RealPPPort_xs.PL Devel::PPPort RealPPPort.xs writer
dist/Devel-PPPort/soak Devel::PPPort Test Harness to run under various Perls
-dist/Devel-PPPort/t/01_test.t Devel::PPPort test file
-dist/Devel-PPPort/t/call.t Devel::PPPort test file
-dist/Devel-PPPort/t/cop.t Devel::PPPort test file
-dist/Devel-PPPort/t/exception.t Devel::PPPort test file
-dist/Devel-PPPort/t/format.t Devel::PPPort test file
-dist/Devel-PPPort/t/grok.t Devel::PPPort test file
-dist/Devel-PPPort/t/gv.t Devel::PPPort test file
-dist/Devel-PPPort/t/HvNAME.t Devel::PPPort test file
-dist/Devel-PPPort/t/limits.t Devel::PPPort test file
-dist/Devel-PPPort/t/locale.t
-dist/Devel-PPPort/t/magic.t Devel::PPPort test file
-dist/Devel-PPPort/t/memory.t Devel::PPPort test file
-dist/Devel-PPPort/t/mess.t Devel::PPPort test file
-dist/Devel-PPPort/t/misc.t Devel::PPPort test file
-dist/Devel-PPPort/t/mPUSH.t Devel::PPPort test file
-dist/Devel-PPPort/t/MY_CXT.t Devel::PPPort test file
-dist/Devel-PPPort/t/newCONSTSUB.t Devel::PPPort test file
-dist/Devel-PPPort/t/newRV.t Devel::PPPort test file
-dist/Devel-PPPort/t/newSV_type.t Devel::PPPort test file
-dist/Devel-PPPort/t/newSVpv.t Devel::PPPort test file
-dist/Devel-PPPort/t/podtest.t Devel::PPPort test file
-dist/Devel-PPPort/t/ppphtest.t Devel::PPPort test file
-dist/Devel-PPPort/t/pv_tools.t Devel::PPPort test file
-dist/Devel-PPPort/t/pvs.t Devel::PPPort test file
-dist/Devel-PPPort/t/shared_pv.t Devel::PPPort test file
-dist/Devel-PPPort/t/snprintf.t Devel::PPPort test file
-dist/Devel-PPPort/t/sprintf.t Devel::PPPort test file
-dist/Devel-PPPort/t/strlfuncs.t Devel::PPPort test file
-dist/Devel-PPPort/t/Sv_set.t Devel::PPPort test file
-dist/Devel-PPPort/t/sv_xpvf.t Devel::PPPort test file
-dist/Devel-PPPort/t/SvPV.t Devel::PPPort test file
-dist/Devel-PPPort/t/SvREFCNT.t Devel::PPPort test file
-dist/Devel-PPPort/t/testutil.pl Devel::PPPort test utilities
-dist/Devel-PPPort/t/threads.t Devel::PPPort test file
-dist/Devel-PPPort/t/utf8.t
-dist/Devel-PPPort/t/uv.t Devel::PPPort test file
-dist/Devel-PPPort/t/variables.t Devel::PPPort test file
-dist/Devel-PPPort/t/warn.t Devel::PPPort test file
+dist/Devel-PPPort/t/testutil.pl Devel::PPPort test utilities
dist/Devel-PPPort/TODO Devel::PPPort developer notes
dist/Devel-PPPort/typemap Devel::PPPort Typemap
dist/Devel-SelfStubber/lib/Devel/SelfStubber.pm Generate stubs for SelfLoader.pm
cpan/CPAN-Meta-YAML/t/tml
cpan/Test-Harness/t/source_tests/source.sh
cpan/Test-Harness/t/source_tests/source_args.sh
+dist/Devel-PPPort/devel/mkapidoc.pl
dist/Devel-PPPort/devel/mktodo
dist/Devel-PPPort/devel/regenerate
dist/Devel-PPPort/devel/scanprov
+dist/Devel-PPPort/devel/update_release_date.pl
dist/Devel-PPPort/soak
installperl
installman
/README
/README.md
/.travis.yml
+/Devel-PPPort-*.tar.gz
+/Devel-PPPort-*/
+/t/*.t
Revision history for Devel-PPPort
+ 3.59 - 2020-08-10
+
+ * Add PERL_VERSION_* compare macros
+ * Stop versioning generated test files
+ * Enforce strict & warnings
+ * Avoid indirect calls
+ * scanprov: multiple improvements
+ * Use ivers() in tests
+ * Update POD documentation and HACKERS file
+
3.58 - 2020-03-09
* Safer definition of UVCHR_SKIP
=head2 How to backport something
First, make sure that what you want to backport is documented. If it's worth
-backporting, it surely is worth documenting. Send a documentation patch to
-L<perlbug@perl.org|mailto:perlbug@perl.org> if necessary. Also,
-C<Devel::PPPort> cannot automatically generate proper information about the
-item without at least knowing its API prototype. It can get this from
-F<embed.fnc> if the item is a function, but if it is a macro, there needs to be
-at least a S<C<=for apidoc>> line for C<Devel::PPPort> to be able to figure
-things out on its own.
+backporting, it surely is worth documenting. Submit a documentation patch to
+L<https://github.com/Perl/perl5/issues> if necessary. Also, C<Devel::PPPort>
+cannot automatically generate proper information about the item without at
+least knowing its API prototype. It can get this from F<embed.fnc> if the item
+is a function, but if it is a macro, there needs to be at least a S<C<=for
+apidoc>> line for C<Devel::PPPort> to be able to figure things out on its own.
Next, figure out where to place your implementation. Look at all the files in
F<parts/inc/> for one that fits what you're planning. If there isn't one,
It also means you have to check for and skip tests that aren't relevant to this
version. The recommended way to do this is like:
- if (ivers($]) < ivers(5.6.2)) {
+ if (ivers($]) < ivers(5.6)) { # No quotes needed
skip "reason", $count;
}
- elsif (if (ivers($]) > ivers(5.5) {
+ elsif (if (ivers($]) > ivers("5.5.4") {
+ # Quotes needed for double-dotted versions prior to 5.6.0
skip "other reason", $count;
}
+ else {
+ do_the_test
+ }
C<ivers()> is a function automatically made available to all F<.t> files. It
converts any reasonble expression of a version number into an integer, which
can reliably be compared using numeric comparison operators, with the output of
a second C<ivers()> call on a different version number, like in the result above.
+It's worth emphasizing that, due to bugs in early perl parsing, if you use a
+version number containing two dots on a version befor 5.6.0, it has to be
+quoted.
+
=back
In all sections, lines that begin with C<##> are completely ignored.
=head2 Implementation Section Details
You can implement API elements via C functions or macros, or simple variables.
-For a function, just place its body in this C<=implementation> section. But it
-is preferable to use a macro if feasible. Otherwise, the user must explicitly
-request that it get loaded, by defining a C<NEED_I<function>> (or I<variable>)
-as described in F<ppport.h>.
+It is preferable to use a macro if feasible. Otherwise, the user must
+explicitly request that it get loaded, by defining a C<NEED_I<function>> (or
+I<variable>) as described in F<ppport.h>. If a function, I<foo> is required,
+place its body in this C<=implementation> section, like so:
+
+ #if { NEED foo }
+
+ char *
+ foo(pTHX_ const U8 *arg1, const U32 arg2, ...)
+ {
+ ...
+ }
+
+ #endif
+
+Similarly for a variable.
+
+It's obviously best to use a macro if at all feasible. Sometimes what once
+was implemented with a macro now requires a function; perhaps an edge case was
+overlooked. Doing so will cause the new F<ppport.h> to not be drop-in
+compatible with the older version, and can hence cause breakage. This
+incompatiblity (while easily solved) really needs to be stressed in
+documentation.
=over
C<ivers()> is used in the C<=tests> section to overcome this. and constructs
like the following in the C language sections.
- #if PERL_VERSION_EQ(5,9,3)
- #if PERL_VERSION_NE(5,9,3)
- #if PERL_VERSION_LT(5,9,3)
- #if PERL_VERSION_GT(5,9,3)
- #if PERL_VERSION_LE(5,9,3)
- #if PERL_VERSION_GE(5,9,3)
-
-An alternative way of saying things like these is
-
#if { VERSION < 5.9.3 }
-In this form, the version number can be either of the new form C<5.x.x> or the
+You SHOULD be using this construct or the alternatives listed below for ALL
+version checks, and not come up with something on your own.
+
+In this form, the version number can be either of the new form C<5.x.y> or the
older form C<5.00x_yy>. Both are translated into the correct preprocessor
statements. It is also possible to combine this with other statements:
This not only works in the C<=implementation> section, but also in
the C<=xsubs>, C<=xsinit>, C<=xsmisc>, C<=xshead> and C<=xsboot> sections.
+Alternatively, you can use the forms now available in regular Perl:
+
+ #if PERL_VERSION_EQ(5,9,3)
+ #if PERL_VERSION_NE(5,9,3)
+ #if PERL_VERSION_LT(5,9,3)
+ #if PERL_VERSION_GT(5,9,3)
+ #if PERL_VERSION_LE(5,9,3)
+ #if PERL_VERSION_GE(5,9,3)
+
+These forms have the advantage over the '{ VERSION ... }' form in that you may
+use the special value '*' for the final number to mean ALL possible values for
+it. Thus,
+
+ #if PERL_VERSION_EQ(5,31,'*')
+
+means all perls in the 5.31 series. And
+
+ #if PERL_VERSION_NE(5,24,'*')
+
+means all perls EXCEPT 5.24 ones. And
+
+ #if PERL_VERSION_LE(5,9,'*')
+
+is effectively
+
+ #if PERL_VERSION_LT(5,10,0)
+
=item Hints
If you add a comment like so:
/* Hint: PL_expect, PL_copline, PL_rsfp
- paragraphs of stuff about foo you want to have
- shown when ppport.h outputs something about PL_expect or
- PL_copline or PL_rsfp
+ paragraphs of stuff you want to have shown when ppport.h outputs
+ something about any one of PL_expect, PL_copline, or PL_rsfp
*/
Earlier versions of F<ppport.h> required an asterisk at the beginning of every
=item Warnings
-A more serious caution about C<foo> can be displayed by instead saying
+A more serious caution can be displayed by instead saying
/* Warning: PL_expect, PL_copline, PL_rsfp
- paragraphs of stuff about foo you want to have
- shown when ppport.h outputs something about PL_expect or
- PL_copline or PL_rsfp
+ paragraphs of stuff you want to have shown when ppport.h outputs
+ something about any one of PL_expect, PL_copline, or PL_rsfp
*/
Earlier versions of F<ppport.h> required an asterisk at the beginning of every
And you will need updated API information. Copy the latest F<embed.fnc> file
from bleadperl to the F<parts> directory and run F<devel/mkapidoc.pl> to
-collect the remaining information in F<parts/apidoc.fnc>.
+collect the remaining information in F<parts/apidoc.fnc>. This needs to be
+done after the perl has been compiled, as there are generated files that feed
+it.
=item *
=head1 COPYRIGHT
-Version 3.x, Copyright (C) 2004-2019, Marcus Holland-Moritz
+Version 3.x, Copyright (C) 2004-2020, Marcus Holland-Moritz
and Perl 5 porters
Version 2.x, Copyright (C) 2001, Paul Marquess.
# This program is free software; you can redistribute it and/or
# modify it under the same terms as Perl itself.
#
+# CAUTION! that this runs on 5.003. That means there are certain restrictions
+# apply. The most likely gotchas are in the HACKERS file under "How to
+# backport something". Under the tests paragraph, there is a list of things
+# to avoid.
+#
################################################################################
require 5.003;
sub configure
{
- my @clean = qw{ $(H_FILES) RealPPPort.xs RealPPPort.c PPPort.pm };
+ my @clean = qw{ $(H_FILES) RealPPPort.xs RealPPPort.c PPPort.pm t/*.t };
my %depend = (
'$(OBJECT)' => '$(H_FILES)',
'Makefile' => '$(VERSION_FROM)',
my $post = shift->SUPER::postamble(@_);
$post .= <<'POSTAMBLE';
+.PHONY: purge_all regen_pm regen_xs regen_tests regen_h regen_release_date
+
purge_all: realclean
@$(RM_F) PPPort.pm t/*.t
regen_h:
$(PERL) -I$(INST_ARCHLIB) -I$(INST_LIB) -I$(PERL_ARCHLIB) -I$(PERL_LIB) ppport_h.PL
-regen: regen_pm regen_xs regen_tests regen_h
+regen_release_date:
+ $(PERL) -I$(INST_ARCHLIB) -I$(INST_LIB) -I$(PERL_ARCHLIB) -I$(PERL_LIB) devel/update_release_date.pl
+
+regen: regen_pm regen_xs regen_tests regen_h regen_release_date
POSTAMBLE
return $post;
return $updated;
}
+sub MY::dist_basics
+{
+ package MY;
+ my $original = shift->SUPER::dist_basics(@_);
+
+ my $updated = '';
+ my @rules = split( m{^\s*$}m, $original );
+ my $rule;
+ foreach $rule ( @rules ) {
+ if ( $rule =~ m{^\s*^manifest\s+:}m ) {
+ $rule =~ s{^(\s*^manifest\s+:.*)}{$1 $t_01_test}m; # make sure we regenerate tests
+ }
+ $updated .= $rule;
+ }
+
+ return $updated;
+}
+
sub MY::dist_core
{
package MY;
my $rule;
foreach $rule ( @rules ) {
if ( $rule =~ m{^\s*^dist\s+:}m ) {
- $rule =~ s{:}{: PPPort.pm manifest}; # make sure we update PPPort.pm
+ $rule =~ s{:}{: PPPort.pm manifest regen}; # make sure we update PPPort.pm
$rule .= qq[\t].q[$(NOECHO) $(ECHO) "Warning: Please check '__MAX_PERL__' value in PPPort_pm.PL"].qq[\n];
# checking that the tarball has no Pax Header - avoid false positives by using [P]axHEader
$rule .= qq[\t].q[$(NOECHO) zgrep -a -e '[P]axHeader' $(DISTVNAME).tar$(SUFFIX) && ( $(ECHO) "ERROR: Pax Header detected in tarball"; rm -f $(DISTVNAME).tar$(SUFFIX) ) ||:].qq[\n];
# determine
my %raw_todo = %{&parse_todo('parts/todo')};
-# Invert so each key is the 7 digit version number, and it's value is an array
+# The items defined by config.h are found instead by scanprov which currently
+# doesn't write them to the todo files. Instead add them here. All such have
+# the K code.
+for (keys %raw_base) {
+ next if exists $raw_todo{$_}; # Don't override any existing
+ next unless exists $raw_base{$_}{code};
+ next unless $raw_base{$_}{code} eq 'K';
+ $raw_todo{$_} = $raw_base{$_};
+
+ next if exists $embed{$_}; # Don't override any existing
+ $embed{$_}->{flags}{'A'} = 1;
+ $embed{$_}->{flags}{'m'} = 1;
+ $embed{$_}->{flags}{'d'} = 1;
+ $embed{$_}->{flags}{'T'} = 1;
+}
+
+# Invert so each key is the 7 digit version number, and its value is an array
# of all symbols within it, like:
# '5005003' => [
# 'POPpx',
# directories are empty (which should only happen during regeneration of the
# base and todo files).). Actually the final element is for blead (at the
# time things were regenerated), which is 1 beyond the max version supported.
-my $INT_MAX_PERL = (@todo_list) ? $todo_list[0] - 1 : '5030000'; # used for __MAX_PERL__
+my $INT_MAX_PERL = (@todo_list) ? $todo_list[0] - 1 : '5032000'; # used for __MAX_PERL__
my $MAX_PERL = format_version($INT_MAX_PERL);
my $INT_MIN_PERL = (@todo_list) ? $todo_list[-1] : 5003007;
my $MIN_PERL = format_version($INT_MIN_PERL);
}
}
-my @perl_api;
+my %perl_api;
for (@provided) {
next if /^Perl_(.*)/ && exists $embed{$1};
next if exists $embed{$_};
- push @perl_api, $_;
+ $perl_api{$_} = 1;
check(2, "No API definition for provided element $_ found.");
}
-# At this point @perl_api is the list of things we provide that weren't found
-# in the .fnc files.
-my @prototype_unknown = @perl_api;
+# At this point the keys of %perl_api give the list of things we provide that
+# weren't found in the .fnc files.
+my @prototype_unknown = keys %perl_api;
# Add in the .fnc file definitions.
-push @perl_api, keys %embed;
-@perl_api = sort dictionary_order @perl_api;
+for (keys %embed) {
+ $perl_api{$_} = 1;
+}
+
+# Finally, scanprov has found macros of various types
+my @scanprov_found_macros = grep { $raw_base{$_}{code} =~ /[KMZ]/ } keys %raw_base;
+for (@scanprov_found_macros) {
+ $perl_api{$_} = 1;
+}
+
+my @perl_api = sort dictionary_order keys %perl_api;
for (@perl_api) { # $_ is the item name
if (exists $provides{$_} && !exists $raw_base{$_}) {
$e = $embed{$_} if exists $embed{$_};
my $is_documented = 0;
my $is_accessible = 0;
+ my $has_thread = 1;
if (defined $e) {
if (exists $e->{flags}{'p'}) { # Has 'Perl_' prefix
my $args = $e->{args};
$line .= 'v' if @$args && $args->[-1][0] eq '...';
}
$line .= 'o' if exists $e->{ppport_fnc};
- $line .= 'n' if exists $e->{flags}{'T'}; # No thread context parameter
$line .= 'd' if exists $e->{flags}{'D'}; # deprecated
$line .= 'x' if exists $e->{flags}{'x'}; # experimental
$line .= 'c' if exists $e->{flags}{'C'} # core-only
|| ( exists $e->{flags}{'X'}
&& (exists $e->{flags}{'E'} || ! exists $e->{flags}{'m'}));
+ $has_thread = 0 if exists $e->{flags}{'T'}; # No thread context parameter
$is_accessible = 1 if exists $e->{flags}{'A'}
|| exists $e->{flags}{'C'}
|| ( exists $e->{flags}{'X'}
$is_documented = 1 if exists $e->{flags}{'d'};
}
- # scanprov adds the M and F flags. The M is for provided macros; F for
- # functions we didn't find in testing (usually because they are hidden
- # behind ifdefs, like PERL_GLOBAL_STRUCT_PRIVATE). None of them were
- # verified
+ # scanprov adds several flags:
+ # F is for functions we didn't find in testing (usually because they are
+ # hidden behind ifdefs, like USE_THREADS if built on unthreaded perls,
+ # or vice-versa.
+ # K for config.h #defines. These are considered provided and are
+ # documented in config.h (mnemonic: K is like c in config)
+ # M for provided, undocumented macros. If they were documented, they
+ # would have been found before scanprov was run.
+ # Z for macros that aren't documented or provided. (mnemonic:
+ # 'Zecret'). Some of these may be hidden behind an #ifdef PERL_CORE.
+ # None of these were verified by compilation
if (exists $raw_base{$_}{code}) {
- $line .= 'V' if $raw_base{$_}{code} =~ /[MFX]/;
+ $line .= 'V' if $raw_base{$_}{code} =~ /[FKMXZ]/;
$is_accessible = 1 if $raw_base{$_}{code} =~ /M/;
}
+ $line .= 'n' unless $has_thread;
$line .= 'i' unless $is_accessible;
$line .= 'u' unless $is_documented;
$_ = $line;
}
-$data =~ s/^([\t ]*)__PERL_API__(\s*?)$/
+$data =~ s/^([\t ]*)__ALL_ELEMENTS__(\s*?)$/
join "\n", map "$1$_", sort dictionary_order @perl_api
/gem;
my @todo;
for (@todo_list) {
my $ver = format_version($_);
- $ver .= " (at least)" if $_ == $todo_list[-1];
+ $ver .= " (or maybe earlier)" if $_ == $todo_list[-1];
my $todo = "=item perl $ver\n\n";
for (sort dictionary_order @{$todo{$_}}) {
$todo .= " $_";
#
# This file was automatically generated from the definition files in the
# parts/inc/ subdirectory by PPPort_pm.PL. To learn more about how all this
-# works, please read the F<HACKERS> file that came with this distribution.
+# works, please read the L<HACKERS> file that came with this distribution.
#
################################################################################
#
optional. Rather, just take the most recent copy of F<ppport.h> that
you can find (e.g. by generating it with the latest C<Devel::PPPort>
release from CPAN), copy it into your project, adjust your project to
-use it, and distribute the header along with your module.
+use it, test it, and distribute the header along with your module.
+
+It is important to use the most recent version of F<ppport.h>. You do need to
+test before shipping a newer version than you already had. One possible
+failure is that someone had to convert a backported element from a macro into
+a function, and actual functions must be enabled with a NEED macro to minimize
+the possibility of namespace pollution. See L<HACKERS> for details. The
+developers of C<Devel::PPPort> want to hear if there are other problems that
+arise from using a later F<ppport.h>. Use
+L<https://github.com/Dual-Life/Devel-PPPort/issues> to report any.
=head2 Running ppport.h
Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
- Copyright (C) 2018, The perl5 porters
+ Copyright (C) 2018-2020, The perl5 porters
Version 2.x, Copyright (C) 2001, Paul Marquess.
use strict;
use vars qw($VERSION $data);
-$VERSION = '3.58';
+$VERSION = '3.59';
sub _init_data
{
local $| = 1;
do {
print "\a\n$q [y/n] ";
+ return unless -t; # Fail if no tty input
$a = <>; }
while ($a !~ /^\s*([yn])\s*$/i);
return lc $1 eq 'y';
+#!/usr/bin/perl
+
################################################################################
#
# mkapidoc.pl -- generate apidoc.fnc from scanning the Perl source
use warnings;
use strict;
+use File::Find;
my $PERLROOT = $ARGV[0];
unless ($PERLROOT) {
die "'$PERLROOT' is invalid, or you haven't successfully run 'make' in it"
unless -e "$PERLROOT/warnings.h";
-my $config= "$PERLROOT/config_h.SH";
my %seen;
# Find the files in MANIFEST that are core, but not embed.fnc, nor .t's
next if m! ^ embed \. fnc \t !x;
next if m! ^ ( cpan | dist | t) / !x;
next if m! [^\t]* \.t \t !x;
- push @files, $_;
+ s/\t.*//;
+ push @files, "$PERLROOT/$_";
+}
+close $m;
+
+# Examine the SEE ALSO section of perlapi which should contain links to all
+# the pods with apidoc entries in them. Add them to the MANIFEST list.
+my $file;
+
+sub callback {
+ return unless $_ eq $file;
+ return if $_ eq 'config.h'; # We don't examine this one
+ return if $_ eq 'perlintern.pod'; # We don't examine this one
+ return if $File::Find::dir =~ / \/ ( cpan | dist | t ) \b /x;
+ push @files, $File::Find::name;
}
-# These files are also needed. This might have to be added to in the future.
-push @files, qw(pod/perlguts.pod lib/perlxs.pod);
+open my $a, '<', "$PERLROOT/pod/perlapi.pod"
+ or die "Can't open perlapi.pod ($PERLROOT needs to have been built): $!";
+while (<$a>) {
+ next unless / ^ =head1\ SEE\ ALSO /x;
+ while (<$a>) {
+ # The lines look like:
+ # F<config.h>, L<perlintern>, L<perlapio>, L<perlcall>, L<perlclib>,
+ last if / ^ = /x;
+ my @tags = split /, \s* | \s+ /x; # Allow comma- or just space-separated
+ foreach my $tag (@tags) {
+ if ($tag =~ / ^ F< (.*) > $ /x) {
+ $file = $1;
+ }
+ elsif ($tag =~ / ^ L< (.*) > $ /x) {
+ $file = "$1.pod";
+ }
+ else {
+ die "Unknown tag '$tag'";
+ }
-# Find the apidoc entries in all these files
+ find(\&callback, $PERLROOT);
+ }
+ }
+}
+
+# Look through all the files that potentially have apidoc entries
my @entries;
for (@files) {
s/ \t .* //x;
- open my $f, '<', "$PERLROOT/$_" or die "Can't open $_: $!";
+ open my $f, '<', "$_" or die "Can't open $_: $!";
my $line;
while (defined ($line = <$f>)) {
}
}
-# The entries in config_h.SH are also (documented) macros that are
-# accessible to XS code, and ppport.h backports some of them. We
-# use only the unconditionally compiled parameterless ones (as
-# that"s all that"s backported so far, and we don"t have to know
-# the types of the parameters).
-open(my $c, "<", $config) or die "$config: $!";
-my $if_depth = 0; # We don"t use the ones within #if statements
- # The #ifndef that guards the whole file is not
- # noticed by the code below
-while (<$c>) {
- $if_depth ++ if / ^ \# [[:blank:]]* (ifdef | if\ defined ) /x;
- $if_depth -- if $if_depth > 0 && / ^ \# [[:blank:]]* endif /x;
- next unless $if_depth <= 0;
-
- # We are only interested in #defines with no parameters
- next unless /^ \# [[:blank:]]* define [[:blank:]]+
- ( [A-Za-z][A-Za-z0-9]* )
- [[:blank:]]
- /x;
- next if $seen{$1}; # Ignore duplicates
- push @entries, "Amnd||$1\n";
- $seen{$1}++;
-}
-close $c or die "Close failed: $!";
-
-open my $out, ">", "parts/apidoc.fnc"
- or die "Can't open 'parts/apidoc.fnc' for writing: $!";
+my $outfile = "parts/apidoc.fnc";
+open my $out, ">", $outfile
+ or die "Can't open '$outfile' for writing: $!";
require "./parts/inc/inctools";
print $out <<EOF;
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
EOF
print $out sort sort_api_lines @entries;
close $out or die "Close failed: $!";
+print "$outfile regenerated\n";
-use Data::Dumper;
-$Data::Dumper::Sortkeys=1;
################################################################################
#
# mkppport_fnc.pl -- generate ppport.fnc
# figures out aren't tested by the other two functions.
#
# These otherwise-untested items are those:
-# 1) which D:P provides and are not found in embed.fnc nor apidoc.fnc, or
-# aren't listed as public API in those files
+# 1) for which D:P provides and are not found in embed.fnc nor apidoc.fnc,
+# or aren't listed as public API in those files
# 2) and for which tests can be automatically generated that they at least
# compile.
#
# The reason that an item isn't in those two files is that it is an
# undocumented macro. (If it's not a macro, it has to be in embed.fnc, and if
-# it's documented, mkapidoc.sh would find it and place it in apidoc.fnc.)
+# it's documented, mkapidoc.pl would find it and place it in apidoc.fnc.)
#
# And, the reason we can't generate tests for undocumented macros is we don't
# readily know the types of the parameters, which we need to get a C program
# found therein with the item, and to include the code as the test for the
# item, but again, it would be better to just document them.
#
-# Later it was discovered that ppport provides support for non-public items.
-# We can list those here too, so that tests can be generated. (An alternative
-# would be to invent a new flag that means non-public, but test and use that
-# in apidoc.fnc.)
+# scanprov, run as part of regeneration, will find when all functions, API or
+# not, became defined; but not macros.
################################################################################
#
# This program is free software; you can redistribute it and/or
################################################################################
use strict;
- use Data::Dumper;
- $Data::Dumper::Sortkeys=1;
use warnings;
my $main_dir = $0;
+die "Need base directory as argument" unless $main_dir;
# Up one level
$main_dir =~ s;[^/]*$;;;
my @provided = map { /^(\w+)/ ? $1 : () } `$^X ppport.h --list-provided`;
+die "Nothing provided" unless @provided;
-# First, we look for non-API macros that are documented and furnished by us in
-# spite of not being public
-my @non_public_provided;
my $api_fnc = "$main_dir/parts/apidoc.fnc";
-open F, "<", $api_fnc or die "Can't open $api_fnc: $!";
-while (<F>) {
- my $line = $_;
- next if $line =~ / ^ [^|]* A /x; # Skip API
- chomp $line;
- push @non_public_provided, $line
- # Look for the name in the third '|' separated field
- if grep { $line =~ / ^ [^|]* \| [^|]* \| \s* $_ \s* (?: $ |\| ) /x }
- @provided;
-}
+my $embed_fnc = "$main_dir/parts/embed.fnc";
-my @embeds = parse_embed('parts/embed.fnc', $api_fnc);
+# One of the outputs is a known element provided only by us.
+my @out = 'Am|void|sv_magic_portable|NN SV* sv|NULLOK SV* obj|int how|NULLOK const char* name|I32 namlen';
+# First, get the known macros and functions
+my @embeds = parse_embed($api_fnc, $embed_fnc);
+
+# Then look for 1) non-API functions that are furnished by us.
+# 2) documented non-API macros that are furnished by us
+# We want to test for everything furnished by us. The non-API elements
+# otherwise wouldn't be. In both these cases, we know the signature of the
+# element, so can create a test for it.
+foreach my $element (@embeds) {
+ my $flags = join "", sort { lc $a cmp lc $b or $a cmp $b }
+ keys %{$element->{'flags'}};
+ next if $flags =~ /A/; # Skip public; they'll get tested anyway
+ my $name = $element->{'name'};
+ next unless grep { $name eq $_ } @provided; # Skip unprovided, as that's
+ # not what this program is for
+ my $entry = "$flags|$element->{'ret'}|$name";
+ if ($flags !~ /n/) {
+ $entry .= '|';
+ $entry .= join '|', map { join ' ', @$_ } $element->{'args'}->@*
+ }
+ push @out, $entry;
+}
+
+# Now that we have the things we know the signatures for, we add the
+# no-parameter elements, as the signatures for those are trivial.
# Look for %include lines in the ppport.h generator
my $PPPort = "$main_dir/PPPort_pm.PL";
open F, "<", $PPPort or die "Can't open $PPPort: $!";
my @no_parameters;
while (<F>) {
next unless/^%include (\w+)/;
- my $implementation = parse_partspec("$main_dir/parts/inc/$1")->{'implementation'};
-
- # Find no-parameter entries using __UNDEFINED__ that aren't in the other.
- # We know these are provided.
- while ($implementation =~ /^__UNDEFINED__\s+(\w+)\s/mg) {
- push @no_parameters, $1 unless grep { $1 eq $_->{'name'} } @embeds;
- }
-}
-
-# Repeat, but look for ones that are 'provided' that don't use __UNDEFINED__
-seek F, 0, 0;
-while (<F>) {
- next unless/^%include (\w+)/;
- my $implementation = parse_partspec("$main_dir/parts/inc/$1")->{'implementation'};
-
- while ($implementation =~ /^#\s*define\s+(\w+)\s/mg) {
- next if grep { $1 eq $_ } @no_parameters;
- next if grep { $1 eq $_->{'name'} } @embeds;
- next unless grep { $1 eq $_ } @provided;
- push @no_parameters, $1;
+ my @implementation = split /\n/,
+ parse_partspec("$main_dir/parts/inc/$1")->{'implementation'};
+ while (defined (my $line = shift @implementation)) {
+ #my $type;
+ my $var;
+ if ($line =~ /^ __UNDEFINED__ \s+ (\w+) \s /x) {
+ $var = $1;
+ }
+ elsif ($line =~ /^ __NEED_VAR__ \s+ (\w+) \s+ (\w+) /x) {
+ #$type = $1; # Another mechanism to create a variable
+ $var = $2;
+ }
+ elsif ($line =~ / ^ \# \s* define \s+ ( \w+ ) \s /x) {
+ $var = $1;
+ }
+
+ next unless defined $var;
+ next if $var =~ / ^ D_PPP_ /x; # Skip internal only
+ next if grep { $1 eq $_->{'name'} } @embeds; # Skip known elements
+ next if grep { $1 eq $_ } @no_parameters; # Skip if already have it
+ push @no_parameters, $var;
}
}
-my @out = 'Am|void|sv_magic_portable|NN SV* sv|NULLOK SV* obj|int how|NULLOK const char* name|I32 namlen';
-push @out, @non_public_provided;
push @out, map { "Amn|void|$_" } @no_parameters;
@out = sort sort_api_lines @out;
:
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:
-: This file lists all API functions/macros that are provided purely
-: by Devel::PPPort, or that are not public. It is in the same format as the
-: F<embed.fnc> that ships with the Perl source code.
+: This file lists all functions/macros that are provided by Devel::PPPort that
+: would not be tested otherwise; because either they are not public, or they
+: exist only in D:P. It is in the same format as the F<embed.fnc> that ships
+: with the Perl source code.
:
: Since these are used only to provide the argument types, it's ok to have the
-: return value be void for some where it's an issues
+: return value be void for some where it's a potential issue.
EOF
print OUT join "\n", @out;
print OUT "\n";
+print "$out regenerated\n";
close OUT;
my @bad = grep { ! exists $hard_ref->{$_} } @unorthodox;
if (@bad) {
print "The following items need to be manually added to the list in",
- " part/inc/ppptools: known_but_hard_to_test_for(): ",
+ " parts/ppptools.pl: known_but_hard_to_test_for(): ",
join ", ", @bad, "\n";
quit_now();
}
#!/usr/bin/perl -w
+$|=1;
################################################################################
#
-# scanprov -- scan Perl headers for provided macros, and add known
-# exceptions, and functions we weren't able to otherwise find.
-# Thus the purpose of this file has been expanded beyond what its
-# name says.
+# scanprov -- scan Perl headers for macros, and add known exceptions, and
+# functions we weren't able to otherwise find. Thus the purpose
+# of this file has been expanded beyond what its name says.
+#
+# Besides the normal options, 'mode=clean' is understood as 'write', but
+# first remove any scanprov lines added in previous runs of this.
#
# The lines added have a code to signify they are added by us:
-# M means it is a macro
-# X means it is a known exceptional item
# F means it is a function in embed.fnc that the normal routines didn't find
+# K means it is a macro in config.h, hence is provided, and documented
+# M means it is a provided by D:P macro
+# X means it is a known exceptional item
+# Z means it is an unprovided macro without documentation
#
# The regeneration routines do not know the prototypes for the macros scanned
# for, which is gotten from documentation in the source. (If they were
# documented, they would be put in parts/apidoc.fnc, and test cases generated
-# for them in mktodo.pl). Therefore these are all undocumented. It would be
-# best if people would add document to them in the perl source, and then this
-# portion of this function would be minimized.
+# for them in mktodo.pl). Therefore these are all undocumented, except for
+# things from config.h which are all documented there, and many of which are
+# just defined or not defined, and hence can't be tested. Thus looking for
+# them here is the most convenient option, which is why it's done here.
+#
+# The scope of this program has also expanded to look in almost all header
+# files for almost all macros that aren't documented nor provided. This
+# allows ppport.h --api-info=/foo/ to return when a given element actually
+# came into existence, which can be a time saver for developers of the perl
+# core.
+#
+# It would be best if people would add documentation to them in the perl
+# source, and then this portion of this function would be minimized.
+#
+# On Linux nm and other uses by D:P, these are the remaining unused capital
+# flags: HJLOQY
#
################################################################################
#
GetOptions(\%opt, qw( install=s mode=s blead=s debug=i debug-start=s)) or die;
-my $write = $opt{mode} eq 'write';
+my $clean = $opt{mode} eq 'clean';
+my $write = $clean || $opt{mode} eq 'write';
+my $debug = $opt{debug};
# Get the list of known macros. Functions are calculated separately below
my %embed = map { $_->{flags}{m} ? ( $_->{name} => 1 ) : () }
my $base_dir = 'parts/base';
my $todo_dir = 'parts/todo';
+# The identifying text placed in every entry by this program
+my $id_text = "added by $0";
+
if ($write) {
- # Get the list of files, which are returned sorted, and so the min version
- # is in the 0th element
+ # Get the list of files
my @files = all_files_in_dir($base_dir);
+
+ # If asked to, first strip out the results of previous incarnations of
+ # this script
+ if ($clean) {
+ print "Cleaning previous $0 runs\n";
+ foreach my $file (@files) {
+ open my $fh, "+<", $file or die "$file: $!\n";
+ my @lines = <$fh>;
+ my $orig_count = @lines;
+ @lines = grep { $_ !~ /$id_text/ } @lines;
+ next if @lines == $orig_count; # No need to write if unchanged.
+ truncate $fh, 0;
+ seek $fh, 0, 0;
+ print $fh @lines;
+ close $fh or die "$file: $!\n";
+ }
+ }
+
+ # The file list is returned sorted, and so the min version is in the 0th
+ # element
my $file = $files[0];
my $min_perl = $file;
$min_perl =~ s,.*/,,; # The name is the integer of __MIN_PERL__
# exist all the way back. Add them now to avoid throwing later things
# off.
print "-- $file --\n";
- open F, ">>$file" or die "$file: $!\n";
+ open my $fh, "+<", $file or die "$file: $!\n";
+ my @lines = <$fh>;
+ my $count = @lines;
for (qw(RETVAL CALL THIS)) { # These are also in hard_to_test_for(),
# so can't be in blead, as they are skipped
# in testing, so no real need to check that
# they aren't dups.
+ my $line = format_output_line($_, 'X');
+ next if grep { /$line/ } @lines;
print "Adding $_ to $file\n";
- print F format_output_line($_, 'X');
+ push @lines, $line;
}
- close F;
+ if ($count != @lines) {
+ @lines = sort symbol_order @lines;
+ truncate $fh, 0;
+ seek $fh, 0, 0;
+ print $fh @lines;
+ }
+ close $fh;
# Now we're going to add the hard to test symbols. The hash has been
# manually populated and commited, with the version number ppport supports
foreach my $version (keys %add_by_version) {
my $file = "$todo_dir/" . int_parse_version($version);
print "-- Adding known exceptions to $file --\n";
- my $need_version_line = ! -e $file;
- open F, ">>$file" or die "$file: $!\n";
- print F format_version_line($version) . "\n" if $need_version_line;
- foreach my $symbol (sort dictionary_order @{$add_by_version{$version}})
- {
- print "adding $symbol\n";
- print F format_output_line($symbol, 'X');
+ open my $fh, "+<", $file or die "$file: $!\n";
+ my @lines = <$fh>;
+ my $count = @lines;
+ push @lines, format_version_line($version) . "\n" unless @lines;
+ foreach my $symbol (@{$add_by_version{$version}}) {
+ my $line = format_output_line($symbol, 'X');
+ unless (grep { /$line/ } @lines) {;
+ print "adding $symbol\n";
+ push @lines, $line unless grep { /$line/ } @lines;
+ }
+ }
+ if (@lines != $count) {
+ @lines = sort symbol_order @lines;
+ truncate $fh, 0;
+ seek $fh, 0, 0;
+ print $fh @lines;
}
- close F;
+ close $fh;
}
}
my @functions = parse_embed(qw(parts/embed.fnc));
# We could just gather data for the publicly available ones, but having this
-# information available for everything is useful (for those who know where to
-# look)
+# information available for everything is useful.
#@functions = grep { exists $_->{flags}{A} } @functions;
# The ones we don't have info on are the ones in embed.fnc that aren't in the
'F'
);
+sub symbol_order # Sort based on first word on line
+{
+ my $stripped_a = $a =~ s/ ^ \s* //rx;
+ $stripped_a =~ s/ \s.* //x;
+
+ my $stripped_b = $b =~ s/ ^ \s* //rx;
+ $stripped_b =~ s/ \s.* //x;
+
+ return dictionary_order($stripped_a, $stripped_b);
+}
+
sub format_output_line
{
my $sym = shift;
my $code = shift;
- return sprintf "%-30s # $code added by $0\n", $sym;
+ return sprintf "%-30s # $code $id_text\n", $sym;
}
sub find_first_mentions
my $strip_comments = shift;
my $code = shift; # Mark entries as having this type
+ use feature 'state';
+ state $first_perl = 1;
+
$hdrs = [ $hdrs ] unless ref $hdrs;
- my @remaining = @$look_for_ref;
+ my %remaining;
+ $remaining{$_} = $code for @$look_for_ref;
my %v;
# We look in descending order of perl versions. Each time through the
- # loop @remaining is narrowed.
+ # loop %remaining is narrowed.
for my $p (@$perls_ref) {
print "checking perl $p->{version}...\n";
local @ARGV;
push @ARGV, glob "$archlib/CORE/$_" for @$hdrs;
+ # %sym's keys are every single thing that looks like an identifier
+ # (beginning with a non-digit \w, followed by \w*) that occurs in any
+ # header, regardless of where (outside of comments). For macros, it
+ # can't end in an underscore, nor be like 'AbCd', which are marks for
+ # internal.
my %sym;
- # %sym's keys are every single thing that looks like an identifier
- # (beginning with a non-digit \w, followed by \w*) that occurs in all
- # the headers, regardless of where (outside of comments).
local $/ = undef;
- while (<>) { # Read in the next file
+ while (<<>>) { # Read in the whole next file as one string.
+
+ # This would override function definitions with macro ones
+ next if $code eq 'M' && $ARGV =~ m! / embed\.h $ !x;
+
+ my $is_config_h = $ARGV =~ m! / config\.h $ !x;
+
+ my $contents = $_;
+
+ # Strip initial '/*' in config.h /*#define... lines. This just
+ # means the item isn't available on the platform this program is
+ # being run on.
+ $contents =~ s! ^ /\* \s* (?=\#\s*define\s) !!mx if $is_config_h;
# Strip comments, from perl faq
if ($strip_comments) {
- s#/\*[^*]*\*+([^/*][^*]*\*+)*/|("(\\.|[^"\\])*"|'(\\.|[^'\\])*'|.[^/"'\\]*)#defined $2 ? $2 : ""#gse;
+ $contents =~ s#/\*[^*]*\*+([^/*][^*]*\*+)*/|("(\\.|[^"\\])*"|'(\\.|[^'\\])*'|.[^/"'\\]*)#defined $2 ? $2 : ""#gse;
}
- $sym{$_}++ for /(\b[^\W\d]\w*)/g;
+ # For macros, we look for #defines
+ if ($code eq 'M') {
+ my %defines;
+
+ while ($contents =~ m/ ^ \s* \# \s* define \s+
+
+ # A symbol not ending in underscore
+ ( [A-Za-z][_A-Za-z0-9]*[A-Za-z0-9] )
+ /mxg)
+ {
+ my $this_define = $1;
+
+ # These are internal and not of external interest, so just
+ # noise if we were to index them
+ next if $this_define =~ / ^ PERL_ARGS_ASSERT /x;
+
+ # Names like AbCd are internal
+ next if $this_define =~ /[[:upper:]][[:lower:]][[:upper:]][[:lower:]]/;
+
+ $defines{$this_define}++;
+ }
+ $sym{$_}++ for keys %defines;
+
+ # For functions, etc we get all the symbols for the latest
+ # perl passed in, but for macros, it is just the ones for the
+ # known documented ones, and we have to find the rest. This
+ # allows us to keep the logic for that in just one place:
+ # here.
+ if ($first_perl) {
+
+ # config.h symbols are documented; the rest aren't, so use
+ # different flags so downstream processing knows which are
+ # which.
+ my $new_code = ($is_config_h) ? 'K' : 'Z';
+
+ foreach my $define (keys %defines) {
+
+ # Don't override input 'M' symbols, or duplicates.
+ next if defined $remaining{$define};
+ $remaining{$define} = $new_code;
+ }
+ }
+ }
+ else { # Look for potential function names; remember comments
+ # have been stripped off.
+ $sym{$_}++ for /(\b[^\W\d]\w*)/g;
+ }
}
- # @remaining is narrowed to include only those identifier-like things
+ # %remaining is narrowed to include only those identifier-like things
# that are mentioned in one of the input hdrs in this release. (If it
# isn't even mentioned, it won't exist in the release.) For those not
# mentioned, a key is added of the identifier-like thing in %v. It is
# the provided element was mentioned there, and now it no longer is.
# We take that to mean that to mean that the element became provided
# for in n+1.
- @remaining = map { $sym{$_} or $v{$p->{todo}}{$_}++;
- $sym{$_} ? $_ : ()
- } @remaining;
+ foreach my $symbol (keys %remaining) {
+ next if defined $sym{$symbol}; # Still exists in this release
+
+ # Gone in this release, must have come into existence in the next
+ # higher one.
+ $v{$p->{todo}}{$symbol} = delete $remaining{$symbol};
+ }
+ $first_perl = 0;
}
- $v{$perls_ref->[-1]{file}}{$_}++ for @remaining;
+ # After all releases, assume that anything still defined came into
+ # existence in that earliest release.
+ $v{$perls_ref->[-1]{file}}{$_} = $remaining{$_} for keys %remaining;
# Read in the parts/base files. The hash ref has keys being all symbols
# found in all the files in base/, which are all we are concerned with
# 'UTF8_MAXBYTES' => 1
# },
- for my $v (keys %v) {
+ for my $version (keys %v) {
# Things listed in blead (the most recent file) are special. They are
# there by default because we haven't found them anywhere, so they
# don't really exist as far as we can determine, so shouldn't be
# listed as existing.
- next if $v > $perls_ref->[0]->{file};
+ next if $version > $perls_ref->[0]->{file};
- # @new becomes the symbols for version $v not already in the file for
- # $v
- my @new = sort dictionary_order grep { !exists $base_ref->{$_} }
- keys %{$v{$v}};
+ # @new becomes the symbols for $version not already in the file for it
+ my @new = sort symbol_order grep { !exists $base_ref->{$_} }
+ keys %{$v{$version}};
@new or next; # Nothing new, skip writing
- my $file = $v;
+ my $file = $version;
$file =~ s/\.//g;
$file = "$base_dir/$file";
-e $file or die "non-existent: $file\n";
print "-- $file --\n";
- $write and (open F, ">>$file" or die "$file: $!\n");
- for (@new) {
- print "adding $_\n";
- $write and print F format_output_line($_, $code);
+ if ($write) {
+ open my $fh, "+<", $file or die "$file: $!\n";
+ my @lines = <$fh>;
+ my $count = @lines;
+ for my $new (@new) {
+ my $line = format_output_line($new, $v{$version}{$new});
+ next if grep { /$line/ } @lines;
+ print "adding $new\n";
+ push @lines, $line;
+ }
+ if (@lines != $count) {
+ @lines = sort symbol_order @lines;
+ truncate $fh, 0;
+ seek $fh, 0, 0;
+ print $fh @lines;
+ }
+ close $fh;
}
- $write and close F;
}
}
--- /dev/null
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+use FindBin;
+
+exit( run(@ARGV) || 0 ) unless caller;
+
+sub run {
+ my $now = time();
+
+ my $a_day = 86_400;
+ my $today = $now - $now % $a_day;
+
+ my ( $sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst ) =
+ gmtime($today);
+ ++$mon;
+ $year += 1_900;
+
+ my $human_ts = sprintf( "%04d-%02d-%02d", $year, $mon, $mday );
+
+ print qq[# Updating D_PPP_RELEASE_DATE timestamp to $today /* $human_ts */\n];
+
+ my $f = q[parts/inc/version];
+ my $file_to_patch = $FindBin::Bin . '/../' . $f;
+ die "Cannot find $f: $!" unless -e $file_to_patch;
+
+ my $content;
+ open( my $fh, '+<', $file_to_patch ) or die "$f: $!\n";
+ {
+ local $/;
+ $content = <$fh>;
+ }
+ die qq[No content for file $f\n] unless $content;
+
+ $content =~
+ s{^(\#\s*define\s+D_PPP_RELEASE_DATE)\b.*$}{$1 $today /* $human_ts */}m
+ or die "Cannot find D_PPP_RELEASE_DATE pattern in file $f";
+
+ {
+ truncate $fh, 0;
+ seek $fh, 0, 0;
+ print {$fh} $content;
+ }
+
+ close($fh);
+
+ print qq[$f patched with D_PPP_RELEASE_DATE\n];
+
+ return;
+}
+
+1;
type => 'int',
cast => 'int',
block => '{1;}',
+ number => '1',
);
# Certain return types are instead considered void
STORE_LC_NUMERIC_FORCE_TO_UNDERLYING => ['DECLARATION_FOR_LC_NUMERIC_MANIPULATION;'],
STORE_LC_NUMERIC_SET_TO_NEEDED => ['DECLARATION_FOR_LC_NUMERIC_MANIPULATION;'],
STORE_LC_NUMERIC_SET_TO_NEEDED_IN => ['DECLARATION_FOR_LC_NUMERIC_MANIPULATION;'],
+ TARG => ['dTARG;'],
UNDERBAR => ['dUNDERBAR;'],
XCPT_CATCH => ['dXCPT;'],
XCPT_RETHROW => ['dXCPT;'],
static char *VARarg2;
static double VARarg3;
-#if defined(PERL_BCDVERSION) && (PERL_BCDVERSION < 0x5009005)
+#if defined(D_PPP_BCDVERSION) && (D_PPP_BCDVERSION < 0x5009005)
/* needed to make PL_parser apicheck work */
typedef void yy_parser;
#endif
+/* Handle both 5.x.y and 7.x.y and up
+#ifndef PERL_VERSION_MAJOR
+# define PERL_VERSION_MAJOR PERL_REVISION
+#endif
+#ifndef PERL_VERSION_MINOR
+# define PERL_VERSION_MINOR PERL_VERSION
+#endif
+#ifndef PERL_VERSION_PATCH
+# define PERL_VERSION_PATCH PERL_SUBVERSION
+#endif
+
+/* This causes some functions to compile that otherwise wouldn't, so we can
+ * get their info; and doesn't seem to harm anything */
+#define PERL_IMPLICIT_CONTEXT
+
HEAD
# Caller can restrict what functions tests are generated for
# #ifdef out if marked as todo (not known in) this version
if (exists $todo{$f->{'name'}}) {
- my($five, $ver,$sub) = parse_version($todo{$f->{'name'}}{'version'});
+ my($rev, $ver,$sub) = parse_version($todo{$f->{'name'}}{'version'});
print OUT <<EOT;
-#if PERL_REVISION > $five \\
- || ( PERL_REVISION == $five \\
- && ( PERL_VERSION > $ver \\
- || ( PERL_VERSION == $ver \\
- && PERL_SUBVERSION >= $sub))) /* TODO */
+#if PERL_VERSION_MAJOR > $rev \\
+ || ( PERL_VERSION_MAJOR == $rev \\
+ && ( PERL_VERSION_MINOR > $ver \\
+ || ( PERL_VERSION_MINOR == $ver \\
+ && PERL_VERSION_PATCH >= $sub))) /* TODO */
EOT
}
Amnhd||_aMY_CXT
Amnhd||aMY_CXT
Amnhd||aMY_CXT_
-Amnd||ARCHNAME
Amd|void|__ASSERT_|bool expr
Amnhd||aTHX
Amnhd||aTHX_
mxud|void *|BhkENTRY|BHK *hk|which
Amxud|void|BhkENTRY_set|BHK *hk|which|void *ptr
mxd|U32|BhkFLAGS|BHK *hk
-Amnd||BIN
AmnUd|const char *|BOM_UTF8
Amd|SV *|boolSV|bool b
-Amnd||BYTEORDER
mxud|void|CALL_BLOCK_HOOKS|which|arg
Amnhd||CALL_CHECKER_REQUIRE_GV
Amd|void *|C_ARRAY_END|void *a
Amd|STRLEN|C_ARRAY_LENGTH|void *a
-Amnd||CASTFLAGS
Amd|bool|cBOOL|bool expr
-Amnd||CHARBITS
Amd|bool|ckWARN|U32 w
Amd|bool|ckWARN2|U32 w1|U32 w2
-Amd|bool|ckWARN2_d|U32 w1|U32 w2
-Amd|bool|ckWARN3|U32 w1|U32 w2|U32 w3
-Amd|bool|ckWARN3_d|U32 w1|U32 w2|U32 w3
-Amd|bool|ckWARN4|U32 w1|U32 w2|U32 w3|U32 w4
-Amd|bool|ckWARN4_d|U32 w1|U32 w2|U32 w3|U32 w4
+Amhd|bool|ckWARN2_d|U32 w1|U32 w2
+Amhd|bool|ckWARN3|U32 w1|U32 w2|U32 w3
+Amhd|bool|ckWARN3_d|U32 w1|U32 w2|U32 w3
+Amhd|bool|ckWARN4|U32 w1|U32 w2|U32 w3|U32 w4
+Amhd|bool|ckWARN4_d|U32 w1|U32 w2|U32 w3|U32 w4
Amd|bool|ckWARN_d|U32 w
Amnd|char*|CLASS
Amd|void|CLEAR_ERRSV
+Amd|const char *|CopFILE|const COP * c
+Amd|AV *|CopFILEAV|const COP * c
+Amd|const char *|CopFILEGV|const COP * c
+Amd|void|CopFILE_set|COP * c|const char * pv
+Amd|SV *|CopFILESV|const COP * c
Amxd|HV *|cophh_2hv|const COPHH *cophh|U32 flags
Amxd|COPHH *|cophh_copy|COPHH *cophh
Amxd|COPHH *|cophh_delete_pv|const COPHH *cophh|const char *key|U32 hash|U32 flags
Amd|const char *|CopLABEL|COP *const cop
Amd|const char *|CopLABEL_len|COP *const cop|STRLEN *len
Amd|const char *|CopLABEL_len_flags|COP *const cop|STRLEN *len|U32 *flags
+Amd|STRLEN|CopLINE|const COP * c
+Amd|HV *|CopSTASH|const COP * c
+Amd|bool|CopSTASH_eq|const COP * c|const HV * hv
+Amd|char *|CopSTASHPV|const COP * c
+Amd|void|CopSTASHPV_set|COP * c|const char * pv
+Amd|bool|CopSTASH_set|COP * c|const HV * hv
Amd|void|Copy|void* src|void* dest|int nitems|type
Amd|void *|CopyD|void* src|void* dest|int nitems|type
-Amnd||CPPLAST
-Amnd||CPPMINUS
-Amnd||CPPRUN
-Amnd||CPPSTDIN
+AmDd|void|CPERLscope|void x
Amnhd||CV_NAME_NOTQUAL
Amxd|PADLIST *|CvPADLIST|CV *cv
Amd|HV*|CvSTASH|CV* cv
Amnsd||dAX
Amnsd||dAXMARK
Amnd|void|DECLARATION_FOR_LC_NUMERIC_MANIPULATION
+Amnd|SV *|DEFSV
+Amd|void|DEFSV_set|SV * sv
Amnsd||dITEMS
msd||djSP
Amnsd||dMARK
Amnsd||dMULTICALL
Amnhd||dMY_CXT
+Amnsd||dMY_CXT_SV
+Amnsd||dNOOP
Amnsd||dORIGMARK
-Amnd||DOUBLEINFBYTES
-Amnd||DOUBLEKIND
-Amnd||DOUBLEMANTBITS
-Amnd||DOUBLENANBYTES
-Amnd||DOUBLESIZE
Amd|bool|DO_UTF8|SV* sv
mnd|void|dSAVEDERRNO
mnd|void|dSAVE_ERRNO
Amnsd||dSP
+Amnsd||dTARGET
Amnhd||dTHR
Amnhd||dTHX
+AmUd|void|dTHXa|PerlInterpreter * a
+AmUd|void|dTHXoa|PerlInterpreter * a
Amnsd||dUNDERBAR
-Amnhd||dVAR
+AmnUd||dVAR
Amnsd||dXCPT
Amnsd||dXSARGS
Amnsd||dXSI32
+AmnUud|void|END_EXTERN_C
Amnsd||ENTER
Amsd||ENTER_with_name|"name"
Amnd|SV *|ERRSV
Amd|void|EXTEND|SP|SSize_t nitems
+AmnUud|void|EXTERN_C
Amnsd||FREETMPS
-AmnUd||G_ARRAY
-AmnUd||G_DISCARD
-AmnUd||G_EVAL
-Amnd|U32|GIMME
+AmnUhd||G_ARRAY
+AmnUhd||G_DISCARD
+Amd|CV *|get_cvs|"string"|I32 flags
+AmnUhd||G_EVAL
+AmnDd|U32|GIMME
Amnd|U32|GIMME_V
+AmnUhd||G_KEEPERR
Amnhd||G_METHOD
Amnhd||G_METHOD_NAMED
-AmnUd||G_NOARGS
+AmnUhd||G_NOARGS
Amnhd||G_RETHROW
AmdR|bool|GROK_NUMERIC_RADIX|NN const char **sp|NN const char *send
-AmnUd||G_SCALAR
+AmnUhd||G_SCALAR
Amnhd||GV_ADD
Amnhd||GV_ADDMG
Amnhd||GV_ADDMULTI
+Amnhd||GV_ADDWARN
Amd|AV*|GvAV|GV* gv
+Emnhd||GV_CACHE_ONLY
Amd|CV*|GvCV|GV* gv
+Amd|GV*|gv_fetchpvn|const char* name|STRLEN len|I32 flags|const svtype sv_type
+Amd|GV*|gv_fetchpvs|"name"|I32 flags|const svtype sv_type
+Amd|GV *|gv_fetchsv_nomg|SV *name|I32 flags|const svtype sv_type
Amd|HV*|GvHV|GV* gv
Amnhd||GV_NOADD_NOINIT
Amnhd||GV_NOEXPAND
Amnhd||GV_NOINIT
-AmnUd||G_VOID
+Amnhd||GV_NO_SVGMAGIC
+Amnhd||GV_NOTQUAL
+AmnUhd||G_VOID
Amd|HV*|gv_stashpvs|"name"|I32 create
Amnhd||GV_SUPER
Amd|SV*|GvSV|GV* gv
+Amd|SV*|GvSVn|GV* gv
AmnUd||HEf_SVKEY
Amd|U32|HeHASH|HE* he
Amd|void*|HeKEY|HE* he
Amd|STRLEN|HvFILL|HV *const hv
Amnhd||HV_ITERNEXT_WANTPLACEHOLDERS
Amd|char*|HvNAME|HV* stash
+Cmhd|char*|HvNAME_get|HV* stash
Amd|STRLEN|HvNAMELEN|HV *stash
+Amhd|char*|HvNAMELEN_get|HV* stash
Amd|unsigned char|HvNAMEUTF8|HV *stash
Amd|SV**|hv_stores|HV* tb|"key"|SV* val
-Amnd||I16SIZE
-Amnd||I16TYPE
-Amnd||I32SIZE
-Amnd||I32TYPE
-Amnd||I8SIZE
-Amnd||I8TYPE
Amnd|bool|IN_LOCALE
Amnd|bool|IN_LOCALE_COMPILETIME
Amnd|bool|IN_LOCALE_RUNTIME
+Amnd|bool|IN_PERL_COMPILETIME
+Amnd|bool|IN_PERL_RUNTIME
Amhd|void *|INT2PTR|type|int value
-Amnd||INTSIZE
+Amd||INTMAX_C|number
Amhd|bool|isALNUM|int ch
Amhd|bool|isALNUM_A|int ch
Amhd|bool|isALNUMC|int ch
Amhd|bool|isGRAPH_utf8|U8 * s|U8 * end
Amhd|bool|isGRAPH_utf8_safe|U8 * s|U8 * end
Amhd|bool|isGRAPH_uvchr|int ch
+Amd|bool|isGV_with_GP|SV * sv
Amd|bool|isIDCONT|char ch
Amhd|bool|isIDCONT_A|int ch
Amhd|bool|isIDCONT_L1|int ch
Amhd|bool|isXDIGIT_uvchr|int ch
Amnd|I32|items
Amnhd||IVdf
-Amnd||IVSIZE
-Amnd||IVTYPE
Amnd|I32|ix
Amd|U8|LATIN1_TO_NATIVE|U8 ch
Amnsd||LEAVE
Amnhd||LEX_STUFF_UTF8
AmUd|bool|LIKELY|const bool expr
Amd|OP*|LINKLIST|OP *o
-Amnd||LONGDBLINFBYTES
-Amnd||LONGDBLMANTBITS
-Amnd||LONGDBLNANBYTES
-Amnd||LONGSIZE
-Amnd||LSEEKSIZE
mnUd||LVRET
AmnUd||MARK
Amd|bool|memCHRs|"list"|char c
Amd|void|mPUSHs|SV* sv
Amd|void|mPUSHu|UV uv
Amnsd||MULTICALL
+Amhd|AV *|MUTABLE_AV|AV * p
+Amhd|CV *|MUTABLE_CV|CV * p
+Amhd|GV *|MUTABLE_GV|GV * p
+Amhd|HV *|MUTABLE_HV|HV * p
+Amhd|IO *|MUTABLE_IO|IO * p
+Amd|void *|MUTABLE_PTR|void * p
+Amhd|SV *|MUTABLE_SV|SV * p
Amd|void|mXPUSHi|IV iv
Amd|void|mXPUSHn|NV nv
Amd|void|mXPUSHp|char* str|STRLEN len
Amd|void|Newxc|void* ptr|int nitems|type|cast
AmUd||newXSproto|char* name|XSUBADDR_t f|char* filename|const char *proto
Amd|void|Newxz|void* ptr|int nitems|type
+Amnsd||NOOP
ADmnUd||Nullav
AmnUd||Nullch
ADmnUd||Nullcv
ADmnUd||Nullhv
AmnUd||Nullsv
+Cmhd|void *|NUM2PTR|type|int value
Amnhd||NVef
Amnhd||NVff
Amnhd||NVgf
-Amnd||NVMANTBITS
-Amnd||NVSIZE
-Amnd||NVTYPE
Amd|U32|OP_CLASS|OP *o
Amd|const char *|OP_DESC|OP *o
Amnhd||OPf_KIDS
Amd|bool|OP_TYPE_IS|OP *o|Optype type
Amd|bool|OP_TYPE_IS_OR_WAS|OP *o|Optype type
AmnUd||ORIGMARK
-Amnd||OSNAME
-Amnd||OSVERS
+Amd|U32|packWARN|U32 w1
+Amhd|bool|packWARN2|U32 w1|U32 w2
+Amhd|bool|packWARN3|U32 w1|U32 w2|U32 w3
+Amhd|bool|packWARN4|U32 w1|U32 w2|U32 w3|U32 w4
Amd|PADOFFSET|pad_add_name_pvs|"name"|U32 flags|HV *typestash|HV *ourstash
Amxd|SV **|PadARRAY|PAD * pad
md|SV *|PAD_BASE_SV |PADLIST padlist|PADOFFSET po
ATmhd|int |PerlIO_fast_gets|PerlIO *f
ATmhd|PerlIO*|PerlIO_fdopen|int fd|const char *mode
ATmhd|FILE *|PerlIO_findFILE|PerlIO *f
+Amd|PerlIO_funcs *|PERLIO_FUNCS_CAST|PerlIO * func
+Amd||PERLIO_FUNCS_DECL|PerlIO * func
ATmhd|int |PerlIO_getc|PerlIO *d
ATmhd|int |PerlIO_getpos|PerlIO *f|SV *save
ATmhd|int |PerlIO_has_base|PerlIO *f
Amnhd||PERL_PV_ESCAPE_RE
Amnhd||PERL_PV_ESCAPE_UNI
Amnhd||PERL_PV_ESCAPE_UNI_DETECT
+Cmnhd||PERL_PV_PRETTY_DUMP
Amnhd||PERL_PV_PRETTY_ELLIPSES
Amnhd||PERL_PV_PRETTY_LTGT
+Cmnhd||PERL_PV_PRETTY_NOCLEAR
Amnhd||PERL_PV_PRETTY_QUOTE
+Cmnhd||PERL_PV_PRETTY_REGPROP
AmnUhd||PERL_QUAD_MAX
AmnUhd||PERL_QUAD_MIN
-hAmnd|int|PERL_REVISION
+AmDnUd|U8|PERL_REVISION
Amnhd||PERL_SCAN_ALLOW_UNDERSCORES
Amnhd||PERL_SCAN_DISALLOW_PREFIX
Amnhd||PERL_SCAN_GREATER_THAN_UV_MAX
Amnhd||PERL_SCAN_TRAILING
AmnUhd||PERL_SHORT_MAX
AmnUhd||PERL_SHORT_MIN
-hAmnd|int|PERL_SUBVERSION
+Amnd|U32|PERL_SIGNALS_UNSAFE_FLAG
+AmDnUd|U8|PERL_SUBVERSION
Amd|void|PERL_SYS_INIT|int *argc|char*** argv
Amd|void|PERL_SYS_INIT3|int *argc|char*** argv|char*** env
Amd|void|PERL_SYS_TERM|
AmnUhd||PERL_UCHAR_MAX
AmnUhd||PERL_UCHAR_MIN
AmnUhd||PERL_UINT_MAX
+AmnUhd||PERL_UINT_MIN
AmnUhd||PERL_ULONG_MAX
AmnUhd||PERL_ULONG_MIN
+Amd||PERL_UNUSED_ARG|void x
+Amnd||PERL_UNUSED_CONTEXT
+AmnUd||PERL_UNUSED_DECL
+Amd||PERL_UNUSED_RESULT|void x
+Amd||PERL_UNUSED_VAR|void x
AmnUhd||PERL_UQUAD_MAX
AmnUhd||PERL_UQUAD_MIN
+AmnuUd|bool|PERL_USE_GCC_BRACE_GROUPS
AmnUhd||PERL_USHORT_MAX
AmnUhd||PERL_USHORT_MIN
-hAmnd|int|PERL_VERSION
-AmdR|bool|PERL_VERSION_EQ|const int r|const int v|const int s
-AmdR|bool|PERL_VERSION_GE|const int r|const int v|const int s
-AmdR|bool|PERL_VERSION_GT|const int r|const int v|const int s
-AmdR|bool|PERL_VERSION_LE|const int r|const int v|const int s
-AmdR|bool|PERL_VERSION_LT|const int r|const int v|const int s
-AmdR|bool|PERL_VERSION_NE|const int r|const int v|const int s
+AmDnUd|U8|PERL_VERSION
+AmRd|bool|PERL_VERSION_EQ|const U8 major|const U8 minor|const U8 patch
+AmRhd|bool|PERL_VERSION_GE|const U8 major|const U8 minor|const U8 patch
+AmRhd|bool|PERL_VERSION_GT|const U8 major|const U8 minor|const U8 patch
+AmRhd|bool|PERL_VERSION_LE|const U8 major|const U8 minor|const U8 patch
+AmRhd|bool|PERL_VERSION_LT|const U8 major|const U8 minor|const U8 patch
+AmRhd|bool|PERL_VERSION_NE|const U8 major|const U8 minor|const U8 patch
AmnUd|Perl_check_t *|PL_check
AmnxUd|PAD *|PL_comppad
AmnxUd|PADNAMELIST *|PL_comppad_name
mnd|SV *|PL_DBtrace
Amnd|GV *|PL_defgv
mnd|U8|PL_dowarn
-Amnhd|GV *|PL_errgv
+AmnUhd|GV *|PL_errgv
Amnd|U8|PL_exit_flags
+AmTuUd|const char *|PL_hexdigit|U8 value
AmnUxd|Perl_keyword_plugin_t|PL_keyword_plugin
mnd|GV*|PL_last_in_gv
Amnd|HV*|PL_modglobal
Amnd|peep_t|PL_rpeepp
mnd|SV*|PL_rs
Amnd|runops_proc_t|PL_runops
+Amnd||PL_Sv
Amnd|SV|PL_sv_no
Amnd|SV|PL_sv_undef
Amnd|SV|PL_sv_yes
Amnd|SV*|POPs
Amnd|UV|POPu
Amnd|long|POPul
-Amnd||PRIVLIB
Amnhd||pTHX
Amnhd||pTHX_
Amhd|IV|PTR2IV|void *
+Amhd|IV|PTR2nat|void *
Amhd|NV|PTR2NV|void *
+Amhd|unsigned long|PTR2ul|void *
Amhd|UV|PTR2UV|void *
-Amnd||PTRSIZE
+AmhuUd|type|PTRV
Amd|void|PUSHi|IV iv
Amd|void|PUSHMARK|SP
Amnd|void|PUSHmortal
Amd|void|PUSHs|SV* sv
Amd|void|PUSHu|UV uv
Amnsd||PUTBACK
-Amnd||RANDBITS
Amd|U8|READ_XDIGIT|char str*
md|SV *|refcounted_he_fetch_pvs|const struct refcounted_he *chain|"key"|U32 flags
md|struct refcounted_he *|refcounted_he_new_pvs|struct refcounted_he *parent|"key"|SV *value|U32 flags
Amnhd||RV2CVOPCV_RETURN_NAME_GV
Amd|void|Safefree|void* ptr
Amd|void|SANE_ERRSV
+Amhd||SAVEBOOL|int i
md|void|SAVECLEARSV |SV **svp
md|void|SAVECOMPPAD
+Amnd|void|SAVE_DEFSV
+Amhd||SAVEDELETE|HV * hv|char * key|I32 length
+Amhd||SAVEDESTRUCTOR|DESTRUCTORFUNC_NOCONTEXT_t f|void *p
mnd|void|SAVE_ERRNO
+Amhd||SAVEFREEOP|OP *op
+Amhd||SAVEFREEPV|void * p
+Amhd||SAVEFREESV|SV* sv
+Amhd||SAVEI16|I16 i
+Amhd||SAVEI32|I32 i
+Amhd||SAVEI8|I8 i
+Amhd||SAVEINT|int i
+Amhd||SAVEIV|IV i
+Amhd||SAVELONG|long i
+Amhd||SAVEMORTALIZESV|SV* sv
md|void|SAVEPADSV |PADOFFSET po
+Amhd||SAVEPPTR|char * p
Amad|char*|savepvs|"literal string"
Amad|char*|savesharedpvs|"literal string"
+Amhd||SAVESPTR|SV * s
+Amhd||SAVESTACK_POS
Amnsd||SAVETMPS
md|void|SETERRNO|int errcode|int vmserrcode
-Amnd||SHORTSIZE
-Amnd||SITELIB
AmnUd||SP
Amnsd||SPAGAIN
Amd|SV*|ST|int ix
+AmnUud|void|START_EXTERN_C
Amnhd||START_MY_CXT
-Amnd||STARTPERL
-Amnd||STDCHAR
AmnUhud|void|STMT_END
AmnUud|void|STMT_START
Amd|void|STORE_LC_NUMERIC_FORCE_TO_UNDERLYING
Amhd||SVfARG|SV *sv
Amnhd||SVf_UTF8
Amd|U32|SvGAMAGIC|SV* sv
-Amd|void|SvGETMAGIC|SV* sv
Amnhd||SV_GMAGIC
Amd|char *|SvGROW|SV* sv|STRLEN len
Amnhd||SV_HAS_TRAILING_NUL
Amd|bool|SvIOK_UV|SV* sv
Amd|U32|SvIsCOW|SV* sv
Amd|bool|SvIsCOW_shared_hash|SV* sv
-Amd|IV|SvIV|SV* sv
-Amd|IV|SvIV_nomg|SV* sv
Amd|void|SvIV_set|SV* sv|IV val
Amd|IV|SvIVX|SV* sv
Amd|IV|SvIVx|SV* sv
Amd|void|SvNOK_only|SV* sv
Amd|U32|SvNOKp|SV* sv
Amnhd||SV_NOSTEAL
-Amd|NV|SvNV|SV* sv
-Amd|NV|SvNV_nomg|SV* sv
Amd|void|SvNV_set|SV* sv|NV val
Amd|NV|SvNVX|SV* sv
Amd|NV|SvNVx|SV* sv
Amd|U32|SvOK|SV* sv
Amd|U32|SvOOK|SV* sv
+Amd|void|SvOOK_off|SV * sv
Amd|void|SvOOK_offset|SV*sv|STRLEN len
Amd|U32|SvPOK|SV* sv
Amd|void|SvPOK_off|SV* sv
Amd|char*|SvPVbytex|SV* sv|STRLEN len
Amd|char*|SvPVbytex_force|SV* sv|STRLEN len
Amd|char *|SvPVCLEAR|SV* sv
+Amhd|const char*|SvPV_const|SV* sv|STRLEN len
+Amd|char *|SvPV_flags|SV * sv|STRLEN len|U32 flags
+Amhd|const char *|SvPV_flags_const|SV * sv|STRLEN len|U32 flags
+Amd|const char *|SvPV_flags_const_nolen|SV * sv|U32 flags
+Amhd|char *|SvPV_flags_mutable|SV * sv|STRLEN len|U32 flags
Amd|char*|SvPV_force|SV* sv|STRLEN len
-Amd|char*|SvPV_force_nomg|SV* sv|STRLEN len
+Amd|char *|SvPV_force_flags|SV * sv|STRLEN len|U32 flags
+Amhd|char*|SvPV_force_flags_mutable|SV* sv|STRLEN len|U32 flags
+Amd|char*|SvPV_force_flags_nolen|SV* sv|U32 flags
+Amhd|char*|SvPV_force_mutable|SV* sv|STRLEN len
+Amd|char*|SvPV_force_nolen|SV* sv
+Amhd|char*|SvPV_force_nomg|SV* sv|STRLEN len
+Amhd|char*|SvPV_force_nomg_nolen|SV* sv
+Amhd|const char*|SvPV_mutable|SV* sv|STRLEN len
Amd|char*|SvPV_nolen|SV* sv
-Amd|char*|SvPV_nomg|SV* sv|STRLEN len
-Amd|char*|SvPV_nomg_nolen|SV* sv
+Amhd|const char*|SvPV_nolen_const|SV* sv
+Amhd|char*|SvPV_nomg|SV* sv|STRLEN len
+Amhd|const char*|SvPV_nomg_const|SV* sv|STRLEN len
+Amhd|const char*|SvPV_nomg_const_nolen|SV* sv
+Amhd|char*|SvPV_nomg_nolen|SV* sv
+Amd|void|SvPV_renew|SV* sv|STRLEN len
Amd|void|SvPV_set|SV* sv|char* val
+Amd|void|SvPV_shrink_to_cur|SV* sv
Amd|char*|SvPVutf8|SV* sv|STRLEN len
Amd|char*|SvPVutf8_force|SV* sv|STRLEN len
Amd|char*|SvPVutf8_nolen|SV* sv
Amd|char*|SvPVutf8x|SV* sv|STRLEN len
Amd|char*|SvPVutf8x_force|SV* sv|STRLEN len
Amd|char*|SvPVX|SV* sv
-Amd|char*|SvPVx|SV* sv|STRLEN len
+Amhd|char*|SvPVx|SV* sv|STRLEN len
+Amd|const char*|SvPVX_const|SV* sv
+Amd|const char*|SvPVX_mutable|SV* sv
Amd|U32|SvREADONLY|SV* sv
Amd|U32|SvREADONLY_off|SV* sv
Amd|U32|SvREADONLY_on|SV* sv
Amd|void|sv_setsv_nomg|SV* dsv|SV* ssv
Amd|void|SvSetSV_nosteal|SV* dsv|SV* ssv
Amd|void|SvSHARE|SV* sv
+Amd|struct hek*|SvSHARED_HASH|SV * sv
Amnhd||SV_SMAGIC
Amnhd||SVs_PADSTALE
Amd|HV*|SvSTASH|SV* sv
AmnUd||SVt_PVMG
AmnUd||SVt_PVNV
AmnUd||SVt_REGEXP
-Amd|bool|SvTRUE|SV* sv
-Amd|bool|SvTRUE_nomg|SV* sv
+Amd|bool|SvTRUE_nomg_NN|SV* sv
Amd|bool|SvTRUEx|SV* sv
Amd|svtype|SvTYPE|SV* sv
AmnUd||svtype
Amd|bool|SvUOK|SV* sv
Amd|void|SvUPGRADE|SV* sv|svtype type
Amd|U32|SvUTF8|SV* sv
+AmnhDd||SV_UTF8_NO_ENCODING
Amd|void|SvUTF8_off|SV *sv
Amd|void|SvUTF8_on|SV *sv
-Amd|UV|SvUV|SV* sv
-Amd|UV|SvUV_nomg|SV* sv
Amd|void|SvUV_set|SV* sv|UV val
Amd|UV|SvUVX|SV* sv
Amd|UV|SvUVx|SV* sv
AmDd|UV|SvUVXx|SV* sv
Amd|bool|SvVOK|SV* sv
+Amd|MAGIC*|SvVSTRING_mg|SV * sv
+Amnsd||TARG
Amnd|(whatever)|THIS
Amd|U8|toFOLD|U8 ch
Amd|UV|toFOLD_utf8|U8* p|U8* e|U8* s|STRLEN* lenp
Amd|UV|toUPPER_utf8|U8* p|U8* e|U8* s|STRLEN* lenp
Amd|UV|toUPPER_utf8_safe|U8* p|U8* e|U8* s|STRLEN* lenp
Amd|UV|toUPPER_uvchr|UV cp|U8* s|STRLEN* lenp
-Amnd||U16SIZE
-Amnd||U16TYPE
-Amnd||U32SIZE
-Amnd||U32TYPE
-Amnd||U8SIZE
-Amnd||U8TYPE
+Amd||UINTMAX_C|number
AmnUd||UNDERBAR
AmnUd|UV|UNICODE_REPLACEMENT
Amd|UV|UNI_TO_NATIVE|UV ch
Amd|bool|UVCHR_IS_INVARIANT|UV cp
Amd|STRLEN|UVCHR_SKIP|UV cp
Amnhd||UVof
-Amnd||UVSIZE
-Amnd||UVTYPE
Amnhd||UVuf
-Amnd||UVXf
Amnhd||UVxf
Amnhd||WARN_ALL
Amnhd||WARN_AMBIGUOUS
Amd|void|XPUSHp|char* str|STRLEN len
Amd|void|XPUSHs|SV* sv
Amd|void|XPUSHu|UV uv
-AmnUd||XS
+AmUd||XS
Amnsd||XS_APIVERSION_BOOTCHECK
-AmnUd||XS_EXTERNAL
+AmUd||XS_EXTERNAL
AmUd||XS_INTERNAL
+AmUd||XSPROTO
Amd|void|XSRETURN|int nitems
Amnsd||XSRETURN_EMPTY
Amd|void|XSRETURN_IV|IV iv
5.003007
+ABORT # Z added by devel/scanprov
amagic_call # T
+AMG_CALLun # Z added by devel/scanprov
+AMGfallNEVER # Z added by devel/scanprov
+AMGfallNO # Z added by devel/scanprov
+AMGfallYES # Z added by devel/scanprov
+AMGf_assign # Z added by devel/scanprov
+AMGf_noleft # Z added by devel/scanprov
+AMGf_noright # Z added by devel/scanprov
+AMGf_unary # Z added by devel/scanprov
+ANYOF # Z added by devel/scanprov
+apply # F added by devel/scanprov
+ARCHLIB # K added by devel/scanprov
+ARCHLIB_EXP # K added by devel/scanprov
+ARG1 # Z added by devel/scanprov
+ARG2 # Z added by devel/scanprov
+ARGTARG # Z added by devel/scanprov
+assert # Z added by devel/scanprov
+AvALLOC # Z added by devel/scanprov
+AvARRAY # Z added by devel/scanprov
+AvARYLEN # Z added by devel/scanprov
av_clear # T
av_extend # T
av_fetch # T
AvFILL # T
av_len # T
av_make # T
+AvMAX # Z added by devel/scanprov
av_pop # T
av_push # T
+AvREAL # Z added by devel/scanprov
+AvREALISH # Z added by devel/scanprov
+AvREAL_off # Z added by devel/scanprov
+AvREAL_on # Z added by devel/scanprov
+AvREIFY # Z added by devel/scanprov
+AvREIFY_off # Z added by devel/scanprov
+AvREIFY_on # Z added by devel/scanprov
av_shift # T
av_store # T
av_undef # T
av_unshift # T
ax # T
-BIN # T
-BYTEORDER # T
-CASTFLAGS # T
+BASEOP # Z added by devel/scanprov
+BIN # K added by devel/scanprov
+bind_match # F added by devel/scanprov
+BIT_BUCKET # Z added by devel/scanprov
+blk_eval # Z added by devel/scanprov
+blk_gimme # Z added by devel/scanprov
+blk_loop # Z added by devel/scanprov
+blk_oldcop # Z added by devel/scanprov
+blk_oldmarksp # Z added by devel/scanprov
+blk_oldpm # Z added by devel/scanprov
+blk_oldscopesp # Z added by devel/scanprov
+blk_oldsp # Z added by devel/scanprov
+blk_sub # Z added by devel/scanprov
+BmPREVIOUS # Z added by devel/scanprov
+BmRARE # Z added by devel/scanprov
+BmUSEFUL # Z added by devel/scanprov
+BOL # Z added by devel/scanprov
+bool # Z added by devel/scanprov
+boot_core_UNIVERSAL # F added by devel/scanprov
+BOUND # Z added by devel/scanprov
+BRANCH # Z added by devel/scanprov
+BSD_GETPGRP # Z added by devel/scanprov
+BSD_SETPGRP # Z added by devel/scanprov
+BUFSIZ # Z added by devel/scanprov
+BYTEORDER # K added by devel/scanprov
+CALL # X added by devel/scanprov
+cando # F added by devel/scanprov
+CAN_PROTOTYPE # Z added by devel/scanprov
+CASTFLAGS # K added by devel/scanprov
+CASTNEGFLOAT # K added by devel/scanprov
+cast_ulong # F added by devel/scanprov
+CAT2 # K added by devel/scanprov
+cBINOP # Z added by devel/scanprov
+cCOP # Z added by devel/scanprov
+checkcomma # F added by devel/scanprov
+check_uni # F added by devel/scanprov
+clearerr # Z added by devel/scanprov
+cLISTOP # Z added by devel/scanprov
+cLOGOP # Z added by devel/scanprov
+cLOOP # Z added by devel/scanprov
+CLOSE # Z added by devel/scanprov
Copy # T
-CPPMINUS # T
-CPPSTDIN # T
+cPMOP # Z added by devel/scanprov
+CPPMINUS # K added by devel/scanprov
+CPPSTDIN # K added by devel/scanprov
+cPVOP # Z added by devel/scanprov
+CSH # K added by devel/scanprov
+cSVOP # Z added by devel/scanprov
+Ctl # Z added by devel/scanprov
+CTYPE256 # Z added by devel/scanprov
+cUNOP # Z added by devel/scanprov
+CURLY # Z added by devel/scanprov
+CURLYX # Z added by devel/scanprov
+CvANON # Z added by devel/scanprov
+CvANON_off # Z added by devel/scanprov
+CvANON_on # Z added by devel/scanprov
cv_clone # T
+CvCLONE # Z added by devel/scanprov
+CvCLONED # Z added by devel/scanprov
+CvCLONED_off # Z added by devel/scanprov
+CvCLONED_on # Z added by devel/scanprov
+CvCLONE_off # Z added by devel/scanprov
+CvCLONE_on # Z added by devel/scanprov
cv_const_sv # T
CvDEPTH # T
+CVf_ANON # Z added by devel/scanprov
+CVf_CLONE # Z added by devel/scanprov
+CVf_CLONED # Z added by devel/scanprov
+CvFILEGV # Z added by devel/scanprov
+CvFLAGS # Z added by devel/scanprov
CvGV # T
+CvOUTSIDE # Z added by devel/scanprov
+CvROOT # Z added by devel/scanprov
+CvSTART # Z added by devel/scanprov
CvSTASH # T
cv_undef # T
-cxinc # T
+CvXSUB # Z added by devel/scanprov
+CvXSUBANY # Z added by devel/scanprov
+cx_dump # F added by devel/scanprov
+CXINC # Z added by devel/scanprov
+cxinc # F added by devel/scanprov
+CXt_BLOCK # Z added by devel/scanprov
+CXt_EVAL # Z added by devel/scanprov
+CXt_NULL # Z added by devel/scanprov
+CXt_SUB # Z added by devel/scanprov
+CXt_SUBST # Z added by devel/scanprov
+dATARGET # Z added by devel/scanprov
+DB_Hash_t # K added by devel/scanprov
+DB_Prefix_t # K added by devel/scanprov
+DEBUG # Z added by devel/scanprov
+DEBUG_c # Z added by devel/scanprov
+DEBUG_D # Z added by devel/scanprov
+DEBUG_f # Z added by devel/scanprov
+DEBUG_l # Z added by devel/scanprov
+DEBUG_m # Z added by devel/scanprov
+DEBUG_o # Z added by devel/scanprov
+DEBUG_P # Z added by devel/scanprov
+DEBUG_p # Z added by devel/scanprov
+DEBUG_r # Z added by devel/scanprov
+DEBUG_s # Z added by devel/scanprov
+DEBUG_t # Z added by devel/scanprov
+DEBUG_u # Z added by devel/scanprov
+DEBUG_X # Z added by devel/scanprov
+DEBUG_x # Z added by devel/scanprov
+dEXT # Z added by devel/scanprov
+DIE # Z added by devel/scanprov
+Direntry_t # K added by devel/scanprov
dMARK # T
+DM_DELAY # Z added by devel/scanprov
+DM_EGID # Z added by devel/scanprov
+DM_EUID # Z added by devel/scanprov
+DM_GID # Z added by devel/scanprov
+DM_RGID # Z added by devel/scanprov
+DM_RUID # Z added by devel/scanprov
+DM_UID # Z added by devel/scanprov
+do_chomp # F added by devel/scanprov
do_close # T
+do_eof # F added by devel/scanprov
+dofindlabel # F added by devel/scanprov
+DOINIT # Z added by devel/scanprov
+do_ipcctl # F added by devel/scanprov
+do_ipcget # F added by devel/scanprov
do_join # T
+do_msgrcv # F added by devel/scanprov
+do_msgsnd # F added by devel/scanprov
do_open # T
+dopoptoeval # F added by devel/scanprov
+do_print # F added by devel/scanprov
+do_readline # F added by devel/scanprov
dORIGMARK # T
-do_sprintf # T
-dounwind # T
+do_seek # F added by devel/scanprov
+do_semop # F added by devel/scanprov
+do_shmio # F added by devel/scanprov
+DOSISH # Z added by devel/scanprov
+do_sprintf # F added by devel/scanprov
+do_tell # F added by devel/scanprov
+do_trans # F added by devel/scanprov
+dounwind # F added by devel/scanprov
+do_vecset # F added by devel/scanprov
+do_vop # F added by devel/scanprov
dowantarray # T
+dPOPiv # Z added by devel/scanprov
+dPOPnv # Z added by devel/scanprov
+dPOPPOPiirl # Z added by devel/scanprov
+dPOPPOPnnrl # Z added by devel/scanprov
+dPOPPOPssrl # Z added by devel/scanprov
+dPOPss # Z added by devel/scanprov
+dPOPTOPiirl # Z added by devel/scanprov
+dPOPTOPnnrl # Z added by devel/scanprov
+dPOPTOPssrl # Z added by devel/scanprov
dSP # T
+dTARG # Z added by devel/scanprov
+dTARGET # T
+dTARGETSTACKED # Z added by devel/scanprov
dTHX # T
+dTOPiv # Z added by devel/scanprov
+dTOPnv # Z added by devel/scanprov
+dTOPss # Z added by devel/scanprov
+dump_mstats # F added by devel/scanprov
dXSARGS # T
+dXSI32 # M added by devel/scanprov
+dXSUB_SYS # Z added by devel/scanprov
+END # Z added by devel/scanprov
ENTER # T
+environ # Z added by devel/scanprov
+EOF # Z added by devel/scanprov
+EOF_NONBLOCK # K added by devel/scanprov
+EOL # Z added by devel/scanprov
+EXT # Z added by devel/scanprov
EXTEND # T
+FALSE # Z added by devel/scanprov
+fclose # Z added by devel/scanprov
+fdopen # Z added by devel/scanprov
+feof # Z added by devel/scanprov
+ferror # Z added by devel/scanprov
+FF_BLANK # Z added by devel/scanprov
+FF_CHECKCHOP # Z added by devel/scanprov
+FF_CHECKNL # Z added by devel/scanprov
+FF_CHOP # Z added by devel/scanprov
+FF_DECIMAL # Z added by devel/scanprov
+FF_END # Z added by devel/scanprov
+FF_FETCH # Z added by devel/scanprov
+FF_HALFSPACE # Z added by devel/scanprov
+FF_ITEM # Z added by devel/scanprov
+FF_LINEGLOB # Z added by devel/scanprov
+FF_LINEMARK # Z added by devel/scanprov
+FF_LITERAL # Z added by devel/scanprov
+Fflush # Z added by devel/scanprov
+fflush # Z added by devel/scanprov
+FF_MORE # Z added by devel/scanprov
+FF_NEWLINE # Z added by devel/scanprov
+FF_SKIP # Z added by devel/scanprov
+FF_SPACE # Z added by devel/scanprov
+fgetc # Z added by devel/scanprov
+fgetpos # Z added by devel/scanprov
+fgets # Z added by devel/scanprov
+FILE # Z added by devel/scanprov
+FILE_base # K added by devel/scanprov
+FILE_bufsiz # K added by devel/scanprov
+FILE_cnt # K added by devel/scanprov
+fileno # Z added by devel/scanprov
+FILE_ptr # K added by devel/scanprov
filter_add # T
+FILTER_DATA # Z added by devel/scanprov
filter_del # T
+FILTER_ISREADER # Z added by devel/scanprov
+FILTER_READ # Z added by devel/scanprov
filter_read # T
-free_tmps # T
+FLEXFILENAMES # K added by devel/scanprov
+flockfile # Z added by devel/scanprov
+FmLINES # Z added by devel/scanprov
+fold_constants # F added by devel/scanprov
+fopen # Z added by devel/scanprov
+force_ident # F added by devel/scanprov
+force_list # F added by devel/scanprov
+force_next # F added by devel/scanprov
+force_word # F added by devel/scanprov
+Fpos_t # K added by devel/scanprov
+fprintf # Z added by devel/scanprov
+fputc # Z added by devel/scanprov
+fputs # Z added by devel/scanprov
+fread # Z added by devel/scanprov
+free # Z added by devel/scanprov
+Free_t # K added by devel/scanprov
+free_tmps # F added by devel/scanprov
FREETMPS # T
+freopen # Z added by devel/scanprov
+fscanf # Z added by devel/scanprov
+fseek # Z added by devel/scanprov
+fsetpos # Z added by devel/scanprov
+Fstat # Z added by devel/scanprov
+ftell # Z added by devel/scanprov
+ftrylockfile # Z added by devel/scanprov
+funlockfile # Z added by devel/scanprov
+fwrite # Z added by devel/scanprov
+fwrite1 # Z added by devel/scanprov
G_ARRAY # T
+Gconvert # K added by devel/scanprov
G_DISCARD # T
+gen_constant_list # F added by devel/scanprov
+GETATARGET # Z added by devel/scanprov
+getc # Z added by devel/scanprov
+getc_unlocked # Z added by devel/scanprov
+GETTARGET # Z added by devel/scanprov
+GETTARGETSTACKED # Z added by devel/scanprov
+getw # Z added by devel/scanprov
G_EVAL # T
+Gid_t # K added by devel/scanprov
GIMME # T
+G_KEEPERR # T
G_NOARGS # T
gp_free # T
gp_ref # T
+Groups_t # K added by devel/scanprov
G_SCALAR # T
GV_ADD # T
GV_ADDMULTI # T
+GV_ADDWARN # T
+Gv_AMG # Z added by devel/scanprov
+GvASSUMECV # Z added by devel/scanprov
+GvASSUMECV_off # Z added by devel/scanprov
+GvASSUMECV_on # Z added by devel/scanprov
GvAV # T
gv_AVadd # T
-gv_check # T
+GvAVn # Z added by devel/scanprov
+gv_check # F added by devel/scanprov
GvCV # T
+GvCVGEN # Z added by devel/scanprov
gv_efullname # T
gv_efullname3 # T
+GvEGV # Z added by devel/scanprov
+GvENAME # Z added by devel/scanprov
+GvESTASH # Z added by devel/scanprov
+GVf_ASSUMECV # Z added by devel/scanprov
gv_fetchfile # T
gv_fetchmeth # T
gv_fetchmethod # T
gv_fetchpv # T
+GvFILEGV # Z added by devel/scanprov
+GVf_IMPORTED # Z added by devel/scanprov
+GVf_IMPORTED_AV # Z added by devel/scanprov
+GVf_IMPORTED_CV # Z added by devel/scanprov
+GVf_IMPORTED_HV # Z added by devel/scanprov
+GVf_IMPORTED_SV # Z added by devel/scanprov
+GVf_INTRO # Z added by devel/scanprov
+GvFLAGS # Z added by devel/scanprov
+GVf_MULTI # Z added by devel/scanprov
+GvFORM # Z added by devel/scanprov
gv_fullname # T
gv_fullname3 # T
+GvGP # Z added by devel/scanprov
GvHV # T
gv_HVadd # T
+GvHVn # Z added by devel/scanprov
+GvIMPORTED # Z added by devel/scanprov
+GvIMPORTED_AV # Z added by devel/scanprov
+GvIMPORTED_AV_off # Z added by devel/scanprov
+GvIMPORTED_AV_on # Z added by devel/scanprov
+GvIMPORTED_CV # Z added by devel/scanprov
+GvIMPORTED_CV_off # Z added by devel/scanprov
+GvIMPORTED_CV_on # Z added by devel/scanprov
+GvIMPORTED_HV # Z added by devel/scanprov
+GvIMPORTED_HV_off # Z added by devel/scanprov
+GvIMPORTED_HV_on # Z added by devel/scanprov
+GvIMPORTED_off # Z added by devel/scanprov
+GvIMPORTED_on # Z added by devel/scanprov
+GvIMPORTED_SV # Z added by devel/scanprov
+GvIMPORTED_SV_off # Z added by devel/scanprov
+GvIMPORTED_SV_on # Z added by devel/scanprov
gv_init # T
+GvINTRO # Z added by devel/scanprov
+GvINTRO_off # Z added by devel/scanprov
+GvINTRO_on # Z added by devel/scanprov
+GvIO # Z added by devel/scanprov
gv_IOadd # T
+GvIOn # Z added by devel/scanprov
+GvIOp # Z added by devel/scanprov
+GvLINE # Z added by devel/scanprov
+GvMULTI # Z added by devel/scanprov
+GvMULTI_off # Z added by devel/scanprov
+GvMULTI_on # Z added by devel/scanprov
+GvNAME # Z added by devel/scanprov
+GvNAMELEN # Z added by devel/scanprov
+GvREFCNT # Z added by devel/scanprov
+GvSTASH # Z added by devel/scanprov
gv_stashpv # T
gv_stashpvn # T
gv_stashsv # T
GvSV # T
+GvXPVGV # Z added by devel/scanprov
+HAS_ALARM # K added by devel/scanprov
+HAS_BOOL # Z added by devel/scanprov
+HAS_CHOWN # K added by devel/scanprov
+HAS_CHROOT # K added by devel/scanprov
+HAS_CRYPT # K added by devel/scanprov
+HAS_CUSERID # K added by devel/scanprov
+HAS_DIFFTIME # K added by devel/scanprov
+HAS_DLERROR # K added by devel/scanprov
+HAS_DUP2 # K added by devel/scanprov
+HAS_FCHMOD # K added by devel/scanprov
+HAS_FCHOWN # K added by devel/scanprov
+HAS_FCNTL # K added by devel/scanprov
+HAS_FGETPOS # K added by devel/scanprov
+HAS_FLOCK # K added by devel/scanprov
+HAS_FORK # K added by devel/scanprov
+HAS_FPATHCONF # K added by devel/scanprov
+HAS_FSETPOS # K added by devel/scanprov
+HAS_GETGROUPS # K added by devel/scanprov
+HAS_GETHOSTENT # K added by devel/scanprov
+HAS_GETLOGIN # K added by devel/scanprov
+HAS_GETPGID # K added by devel/scanprov
+HAS_GETPGRP # K added by devel/scanprov
+HAS_GETPPID # K added by devel/scanprov
+HAS_GETPRIORITY # K added by devel/scanprov
+HAS_GROUP # Z added by devel/scanprov
+HAS_HTONL # K added by devel/scanprov
+HAS_HTONS # K added by devel/scanprov
+HAS_IOCTL # Z added by devel/scanprov
+HAS_ISASCII # K added by devel/scanprov
+HAS_KILL # Z added by devel/scanprov
+HAS_KILLPG # K added by devel/scanprov
+HAS_LINK # K added by devel/scanprov
+HAS_LOCALECONV # K added by devel/scanprov
+HAS_LOCKF # K added by devel/scanprov
+HAS_LSTAT # K added by devel/scanprov
+HAS_MBLEN # K added by devel/scanprov
+HAS_MBSTOWCS # K added by devel/scanprov
+HAS_MBTOWC # K added by devel/scanprov
+HAS_MKDIR # K added by devel/scanprov
+HAS_MKFIFO # K added by devel/scanprov
+HAS_MKTIME # K added by devel/scanprov
+HAS_MSG # K added by devel/scanprov
+HAS_NICE # K added by devel/scanprov
+HAS_NTOHL # K added by devel/scanprov
+HAS_NTOHS # K added by devel/scanprov
+HAS_OPEN3 # K added by devel/scanprov
+HAS_PASSWD # Z added by devel/scanprov
+HAS_PATHCONF # K added by devel/scanprov
+HAS_PAUSE # K added by devel/scanprov
+HAS_PIPE # K added by devel/scanprov
+HAS_POLL # K added by devel/scanprov
+HAS_QUAD # K added by devel/scanprov
+HAS_READDIR # K added by devel/scanprov
+HAS_READLINK # K added by devel/scanprov
+HAS_RENAME # K added by devel/scanprov
+HAS_REWINDDIR # K added by devel/scanprov
+HAS_RMDIR # K added by devel/scanprov
+HAS_SEEKDIR # K added by devel/scanprov
+HAS_SELECT # K added by devel/scanprov
+HAS_SEM # K added by devel/scanprov
+HAS_SETEGID # K added by devel/scanprov
+HAS_SETEUID # K added by devel/scanprov
+HAS_SETLINEBUF # K added by devel/scanprov
+HAS_SETLOCALE # K added by devel/scanprov
+HAS_SETPGID # K added by devel/scanprov
+HAS_SETPGRP # K added by devel/scanprov
+HAS_SETPRIORITY # K added by devel/scanprov
+HAS_SETREGID # K added by devel/scanprov
+HAS_SETRESGID # K added by devel/scanprov
+HAS_SETRESUID # K added by devel/scanprov
+HAS_SETREUID # K added by devel/scanprov
+HAS_SETSID # K added by devel/scanprov
+HAS_SHM # K added by devel/scanprov
+HAS_SHMAT_PROTOTYPE # K added by devel/scanprov
+HAS_SIGACTION # K added by devel/scanprov
+HAS_SIGSETJMP # K added by devel/scanprov
+HAS_SOCKET # K added by devel/scanprov
+HAS_SOCKETPAIR # K added by devel/scanprov
+HAS_STRCOLL # K added by devel/scanprov
+HAS_STRXFRM # K added by devel/scanprov
+HAS_SYMLINK # K added by devel/scanprov
+HAS_SYSCALL # K added by devel/scanprov
+HAS_SYSCONF # K added by devel/scanprov
+HAS_SYS_ERRLIST # K added by devel/scanprov
+HAS_SYSTEM # K added by devel/scanprov
+HAS_TCGETPGRP # K added by devel/scanprov
+HAS_TCSETPGRP # K added by devel/scanprov
+HAS_TELLDIR # K added by devel/scanprov
+HAS_TIMES # K added by devel/scanprov
+HAS_TRUNCATE # K added by devel/scanprov
+HAS_TZNAME # K added by devel/scanprov
+HAS_UMASK # K added by devel/scanprov
+HAS_UNAME # K added by devel/scanprov
+HAS_UTIME # Z added by devel/scanprov
+HAS_WAIT # Z added by devel/scanprov
+HAS_WAIT4 # K added by devel/scanprov
+HAS_WAITPID # K added by devel/scanprov
+HAS_WCSTOMBS # K added by devel/scanprov
+HAS_WCTOMB # K added by devel/scanprov
HEf_SVKEY # T
HeHASH # T
HeKEY # T
HeKLEN # T
+HeNEXT # Z added by devel/scanprov
HeSVKEY # T
HeSVKEY_force # T
HeVAL # T
+HINT_BLOCK_SCOPE # Z added by devel/scanprov
+HINT_INTEGER # Z added by devel/scanprov
+HINT_STRICT_REFS # Z added by devel/scanprov
+HINT_STRICT_SUBS # Z added by devel/scanprov
+HINT_STRICT_VARS # Z added by devel/scanprov
+H_PERL # Z added by devel/scanprov
+htoni # Z added by devel/scanprov
+htonl # Z added by devel/scanprov
+htons # Z added by devel/scanprov
+htovl # Z added by devel/scanprov
+htovs # Z added by devel/scanprov
+HvARRAY # Z added by devel/scanprov
hv_clear # T
hv_delete # T
hv_delete_ent # T
+HvEITER # Z added by devel/scanprov
hv_exists # T
hv_exists_ent # T
hv_fetch # T
hv_iternext # T
hv_iternextsv # T
hv_iterval # T
+HvKEYS # Z added by devel/scanprov
hv_ksplit # T
+HvLAZYDEL # Z added by devel/scanprov
+HvLAZYDEL_off # Z added by devel/scanprov
+HvLAZYDEL_on # Z added by devel/scanprov
hv_magic # T
+HvMAX # Z added by devel/scanprov
HvNAME # T
+HvRITER # Z added by devel/scanprov
+HvSHAREKEYS # Z added by devel/scanprov
+HvSHAREKEYS_off # Z added by devel/scanprov
+HvSHAREKEYS_on # Z added by devel/scanprov
hv_store # T
hv_store_ent # T
hv_undef # T
+I16_MAX # Z added by devel/scanprov
+I16_MIN # Z added by devel/scanprov
+I_32 # Z added by devel/scanprov
+I32_MAX # Z added by devel/scanprov
+I32_MIN # Z added by devel/scanprov
ibcmp # T
+I_DIRENT # K added by devel/scanprov
+I_DLFCN # K added by devel/scanprov
+IFMATCH # Z added by devel/scanprov
+I_GRP # K added by devel/scanprov
+I_LIMITS # Z added by devel/scanprov
+I_LOCALE # K added by devel/scanprov
+I_NETINET_IN # K added by devel/scanprov
+ingroup # F added by devel/scanprov
+INIT # Z added by devel/scanprov
instr # T
-INTSIZE # T
+INTMAX_C # T
+INTSIZE # K added by devel/scanprov
+intuit_more # F added by devel/scanprov
+invert # F added by devel/scanprov
+IoBOTTOM_GV # Z added by devel/scanprov
+IoBOTTOM_NAME # Z added by devel/scanprov
+io_close # F added by devel/scanprov
+IOCPARM_LEN # Z added by devel/scanprov
+IoDIRP # Z added by devel/scanprov
+IOf_ARGV # Z added by devel/scanprov
+IOf_DIDTOP # Z added by devel/scanprov
+IOf_FLUSH # Z added by devel/scanprov
+IoFLAGS # Z added by devel/scanprov
+IoFMT_GV # Z added by devel/scanprov
+IoFMT_NAME # Z added by devel/scanprov
+IOf_START # Z added by devel/scanprov
+IOf_UNTAINT # Z added by devel/scanprov
+IoIFP # Z added by devel/scanprov
+IoLINES # Z added by devel/scanprov
+IoLINES_LEFT # Z added by devel/scanprov
+IoOFP # Z added by devel/scanprov
+IoPAGE # Z added by devel/scanprov
+IoPAGE_LEN # Z added by devel/scanprov
+IoTOP_GV # Z added by devel/scanprov
+IoTOP_NAME # Z added by devel/scanprov
+IoTYPE # Z added by devel/scanprov
+I_PWD # K added by devel/scanprov
isALNUM # T
isALPHA # T
isDIGIT # T
+isGV # Z added by devel/scanprov
isIDFIRST # T
isLOWER # T
isSPACE # T
+I_STDARG # Z added by devel/scanprov
isUPPER # T
+I_SYS_DIR # K added by devel/scanprov
+I_SYS_FILE # K added by devel/scanprov
+I_SYS_IOCTL # K added by devel/scanprov
+I_SYS_PARAM # K added by devel/scanprov
+I_SYS_RESOURCE # K added by devel/scanprov
+I_SYS_SELECT # K added by devel/scanprov
+I_SYS_STAT # K added by devel/scanprov
+I_SYS_TIME # K added by devel/scanprov
+I_SYS_TIMES # K added by devel/scanprov
+I_SYS_TYPES # K added by devel/scanprov
+I_SYS_UN # K added by devel/scanprov
+I_SYS_WAIT # K added by devel/scanprov
+I_TERMIOS # K added by devel/scanprov
+I_TIME # K added by devel/scanprov
+I_UNISTD # K added by devel/scanprov
+I_UTIME # K added by devel/scanprov
+I_V # Z added by devel/scanprov
+IV_MAX # Z added by devel/scanprov
+IV_MIN # Z added by devel/scanprov
+jmaybe # F added by devel/scanprov
+kBINOP # Z added by devel/scanprov
+kCOP # Z added by devel/scanprov
+KERNEL # Z added by devel/scanprov
+KEY_abs # Z added by devel/scanprov
+KEY_accept # Z added by devel/scanprov
+KEY_alarm # Z added by devel/scanprov
+KEY_and # Z added by devel/scanprov
+KEY_atan2 # Z added by devel/scanprov
+KEY_AUTOLOAD # Z added by devel/scanprov
+KEY_BEGIN # Z added by devel/scanprov
+KEY_bind # Z added by devel/scanprov
+KEY_binmode # Z added by devel/scanprov
+KEY_bless # Z added by devel/scanprov
+KEY_caller # Z added by devel/scanprov
+KEY_chdir # Z added by devel/scanprov
+KEY_chmod # Z added by devel/scanprov
+KEY_chomp # Z added by devel/scanprov
+KEY_chop # Z added by devel/scanprov
+KEY_chown # Z added by devel/scanprov
+KEY_chr # Z added by devel/scanprov
+KEY_chroot # Z added by devel/scanprov
+KEY_close # Z added by devel/scanprov
+KEY_closedir # Z added by devel/scanprov
+KEY_cmp # Z added by devel/scanprov
+KEY_connect # Z added by devel/scanprov
+KEY_continue # Z added by devel/scanprov
+KEY_cos # Z added by devel/scanprov
+KEY_crypt # Z added by devel/scanprov
+KEY___DATA # Z added by devel/scanprov
+KEY_dbmclose # Z added by devel/scanprov
+KEY_dbmopen # Z added by devel/scanprov
+KEY_defined # Z added by devel/scanprov
+KEY_delete # Z added by devel/scanprov
+KEY_DESTROY # Z added by devel/scanprov
+KEY_die # Z added by devel/scanprov
+KEY_do # Z added by devel/scanprov
+KEY_dump # Z added by devel/scanprov
+KEY_each # Z added by devel/scanprov
+KEY_else # Z added by devel/scanprov
+KEY_elsif # Z added by devel/scanprov
+KEY___END # Z added by devel/scanprov
+KEY_END # Z added by devel/scanprov
+KEY_endgrent # Z added by devel/scanprov
+KEY_endhostent # Z added by devel/scanprov
+KEY_endnetent # Z added by devel/scanprov
+KEY_endprotoent # Z added by devel/scanprov
+KEY_endpwent # Z added by devel/scanprov
+KEY_endservent # Z added by devel/scanprov
+KEY_eof # Z added by devel/scanprov
+KEY_eq # Z added by devel/scanprov
+KEY_eval # Z added by devel/scanprov
+KEY_exec # Z added by devel/scanprov
+KEY_exists # Z added by devel/scanprov
+KEY_exit # Z added by devel/scanprov
+KEY_exp # Z added by devel/scanprov
+KEY_fcntl # Z added by devel/scanprov
+KEY___FILE # Z added by devel/scanprov
+KEY_fileno # Z added by devel/scanprov
+KEY_flock # Z added by devel/scanprov
+KEY_for # Z added by devel/scanprov
+KEY_foreach # Z added by devel/scanprov
+KEY_fork # Z added by devel/scanprov
+KEY_format # Z added by devel/scanprov
+KEY_formline # Z added by devel/scanprov
+KEY_ge # Z added by devel/scanprov
+KEY_getc # Z added by devel/scanprov
+KEY_getgrent # Z added by devel/scanprov
+KEY_getgrgid # Z added by devel/scanprov
+KEY_getgrnam # Z added by devel/scanprov
+KEY_gethostbyaddr # Z added by devel/scanprov
+KEY_gethostbyname # Z added by devel/scanprov
+KEY_gethostent # Z added by devel/scanprov
+KEY_getlogin # Z added by devel/scanprov
+KEY_getnetbyaddr # Z added by devel/scanprov
+KEY_getnetbyname # Z added by devel/scanprov
+KEY_getnetent # Z added by devel/scanprov
+KEY_getpeername # Z added by devel/scanprov
+KEY_getpgrp # Z added by devel/scanprov
+KEY_getppid # Z added by devel/scanprov
+KEY_getpriority # Z added by devel/scanprov
+KEY_getprotobyname # Z added by devel/scanprov
+KEY_getprotobynumber # Z added by devel/scanprov
+KEY_getprotoent # Z added by devel/scanprov
+KEY_getpwent # Z added by devel/scanprov
+KEY_getpwnam # Z added by devel/scanprov
+KEY_getpwuid # Z added by devel/scanprov
+KEY_getservbyname # Z added by devel/scanprov
+KEY_getservbyport # Z added by devel/scanprov
+KEY_getservent # Z added by devel/scanprov
+KEY_getsockname # Z added by devel/scanprov
+KEY_getsockopt # Z added by devel/scanprov
+KEY_glob # Z added by devel/scanprov
+KEY_gmtime # Z added by devel/scanprov
+KEY_goto # Z added by devel/scanprov
+KEY_grep # Z added by devel/scanprov
+KEY_gt # Z added by devel/scanprov
+KEY_hex # Z added by devel/scanprov
+KEY_if # Z added by devel/scanprov
+KEY_index # Z added by devel/scanprov
+KEY_int # Z added by devel/scanprov
+KEY_ioctl # Z added by devel/scanprov
+KEY_join # Z added by devel/scanprov
+KEY_keys # Z added by devel/scanprov
+KEY_kill # Z added by devel/scanprov
+KEY_last # Z added by devel/scanprov
+KEY_lc # Z added by devel/scanprov
+KEY_lcfirst # Z added by devel/scanprov
+KEY_le # Z added by devel/scanprov
+KEY_length # Z added by devel/scanprov
+KEY___LINE # Z added by devel/scanprov
+KEY_link # Z added by devel/scanprov
+KEY_listen # Z added by devel/scanprov
+KEY_local # Z added by devel/scanprov
+KEY_localtime # Z added by devel/scanprov
+KEY_log # Z added by devel/scanprov
+KEY_lstat # Z added by devel/scanprov
+KEY_lt # Z added by devel/scanprov
+KEY_m # Z added by devel/scanprov
+KEY_map # Z added by devel/scanprov
+KEY_mkdir # Z added by devel/scanprov
+KEY_msgctl # Z added by devel/scanprov
+KEY_msgget # Z added by devel/scanprov
+KEY_msgrcv # Z added by devel/scanprov
+KEY_msgsnd # Z added by devel/scanprov
+KEY_my # Z added by devel/scanprov
+KEY_ne # Z added by devel/scanprov
+KEY_next # Z added by devel/scanprov
+KEY_no # Z added by devel/scanprov
+KEY_not # Z added by devel/scanprov
+KEY_NULL # Z added by devel/scanprov
+KEY_oct # Z added by devel/scanprov
+KEY_open # Z added by devel/scanprov
+KEY_opendir # Z added by devel/scanprov
+KEY_or # Z added by devel/scanprov
+KEY_ord # Z added by devel/scanprov
+KEY_pack # Z added by devel/scanprov
+KEY_package # Z added by devel/scanprov
+KEY_pipe # Z added by devel/scanprov
+KEY_pop # Z added by devel/scanprov
+KEY_pos # Z added by devel/scanprov
+KEY_print # Z added by devel/scanprov
+KEY_printf # Z added by devel/scanprov
+KEY_prototype # Z added by devel/scanprov
+KEY_push # Z added by devel/scanprov
+KEY_q # Z added by devel/scanprov
+KEY_qq # Z added by devel/scanprov
+KEY_quotemeta # Z added by devel/scanprov
+KEY_qw # Z added by devel/scanprov
+KEY_qx # Z added by devel/scanprov
+KEY_rand # Z added by devel/scanprov
+KEY_read # Z added by devel/scanprov
+KEY_readdir # Z added by devel/scanprov
+KEY_readline # Z added by devel/scanprov
+KEY_readlink # Z added by devel/scanprov
+KEY_readpipe # Z added by devel/scanprov
+KEY_recv # Z added by devel/scanprov
+KEY_redo # Z added by devel/scanprov
+KEY_ref # Z added by devel/scanprov
+KEY_rename # Z added by devel/scanprov
+KEY_require # Z added by devel/scanprov
+KEY_reset # Z added by devel/scanprov
+KEY_return # Z added by devel/scanprov
+KEY_reverse # Z added by devel/scanprov
+KEY_rewinddir # Z added by devel/scanprov
+KEY_rindex # Z added by devel/scanprov
+KEY_rmdir # Z added by devel/scanprov
+KEY_s # Z added by devel/scanprov
+KEY_scalar # Z added by devel/scanprov
+KEY_seek # Z added by devel/scanprov
+KEY_seekdir # Z added by devel/scanprov
+KEY_select # Z added by devel/scanprov
+KEY_semctl # Z added by devel/scanprov
+KEY_semget # Z added by devel/scanprov
+KEY_semop # Z added by devel/scanprov
+KEY_send # Z added by devel/scanprov
+KEY_setgrent # Z added by devel/scanprov
+KEY_sethostent # Z added by devel/scanprov
+KEY_setnetent # Z added by devel/scanprov
+KEY_setpgrp # Z added by devel/scanprov
+KEY_setpriority # Z added by devel/scanprov
+KEY_setprotoent # Z added by devel/scanprov
+KEY_setpwent # Z added by devel/scanprov
+KEY_setservent # Z added by devel/scanprov
+KEY_setsockopt # Z added by devel/scanprov
+KEY_shift # Z added by devel/scanprov
+KEY_shmctl # Z added by devel/scanprov
+KEY_shmget # Z added by devel/scanprov
+KEY_shmread # Z added by devel/scanprov
+KEY_shmwrite # Z added by devel/scanprov
+KEY_shutdown # Z added by devel/scanprov
+KEY_sin # Z added by devel/scanprov
+KEY_sleep # Z added by devel/scanprov
+KEY_socket # Z added by devel/scanprov
+KEY_socketpair # Z added by devel/scanprov
+KEY_sort # Z added by devel/scanprov
+KEY_splice # Z added by devel/scanprov
+KEY_split # Z added by devel/scanprov
+KEY_sprintf # Z added by devel/scanprov
+KEY_sqrt # Z added by devel/scanprov
+KEY_srand # Z added by devel/scanprov
+KEY_stat # Z added by devel/scanprov
+KEY_study # Z added by devel/scanprov
+KEY_sub # Z added by devel/scanprov
+KEY_substr # Z added by devel/scanprov
+KEY_symlink # Z added by devel/scanprov
+KEY_syscall # Z added by devel/scanprov
+KEY_sysopen # Z added by devel/scanprov
+KEY_sysread # Z added by devel/scanprov
+KEY_system # Z added by devel/scanprov
+KEY_syswrite # Z added by devel/scanprov
+KEY_tell # Z added by devel/scanprov
+KEY_telldir # Z added by devel/scanprov
+KEY_tie # Z added by devel/scanprov
+KEY_tied # Z added by devel/scanprov
+KEY_time # Z added by devel/scanprov
+KEY_times # Z added by devel/scanprov
+KEY_tr # Z added by devel/scanprov
+KEY_truncate # Z added by devel/scanprov
+KEY_uc # Z added by devel/scanprov
+KEY_ucfirst # Z added by devel/scanprov
+KEY_umask # Z added by devel/scanprov
+KEY_undef # Z added by devel/scanprov
+KEY_unless # Z added by devel/scanprov
+KEY_unlink # Z added by devel/scanprov
+KEY_unpack # Z added by devel/scanprov
+KEY_unshift # Z added by devel/scanprov
+KEY_untie # Z added by devel/scanprov
+KEY_until # Z added by devel/scanprov
+KEY_use # Z added by devel/scanprov
+KEY_utime # Z added by devel/scanprov
+KEY_values # Z added by devel/scanprov
+KEY_vec # Z added by devel/scanprov
+KEY_wait # Z added by devel/scanprov
+KEY_waitpid # Z added by devel/scanprov
+KEY_wantarray # Z added by devel/scanprov
+KEY_warn # Z added by devel/scanprov
+KEY_while # Z added by devel/scanprov
+keyword # F added by devel/scanprov
+KEY_write # Z added by devel/scanprov
+KEY_x # Z added by devel/scanprov
+KEY_xor # Z added by devel/scanprov
+KEY_y # Z added by devel/scanprov
+kLISTOP # Z added by devel/scanprov
+kLOGOP # Z added by devel/scanprov
+kLOOP # Z added by devel/scanprov
+kPMOP # Z added by devel/scanprov
+kPVOP # Z added by devel/scanprov
+kSVOP # Z added by devel/scanprov
+kUNOP # Z added by devel/scanprov
LEAVE # T
+LEAVE_SCOPE # Z added by devel/scanprov
leave_scope # T
+list # F added by devel/scanprov
+listkids # F added by devel/scanprov
+localize # F added by devel/scanprov
+LOCAL_PATCH_COUNT # Z added by devel/scanprov
+LOC_SED # K added by devel/scanprov
looks_like_number # T
+LvTARG # Z added by devel/scanprov
+LvTARGLEN # Z added by devel/scanprov
+LvTARGOFF # Z added by devel/scanprov
+LvTYPE # Z added by devel/scanprov
+magic_clearenv # F added by devel/scanprov
+magic_clearpack # F added by devel/scanprov
+magic_clearsig # F added by devel/scanprov
+magic_existspack # F added by devel/scanprov
+magic_get # F added by devel/scanprov
+magic_getarylen # F added by devel/scanprov
+magic_getpack # F added by devel/scanprov
+magic_getpos # F added by devel/scanprov
+magic_getsig # F added by devel/scanprov
+magic_gettaint # F added by devel/scanprov
+magic_getuvar # F added by devel/scanprov
+magic_nextpack # F added by devel/scanprov
+magic_set # F added by devel/scanprov
+magic_setarylen # F added by devel/scanprov
+magic_setdbline # F added by devel/scanprov
+magic_setenv # F added by devel/scanprov
+magic_setisa # F added by devel/scanprov
+magic_setmglob # F added by devel/scanprov
+magic_setnkeys # F added by devel/scanprov
+magic_setpack # F added by devel/scanprov
+magic_setpos # F added by devel/scanprov
+magic_setsig # F added by devel/scanprov
+magic_setsubstr # F added by devel/scanprov
+magic_settaint # F added by devel/scanprov
+magic_setuvar # F added by devel/scanprov
+magic_setvec # F added by devel/scanprov
+magic_wipepack # F added by devel/scanprov
+Malloc_t # K added by devel/scanprov
MARK # T
+MAXARG # Z added by devel/scanprov
+MAXO # Z added by devel/scanprov
+MAXSYSFD # Z added by devel/scanprov
+MBOL # Z added by devel/scanprov
+MEM_ALIGNBYTES # K added by devel/scanprov
+mem_collxfrm # F added by devel/scanprov
+MEM_SIZE # Z added by devel/scanprov
+memzero # Z added by devel/scanprov
+MEOL # Z added by devel/scanprov
+MEXTEND # Z added by devel/scanprov
mg_clear # T
mg_copy # T
+MGf_GSKIP # Z added by devel/scanprov
mg_find # T
+MGf_MINMATCH # Z added by devel/scanprov
mg_free # T
+MGf_REFCOUNTED # Z added by devel/scanprov
+MGf_TAINTEDDIR # Z added by devel/scanprov
mg_get # T
mg_magical # T
+MgPV # Z added by devel/scanprov
mg_set # T
-moreswitches # T
+MgTAINTEDDIR # Z added by devel/scanprov
+MgTAINTEDDIR_on # Z added by devel/scanprov
+MINMOD # Z added by devel/scanprov
+Mode_t # K added by devel/scanprov
+modkids # F added by devel/scanprov
+moreswitches # F added by devel/scanprov
Move # T
+MSPAGAIN # Z added by devel/scanprov
+my_chsize # F added by devel/scanprov
my_exit # T
my_pclose # T
my_popen # T
my_setenv # T
+my_unexec # F added by devel/scanprov
+NBOUND # Z added by devel/scanprov
+New # Z added by devel/scanprov
newANONHASH # T
newANONLIST # T
newANONSUB # T
newAV # T
newAVREF # T
newBINOP # T
+Newc # Z added by devel/scanprov
newCONDOP # T
newCVREF # T
newFORM # T
newSLICEOP # T
newSTATEOP # T
newSUB # T
+NEWSV # Z added by devel/scanprov
newSV # T
newSViv # T
newSVOP # T
newSVrv # T
newSVsv # T
newUNOP # T
+Newz # Z added by devel/scanprov
+nextargv # F added by devel/scanprov
+NEXTOPER # Z added by devel/scanprov
ninstr # T
+NofAMmeth # Z added by devel/scanprov
+no_fh_allowed # F added by devel/scanprov
+NOLINE # Z added by devel/scanprov
+no_op # F added by devel/scanprov
+NORMAL # Z added by devel/scanprov
+NOTHING # Z added by devel/scanprov
+ntohi # Z added by devel/scanprov
+ntohl # Z added by devel/scanprov
+ntohs # Z added by devel/scanprov
+Null # Z added by devel/scanprov
Nullav # T
Nullch # T
Nullcv # T
+Nullfp # Z added by devel/scanprov
+Nullgv # Z added by devel/scanprov
+Nullhe # Z added by devel/scanprov
Nullhv # T
+Nullop # Z added by devel/scanprov
Nullsv # T
+OA_AVREF # Z added by devel/scanprov
+OA_CVREF # Z added by devel/scanprov
+OA_DANGEROUS # Z added by devel/scanprov
+OA_DEFGV # Z added by devel/scanprov
+OA_FILEREF # Z added by devel/scanprov
+OA_FOLDCONST # Z added by devel/scanprov
+OA_HVREF # Z added by devel/scanprov
+OA_LIST # Z added by devel/scanprov
+OA_MARK # Z added by devel/scanprov
+OA_OPTIONAL # Z added by devel/scanprov
+OA_OTHERINT # Z added by devel/scanprov
+OA_RETSCALAR # Z added by devel/scanprov
+OA_SCALAR # Z added by devel/scanprov
+OA_SCALARREF # Z added by devel/scanprov
+OASHIFT # Z added by devel/scanprov
+OA_TARGET # Z added by devel/scanprov
+Off_t # K added by devel/scanprov
+oopsAV # F added by devel/scanprov
+oopsHV # F added by devel/scanprov
+OP # Z added by devel/scanprov
+opASSIGN # Z added by devel/scanprov
+OPCODE # Z added by devel/scanprov
+OPEN # Z added by devel/scanprov
+OPERAND # Z added by devel/scanprov
OPf_KIDS # T
+OPf_KNOW # Z added by devel/scanprov
+OPf_LIST # Z added by devel/scanprov
+OPf_MOD # Z added by devel/scanprov
+OPf_PARENS # Z added by devel/scanprov
op_free # T
+OPf_REF # Z added by devel/scanprov
+OPf_SPECIAL # Z added by devel/scanprov
+OPf_STACKED # Z added by devel/scanprov
+OPpASSIGN_BACKWARDS # Z added by devel/scanprov
+OPpCONST_BARE # Z added by devel/scanprov
+OPpCONST_ENTERED # Z added by devel/scanprov
+OPpDEREF_AV # Z added by devel/scanprov
+OPpDEREF_HV # Z added by devel/scanprov
OPpENTERSUB_AMPER # T
+OPpENTERSUB_DB # Z added by devel/scanprov
+OPpFLIP_LINENUM # Z added by devel/scanprov
+OPpLIST_GUESSED # Z added by devel/scanprov
+OPpLVAL_INTRO # Z added by devel/scanprov
+OPpREPEAT_DOLIST # Z added by devel/scanprov
+OPpTRANS_COMPLEMENT # Z added by devel/scanprov
+OPpTRANS_DELETE # Z added by devel/scanprov
+OPpTRANS_SQUASH # Z added by devel/scanprov
ORIGMARK # T
-OSNAME # T
+OSNAME # K added by devel/scanprov
+package # F added by devel/scanprov
pad_alloc # T
+pad_free # F added by devel/scanprov
+pad_leavemy # F added by devel/scanprov
+pad_reset # F added by devel/scanprov
+PAD_SV # Z added by devel/scanprov
+pad_sv # F added by devel/scanprov
+pad_swipe # F added by devel/scanprov
+PATCHLEVEL # Z added by devel/scanprov
+Pause # Z added by devel/scanprov
+pclose # Z added by devel/scanprov
+peep # F added by devel/scanprov
perl_alloc # T
perl_construct # T
+Perl_debug_log # Z added by devel/scanprov
perl_free # T
PERL_HASH # T
PERL_INT_MAX # T
PERL_INT_MIN # T
+PerlIO # Z added by devel/scanprov
PerlIO_canset_cnt # T
PerlIO_exportFILE # T
PerlIO_fast_gets # T
PerlIO_has_base # T
PerlIO_has_cntptr # T
PerlIO_importFILE # T
+PERLIO_NOT_STDIO # Z added by devel/scanprov
PerlIO_open # T
PerlIO_putc # T
PerlIO_puts # T
PERL_UCHAR_MAX # T
PERL_UCHAR_MIN # T
PERL_UINT_MAX # T
+PERL_UINT_MIN # T
PERL_ULONG_MAX # T
PERL_ULONG_MIN # T
PERL_UQUAD_MAX # T
PERL_UQUAD_MIN # T
PERL_USHORT_MAX # T
PERL_USHORT_MIN # T
+pidgone # F added by devel/scanprov
+PLUS # Z added by devel/scanprov
+PMf_CONST # Z added by devel/scanprov
+PMf_EVAL # Z added by devel/scanprov
+PMf_EXTENDED # Z added by devel/scanprov
+PMf_FOLD # Z added by devel/scanprov
+PMf_GLOBAL # Z added by devel/scanprov
+PMf_KEEP # Z added by devel/scanprov
+PMf_MULTILINE # Z added by devel/scanprov
+PMf_ONCE # Z added by devel/scanprov
+PMf_SINGLELINE # Z added by devel/scanprov
+pmruntime # F added by devel/scanprov
+pmtrans # F added by devel/scanprov
+popen # Z added by devel/scanprov
POPi # T
POPl # T
+POPMARK # Z added by devel/scanprov
POPp # T
POPs # T
pop_scope # T
+PP # Z added by devel/scanprov
pregexec # T
pregfree # T
-PRIVLIB # T
+PREVOPER # Z added by devel/scanprov
+printf # Z added by devel/scanprov
+PRIVLIB # K added by devel/scanprov
+PRIVLIB_EXP # K added by devel/scanprov
+PRIVSHIFT # Z added by devel/scanprov
PUSHi # T
PUSHMARK # T
PUSHp # T
PUSHs # T
push_scope # T
+PUSHTARG # Z added by devel/scanprov
PUTBACK # T
-RANDBITS # T
+putc # Z added by devel/scanprov
+putc_unlocked # Z added by devel/scanprov
+putw # Z added by devel/scanprov
+Quad_t # K added by devel/scanprov
+RANDBITS # K added by devel/scanprov
+RD_NODATA # K added by devel/scanprov
+REF # Z added by devel/scanprov
+refkids # F added by devel/scanprov
+regdump # F added by devel/scanprov
+register # Z added by devel/scanprov
+regnext # F added by devel/scanprov
+regprop # F added by devel/scanprov
Renew # T
Renewc # T
repeatcpy # T
+RETPUSHNO # Z added by devel/scanprov
+RETPUSHUNDEF # Z added by devel/scanprov
+RETPUSHYES # Z added by devel/scanprov
+RETSETNO # Z added by devel/scanprov
+RETSETUNDEF # Z added by devel/scanprov
+RETSETYES # Z added by devel/scanprov
+RETURN # Z added by devel/scanprov
+RETURNOP # Z added by devel/scanprov
+RETURNX # Z added by devel/scanprov
+RETVAL # X added by devel/scanprov
+rewind # Z added by devel/scanprov
rninstr # T
+RsPARA # Z added by devel/scanprov
+RsSIMPLE # Z added by devel/scanprov
+RsSNARF # Z added by devel/scanprov
+safecalloc # Z added by devel/scanprov
Safefree # T
+safefree # Z added by devel/scanprov
+safemalloc # Z added by devel/scanprov
+saferealloc # Z added by devel/scanprov
+same_dirent # F added by devel/scanprov
+SANY # Z added by devel/scanprov
save_aptr # T
save_ary # T
-save_clearsv # T
-save_delete # T
-save_freepv # T
-save_freesv # T
+save_clearsv # F added by devel/scanprov
+SAVECLEARSV # Z added by devel/scanprov
+save_delete # F added by devel/scanprov
+SAVEDELETE # T
+save_destructor # F added by devel/scanprov
+SAVEFREEPV # T
+SAVEFREESV # T
save_hash # T
save_hptr # T
-save_I32 # T
-save_int # T
+save_I32 # F added by devel/scanprov
+SAVEI32 # T
+save_int # F added by devel/scanprov
+SAVEINT # T
save_item # T
+SAVEIV # T
save_list # T
-save_long # T
+save_long # F added by devel/scanprov
+SAVELONG # T
save_nogv # T
-save_pptr # T
+save_pptr # F added by devel/scanprov
+SAVEPPTR # T
savepv # T
savepvn # T
save_scalar # T
-save_sptr # T
+save_sptr # F added by devel/scanprov
+SAVESPTR # T
savestack_grow # T
save_svref # T
+SAVEt_APTR # Z added by devel/scanprov
+SAVEt_AV # Z added by devel/scanprov
+SAVEt_CLEARSV # Z added by devel/scanprov
+SAVEt_DELETE # Z added by devel/scanprov
+SAVEt_DESTRUCTOR # Z added by devel/scanprov
+SAVEt_FREEOP # Z added by devel/scanprov
+SAVEt_FREEPV # Z added by devel/scanprov
+SAVEt_FREESV # Z added by devel/scanprov
+SAVEt_GP # Z added by devel/scanprov
+SAVEt_HPTR # Z added by devel/scanprov
+SAVEt_HV # Z added by devel/scanprov
+SAVEt_I32 # Z added by devel/scanprov
+SAVEt_INT # Z added by devel/scanprov
+SAVEt_ITEM # Z added by devel/scanprov
+SAVEt_IV # Z added by devel/scanprov
+SAVEt_LONG # Z added by devel/scanprov
SAVETMPS # T
+SAVEt_NSTAB # Z added by devel/scanprov
+SAVEt_PPTR # Z added by devel/scanprov
+SAVEt_REGCONTEXT # Z added by devel/scanprov
+SAVEt_SPTR # Z added by devel/scanprov
+SAVEt_SV # Z added by devel/scanprov
+SAVEt_SVREF # Z added by devel/scanprov
+sawparens # F added by devel/scanprov
+sb_dstr # Z added by devel/scanprov
+sb_iters # Z added by devel/scanprov
+sb_m # Z added by devel/scanprov
+sb_maxiters # Z added by devel/scanprov
+SBOL # Z added by devel/scanprov
+sb_orig # Z added by devel/scanprov
+sb_rx # Z added by devel/scanprov
+sb_s # Z added by devel/scanprov
+sb_strend # Z added by devel/scanprov
+sb_targ # Z added by devel/scanprov
+scalar # F added by devel/scanprov
+scalarkids # F added by devel/scanprov
+scalarseq # F added by devel/scanprov
+scalarvoid # F added by devel/scanprov
+scan_const # F added by devel/scanprov
+SCAN_DEF # Z added by devel/scanprov
+scan_formline # F added by devel/scanprov
+scan_heredoc # F added by devel/scanprov
+scan_ident # F added by devel/scanprov
+scan_inputsymbol # F added by devel/scanprov
+scan_num # F added by devel/scanprov
+scan_pat # F added by devel/scanprov
+SCAN_REPL # Z added by devel/scanprov
+scan_str # F added by devel/scanprov
+scan_subst # F added by devel/scanprov
+SCAN_TR # Z added by devel/scanprov
+scan_trans # F added by devel/scanprov
+scan_word # F added by devel/scanprov
+SEEK_CUR # Z added by devel/scanprov
+SEEK_END # Z added by devel/scanprov
+SEEK_SET # Z added by devel/scanprov
+Select_fd_set_t # K added by devel/scanprov
+SEOL # Z added by devel/scanprov
+setbuf # Z added by devel/scanprov
setdefout # T
-SITELIB # T
+SETERRNO # Z added by devel/scanprov
+SETi # Z added by devel/scanprov
+SETn # Z added by devel/scanprov
+SETp # Z added by devel/scanprov
+setregid # Z added by devel/scanprov
+setreuid # Z added by devel/scanprov
+SETs # Z added by devel/scanprov
+SETTARG # Z added by devel/scanprov
+setvbuf # Z added by devel/scanprov
+Shmat_t # K added by devel/scanprov
+SH_PATH # K added by devel/scanprov
+S_IFMT # Z added by devel/scanprov
+SIGABRT # Z added by devel/scanprov
+sighandler # F added by devel/scanprov
+SIGILL # Z added by devel/scanprov
+Sigjmp_buf # K added by devel/scanprov
+Siglongjmp # K added by devel/scanprov
+Signal_t # K added by devel/scanprov
+SIG_NAME # K added by devel/scanprov
+SIG_NUM # K added by devel/scanprov
+Sigsetjmp # K added by devel/scanprov
+S_IRGRP # Z added by devel/scanprov
+S_IROTH # Z added by devel/scanprov
+S_IRUSR # Z added by devel/scanprov
+S_ISBLK # Z added by devel/scanprov
+S_ISCHR # Z added by devel/scanprov
+S_ISDIR # Z added by devel/scanprov
+S_ISFIFO # Z added by devel/scanprov
+S_ISGID # Z added by devel/scanprov
+S_ISLNK # Z added by devel/scanprov
+S_ISREG # Z added by devel/scanprov
+S_ISSOCK # Z added by devel/scanprov
+S_ISUID # Z added by devel/scanprov
+SITEARCH # K added by devel/scanprov
+SITEARCH_EXP # K added by devel/scanprov
+SITELIB # K added by devel/scanprov
+SITELIB_EXP # K added by devel/scanprov
+S_IWGRP # Z added by devel/scanprov
+S_IWOTH # Z added by devel/scanprov
+S_IWUSR # Z added by devel/scanprov
+S_IXGRP # Z added by devel/scanprov
+S_IXOTH # Z added by devel/scanprov
+S_IXUSR # Z added by devel/scanprov
+Size_t # K added by devel/scanprov
+SLOPPYDIVIDE # Z added by devel/scanprov
SP # T
SPAGAIN # T
+SSCHECK # Z added by devel/scanprov
+SSize_t # K added by devel/scanprov
+SSPOPDPTR # Z added by devel/scanprov
+SSPOPINT # Z added by devel/scanprov
+SSPOPIV # Z added by devel/scanprov
+SSPOPLONG # Z added by devel/scanprov
+SSPOPPTR # Z added by devel/scanprov
+SSPUSHDPTR # Z added by devel/scanprov
+SSPUSHINT # Z added by devel/scanprov
+SSPUSHIV # Z added by devel/scanprov
+SSPUSHLONG # Z added by devel/scanprov
+SSPUSHPTR # Z added by devel/scanprov
ST # T
-stack_grow # T
-STARTPERL # T
-STDCHAR # T
+stack_grow # F added by devel/scanprov
+STANDARD_C # Z added by devel/scanprov
+STAR # Z added by devel/scanprov
+STARTPERL # K added by devel/scanprov
+Stat # Z added by devel/scanprov
+STDCHAR # K added by devel/scanprov
+stderr # Z added by devel/scanprov
+stdin # Z added by devel/scanprov
+stdout # Z added by devel/scanprov
+STMT_END # M added by devel/scanprov
+STMT_START # M added by devel/scanprov
strEQ # T
+Strerror # Z added by devel/scanprov
strGE # T
strGT # T
+STRINGIFY # K added by devel/scanprov
strLE # T
strLT # T
strNE # T
strnEQ # T
strnNE # T
-sv_2bool # T
+StructCopy # M added by devel/scanprov
+SUBVERSION # Z added by devel/scanprov
+SUCCEED # Z added by devel/scanprov
sv_2cv # T
sv_2io # T
-sv_2iv # T
sv_2mortal # T
-sv_2pv # T
+sv_add_arena # F added by devel/scanprov
+SvAMAGIC # Z added by devel/scanprov
+SvANY # Z added by devel/scanprov
sv_backoff # T
sv_bless # T
sv_catpv # T
sv_catpvn # T
sv_catsv # T
sv_chop # T
+sv_clean_all # F added by devel/scanprov
+sv_clean_objs # F added by devel/scanprov
sv_clear # T
sv_cmp # T
+SvCOMPILED # Z added by devel/scanprov
+SvCOMPILED_off # Z added by devel/scanprov
+SvCOMPILED_on # Z added by devel/scanprov
SvCUR # T
SvCUR_set # T
sv_dec # T
sv_dump # T
SvEND # T
+SvEND_set # Z added by devel/scanprov
+SvENDx # Z added by devel/scanprov
sv_eq # T
+SvFAKE # Z added by devel/scanprov
+SvFAKE_off # Z added by devel/scanprov
+SvFAKE_on # Z added by devel/scanprov
+SVf_AMAGIC # Z added by devel/scanprov
+SVf_BREAK # Z added by devel/scanprov
+SVf_FAKE # Z added by devel/scanprov
+SVf_IOK # Z added by devel/scanprov
+SvFLAGS # Z added by devel/scanprov
+SVf_NOK # Z added by devel/scanprov
+SVf_OK # Z added by devel/scanprov
+SVf_OOK # Z added by devel/scanprov
+SVf_POK # Z added by devel/scanprov
+SVf_READONLY # Z added by devel/scanprov
sv_free # T
+sv_free_arenas # F added by devel/scanprov
+SVf_ROK # Z added by devel/scanprov
+SVf_THINKFIRST # Z added by devel/scanprov
sv_gets # T
-sv_grow # T
+SvGMAGICAL # Z added by devel/scanprov
+SvGMAGICAL_off # Z added by devel/scanprov
+SvGMAGICAL_on # Z added by devel/scanprov
+Sv_Grow # Z added by devel/scanprov
+sv_grow # F added by devel/scanprov
SvGROW # T
sv_inc # T
sv_insert # T
SvIOK_on # T
SvIOK_only # T
SvIOKp # T
+SvIOKp_on # Z added by devel/scanprov
sv_isa # T
sv_isobject # T
SvIV # T
SvIV_set # T
SvIVX # T
SvIVx # T
+SvIVXx # Z added by devel/scanprov
sv_len # T
SvLEN # T
SvLEN_set # T
+SvLENx # Z added by devel/scanprov
sv_magic # T
+SvMAGIC # Z added by devel/scanprov
+SvMAGICAL # Z added by devel/scanprov
+SvMAGICAL_off # Z added by devel/scanprov
+SvMAGICAL_on # Z added by devel/scanprov
sv_mortalcopy # T
sv_newmortal # T
-sv_newref # T
+sv_newref # F added by devel/scanprov
SvNIOK # T
SvNIOK_off # T
SvNIOKp # T
SvNOK_on # T
SvNOK_only # T
SvNOKp # T
+SvNOKp_on # Z added by devel/scanprov
+SvNVXx # Z added by devel/scanprov
+SvOBJECT # Z added by devel/scanprov
+SvOBJECT_off # Z added by devel/scanprov
+SvOBJECT_on # Z added by devel/scanprov
SvOK # T
+SvOK_off # Z added by devel/scanprov
+SvOKp # Z added by devel/scanprov
SvOOK # T
+SvOOK_off # T
+SvOOK_on # Z added by devel/scanprov
+SvPADMY # Z added by devel/scanprov
+SvPADMY_on # Z added by devel/scanprov
+SvPADTMP # Z added by devel/scanprov
+SvPADTMP_off # Z added by devel/scanprov
+SvPADTMP_on # Z added by devel/scanprov
+SvPEEK # Z added by devel/scanprov
+SVphv_LAZYDEL # Z added by devel/scanprov
+SVphv_SHAREKEYS # Z added by devel/scanprov
+SVp_IOK # Z added by devel/scanprov
+SVp_NOK # Z added by devel/scanprov
SvPOK # T
SvPOK_off # T
SvPOK_on # T
SvPOK_only # T
SvPOKp # T
+SvPOKp_on # Z added by devel/scanprov
+SVp_POK # Z added by devel/scanprov
+SVp_SCREAM # Z added by devel/scanprov
SvPV # T
SvPV_force # T
-sv_pvn_force # T
SvPV_set # T
SvPVX # T
SvPVx # T
+SvPVx_force # Z added by devel/scanprov
+SvPVXx # Z added by devel/scanprov
SvREADONLY # T
SvREADONLY_off # T
SvREADONLY_on # T
sv_replace # T
sv_report_used # T
sv_reset # T
+SvRMAGICAL # Z added by devel/scanprov
+SvRMAGICAL_off # Z added by devel/scanprov
+SvRMAGICAL_on # Z added by devel/scanprov
SvROK # T
SvROK_off # T
SvROK_on # T
SvRV # T
+SvRVx # Z added by devel/scanprov
+SvSCREAM # Z added by devel/scanprov
+SvSCREAM_off # Z added by devel/scanprov
+SvSCREAM_on # Z added by devel/scanprov
sv_setiv # T
SvSETMAGIC # T
sv_setpv # T
sv_setref_pvn # T
sv_setsv # T
SvSetSV # T
+SVs_GMG # Z added by devel/scanprov
+SvSMAGICAL # Z added by devel/scanprov
+SvSMAGICAL_off # Z added by devel/scanprov
+SvSMAGICAL_on # Z added by devel/scanprov
+SVs_OBJECT # Z added by devel/scanprov
+SVs_PADMY # Z added by devel/scanprov
+SVs_PADTMP # Z added by devel/scanprov
+SVs_RMG # Z added by devel/scanprov
+SVs_SMG # Z added by devel/scanprov
SvSTASH # T
SVs_TEMP # T
+SvTAIL # Z added by devel/scanprov
SvTAINT # T
+SvTEMP # Z added by devel/scanprov
+SvTEMP_off # Z added by devel/scanprov
+SvTEMP_on # Z added by devel/scanprov
+SvTHINKFIRST # Z added by devel/scanprov
SVt_IV # T
SVt_NULL # T
SVt_NV # T
SvTRUE # T
SvTRUEx # T
SvTYPE # T
+SVTYPEMASK # Z added by devel/scanprov
sv_unmagic # T
sv_unref # T
sv_upgrade # T
SvUPGRADE # T
sv_usepvn # T
-taint_env # T
-taint_proper # T
+SvVALID # Z added by devel/scanprov
+SWITCHSTACK # Z added by devel/scanprov
+TAINT_ENV # Z added by devel/scanprov
+taint_env # F added by devel/scanprov
+TAINT_IF # Z added by devel/scanprov
+TAINT_NOT # Z added by devel/scanprov
+TAINT_PROPER # Z added by devel/scanprov
+taint_proper # F added by devel/scanprov
+TARG # T
+THIS # X added by devel/scanprov
+Time_t # K added by devel/scanprov
+tmpfile # Z added by devel/scanprov
toLOWER # T
+TOPi # Z added by devel/scanprov
+TOPl # Z added by devel/scanprov
+TOPMARK # Z added by devel/scanprov
+TOPn # Z added by devel/scanprov
+TOPp # Z added by devel/scanprov
+TOPs # Z added by devel/scanprov
toUPPER # T
+TRUE # Z added by devel/scanprov
+U16_MAX # Z added by devel/scanprov
+U16_MIN # Z added by devel/scanprov
+U32_MAX # Z added by devel/scanprov
+U32_MIN # Z added by devel/scanprov
+U8_MAX # Z added by devel/scanprov
+U8_MIN # Z added by devel/scanprov
+UCHARAT # Z added by devel/scanprov
+U_I # Z added by devel/scanprov
+Uid_t # K added by devel/scanprov
+UINTMAX_C # T
+U_L # Z added by devel/scanprov
+ungetc # Z added by devel/scanprov
+UNLESSM # Z added by devel/scanprov
+UNLINK # Z added by devel/scanprov
+unlnk # F added by devel/scanprov
unsharepvn # T
+U_S # Z added by devel/scanprov
+USE_BSDPGRP # Z added by devel/scanprov
+USE_DYNAMIC_LOADING # K added by devel/scanprov
+USE_STAT_RDEV # Z added by devel/scanprov
+USE_STDIO # Z added by devel/scanprov
+utilize # F added by devel/scanprov
+U_V # Z added by devel/scanprov
+UV_MAX # Z added by devel/scanprov
+UV_MIN # Z added by devel/scanprov
+VAL_EAGAIN # K added by devel/scanprov
+VAL_O_NONBLOCK # K added by devel/scanprov
+vfprintf # Z added by devel/scanprov
+VOL # Z added by devel/scanprov
+vtohl # Z added by devel/scanprov
+vtohs # Z added by devel/scanprov
+wait4pid # F added by devel/scanprov
+watch # F added by devel/scanprov
whichsig # T
+WHILEM # Z added by devel/scanprov
XPUSHi # T
XPUSHp # T
XPUSHs # T
+XPUSHTARG # Z added by devel/scanprov
+XS # M added by devel/scanprov
+XSANY # Z added by devel/scanprov
XSRETURN # T
XSRETURN_EMPTY # T
XSRETURN_IV # T
XST_mYES # T
XS_VERSION # T
XS_VERSION_BOOTCHECK # T
-Zero # T
-RETVAL # X added by devel/scanprov
-CALL # X added by devel/scanprov
-THIS # X added by devel/scanprov
-dXSI32 # M added by devel/scanprov
-items # M added by devel/scanprov
-ix # M added by devel/scanprov
-PERL_UINT_MIN # M added by devel/scanprov
-STMT_END # M added by devel/scanprov
-STMT_START # M added by devel/scanprov
-StructCopy # M added by devel/scanprov
-svtype # M added by devel/scanprov
-XS # M added by devel/scanprov
-apply # F added by devel/scanprov
-bind_match # F added by devel/scanprov
-boot_core_UNIVERSAL # F added by devel/scanprov
-cando # F added by devel/scanprov
-checkcomma # F added by devel/scanprov
-check_uni # F added by devel/scanprov
-do_chomp # F added by devel/scanprov
-do_eof # F added by devel/scanprov
-do_exec # F added by devel/scanprov
-dofindlabel # F added by devel/scanprov
-do_ipcctl # F added by devel/scanprov
-do_ipcget # F added by devel/scanprov
-do_msgrcv # F added by devel/scanprov
-do_msgsnd # F added by devel/scanprov
-dopoptoeval # F added by devel/scanprov
-do_print # F added by devel/scanprov
-do_readline # F added by devel/scanprov
-do_seek # F added by devel/scanprov
-do_semop # F added by devel/scanprov
-do_shmio # F added by devel/scanprov
-do_tell # F added by devel/scanprov
-do_trans # F added by devel/scanprov
-do_vecset # F added by devel/scanprov
-do_vop # F added by devel/scanprov
-dump_mstats # F added by devel/scanprov
-fold_constants # F added by devel/scanprov
-force_ident # F added by devel/scanprov
-force_list # F added by devel/scanprov
-force_next # F added by devel/scanprov
-force_word # F added by devel/scanprov
-gen_constant_list # F added by devel/scanprov
-ingroup # F added by devel/scanprov
-intuit_more # F added by devel/scanprov
-invert # F added by devel/scanprov
-io_close # F added by devel/scanprov
-jmaybe # F added by devel/scanprov
-keyword # F added by devel/scanprov
-list # F added by devel/scanprov
-listkids # F added by devel/scanprov
-localize # F added by devel/scanprov
-magic_clearenv # F added by devel/scanprov
-magic_clearpack # F added by devel/scanprov
-magic_clearsig # F added by devel/scanprov
-magic_existspack # F added by devel/scanprov
-magic_get # F added by devel/scanprov
-magic_getarylen # F added by devel/scanprov
-magic_getpack # F added by devel/scanprov
-magic_getpos # F added by devel/scanprov
-magic_getsig # F added by devel/scanprov
-magic_gettaint # F added by devel/scanprov
-magic_getuvar # F added by devel/scanprov
-magic_nextpack # F added by devel/scanprov
-magic_set # F added by devel/scanprov
-magic_setarylen # F added by devel/scanprov
-magic_setdbline # F added by devel/scanprov
-magic_setenv # F added by devel/scanprov
-magic_setisa # F added by devel/scanprov
-magic_setmglob # F added by devel/scanprov
-magic_setnkeys # F added by devel/scanprov
-magic_setpack # F added by devel/scanprov
-magic_setpos # F added by devel/scanprov
-magic_setsig # F added by devel/scanprov
-magic_setsubstr # F added by devel/scanprov
-magic_settaint # F added by devel/scanprov
-magic_setuvar # F added by devel/scanprov
-magic_setvec # F added by devel/scanprov
-magic_wipepack # F added by devel/scanprov
-mem_collxfrm # F added by devel/scanprov
-modkids # F added by devel/scanprov
-my_chsize # F added by devel/scanprov
-my_unexec # F added by devel/scanprov
-nextargv # F added by devel/scanprov
-no_fh_allowed # F added by devel/scanprov
-no_op # F added by devel/scanprov
-oopsAV # F added by devel/scanprov
-oopsHV # F added by devel/scanprov
-package # F added by devel/scanprov
-pad_free # F added by devel/scanprov
-pad_leavemy # F added by devel/scanprov
-pad_reset # F added by devel/scanprov
-pad_sv # F added by devel/scanprov
-pad_swipe # F added by devel/scanprov
-peep # F added by devel/scanprov
-pidgone # F added by devel/scanprov
-pmruntime # F added by devel/scanprov
-pmtrans # F added by devel/scanprov
-ref # F added by devel/scanprov
-refkids # F added by devel/scanprov
-regprop # F added by devel/scanprov
-same_dirent # F added by devel/scanprov
-sawparens # F added by devel/scanprov
-scalar # F added by devel/scanprov
-scalarkids # F added by devel/scanprov
-scalarseq # F added by devel/scanprov
-scalarvoid # F added by devel/scanprov
-scan_const # F added by devel/scanprov
-scan_formline # F added by devel/scanprov
-scan_heredoc # F added by devel/scanprov
-scan_ident # F added by devel/scanprov
-scan_inputsymbol # F added by devel/scanprov
-scan_pat # F added by devel/scanprov
-scan_str # F added by devel/scanprov
-scan_subst # F added by devel/scanprov
-scan_trans # F added by devel/scanprov
-scan_word # F added by devel/scanprov
-sighandler # F added by devel/scanprov
-sv_add_arena # F added by devel/scanprov
-sv_clean_all # F added by devel/scanprov
-sv_clean_objs # F added by devel/scanprov
-sv_free_arenas # F added by devel/scanprov
-unlnk # F added by devel/scanprov
-utilize # F added by devel/scanprov
-wait4pid # F added by devel/scanprov
-watch # F added by devel/scanprov
yyerror # F added by devel/scanprov
yylex # F added by devel/scanprov
yyparse # F added by devel/scanprov
yywarn # F added by devel/scanprov
+Zero # T
5.004000
-ARCHNAME # E
+AMT_AMAGIC # Z added by devel/scanprov
+AMT_AMAGIC_off # Z added by devel/scanprov
+AMT_AMAGIC_on # Z added by devel/scanprov
+AMTf_AMAGIC # Z added by devel/scanprov
+ANYOF_ALNUML # Z added by devel/scanprov
+ANYOF_INVERT # Z added by devel/scanprov
+ANYOF_NALNUML # Z added by devel/scanprov
+ANYOF_NSPACEL # Z added by devel/scanprov
+ANYOF_SPACEL # Z added by devel/scanprov
+ARCHNAME # K added by devel/scanprov
+BIN_EXP # K added by devel/scanprov
+BIT_DIGITS # Z added by devel/scanprov
block_end # E (Perl_block_end)
block_gimme # E
block_start # E (Perl_block_start)
boolSV # E
+BOUNDL # Z added by devel/scanprov
call_list # E
+CATCH_GET # Z added by devel/scanprov
+CATCH_SET # Z added by devel/scanprov
+CVf_NODEBUG # Z added by devel/scanprov
+CVf_UNIQUE # Z added by devel/scanprov
+CvNODEBUG # Z added by devel/scanprov
+CvNODEBUG_off # Z added by devel/scanprov
+CvNODEBUG_on # Z added by devel/scanprov
+CvUNIQUE # Z added by devel/scanprov
+CvUNIQUE_off # Z added by devel/scanprov
+CvUNIQUE_on # Z added by devel/scanprov
delimcpy # U
+dEXTCONST # Z added by devel/scanprov
+dJMPENV # Z added by devel/scanprov
+do_sysseek # F added by devel/scanprov
+dPOPuv # Z added by devel/scanprov
+dPOPXiirl # Z added by devel/scanprov
+dPOPXnnrl # Z added by devel/scanprov
+dPOPXssrl # Z added by devel/scanprov
+dTOPuv # Z added by devel/scanprov
+EXACT # Z added by devel/scanprov
+EXACTF # Z added by devel/scanprov
+EXACTFL # Z added by devel/scanprov
+EXTCONST # Z added by devel/scanprov
+EXTEND_MORTAL # Z added by devel/scanprov
+F_atan2_amg # Z added by devel/scanprov
+F_cos_amg # Z added by devel/scanprov
+F_exp_amg # Z added by devel/scanprov
+F_log_amg # Z added by devel/scanprov
+F_pow_amg # Z added by devel/scanprov
+F_sin_amg # Z added by devel/scanprov
+F_sqrt_amg # Z added by devel/scanprov
GIMME_V # E
+GPOS # Z added by devel/scanprov
gv_autoload4 # E
+GvCVu # Z added by devel/scanprov
gv_fetchmethod_autoload # E
G_VOID # E
+HAS_GETTIMEOFDAY # K added by devel/scanprov
+HAS_INET_ATON # K added by devel/scanprov
+HAS_SETGROUPS # K added by devel/scanprov
+HAS_STRTOD # K added by devel/scanprov
+HAS_STRTOL # K added by devel/scanprov
+HAS_STRTOUL # K added by devel/scanprov
+HEK_BASESIZE # Z added by devel/scanprov
+HeKEY_hek # Z added by devel/scanprov
+HeKEY_sv # Z added by devel/scanprov
+HEK_HASH # Z added by devel/scanprov
+HEK_KEY # Z added by devel/scanprov
+HEK_LEN # Z added by devel/scanprov
HePV # A
HeSVKEY_set # E
+HINT_LOCALE # Z added by devel/scanprov
hv_delayfree_ent # E
hv_free_ent # E
ibcmp_locale # E
isPRINT_LC # E
isSPACE_LC # E
isUPPER_LC # E
-LONGSIZE # E
+JMPENV_JUMP # Z added by devel/scanprov
+JMPENV_POP # Z added by devel/scanprov
+JMPENV_PUSH # Z added by devel/scanprov
+KEY___PACKAGE # Z added by devel/scanprov
+KEY_sysseek # Z added by devel/scanprov
+LONGSIZE # K added by devel/scanprov
+magic_getdefelem # F added by devel/scanprov
+magic_setcollxfrm # F added by devel/scanprov
+magic_setdefelem # F added by devel/scanprov
memEQ # E
memNE # E
+MgTAINTEDDIR_off # Z added by devel/scanprov
+Mkdir # Z added by devel/scanprov
my_failure_exit # E
+NBOUNDL # Z added by devel/scanprov
newRV_inc # E
newRV_noinc # E
+Nullhek # Z added by devel/scanprov
+OP_BINARY # Z added by devel/scanprov
+OPf_WANT # Z added by devel/scanprov
+OPf_WANT_LIST # Z added by devel/scanprov
+OPf_WANT_SCALAR # Z added by devel/scanprov
+OPf_WANT_VOID # Z added by devel/scanprov
+OP_GIMME # Z added by devel/scanprov
+OPpDEREF # Z added by devel/scanprov
+OPpDEREF_SV # Z added by devel/scanprov
+OPpLVAL_DEFER # Z added by devel/scanprov
+OPpSLICE # Z added by devel/scanprov
+PMf_CONTINUE # Z added by devel/scanprov
POPu # E
PUSHu # E
rsignal # E
+rsignal_restore # F added by devel/scanprov
+rsignal_save # F added by devel/scanprov
rsignal_state # E
+rxres_free # F added by devel/scanprov
+rxres_restore # F added by devel/scanprov
+rxres_save # F added by devel/scanprov
save_gp # E
-save_I16 # E
+save_I16 # F added by devel/scanprov
+SAVEI16 # E
+save_iv # F added by devel/scanprov
+SAVESTACK_POS # E
+SAVEt_I16 # Z added by devel/scanprov
+SAVEt_STACK_POS # Z added by devel/scanprov
+sb_rxres # Z added by devel/scanprov
+sb_rxtainted # Z added by devel/scanprov
+SET_NUMERIC_STANDARD # Z added by devel/scanprov
+SETu # Z added by devel/scanprov
share_hek # E
-SHORTSIZE # E
+SHORTSIZE # K added by devel/scanprov
start_subparse # E (Perl_start_subparse)
-sv_2uv # U
+STATUS_ALL_FAILURE # Z added by devel/scanprov
+STATUS_ALL_SUCCESS # Z added by devel/scanprov
+STATUS_CURRENT # Z added by devel/scanprov
+STATUS_NATIVE # Z added by devel/scanprov
+STRUCT_OFFSET # Z added by devel/scanprov
+sub_crush_depth # F added by devel/scanprov
sv_cmp_locale # U
sv_derived_from # E
+SvIMMORTAL # Z added by devel/scanprov
+sv_pvn # F added by devel/scanprov
SvSetMagicSV # E
SvSetMagicSV_nosteal # E
SvSetSV_nosteal # E
sv_setuv # E
-sv_taint # U
-sv_tainted # E
+sv_tainted # F added by devel/scanprov
SvTAINTED # E
SvTAINTED_off # E
SvTAINTED_on # E
-sv_untaint # E
+sv_untaint # F added by devel/scanprov
SvUV # E
SvUVX # E
SvUVx # E
SvUVXx # E
sv_vcatpvfn # E
sv_vsetpvfn # E
+TAINT # Z added by devel/scanprov
+Timeval # K added by devel/scanprov
+toCTRL # Z added by devel/scanprov
toLOWER_LC # E
-XPUSHu # E
-do_sysseek # F added by devel/scanprov
-magic_getdefelem # F added by devel/scanprov
-magic_setcollxfrm # F added by devel/scanprov
-magic_setdefelem # F added by devel/scanprov
-rsignal_restore # F added by devel/scanprov
-rsignal_save # F added by devel/scanprov
-rxres_free # F added by devel/scanprov
-rxres_restore # F added by devel/scanprov
-rxres_save # F added by devel/scanprov
-sub_crush_depth # F added by devel/scanprov
+TOPu # Z added by devel/scanprov
+toUPPER_LC # Z added by devel/scanprov
+TYPE_CHARS # Z added by devel/scanprov
+TYPE_DIGITS # Z added by devel/scanprov
unshare_hek # F added by devel/scanprov
+USE_LEFT # Z added by devel/scanprov
+USE_LOCALE # Z added by devel/scanprov
+USE_LOCALE_COLLATE # Z added by devel/scanprov
+USE_LOCALE_CTYPE # Z added by devel/scanprov
+USE_LOCALE_NUMERIC # Z added by devel/scanprov
vivify_defelem # F added by devel/scanprov
vivify_ref # F added by devel/scanprov
+XPUSHu # E
5.004001
magic_clear_all_env # F added by devel/scanprov
+REFF # Z added by devel/scanprov
+REFFL # Z added by devel/scanprov
5.004002
+PERLDB_ALL # Z added by devel/scanprov
+PERLDBf_INTER # Z added by devel/scanprov
+PERLDBf_LINE # Z added by devel/scanprov
+PERLDBf_NOOPT # Z added by devel/scanprov
+PERLDBf_SINGLE # Z added by devel/scanprov
+PERLDBf_SUB # Z added by devel/scanprov
+PERLDBf_SUBLINE # Z added by devel/scanprov
+PERLDB_INTER # Z added by devel/scanprov
+PERLDB_LINE # Z added by devel/scanprov
+PERLDB_NOOPT # Z added by devel/scanprov
+PERLDB_SINGLE # Z added by devel/scanprov
+PERLDB_SUB # Z added by devel/scanprov
+PERLDB_SUBLINE # Z added by devel/scanprov
5.004004
av_reify # F added by devel/scanprov
+LEX_NOTPARSING # Z added by devel/scanprov
magic_set_all_env # F added by devel/scanprov
5.004005
+ANYOF_BIT # Z added by devel/scanprov
+AvFILLp # M added by devel/scanprov
+cBINOPo # Z added by devel/scanprov
+cCOPo # Z added by devel/scanprov
+cLISTOPo # Z added by devel/scanprov
+cLOGOPo # Z added by devel/scanprov
+cLOOPo # Z added by devel/scanprov
+cPMOPo # Z added by devel/scanprov
+cPVOPo # Z added by devel/scanprov
+cSVOPo # Z added by devel/scanprov
+cUNOPo # Z added by devel/scanprov
+DEFSV # E
+djSP # Z added by devel/scanprov
do_binmode # E
dTHR # E
ERRSV # E
+find_script # F added by devel/scanprov
+G_NODEBUG # Z added by devel/scanprov
GV_NOINIT # E
+HAS_CHSIZE # K added by devel/scanprov
+HAS_GNULIBC # K added by devel/scanprov
+HINT_RE_TAINT # Z added by devel/scanprov
+magic_getnkeys # F added by devel/scanprov
+magic_getsubstr # F added by devel/scanprov
+magic_getvec # F added by devel/scanprov
newCONSTSUB # E
newSVpvn # E
+PERLDBf_GOTO # Z added by devel/scanprov
+PERLDBf_NONAME # Z added by devel/scanprov
+PERLDB_GOTO # Z added by devel/scanprov
+PERLDB_SUB_NN # Z added by devel/scanprov
+PERL_SCRIPT_MODE # Z added by devel/scanprov
PL_curcop # E
PL_curstash # E
PL_defgv # E
PL_sv_no # E
PL_sv_undef # E
PL_sv_yes # E
+PMf_RETAINT # Z added by devel/scanprov
+PWGECOS # K added by devel/scanprov
+REG_INFTY # Z added by devel/scanprov
save_aelem # E
+SAVE_DEFSV # E
save_helem # E
+SAVEt_AELEM # Z added by devel/scanprov
+SAVEt_HELEM # Z added by devel/scanprov
+Semctl # Z added by devel/scanprov
+Stat_t # Z added by devel/scanprov
sv_catpv_mg # E
sv_catpvn_mg # U
sv_catsv_mg # U
sv_setsv_mg # E
sv_setuv_mg # E
sv_usepvn_mg # U
-AvFILLp # M added by devel/scanprov
-DEFSV # M added by devel/scanprov
-PL_compiling # M added by devel/scanprov
-PL_DBsingle # M added by devel/scanprov
-PL_DBsub # M added by devel/scanprov
-PL_debstash # M added by devel/scanprov
-PL_diehook # M added by devel/scanprov
-PL_dirty # M added by devel/scanprov
-PL_dowarn # M added by devel/scanprov
-PL_perldb # M added by devel/scanprov
-PL_stack_base # M added by devel/scanprov
-PL_stack_sp # M added by devel/scanprov
-PL_stdingv # M added by devel/scanprov
-PL_sv_arenaroot # M added by devel/scanprov
-PL_tainted # M added by devel/scanprov
-PL_tainting # M added by devel/scanprov
-SAVE_DEFSV # M added by devel/scanprov
-find_script # F added by devel/scanprov
-magic_getnkeys # F added by devel/scanprov
-magic_getsubstr # F added by devel/scanprov
-magic_getvec # F added by devel/scanprov
+USE_SEMCTL_SEMID_DS # K added by devel/scanprov
+USE_SEMCTL_SEMUN # K added by devel/scanprov
5.005000
-cx_dump # U
-debop # U
-debprofdump # U
-DOUBLESIZE # E
-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
-PL_curpad # E
-PL_modglobal # E
-PTRSIZE # E
-regdump # U
-regexec_flags # E
-regnext # E (Perl_regnext)
-runops_debug # E
-runops_standard # E
-save_iv # E (save_iv)
-sv_iv # E
-sv_peek # U
-sv_pvn # E
-sv_true # E
-sv_uv # E
-CPERLscope # M added by devel/scanprov
-END_EXTERN_C # M added by devel/scanprov
-EXTERN_C # M added by devel/scanprov
-NOOP # M added by devel/scanprov
-PL_DBsignal # M added by devel/scanprov
-PL_DBtrace # M added by devel/scanprov
-PL_hexdigit # M added by devel/scanprov
-PL_hints # M added by devel/scanprov
-PL_laststatval # M added by devel/scanprov
-PL_mess_sv # M added by devel/scanprov
-PL_statcache # M added by devel/scanprov
-PL_Sv # M added by devel/scanprov
-PL_Xpv # M added by devel/scanprov
-START_EXTERN_C # M added by devel/scanprov
+abort # Z added by devel/scanprov
+accept # Z added by devel/scanprov
+access # Z added by devel/scanprov
add_data # F added by devel/scanprov
+anchored_offset # Z added by devel/scanprov
+anchored_substr # Z added by devel/scanprov
ao # F added by devel/scanprov
+ARG # Z added by devel/scanprov
+ARG1_LOC # Z added by devel/scanprov
+ARG1_SET # Z added by devel/scanprov
+ARG2_LOC # Z added by devel/scanprov
+ARG2_SET # Z added by devel/scanprov
+ARG_LOC # Z added by devel/scanprov
+ARG__SET # Z added by devel/scanprov
+ARG_SET # Z added by devel/scanprov
+ARG_VALUE # Z added by devel/scanprov
+bind # Z added by devel/scanprov
+BRANCHJ # Z added by devel/scanprov
+CALLREGCOMP # Z added by devel/scanprov
+CALLREGEXEC # Z added by devel/scanprov
+CALLRUNOPS # Z added by devel/scanprov
+chdir # Z added by devel/scanprov
+check_offset_max # Z added by devel/scanprov
+check_offset_min # Z added by devel/scanprov
+check_substr # Z added by devel/scanprov
+chmod # Z added by devel/scanprov
+chsize # Z added by devel/scanprov
+close # Z added by devel/scanprov
+closedir # Z added by devel/scanprov
+COND_BROADCAST # Z added by devel/scanprov
+COND_DESTROY # Z added by devel/scanprov
+COND_INIT # Z added by devel/scanprov
+COND_SIGNAL # Z added by devel/scanprov
+COND_WAIT # Z added by devel/scanprov
+connect # Z added by devel/scanprov
+CPERLarg # Z added by devel/scanprov
+CPERLscope # M added by devel/scanprov
+CURLYM # Z added by devel/scanprov
+CURLYN # Z added by devel/scanprov
+CVf_METHOD # Z added by devel/scanprov
+CvMETHOD # Z added by devel/scanprov
+CvMETHOD_off # Z added by devel/scanprov
+CvMETHOD_on # Z added by devel/scanprov
+cxstack # Z added by devel/scanprov
+cxstack_ix # Z added by devel/scanprov
+cxstack_max # Z added by devel/scanprov
+debop # U
debprof # F added by devel/scanprov
+debprofdump # U
del_sv # F added by devel/scanprov
+DETACH # Z added by devel/scanprov
div128 # F added by devel/scanprov
docatch # F added by devel/scanprov
doform # F added by devel/scanprov
dopoptolabel # F added by devel/scanprov
dopoptoloop # F added by devel/scanprov
dopoptosub_at # F added by devel/scanprov
+DOUBLESIZE # K added by devel/scanprov
dumpuntil # F added by devel/scanprov
+dup # Z added by devel/scanprov
+dup2 # Z added by devel/scanprov
+dXSFUNCTION # Z added by devel/scanprov
+END_EXTERN_C # M added by devel/scanprov
+endhostent # Z added by devel/scanprov
+endnetent # Z added by devel/scanprov
+endprotoent # Z added by devel/scanprov
+endservent # Z added by devel/scanprov
+EOS # Z added by devel/scanprov
+EVAL # Z added by devel/scanprov
+execl # Z added by devel/scanprov
+execv # Z added by devel/scanprov
+execvp # Z added by devel/scanprov
+exit # Z added by devel/scanprov
+EXTERN_C # M added by devel/scanprov
+EXTRA_SIZE # Z added by devel/scanprov
+EXTRA_STEP_2ARGS # Z added by devel/scanprov
+fbm_compile # E (Perl_fbm_compile)
+fbm_instr # E (Perl_fbm_instr)
+FILL_ADVANCE_NODE # Z added by devel/scanprov
+FILL_ADVANCE_NODE_ARG # Z added by devel/scanprov
filter_gets # F added by devel/scanprov
find_beginning # F added by devel/scanprov
+float_max_offset # Z added by devel/scanprov
+float_min_offset # Z added by devel/scanprov
+float_substr # Z added by devel/scanprov
+flock # Z added by devel/scanprov
forbid_setid # F added by devel/scanprov
force_version # F added by devel/scanprov
+frewind # Z added by devel/scanprov
+fstat # Z added by devel/scanprov
+getegid # Z added by devel/scanprov
+getenv # Z added by devel/scanprov
+geteuid # Z added by devel/scanprov
+getgid # Z added by devel/scanprov
+gethostbyaddr # Z added by devel/scanprov
+gethostbyname # Z added by devel/scanprov
+gethostent # Z added by devel/scanprov
+gethostname # Z added by devel/scanprov
+getlogin # Z added by devel/scanprov
+getnetbyaddr # Z added by devel/scanprov
+getnetbyname # Z added by devel/scanprov
+getnetent # Z added by devel/scanprov
get_no_modify # F added by devel/scanprov
get_opargs # F added by devel/scanprov
+get_op_descs # E
+get_op_names # E
+getpeername # Z added by devel/scanprov
+getprotobyname # Z added by devel/scanprov
+getprotobynumber # Z added by devel/scanprov
+getprotoent # Z added by devel/scanprov
+getservbyname # Z added by devel/scanprov
+getservbyport # Z added by devel/scanprov
+getservent # Z added by devel/scanprov
+getsockname # Z added by devel/scanprov
+getsockopt # Z added by devel/scanprov
+getuid # Z added by devel/scanprov
+GROUPP # Z added by devel/scanprov
+GRPASSWD # K added by devel/scanprov
+HAS_CSH # K added by devel/scanprov
+HAS_ENDGRENT # K added by devel/scanprov
+HAS_ENDHOSTENT # K added by devel/scanprov
+HAS_ENDNETENT # K added by devel/scanprov
+HAS_ENDPROTOENT # K added by devel/scanprov
+HAS_ENDPWENT # K added by devel/scanprov
+HAS_ENDSERVENT # K added by devel/scanprov
+HAS_GETGRENT # K added by devel/scanprov
+HAS_GETHOSTBYADDR # K added by devel/scanprov
+HAS_GETHOSTBYNAME # K added by devel/scanprov
+HAS_GETHOST_PROTOS # K added by devel/scanprov
+HAS_GETNETBYADDR # K added by devel/scanprov
+HAS_GETNETBYNAME # K added by devel/scanprov
+HAS_GETNETENT # K added by devel/scanprov
+HAS_GETNET_PROTOS # K added by devel/scanprov
+HAS_GETPROTOBYNAME # K added by devel/scanprov
+HAS_GETPROTOBYNUMBER # K added by devel/scanprov
+HAS_GETPROTOENT # K added by devel/scanprov
+HAS_GETPROTO_PROTOS # K added by devel/scanprov
+HAS_GETPWENT # K added by devel/scanprov
+HAS_GETSERVBYNAME # K added by devel/scanprov
+HAS_GETSERVBYPORT # K added by devel/scanprov
+HAS_GETSERVENT # K added by devel/scanprov
+HAS_GETSERV_PROTOS # K added by devel/scanprov
+HAS_LCHOWN # K added by devel/scanprov
+HAS_LONG_DOUBLE # K added by devel/scanprov
+HAS_LONG_LONG # K added by devel/scanprov
+HAS_SCHED_YIELD # K added by devel/scanprov
+HAS_SETGRENT # K added by devel/scanprov
+HAS_SETHOSTENT # K added by devel/scanprov
+HAS_SETNETENT # K added by devel/scanprov
+HAS_SETPROTOENT # K added by devel/scanprov
+HAS_SETPWENT # K added by devel/scanprov
+HAS_SETSERVENT # K added by devel/scanprov
+HAS_SETVBUF # K added by devel/scanprov
+HINT_LOCALIZE_HH # Z added by devel/scanprov
+HINT_NEW_BINARY # Z added by devel/scanprov
+HINT_NEW_FLOAT # Z added by devel/scanprov
+HINT_NEW_INTEGER # Z added by devel/scanprov
+HINT_NEW_RE # Z added by devel/scanprov
+HINT_NEW_STRING # Z added by devel/scanprov
+HINT_RE_EVAL # Z added by devel/scanprov
hsplit # F added by devel/scanprov
+I_ARPA_INET # K added by devel/scanprov
+IFTHEN # Z added by devel/scanprov
incline # F added by devel/scanprov
incpush # F added by devel/scanprov
+inet_addr # Z added by devel/scanprov
+I_NETDB # K added by devel/scanprov
+inet_ntoa # Z added by devel/scanprov
init_debugger # F added by devel/scanprov
init_ids # F added by devel/scanprov
init_interp # F added by devel/scanprov
init_main_stash # F added by devel/scanprov
+init_os_extras # Z added by devel/scanprov
init_perllib # F added by devel/scanprov
init_postdump_symbols # F added by devel/scanprov
init_predump_symbols # F added by devel/scanprov
+init_stacks # E
+INIT_THREADS # Z added by devel/scanprov
intuit_method # F added by devel/scanprov
+ioctl # Z added by devel/scanprov
isa_lookup # F added by devel/scanprov
is_an_int # F added by devel/scanprov
+isatty # Z added by devel/scanprov
+JOIN # Z added by devel/scanprov
+KEY_INIT # Z added by devel/scanprov
+KEY_lock # Z added by devel/scanprov
+KEY_qr # Z added by devel/scanprov
+kill # Z added by devel/scanprov
+killpg # Z added by devel/scanprov
+listen # Z added by devel/scanprov
+LOGICAL # Z added by devel/scanprov
+LONG_DOUBLESIZE # K added by devel/scanprov
+LONGJMP # Z added by devel/scanprov
+longjmp # Z added by devel/scanprov
+LONGLONGSIZE # K added by devel/scanprov
lop # F added by devel/scanprov
+lseek # Z added by devel/scanprov
+lstat # Z added by devel/scanprov
magic_methpack # F added by devel/scanprov
magic_sizepack # F added by devel/scanprov
malloced_size # F added by devel/scanprov
+MALLOC_INIT # Z added by devel/scanprov
+MALLOC_TERM # Z added by devel/scanprov
mess_alloc # F added by devel/scanprov
+mg_length # E
+mg_size # E
missingterm # F added by devel/scanprov
+mkdir # Z added by devel/scanprov
+mktemp # Z added by devel/scanprov
mul128 # F added by devel/scanprov
+MUTEX_DESTROY # Z added by devel/scanprov
+MUTEX_INIT # Z added by devel/scanprov
+MUTEX_LOCK # Z added by devel/scanprov
+MUTEX_UNLOCK # Z added by devel/scanprov
my_exit_jump # F added by devel/scanprov
+NEED_PTHREAD_INIT # Z added by devel/scanprov
+Netdb_hlen_t # K added by devel/scanprov
+Netdb_host_t # K added by devel/scanprov
+Netdb_name_t # K added by devel/scanprov
+Netdb_net_t # K added by devel/scanprov
new_he # F added by devel/scanprov
+newHVhv # E
new_logop # F added by devel/scanprov
+new_stackinfo # E
nextchar # F added by devel/scanprov
+NEXT_OFF # Z added by devel/scanprov
+NODE_ALIGN # Z added by devel/scanprov
+NODE_ALIGN_FILL # Z added by devel/scanprov
+NODE_STEP_REGNODE # Z added by devel/scanprov
+NO_LOCALECONV_MON_THOUSANDS_SEP # Z added by devel/scanprov
+NOOP # E
not_a_number # F added by devel/scanprov
+NOT_IN_PAD # Z added by devel/scanprov
nuke_stacks # F added by devel/scanprov
+OA_BASEOP # Z added by devel/scanprov
+OA_BASEOP_OR_UNOP # Z added by devel/scanprov
+OA_BINOP # Z added by devel/scanprov
+OA_CLASS_MASK # Z added by devel/scanprov
+OA_COP # Z added by devel/scanprov
+OA_FILESTATOP # Z added by devel/scanprov
+OA_LISTOP # Z added by devel/scanprov
+OA_LOGOP # Z added by devel/scanprov
+OA_LOOP # Z added by devel/scanprov
+OA_LOOPEXOP # Z added by devel/scanprov
+OA_PMOP # Z added by devel/scanprov
+OA_SVOP # Z added by devel/scanprov
+OA_UNOP # Z added by devel/scanprov
+open # Z added by devel/scanprov
+opendir # Z added by devel/scanprov
open_script # F added by devel/scanprov
+OPTIMIZED # Z added by devel/scanprov
pad_findlex # F added by devel/scanprov
+pause # Z added by devel/scanprov
+PerlDir_chdir # Z added by devel/scanprov
+PerlDir_close # Z added by devel/scanprov
+PerlDir_mkdir # Z added by devel/scanprov
+PerlDir_open # Z added by devel/scanprov
+PerlDir_read # Z added by devel/scanprov
+PerlDir_rewind # Z added by devel/scanprov
+PerlDir_rmdir # Z added by devel/scanprov
+PerlDir_seek # Z added by devel/scanprov
+PerlDir_tell # Z added by devel/scanprov
+PerlEnv_getenv # Z added by devel/scanprov
+PerlEnv_lib_path # Z added by devel/scanprov
+PerlEnv_putenv # Z added by devel/scanprov
+PerlEnv_sitelib_path # Z added by devel/scanprov
+PerlLIO_access # Z added by devel/scanprov
+PerlLIO_chmod # Z added by devel/scanprov
+PerlLIO_chown # Z added by devel/scanprov
+PerlLIO_chsize # Z added by devel/scanprov
+PerlLIO_close # Z added by devel/scanprov
+PerlLIO_dup # Z added by devel/scanprov
+PerlLIO_dup2 # Z added by devel/scanprov
+PerlLIO_flock # Z added by devel/scanprov
+PerlLIO_fstat # Z added by devel/scanprov
+PerlLIO_ioctl # Z added by devel/scanprov
+PerlLIO_isatty # Z added by devel/scanprov
+PerlLIO_lseek # Z added by devel/scanprov
+PerlLIO_lstat # Z added by devel/scanprov
+PerlLIO_mktemp # Z added by devel/scanprov
+PerlLIO_open # Z added by devel/scanprov
+PerlLIO_open3 # Z added by devel/scanprov
+PerlLIO_read # Z added by devel/scanprov
+PerlLIO_rename # Z added by devel/scanprov
+PerlLIO_setmode # Z added by devel/scanprov
+PerlLIO_stat # Z added by devel/scanprov
+PerlLIO_tmpnam # Z added by devel/scanprov
+PerlLIO_umask # Z added by devel/scanprov
+PerlLIO_unlink # Z added by devel/scanprov
+PerlLIO_utime # Z added by devel/scanprov
+PerlLIO_write # Z added by devel/scanprov
+PerlMem_free # Z added by devel/scanprov
+PerlMem_malloc # Z added by devel/scanprov
+PerlMem_realloc # Z added by devel/scanprov
+PERL_OBJECT_THIS # Z added by devel/scanprov
+PerlProc_abort # Z added by devel/scanprov
+PerlProc_crypt # Z added by devel/scanprov
+PerlProc_execl # Z added by devel/scanprov
+PerlProc_execv # Z added by devel/scanprov
+PerlProc_execvp # Z added by devel/scanprov
+PerlProc__exit # Z added by devel/scanprov
+PerlProc_exit # Z added by devel/scanprov
+PerlProc_getegid # Z added by devel/scanprov
+PerlProc_geteuid # Z added by devel/scanprov
+PerlProc_getgid # Z added by devel/scanprov
+PerlProc_getlogin # Z added by devel/scanprov
+PerlProc_getuid # Z added by devel/scanprov
+PerlProc_kill # Z added by devel/scanprov
+PerlProc_killpg # Z added by devel/scanprov
+PerlProc_longjmp # Z added by devel/scanprov
+PerlProc_pause # Z added by devel/scanprov
+PerlProc_pclose # Z added by devel/scanprov
+PerlProc_pipe # Z added by devel/scanprov
+PerlProc_popen # Z added by devel/scanprov
+PerlProc_setgid # Z added by devel/scanprov
+PerlProc_setjmp # Z added by devel/scanprov
+PerlProc_setuid # Z added by devel/scanprov
+PerlProc_signal # Z added by devel/scanprov
+PerlProc_sleep # Z added by devel/scanprov
+PerlProc_times # Z added by devel/scanprov
+PerlProc_wait # Z added by devel/scanprov
+PerlProc_waitpid # Z added by devel/scanprov
+PERLSI_DESTROY # Z added by devel/scanprov
+PERLSI_DIEHOOK # Z added by devel/scanprov
+PERLSI_MAGIC # Z added by devel/scanprov
+PERLSI_MAIN # Z added by devel/scanprov
+PERLSI_OVERLOAD # Z added by devel/scanprov
+PERLSI_REQUIRE # Z added by devel/scanprov
+PERLSI_SIGNAL # Z added by devel/scanprov
+PERLSI_SORT # Z added by devel/scanprov
+PERLSI_UNDEF # Z added by devel/scanprov
+PERLSI_UNKNOWN # Z added by devel/scanprov
+PERLSI_WARNHOOK # Z added by devel/scanprov
+PerlSock_accept # Z added by devel/scanprov
+PerlSock_bind # Z added by devel/scanprov
+PerlSock_connect # Z added by devel/scanprov
+PerlSock_endhostent # Z added by devel/scanprov
+PerlSock_endnetent # Z added by devel/scanprov
+PerlSock_endprotoent # Z added by devel/scanprov
+PerlSock_endservent # Z added by devel/scanprov
+PerlSock_gethostbyaddr # Z added by devel/scanprov
+PerlSock_gethostbyname # Z added by devel/scanprov
+PerlSock_gethostent # Z added by devel/scanprov
+PerlSock_gethostname # Z added by devel/scanprov
+PerlSock_getnetbyaddr # Z added by devel/scanprov
+PerlSock_getnetbyname # Z added by devel/scanprov
+PerlSock_getnetent # Z added by devel/scanprov
+PerlSock_getpeername # Z added by devel/scanprov
+PerlSock_getprotobyname # Z added by devel/scanprov
+PerlSock_getprotobynumber # Z added by devel/scanprov
+PerlSock_getprotoent # Z added by devel/scanprov
+PerlSock_getservbyname # Z added by devel/scanprov
+PerlSock_getservbyport # Z added by devel/scanprov
+PerlSock_getservent # Z added by devel/scanprov
+PerlSock_getsockname # Z added by devel/scanprov
+PerlSock_getsockopt # Z added by devel/scanprov
+PerlSock_htonl # Z added by devel/scanprov
+PerlSock_htons # Z added by devel/scanprov
+PerlSock_inet_addr # Z added by devel/scanprov
+PerlSock_inet_ntoa # Z added by devel/scanprov
+PerlSock_listen # Z added by devel/scanprov
+PerlSock_ntohl # Z added by devel/scanprov
+PerlSock_ntohs # Z added by devel/scanprov
+PerlSock_recv # Z added by devel/scanprov
+PerlSock_recvfrom # Z added by devel/scanprov
+PerlSock_select # Z added by devel/scanprov
+PerlSock_send # Z added by devel/scanprov
+PerlSock_sendto # Z added by devel/scanprov
+PerlSock_sethostent # Z added by devel/scanprov
+PerlSock_setnetent # Z added by devel/scanprov
+PerlSock_setprotoent # Z added by devel/scanprov
+PerlSock_setservent # Z added by devel/scanprov
+PerlSock_setsockopt # Z added by devel/scanprov
+PerlSock_shutdown # Z added by devel/scanprov
+PerlSock_socket # Z added by devel/scanprov
+PerlSock_socketpair # Z added by devel/scanprov
+PERLVAR # Z added by devel/scanprov
+PERLVARI # Z added by devel/scanprov
+PERLVARIC # Z added by devel/scanprov
+Pid_t # K added by devel/scanprov
+pipe # Z added by devel/scanprov
+PL_amagic_generation # Z added by devel/scanprov
+PL_an # Z added by devel/scanprov
+PL_argvgv # Z added by devel/scanprov
+PL_argvoutgv # Z added by devel/scanprov
+PL_basetime # Z added by devel/scanprov
+PL_beginav # Z added by devel/scanprov
+PL_bodytarget # Z added by devel/scanprov
+PL_chopset # Z added by devel/scanprov
+PL_collation_ix # Z added by devel/scanprov
+PL_collation_name # Z added by devel/scanprov
+PL_collation_standard # Z added by devel/scanprov
+PL_collxfrm_base # Z added by devel/scanprov
+PL_collxfrm_mult # Z added by devel/scanprov
+PL_colors # Z added by devel/scanprov
+PL_colorset # Z added by devel/scanprov
+PL_compcv # Z added by devel/scanprov
+PL_compiling # M added by devel/scanprov
+PL_comppad_name_fill # Z added by devel/scanprov
+PL_comppad_name_floor # Z added by devel/scanprov
+PL_cop_seqmax # Z added by devel/scanprov
+PL_cryptseen # Z added by devel/scanprov
+PL_cshlen # Z added by devel/scanprov
+PL_curcopdb # Z added by devel/scanprov
+PL_curpad # E
+PL_curpm # Z added by devel/scanprov
+PL_curstack # Z added by devel/scanprov
+PL_curstackinfo # Z added by devel/scanprov
+PL_curstname # Z added by devel/scanprov
+PL_dbargs # Z added by devel/scanprov
+PL_DBcv # Z added by devel/scanprov
+PL_DBgv # Z added by devel/scanprov
+PL_DBline # Z added by devel/scanprov
+PL_DBsignal # M added by devel/scanprov
+PL_DBsingle # M added by devel/scanprov
+PL_DBsub # M added by devel/scanprov
+PL_DBtrace # M added by devel/scanprov
+PL_debstash # M added by devel/scanprov
+PL_debug # Z added by devel/scanprov
+PL_defoutgv # Z added by devel/scanprov
+PL_defstash # Z added by devel/scanprov
+PL_delaymagic # Z added by devel/scanprov
+PL_diehook # M added by devel/scanprov
+PL_dirty # M added by devel/scanprov
+PL_doswitches # Z added by devel/scanprov
+PL_dowarn # M added by devel/scanprov
+PL_endav # Z added by devel/scanprov
+PL_envgv # Z added by devel/scanprov
+PL_e_script # Z added by devel/scanprov
+PL_eval_root # Z added by devel/scanprov
+PL_evalseq # Z added by devel/scanprov
+PL_eval_start # Z added by devel/scanprov
+PL_exitlist # Z added by devel/scanprov
+PL_exitlistlen # Z added by devel/scanprov
+PL_fdpid # Z added by devel/scanprov
+PL_filemode # Z added by devel/scanprov
+PL_firstgv # Z added by devel/scanprov
+PL_forkprocess # Z added by devel/scanprov
+PL_formtarget # Z added by devel/scanprov
+PL_generation # Z added by devel/scanprov
+PL_gensym # Z added by devel/scanprov
+PL_globalstash # Z added by devel/scanprov
+PL_hintgv # Z added by devel/scanprov
+PL_hints # M added by devel/scanprov
+PL_hv_fetch_ent_mh # Z added by devel/scanprov
+PL_incgv # Z added by devel/scanprov
+PL_in_clean_all # Z added by devel/scanprov
+PL_in_clean_objs # Z added by devel/scanprov
+PL_in_eval # Z added by devel/scanprov
+PL_initav # Z added by devel/scanprov
+PL_inplace # Z added by devel/scanprov
+PL_lastfd # Z added by devel/scanprov
+PL_lastgotoprobe # Z added by devel/scanprov
+PL_last_in_gv # Z added by devel/scanprov
+PL_laststatval # M added by devel/scanprov
+PL_laststype # Z added by devel/scanprov
+PL_localizing # Z added by devel/scanprov
+PL_localpatches # Z added by devel/scanprov
+PL_main_cv # Z added by devel/scanprov
+PL_main_root # Z added by devel/scanprov
+PL_mainstack # Z added by devel/scanprov
+PL_main_start # Z added by devel/scanprov
+PL_markstack # Z added by devel/scanprov
+PL_markstack_max # Z added by devel/scanprov
+PL_markstack_ptr # Z added by devel/scanprov
+PL_max_intro_pending # Z added by devel/scanprov
+PL_maxo # Z added by devel/scanprov
+PL_maxsysfd # Z added by devel/scanprov
+PL_mess_sv # M added by devel/scanprov
+PL_min_intro_pending # Z added by devel/scanprov
+PL_minus_a # Z added by devel/scanprov
+PL_minus_c # Z added by devel/scanprov
+PL_minus_F # Z added by devel/scanprov
+PL_minus_l # Z added by devel/scanprov
+PL_minus_n # Z added by devel/scanprov
+PL_minus_p # Z added by devel/scanprov
+PL_modcount # Z added by devel/scanprov
+PL_modglobal # E
+PL_nomemok # Z added by devel/scanprov
+PL_numeric_name # Z added by devel/scanprov
+PL_numeric_standard # Z added by devel/scanprov
+PL_oldname # Z added by devel/scanprov
+PL_op # Z added by devel/scanprov
+PL_op_mask # Z added by devel/scanprov
+PL_origalen # Z added by devel/scanprov
+PL_origargc # Z added by devel/scanprov
+PL_origargv # Z added by devel/scanprov
+PL_origenviron # Z added by devel/scanprov
+PL_origfilename # Z added by devel/scanprov
+PL_osname # Z added by devel/scanprov
+PL_padix # Z added by devel/scanprov
+PL_padix_floor # Z added by devel/scanprov
+PL_pad_reset_pending # Z added by devel/scanprov
+PL_patchlevel # Z added by devel/scanprov
+PL_perldb # M added by devel/scanprov
+PL_pidstatus # Z added by devel/scanprov
+PL_preambleav # Z added by devel/scanprov
+PL_profiledata # Z added by devel/scanprov
+PL_replgv # Z added by devel/scanprov
+PL_restartop # Z added by devel/scanprov
+PL_rs # Z added by devel/scanprov
+PL_savestack # Z added by devel/scanprov
+PL_savestack_ix # Z added by devel/scanprov
+PL_savestack_max # Z added by devel/scanprov
+PL_sawampersand # Z added by devel/scanprov
+PL_scopestack # Z added by devel/scanprov
+PL_scopestack_ix # Z added by devel/scanprov
+PL_scopestack_max # Z added by devel/scanprov
+PL_secondgv # Z added by devel/scanprov
+PL_sighandlerp # Z added by devel/scanprov
+PL_sortcop # Z added by devel/scanprov
+PL_sortstash # Z added by devel/scanprov
+PL_splitstr # Z added by devel/scanprov
+PL_stack_base # M added by devel/scanprov
+PL_stack_max # Z added by devel/scanprov
+PL_stack_sp # M added by devel/scanprov
+PL_start_env # Z added by devel/scanprov
+PL_statcache # M added by devel/scanprov
+PL_statgv # Z added by devel/scanprov
+PL_statname # Z added by devel/scanprov
+PL_statusvalue # Z added by devel/scanprov
+PL_statusvalue_vms # Z added by devel/scanprov
+PL_stdingv # M added by devel/scanprov
+PL_strtab # Z added by devel/scanprov
+PL_sub_generation # Z added by devel/scanprov
+PL_subline # Z added by devel/scanprov
+PL_subname # Z added by devel/scanprov
+PL_Sv # E
+PL_sv_arenaroot # M added by devel/scanprov
+PL_sv_count # Z added by devel/scanprov
+PL_sv_root # Z added by devel/scanprov
+PL_sys_intern # Z added by devel/scanprov
+PL_tainted # M added by devel/scanprov
+PL_tainting # M added by devel/scanprov
+PL_tmps_floor # Z added by devel/scanprov
+PL_tmps_ix # Z added by devel/scanprov
+PL_tmps_max # Z added by devel/scanprov
+PL_tmps_stack # Z added by devel/scanprov
+PL_top_env # Z added by devel/scanprov
+PL_toptarget # Z added by devel/scanprov
+PL_unsafe # Z added by devel/scanprov
+PL_warnhook # Z added by devel/scanprov
+PL_Xpv # M added by devel/scanprov
+POPSTACK # Z added by devel/scanprov
+POPSTACK_TO # Z added by devel/scanprov
+pthread_addr_t # Z added by devel/scanprov
+pthread_condattr_default # Z added by devel/scanprov
+PTHREAD_CREATE_JOINABLE # Z added by devel/scanprov
+pthread_key_create # Z added by devel/scanprov
+pthread_mutexattr_default # Z added by devel/scanprov
+pthread_mutexattr_init # Z added by devel/scanprov
+pthread_mutexattr_settype # Z added by devel/scanprov
+PTRSIZE # K added by devel/scanprov
+PUSHSTACK # Z added by devel/scanprov
+PUSHSTACKi # Z added by devel/scanprov
+putenv # Z added by devel/scanprov
+PWPASSWD # K added by devel/scanprov
+read # Z added by devel/scanprov
+readdir # Z added by devel/scanprov
+recvfrom # Z added by devel/scanprov
refto # F added by devel/scanprov
reg # F added by devel/scanprov
reganode # F added by devel/scanprov
regclass # F added by devel/scanprov
regcppop # F added by devel/scanprov
regcppush # F added by devel/scanprov
+regexec_flags # F added by devel/scanprov
reginclass # F added by devel/scanprov
reginsert # F added by devel/scanprov
regmatch # F added by devel/scanprov
regrepeat # F added by devel/scanprov
regtail # F added by devel/scanprov
regtry # F added by devel/scanprov
+rename # Z added by devel/scanprov
+RENUM # Z added by devel/scanprov
+ReREFCNT_dec # Z added by devel/scanprov
+ReREFCNT_inc # Z added by devel/scanprov
+rewinddir # Z added by devel/scanprov
+REXEC_CHECKED # Z added by devel/scanprov
+REXEC_COPY_STR # Z added by devel/scanprov
+rmdir # Z added by devel/scanprov
+RsRECORD # Z added by devel/scanprov
+runops_debug # F added by devel/scanprov
+RUNOPS_DEFAULT # Z added by devel/scanprov
+runops_standard # F added by devel/scanprov
+RX_MATCH_TAINTED # Z added by devel/scanprov
+RX_MATCH_TAINTED_off # Z added by devel/scanprov
+RX_MATCH_TAINTED_on # Z added by devel/scanprov
+RX_MATCH_TAINTED_set # Z added by devel/scanprov
+SAVEHINTS # Z added by devel/scanprov
save_lines # F added by devel/scanprov
+SAVEOP # Z added by devel/scanprov
save_scalar_at # F added by devel/scanprov
+SAVEt_HINTS # Z added by devel/scanprov
+SAVEt_OP # Z added by devel/scanprov
scalarboolean # F added by devel/scanprov
scan_commit # F added by devel/scanprov
+seekdir # Z added by devel/scanprov
+select # Z added by devel/scanprov
+send # Z added by devel/scanprov
+sendto # Z added by devel/scanprov
+setgid # Z added by devel/scanprov
+sethostent # Z added by devel/scanprov
+setjmp # Z added by devel/scanprov
+setlinebuf # Z added by devel/scanprov
+setmode # Z added by devel/scanprov
+setnetent # Z added by devel/scanprov
+setprotoent # Z added by devel/scanprov
+setservent # Z added by devel/scanprov
+setsockopt # Z added by devel/scanprov
+SET_THR # Z added by devel/scanprov
+setuid # Z added by devel/scanprov
+sharepvn # Z added by devel/scanprov
+shutdown # Z added by devel/scanprov
+signal # Z added by devel/scanprov
+SIZE_ALIGN # Z added by devel/scanprov
+sleep # Z added by devel/scanprov
+socket # Z added by devel/scanprov
+socketpair # Z added by devel/scanprov
+START_EXTERN_C # M added by devel/scanprov
+stat # Z added by devel/scanprov
+STATIC # Z added by devel/scanprov
+stdoutf # Z added by devel/scanprov
study_chunk # F added by devel/scanprov
sublex_done # F added by devel/scanprov
sublex_push # F added by devel/scanprov
sublex_start # F added by devel/scanprov
+SUSPEND # Z added by devel/scanprov
+sv_2pv # Z added by devel/scanprov
+sv_iv # F added by devel/scanprov
+sv_nv # F added by devel/scanprov
+sv_peek # U
+sv_pvn_force # Z added by devel/scanprov
+sv_true # F added by devel/scanprov
sv_unglob # F added by devel/scanprov
+sv_uv # F added by devel/scanprov
+TAIL # Z added by devel/scanprov
+telldir # Z added by devel/scanprov
+THR # Z added by devel/scanprov
+THREAD_RET_TYPE # Z added by devel/scanprov
+times # Z added by devel/scanprov
+tmpnam # Z added by devel/scanprov
tokeq # F added by devel/scanprov
+umask # Z added by devel/scanprov
+unlink # Z added by devel/scanprov
usage # F added by devel/scanprov
+utime # Z added by devel/scanprov
visit # F added by devel/scanprov
+wait # Z added by devel/scanprov
+write # Z added by devel/scanprov
+XSINTERFACE_CVT # Z added by devel/scanprov
+XSINTERFACE_FUNC # Z added by devel/scanprov
+XSINTERFACE_FUNC_SET # Z added by devel/scanprov
+YIELD # Z added by devel/scanprov
5.005002
+PERL_CALLCONV # Z added by devel/scanprov
5.005003
+ALLOC_THREAD_KEY # Z added by devel/scanprov
+ASCIIish # Z added by devel/scanprov
+CvEVAL # Z added by devel/scanprov
+CvEVAL_off # Z added by devel/scanprov
+CvEVAL_on # Z added by devel/scanprov
+CvSPECIAL # Z added by devel/scanprov
+CvSPECIAL_off # Z added by devel/scanprov
+CvSPECIAL_on # Z added by devel/scanprov
+CXp_REAL # Z added by devel/scanprov
+CxREALEVAL # Z added by devel/scanprov
+CxTYPE # Z added by devel/scanprov
+CXTYPEMASK # Z added by devel/scanprov
+dofile # F added by devel/scanprov
get_vtbl # E
+IOf_NOLINE # Z added by devel/scanprov
+I_PTHREAD # K added by devel/scanprov
+MUTEX_INIT_NEEDS_MUTEX_ZEROED # Z added by devel/scanprov
POPpx # E
+SAVEGENERICSV # Z added by devel/scanprov
save_generic_svref # E
-dofile # F added by devel/scanprov
+SAVEt_GENERIC_SVREF # Z added by devel/scanprov
+SELECT_MIN_BITS # K added by devel/scanprov
+SET_THREAD_SELF # Z added by devel/scanprov
+SvTIED_mg # Z added by devel/scanprov
+SvTIED_obj # Z added by devel/scanprov
+TOPpx # Z added by devel/scanprov
+USE_STAT_BLOCKS # K added by devel/scanprov
+VTBL_amagic # Z added by devel/scanprov
+VTBL_amagicelem # Z added by devel/scanprov
+VTBL_arylen # Z added by devel/scanprov
+VTBL_bm # Z added by devel/scanprov
+VTBL_collxfrm # Z added by devel/scanprov
+VTBL_dbline # Z added by devel/scanprov
+VTBL_defelem # Z added by devel/scanprov
+VTBL_env # Z added by devel/scanprov
+VTBL_envelem # Z added by devel/scanprov
+VTBL_fm # Z added by devel/scanprov
+VTBL_glob # Z added by devel/scanprov
+VTBL_isa # Z added by devel/scanprov
+VTBL_isaelem # Z added by devel/scanprov
+VTBL_mglob # Z added by devel/scanprov
+VTBL_nkeys # Z added by devel/scanprov
+VTBL_pack # Z added by devel/scanprov
+VTBL_packelem # Z added by devel/scanprov
+VTBL_pos # Z added by devel/scanprov
+VTBL_regexp # Z added by devel/scanprov
+VTBL_sigelem # Z added by devel/scanprov
+VTBL_substr # Z added by devel/scanprov
+VTBL_sv # Z added by devel/scanprov
+VTBL_taint # Z added by devel/scanprov
+VTBL_uvar # Z added by devel/scanprov
+VTBL_vec # Z added by devel/scanprov
5.005004
no_bareword_allowed # F added by devel/scanprov
+OPpCONST_STRICT # Z added by devel/scanprov
+OPpENTERSUB_NOPAREN # Z added by devel/scanprov
+PerlEnv_uname # Z added by devel/scanprov
+uname # Z added by devel/scanprov
5.006000
+any_dup # F added by devel/scanprov
+ANYOF_ALNUM # Z added by devel/scanprov
+ANYOF_ALPHA # Z added by devel/scanprov
+ANYOF_ASCII # Z added by devel/scanprov
+ANYOF_BITMAP # Z added by devel/scanprov
+ANYOF_BITMAP_BYTE # Z added by devel/scanprov
+ANYOF_BITMAP_CLEAR # Z added by devel/scanprov
+ANYOF_BITMAP_SET # Z added by devel/scanprov
+ANYOF_BITMAP_SIZE # Z added by devel/scanprov
+ANYOF_BITMAP_TEST # Z added by devel/scanprov
+ANYOF_BITMAP_ZERO # Z added by devel/scanprov
+ANYOF_CNTRL # Z added by devel/scanprov
+ANYOF_DIGIT # Z added by devel/scanprov
+ANYOF_FLAGS # Z added by devel/scanprov
+ANYOF_FLAGS_ALL # Z added by devel/scanprov
+ANYOF_GRAPH # Z added by devel/scanprov
+ANYOF_LOWER # Z added by devel/scanprov
+ANYOF_MAX # Z added by devel/scanprov
+ANYOF_NALNUM # Z added by devel/scanprov
+ANYOF_NALPHA # Z added by devel/scanprov
+ANYOF_NASCII # Z added by devel/scanprov
+ANYOF_NCNTRL # Z added by devel/scanprov
+ANYOF_NDIGIT # Z added by devel/scanprov
+ANYOF_NGRAPH # Z added by devel/scanprov
+ANYOF_NLOWER # Z added by devel/scanprov
+ANYOF_NPRINT # Z added by devel/scanprov
+ANYOF_NPUNCT # Z added by devel/scanprov
+ANYOF_NSPACE # Z added by devel/scanprov
+ANYOF_NUPPER # Z added by devel/scanprov
+ANYOF_NXDIGIT # Z added by devel/scanprov
+ANYOF_PRINT # Z added by devel/scanprov
+ANYOF_PUNCT # Z added by devel/scanprov
+ANYOF_SPACE # Z added by devel/scanprov
+ANYOF_UPPER # Z added by devel/scanprov
+ANYOF_XDIGIT # Z added by devel/scanprov
+apply_attrs # F added by devel/scanprov
aTHX # E
aTHX_ # E
+aTHXo # Z added by devel/scanprov
+aTHXx # Z added by devel/scanprov
+Atof # Z added by devel/scanprov
+Atol # Z added by devel/scanprov
+Atoul # Z added by devel/scanprov
av_delete # E
av_exists # E
+Bit # Z added by devel/scanprov
call_argv # E (perl_call_argv)
call_atexit # E
+CALL_FPTR # Z added by devel/scanprov
call_method # E (perl_call_method)
call_pv # E (perl_call_pv)
+CALLREGFREE # Z added by devel/scanprov
+CALLREG_INTUIT_START # Z added by devel/scanprov
+CALLREG_INTUIT_STRING # Z added by devel/scanprov
call_sv # E (perl_call_sv)
-cast_i32 # E (cast_i32)
-cast_iv # E (cast_iv)
-cast_ulong # E
-cast_uv # E (cast_uv)
+cast_i32 # F added by devel/scanprov
+cast_iv # F added by devel/scanprov
+cast_uv # F added by devel/scanprov
+cBINOPx # Z added by devel/scanprov
+cCOPx # Z added by devel/scanprov
+cGVOP_gv # Z added by devel/scanprov
+cGVOPo_gv # Z added by devel/scanprov
+cGVOPx_gv # Z added by devel/scanprov
+ckDEAD # Z added by devel/scanprov
ckWARN # E
ckWARN2 # E
ckWARN2_d # E
ckWARN_d # E
-CPPLAST # E
-CPPRUN # E
+CLEAR_ARGARRAY # Z added by devel/scanprov
+cLISTOPx # Z added by devel/scanprov
+cLOGOPx # Z added by devel/scanprov
+cLOOPx # Z added by devel/scanprov
+CLUMP # Z added by devel/scanprov
+CLUMP_2IV # Z added by devel/scanprov
+CLUMP_2UV # Z added by devel/scanprov
+CopFILE # E
+CopFILEAV # E
+CopFILEGV