push @MANIFEST, 'lib/Config.pod', 'lib/Errno.pm', 'lib/lib.pm',
'lib/DynaLoader.pm', 'lib/XSLoader.pm';
--f "../lib/DynaLoader.pm" or die "Must be run from a source tree where perl has been built\n";
+# If run in a clean source tree, these will be missing because they are
+# generated by the build.
+my %generated = (
+ 'encoding' => 'Allows you to write your script in non-ascii or non-utf8',
+ 'lib' => 'Manipulate @INC at compile time',
+ 'ops' => 'Restrict unsafe operations when compiling',
+ 'Config' => 'Access Perl configuration information',
+ 'DynaLoader' => 'Dynamically load C libraries into Perl code',
+ 'Errno' => 'System errno constants',
+ 'O' => 'Generic interface to Perl Compiler backends',
+ 'Safe' => 'Compile and execute code in restricted compartments',
+ 'XSLoader' => 'Dynamically load C libraries into Perl code',
+);
+
+# If run in a clean source tree, these should not be reported.
+# These are considered 'modules' by this script, but they really are not.
+my %suppressed = map {$_ => 1} qw(
+ B::O
+ Encode::encoding
+ Opcode::Safe
+ Opcode::ops
+);
for (@MANIFEST) {
- my $filename;
- next unless s|^lib/|| or m|^ext/|;
- my ($origfilename) = ($filename) = m|^(\S+)|;
- $filename =~ s|^[^/]+/|| if $filename =~ s|^ext/||;
- next unless $filename =~ m!\.p(m|od)$!;
- unless (open (MOD, "../lib/$filename")) {
- unless (open (MOD, "../$origfilename")) {
- warn "Couldn't open ../$origfilename: $!";
- next;
- }
- $filename = $origfilename;
- }
+ my $filename;
+ next unless s|^lib/|| or m|^ext/|;
+ my ($origfilename) = ($filename) = m|^(\S+)|;
+ $filename =~ s|^[^/]+/|| if $filename =~ s|^ext/||;
+ next unless $filename =~ m!\.p(m|od)$!;
+ unless (open (MOD, "../lib/$filename")) {
+ unless (open (MOD, "../$origfilename")) {
+ warn "Couldn't open ../$origfilename: $!";
+ next;
+ }
+ $filename = $origfilename;
+ }
my ($name, $thing);
my $foundit=0;
{
- local $/="";
- while (<MOD>) {
- next unless /^=head1 NAME/;
- $foundit++;
- last;
- }
+ local $/="";
+ while (<MOD>) {
+ next unless /^=head1 NAME/;
+ $foundit++;
+ last;
+ }
}
unless ($foundit) {
- warn "$filename missing =head1 NAME (okay if there is respective .pod)\n";
- next;
+ warn "$filename missing =head1 NAME (OK if respective .pod exists)\n";
+ next;
}
my $title = <MOD>;
chomp($title);
($name, $thing) = split / --? /, $title, 2;
unless ($name and $thing) {
- warn "$filename missing name\n" unless $name;
- warn "$filename missing thing\n" unless $thing;
- next;
+ warn "$filename missing name\n" unless $name;
+ warn "$filename missing thing\n" unless $thing;
+ next;
}
+ next if $suppressed{$perlname};
$thing =~ s/^perl pragma to //i;
$thing = ucfirst($thing);
} else {
push @pragma, $title;
}
+
+ # if we find a generated one via the MANIFEST, no need to add later.
+ delete $generated{$perlname};
+}
+while (my ($name,$desc) = each %generated) {
+ my $title = "=item $name\n\n$desc\n\n";
+ if ($name =~ /[A-Z]/) {
+ push @mod, $title;
+ } else {
+ push @pragma, $title;
+ }
}
print OUT <<'EOF';
Package for overloading Perl operations
+=item parent
+
+Establish an ISA relationship with base classes at compile time
+
=item re
Alter regular expression behaviour
Provide framework for multiple DBMs
+=item App::Prove
+
+Implements the C<prove> command.
+
+=item App::Prove::State
+
+State storage for the C<prove> command.
+
=item Archive::Extract
A generic archive extracting mechanism
Perl lint
+=item B::Lint::Debug
+
+Adds debugging stringification to B::
+
=item B::Showlex
Show lexical variables used in functions or files
DOS specific subclass of ExtUtils::MM_Unix
+=item ExtUtils::MM_Darwin
+
+Special behaviors for OS X
+
=item ExtUtils::MM_MacOS
Once produced Makefiles for MacOS Classic
Finding and running system commands made easy
+=item IPC::Msg
+
+SysV Msg IPC object class
+
=item IPC::Open2
Open a process for both reading and writing
Open a process for reading, writing, and error handling
-=item IPC::SysV
+=item IPC::Semaphore
-SysV IPC constants
+SysV Semaphore IPC object class
-=item IPC::SysV::Msg
+=item IPC::SharedMem
-SysV Msg IPC object class
+SysV Shared Memory IPC object class
-=item IPC::SysV::Semaphore
+=item IPC::SysV
-SysV Semaphore IPC object class
+System V IPC constants and system calls
=item List::Util
Win32 support for Sys::Syslog
+=item TAP::Base
+
+Base class that provides common functionality to L<TAP::Parser> and L<TAP::Harness>
+
+=item TAP::Formatter::Color
+
+Run Perl test scripts with color
+
+=item TAP::Formatter::Console
+
+Harness output delegate for default console output
+
+=item TAP::Formatter::Console::ParallelSession
+
+Harness output delegate for parallel console output
+
+=item TAP::Formatter::Console::Session
+
+Harness output delegate for default console output
+
+=item TAP::Harness
+
+Run test scripts with statistics
+
+=item TAP::Parser
+
+Parse L<TAP|Test::Harness::TAP> output
+
+=item TAP::Parser::Aggregator
+
+Aggregate TAP::Parser results
+
+=item TAP::Parser::Grammar
+
+A grammar for the Test Anything Protocol.
+
+=item TAP::Parser::Iterator
+
+Internal TAP::Parser Iterator
+
+=item TAP::Parser::Iterator::Array
+
+Internal TAP::Parser Iterator
+
+=item TAP::Parser::Iterator::Process
+
+Internal TAP::Parser Iterator
+
+=item TAP::Parser::Iterator::Stream
+
+Internal TAP::Parser Iterator
+
+=item TAP::Parser::Multiplexer
+
+Multiplex multiple TAP::Parsers
+
+=item TAP::Parser::Result
+
+TAP::Parser output
+
+=item TAP::Parser::Result::Bailout
+
+Bailout result token.
+
+=item TAP::Parser::Result::Comment
+
+Comment result token.
+
+=item TAP::Parser::Result::Plan
+
+Plan result token.
+
+=item TAP::Parser::Result::Pragma
+
+TAP pragma token.
+
+=item TAP::Parser::Result::Test
+
+Test result token.
+
+=item TAP::Parser::Result::Unknown
+
+Unknown result token.
+
+=item TAP::Parser::Result::Version
+
+TAP syntax version token.
+
+=item TAP::Parser::Result::YAML
+
+YAML result token.
+
+=item TAP::Parser::Source
+
+Stream output from some source
+
+=item TAP::Parser::Source::Perl
+
+Stream Perl output
+
+=item TAP::Parser::Utils
+
+Internal TAP::Parser utilities
+
+=item TAP::Parser::YAMLish::Reader
+
+Read YAMLish data from iterator
+
+=item TAP::Parser::YAMLish::Writer
+
+Write YAMLish data
+
=item Term::ANSIColor
Color screen output using ANSI escape sequences
Run Perl standard test scripts with statistics
-=item Test::Harness::Assert
-
-Simple assert
-
-=item Test::Harness::Iterator
-
-Internal Test::Harness Iterator
-
-=item Test::Harness::Point
-
-Object for tracking a single test point
-
-=item Test::Harness::Results
-
-Object for tracking results from a single test file
-
-=item Test::Harness::Straps
-
-Detailed analysis of test results
-
-=item Test::Harness::TAP
-
-Documentation for the TAP format
-
-=item Test::Harness::Util
-
-Utility functions for Test::Harness::*
-
=item Test::More
Yet another framework for writing test scripts