Autogenerate pod/Makefile and pod/buildtoc.
authorJarkko Hietaniemi <jhi@iki.fi>
Thu, 6 Jul 2000 03:11:46 +0000 (03:11 +0000)
committerJarkko Hietaniemi <jhi@iki.fi>
Thu, 6 Jul 2000 03:11:46 +0000 (03:11 +0000)
buildtoc also checks whether the existing pods are
mentioned in MANIFEST and perl.pod, and vice versa.
(None of the thusly found discrepancies fixed yet.)
roffitall also needs to be autogenerated similarly but it
seems so badly out of date that I didn't touch it yet.

p4raw-id: //depot/cfgperl@6319

MANIFEST
Makefile.SH
pod/Makefile [deleted file]
pod/Makefile.SH [new file with mode: 0644]
pod/buildtoc.PL [moved from pod/buildtoc with 60% similarity]
pod/perl.pod
pod/perltoc.pod

index b68706a..d22befa 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -1117,11 +1117,11 @@ plan9/plan9.c           Plan9 port: Plan9-specific C routines
 plan9/plan9ish.h       Plan9 port: Plan9-specific C header file
 plan9/setup.rc         Plan9 port: script for easy build+install
 plan9/versnum          Plan9 port: script to print version number
-pod/Makefile           Make pods into something else
+pod/Makefile.SH                generate Makefile whichs makes pods into something else
 pod/Win32.pod          Documentation for Win32 extras
-pod/buildtoc           generate perltoc.pod
+pod/buildtoc.PL                generate buildtoc which generates perltoc.pod
 pod/checkpods.PL       Tool to check for common errors in pods
-pod/perl.pod           Top level perl man page
+pod/perl.pod           Top level perl documentation
 pod/perl5004delta.pod  Changes from 5.003 to 5.004
 pod/perl5005delta.pod  Changes from 5.004 to 5.005
 pod/perl56delta.pod    Changes from 5.005 to 5.6
index e2f1740..a80e93b 100644 (file)
@@ -222,20 +222,22 @@ private = preplibrary lib/ExtUtils/Miniperl.pm lib/Config.pm
 # Files to be built with variable substitution before miniperl
 # is available.
 sh = Makefile.SH cflags.SH config_h.SH makeaperl.SH makedepend.SH \
-       makedir.SH myconfig.SH writemain.SH
+       makedir.SH myconfig.SH writemain.SH pod/Makefile.SH
 
 shextract = Makefile cflags config.h makeaperl makedepend \
-       makedir myconfig writemain
+       makedir myconfig writemain pod/Makefile
 
 # Files to be built with variable substitution after miniperl is
 # available.  Dependencies handled manually below (for now).
 
 pl = pod/pod2html.PL pod/pod2latex.PL pod/pod2man.PL pod/pod2text.PL \
-       pod/pod2usage.PL pod/podchecker.PL pod/podselect.PL
+       pod/pod2usage.PL pod/podchecker.PL pod/podselect.PL \
+       pod/buildtoc.PL
 
 # lib/lib.pm is not listed here because it has a rule of its own.
 plextract = pod/pod2html pod/pod2latex pod/pod2man pod/pod2text \
-       pod/pod2usage pod/podchecker pod/podselect
+       pod/pod2usage pod/podchecker pod/podselect \
+       pod/buildtoc
 
 addedbyconf = UU $(shextract) $(plextract) lib/lib.pm pstruct
 
@@ -639,6 +641,9 @@ regen_headers:      FORCE
        -perl regcomp.pl
        -perl warnings.pl
 
+regen_pods:    FORCE
+       -cd pod; $(LDLIBPTH) make regen_pods
+
 # Extensions:
 # Names added to $(dynamic_ext) or $(static_ext) or $(nonxs_ext) will
 # automatically get built.  There should ordinarily be no need to change
diff --git a/pod/Makefile b/pod/Makefile
deleted file mode 100644 (file)
index a6f4efb..0000000
+++ /dev/null
@@ -1,401 +0,0 @@
-CONVERTERS = pod2html pod2latex pod2man pod2text checkpods \
-               pod2usage podchecker podselect
-
-HTMLROOT = /   # Change this to fix cross-references in HTML
-POD2HTML = pod2html \
-           --htmlroot=$(HTMLROOT) \
-           --podroot=.. --podpath=pod:lib:ext:vms \
-           --libpods=perlfunc:perlguts:perlvar:perlrun:perlop
-
-all: $(CONVERTERS) man
-
-converters: $(CONVERTERS)
-
-PERL = ../miniperl
-REALPERL = ../perl
-
-POD = \
-       perl.pod        \
-       perl5004delta.pod       \
-       perl5005delta.pod       \
-       perl56delta.pod \
-       perlapi.pod     \
-       perlapio.pod    \
-       perlbook.pod    \
-       perlboot.pod    \
-       perlbot.pod     \
-       perlcall.pod    \
-       perlcompile.pod \
-       perldata.pod    \
-       perldbmfilter.pod       \
-       perldebguts.pod \
-       perldebug.pod   \
-       perldelta.pod   \
-       perldiag.pod    \
-       perldsc.pod     \
-       perlembed.pod   \
-       perlfaq.pod     \
-       perlfaq1.pod    \
-       perlfaq2.pod    \
-       perlfaq3.pod    \
-       perlfaq4.pod    \
-       perlfaq5.pod    \
-       perlfaq6.pod    \
-       perlfaq7.pod    \
-       perlfaq8.pod    \
-       perlfaq9.pod    \
-       perlfilter.pod  \
-       perlfork.pod    \
-       perlform.pod    \
-       perlfunc.pod    \
-       perlguts.pod    \
-       perlhack.pod    \
-       perlhist.pod    \
-       perlintern.pod  \
-       perlipc.pod     \
-       perllexwarn.pod \
-       perllocale.pod  \
-       perllol.pod     \
-       perlmod.pod     \
-       perlmodinstall.pod      \
-       perlmodlib.pod  \
-       perlnewmod.pod  \
-       perlnumber.pod  \
-       perlobj.pod     \
-       perlop.pod      \
-       perlopentut.pod \
-       perlpod.pod     \
-       perlport.pod    \
-       perlre.pod      \
-       perlref.pod     \
-       perlreftut.pod  \
-       perlrequick.pod \
-       perlretut.pod   \
-       perlrun.pod     \
-       perlsec.pod     \
-       perlstyle.pod   \
-       perlsub.pod     \
-       perlsyn.pod     \
-       perlthrtut.pod  \
-       perltie.pod     \
-       perltoc.pod     \
-       perltodo.pod    \
-       perltoot.pod    \
-       perltootc.pod   \
-       perltrap.pod    \
-       perlunicode.pod \
-       perlutil.pod    \
-       perlvar.pod     \
-       perlxs.pod      \
-       perlxstut.pod
-
-MAN = \
-       perl.man        \
-       perl5004delta.man       \
-       perl5005delta.man       \
-       perl56delta.man \
-       perlapi.man     \
-       perlapio.man    \
-       perlbook.man    \
-       perlboot.man    \
-       perlbot.man     \
-       perlcall.man    \
-       perlcompile.man \
-       perldata.man    \
-       perldbmfilter.man       \
-       perldebguts.man \
-       perldebug.man   \
-       perldelta.man   \
-       perldiag.man    \
-       perldsc.man     \
-       perlembed.man   \
-       perlfaq.man     \
-       perlfaq1.man    \
-       perlfaq2.man    \
-       perlfaq3.man    \
-       perlfaq4.man    \
-       perlfaq5.man    \
-       perlfaq6.man    \
-       perlfaq7.man    \
-       perlfaq8.man    \
-       perlfaq9.man    \
-       perlfilter.man  \
-       perlfork.man    \
-       perlform.man    \
-       perlfunc.man    \
-       perlguts.man    \
-       perlhack.man    \
-       perlhist.man    \
-       perlintern.man  \
-       perlipc.man     \
-       perllexwarn.man \
-       perllocale.man  \
-       perllol.man     \
-       perlmod.man     \
-       perlmodinstall.man      \
-       perlmodlib.man  \
-       perlnewmod.man  \
-       perlnumber.man  \
-       perlobj.man     \
-       perlop.man      \
-       perlopentut.man \
-       perlpod.man     \
-       perlport.man    \
-       perlre.man      \
-       perlref.man     \
-       perlreftut.man  \
-       perlrequick.man \
-       perlretut.man   \
-       perlrun.man     \
-       perlsec.man     \
-       perlstyle.man   \
-       perlsub.man     \
-       perlsyn.man     \
-       perlthrtut.man  \
-       perltie.man     \
-       perltoc.man     \
-       perltodo.man    \
-       perltoot.man    \
-       perltootc.man   \
-       perltrap.man    \
-       perlunicode.man \
-       perlutil.man    \
-       perlvar.man     \
-       perlxs.man      \
-       perlxstut.man
-
-HTML = \
-       perl.html       \
-       perl5004delta.html      \
-       perl5005delta.html      \
-       perl56delta.html        \
-       perlapi.html    \
-       perlapio.html   \
-       perlbook.html   \
-       perlboot.html   \
-       perlbot.html    \
-       perlcall.html   \
-       perlcompile.html        \
-       perldata.html   \
-       perldbmfilter.html      \
-       perldebguts.html        \
-       perldebug.html  \
-       perldelta.html  \
-       perldiag.html   \
-       perldsc.html    \
-       perlembed.html  \
-       perlfaq.html    \
-       perlfaq1.html   \
-       perlfaq2.html   \
-       perlfaq3.html   \
-       perlfaq4.html   \
-       perlfaq5.html   \
-       perlfaq6.html   \
-       perlfaq7.html   \
-       perlfaq8.html   \
-       perlfaq9.html   \
-       perlfilter.html \
-       perlfork.html   \
-       perlform.html   \
-       perlfunc.html   \
-       perlguts.html   \
-       perlhack.html   \
-       perlhist.html   \
-       perlintern.html \
-       perlipc.html    \
-       perllexwarn.html        \
-       perllocale.html \
-       perllol.html    \
-       perlmod.html    \
-       perlmodinstall.html     \
-       perlmodlib.html \
-       perlnewmod.html \
-       perlnumber.html \
-       perlobj.html    \
-       perlop.html     \
-       perlopentut.html        \
-       perlpod.html    \
-       perlport.html   \
-       perlre.html     \
-       perlref.html    \
-       perlreftut.html \
-       perlrequick.html        \
-       perlretut.html  \
-       perlrun.html    \
-       perlsec.html    \
-       perlstyle.html  \
-       perlsub.html    \
-       perlsyn.html    \
-       perlthrtut.html \
-       perltie.html    \
-       perltodo.html   \
-       perltoot.html   \
-       perltootc.html  \
-       perltrap.html   \
-       perlunicode.html        \
-       perlutil.html   \
-       perlvar.html    \
-       perlxs.html     \
-       perlxstut.html
-
-# not perltoc.html
-
-TEX = \
-       perl.tex        \
-       perl5004delta.tex       \
-       perl5005delta.tex       \
-       perl56delta.tex \
-       perlapi.tex     \
-       perlapio.tex    \
-       perlbook.tex    \
-       perlboot.tex    \
-       perlbot.tex     \
-       perlcall.tex    \
-       perlcompile.tex \
-       perldata.tex    \
-       perldbmfilter.tex       \
-       perldebguts.tex \
-       perldebug.tex   \
-       perldelta.tex   \
-       perldiag.tex    \
-       perldsc.tex     \
-       perlembed.tex   \
-       perlfaq.tex     \
-       perlfaq1.tex    \
-       perlfaq2.tex    \
-       perlfaq3.tex    \
-       perlfaq4.tex    \
-       perlfaq5.tex    \
-       perlfaq6.tex    \
-       perlfaq7.tex    \
-       perlfaq8.tex    \
-       perlfaq9.tex    \
-       perlfilter.tex  \
-       perlfork.tex    \
-       perlform.tex    \
-       perlfunc.tex    \
-       perlguts.tex    \
-       perlhack.tex    \
-       perlhist.tex    \
-       perlintern.tex  \
-       perlipc.tex     \
-       perllexwarn.tex \
-       perllocale.tex  \
-       perllol.tex     \
-       perlmod.tex     \
-       perlmodinstall.tex      \
-       perlmodlib.tex  \
-       perlnewmod.tex  \
-       perlnumber.tex  \
-       perlobj.tex     \
-       perlop.tex      \
-       perlopentut.tex \
-       perlpod.tex     \
-       perlport.tex    \
-       perlre.tex      \
-       perlref.tex     \
-       perlreftut.tex  \
-       perlrequick.tex \
-       perlretut.tex   \
-       perlrun.tex     \
-       perlsec.tex     \
-       perlstyle.tex   \
-       perlsub.tex     \
-       perlsyn.tex     \
-       perlthrtut.tex  \
-       perltie.tex     \
-       perltoc.tex     \
-       perltodo.tex    \
-       perltoot.tex    \
-       perltootc.tex   \
-       perltrap.tex    \
-       perlunicode.tex \
-       perlutil.tex    \
-       perlvar.tex     \
-       perlxs.tex      \
-       perlxstut.tex
-
-man:   pod2man $(MAN)
-
-html:  pod2html $(HTML)
-
-tex:   pod2latex $(TEX)
-
-toc:
-       $(PERL) -I../lib buildtoc >perltoc.pod
-
-.SUFFIXES: .pm .pod
-
-.SUFFIXES: .man
-
-.pm.man:     pod2man
-       $(PERL) -I../lib pod2man $*.pm >$*.man
-
-.pod.man:     pod2man
-       $(PERL) -I../lib pod2man $*.pod >$*.man
-
-.SUFFIXES: .html
-
-.pm.html:    pod2html
-       $(PERL) -I../lib $(POD2HTML) --infile=$*.pm --outfile=$*.html
-
-.pod.html:    pod2html
-       $(PERL) -I../lib $(POD2HTML) --infile=$*.pod --outfile=$*.html
-
-.SUFFIXES: .tex
-
-.pm.tex: pod2latex
-       $(PERL) -I../lib pod2latex $*.pm
-
-.pod.tex: pod2latex
-       $(PERL) -I../lib pod2latex $*.pod
-
-clean:
-       rm -f $(MAN)
-       rm -f $(HTML)
-       rm -f $(TEX)
-       rm -f pod2html-*cache
-       rm -f *.aux *.log *.exe
-
-realclean:     clean
-       rm -f $(CONVERTERS)
-
-distclean:     realclean
-
-check: checkpods
-       @echo "checking..."; \
-       $(PERL) -I../lib checkpods $(POD)
-
-# Dependencies.
-pod2latex:     pod2latex.PL ../lib/Config.pm
-       $(PERL) -I../lib pod2latex.PL
-
-pod2html:      pod2html.PL ../lib/Config.pm
-       $(PERL) -I ../lib pod2html.PL
-
-pod2man:       pod2man.PL ../lib/Config.pm
-       $(PERL) -I ../lib pod2man.PL
-
-pod2text:      pod2text.PL ../lib/Config.pm
-       $(PERL) -I ../lib pod2text.PL
-
-checkpods:     checkpods.PL ../lib/Config.pm
-       $(PERL) -I ../lib checkpods.PL
-
-pod2usage:     pod2usage.PL ../lib/Config.pm
-       $(PERL) -I ../lib pod2usage.PL
-
-podchecker:    podchecker.PL ../lib/Config.pm
-       $(PERL) -I ../lib podchecker.PL
-
-podselect:     podselect.PL ../lib/Config.pm
-       $(PERL) -I ../lib podselect.PL
-
-perlmodlib.pod:        $(PERL) perlmodlib.PL ../mv-if-diff
-       rm -f perlmodlib.tmp
-       $(PERL) -I ../lib perlmodlib.PL
-       sh ../mv-if-diff perlmodlib.tmp perlmodlib.pod
-
-compile: all
-       $(REALPERL) -I../lib ../utils/perlcc -regex 's/$$/.exe/' pod2latex pod2man pod2text checkpods -prog -verbose dcf -log ../compilelog;
-
diff --git a/pod/Makefile.SH b/pod/Makefile.SH
new file mode 100644 (file)
index 0000000..17ba91a
--- /dev/null
@@ -0,0 +1,158 @@
+case $CONFIG in
+'')
+       if test -f config.sh; then TOP=.;
+       elif test -f ../config.sh; then TOP=..;
+       elif test -f ../../config.sh; then TOP=../..;
+       elif test -f ../../../config.sh; then TOP=../../..;
+       elif test -f ../../../../config.sh; then TOP=../../../..;
+       else
+               echo "Can't find config.sh."; exit 1
+       fi
+       . $TOP/config.sh
+       ;;
+esac
+: This forces SH files to create target in same directory as SH file.
+: This is so that make depend always knows where to find SH derivatives.
+case "$0" in
+*/*) cd `expr X$0 : 'X\(.*\)/'` ;;
+esac
+
+if test -d pod; then
+  cd pod || exit 1
+fi
+POD=`echo *.pod`
+MAN=`echo $POD|sed 's/\.pod/\.man/g'`
+HTML=`echo $POD|sed 's/perltoc.pod//'|sed 's/\.pod/\.man/g'`
+TEX=`echo $POD|sed 's/\.pod/\.tex/g'`
+
+echo "Extracting pod/Makefile (with variable substitutions)"
+: This section of the file will have variable substitutions done on it.
+: Move anything that needs config subs from !NO!SUBS! section to !GROK!THIS!.
+: Protect any dollar signs and backticks that you do not want interpreted
+: by putting a backslash in front.  You may delete these comments.
+
+$spitshell >Makefile <<!GROK!THIS!
+# pod/Makefile
+# This file is derived from pod/Makefile.SH.  Any changes made here will
+# be lost the next time you run Configure.
+
+POD = $POD
+
+MAN = $MAN
+
+# no perltoc.html
+HTML = $HTML
+
+TEX  = $TEX  
+
+!GROK!THIS!
+
+## In the following dollars and backticks do not need the extra backslash.
+$spitshell >>Makefile <<'!NO!SUBS!'
+
+CONVERTERS = pod2html pod2latex pod2man pod2text checkpods \
+               pod2usage podchecker podselect
+
+HTMLROOT = /   # Change this to fix cross-references in HTML
+POD2HTML = pod2html \
+           --htmlroot=$(HTMLROOT) \
+           --podroot=.. --podpath=pod:lib:ext:vms \
+           --libpods=perlfunc:perlguts:perlvar:perlrun:perlop
+
+PERL = ../miniperl
+REALPERL = ../perl
+
+all: $(CONVERTERS) man
+
+converters: $(CONVERTERS)
+
+regen_pods: perlmodlib.pod toc
+
+buildtoc:      buildtoc.PL
+       $(PERL) -I ../lib buildtoc.PL
+
+man:   pod2man $(MAN)
+
+html:  pod2html $(HTML)
+
+tex:   pod2latex $(TEX)
+
+toc:
+       $(PERL) -I../lib buildtoc
+
+.SUFFIXES: .pm .pod
+
+.SUFFIXES: .man
+
+.pm.man:     pod2man
+       $(PERL) -I../lib pod2man $*.pm >$*.man
+
+.pod.man:     pod2man
+       $(PERL) -I../lib pod2man $*.pod >$*.man
+
+.SUFFIXES: .html
+
+.pm.html:    pod2html
+       $(PERL) -I../lib $(POD2HTML) --infile=$*.pm --outfile=$*.html
+
+.pod.html:    pod2html
+       $(PERL) -I../lib $(POD2HTML) --infile=$*.pod --outfile=$*.html
+
+.SUFFIXES: .tex
+
+.pm.tex: pod2latex
+       $(PERL) -I../lib pod2latex $*.pm
+
+.pod.tex: pod2latex
+       $(PERL) -I../lib pod2latex $*.pod
+
+clean:
+       rm -f $(MAN)
+       rm -f $(HTML)
+       rm -f $(TEX)
+       rm -f pod2html-*cache
+       rm -f *.aux *.log *.exe
+
+realclean:     clean
+       rm -f $(CONVERTERS)
+
+distclean:     realclean
+
+check: checkpods
+       @echo "checking..."; \
+       $(PERL) -I../lib checkpods $(POD)
+
+# Dependencies.
+pod2latex:     pod2latex.PL ../lib/Config.pm
+       $(PERL) -I../lib pod2latex.PL
+
+pod2html:      pod2html.PL ../lib/Config.pm
+       $(PERL) -I ../lib pod2html.PL
+
+pod2man:       pod2man.PL ../lib/Config.pm
+       $(PERL) -I ../lib pod2man.PL
+
+pod2text:      pod2text.PL ../lib/Config.pm
+       $(PERL) -I ../lib pod2text.PL
+
+checkpods:     checkpods.PL ../lib/Config.pm
+       $(PERL) -I ../lib checkpods.PL
+
+pod2usage:     pod2usage.PL ../lib/Config.pm
+       $(PERL) -I ../lib pod2usage.PL
+
+podchecker:    podchecker.PL ../lib/Config.pm
+       $(PERL) -I ../lib podchecker.PL
+
+podselect:     podselect.PL ../lib/Config.pm
+       $(PERL) -I ../lib podselect.PL
+
+perlmodlib.pod:        $(PERL) perlmodlib.PL ../mv-if-diff
+       rm -f perlmodlib.tmp
+       $(PERL) -I ../lib perlmodlib.PL
+       sh ../mv-if-diff perlmodlib.tmp perlmodlib.pod
+
+compile: all
+       $(REALPERL) -I../lib ../utils/perlcc -regex 's/$$/.exe/' pod2latex pod2man pod2text checkpods -prog -verbose dcf -log ../compilelog;
+
+!NO!SUBS!
similarity index 60%
rename from pod/buildtoc
rename to pod/buildtoc.PL
index 58bfc54..762434e 100644 (file)
@@ -1,9 +1,60 @@
+#!/usr/local/bin/perl
+
+use Config;
+use File::Basename qw(&basename &dirname);
+use Cwd;
+
+# List explicitly here the variables you want Configure to
+# generate.  Metaconfig only looks for shell variables, so you
+# have to mention them as if they were shell variables, not
+# %Config entries.  Thus you write
+#  $startperl
+# to ensure Configure will look for $Config{startperl}.
+
+# This forces PL files to create target in same directory as PL file.
+# This is so that make depend always knows where to find PL derivatives.
+$origdir = cwd;
+chdir(dirname($0));
+($file = basename($0)) =~ s/\.PL$//;
+$file =~ s/\.pl$// if ($^O eq 'os2' or $^O eq 'dos');  # "case-forgiving"
+$file =~ s/\.pl$/.com/ if ($^O eq 'VMS');              # "case-forgiving"
+
+open OUT,">$file" or die "Can't create $file: $!";
+
+print "Extracting $file (with variable substitutions)\n";
+
+# In this section, perl variables will be expanded during extraction.
+# You can use $Config{...} to use Configure variables.
+
+print OUT <<"!GROK!THIS!";
+$Config{'startperl'}
+    eval 'exec perl -S \$0 "\$@"'
+        if 0;
+!GROK!THIS!
+
+# In the following, perl variables are not expanded during extraction.
+
+print OUT <<'!NO!SUBS!';
+
+#
+# buildtoc
+#
+# Build perltoc.pod and sanity check the list of pods against all
+# of the MANIFEST, perl.pod, and ourselves.
+#
+
 use File::Find;
 use Cwd;
 use Text::Wrap;
 
+@PODS = glob("*.pod");
+
 sub output ($);
 
+if (-d "pod") {
+  die "$0: failed to chdir('pod'): $!\n" unless chdir("pod");
+}
+
 @pods = qw(
           perl perlfaq perlfaq1 perlfaq2 perlfaq3 perlfaq4 perlfaq5
           perlfaq6 perlfaq7 perlfaq8 perlfaq9 perldelta perldata
@@ -18,6 +69,58 @@ sub output ($);
          );
 
 for (@pods) { s/$/.pod/ }
+@pods{@pods} = ();
+@PODS{@PODS} = ();
+
+open(MANI, "../MANIFEST") || die "$0: opening ../MANIFEST failed: $!";
+while (<MANI>) {
+  if (m!^pod/([^.]+\.pod)\s+!i) {
+     push @MANIPODS, $1;
+  }
+}
+close(MANI);
+@MANIPODS{@MANIPODS} = ();
+
+open(PERLPOD, "perl.pod") || die "$0: opening perl.pod failed: $!\n";
+while (<PERLPOD>) {
+  if (/^For ease of access, /../^\(If you're intending /) {
+       if (/^\s+(perl\w+)\s+Perl /) {
+               push @PERLPODS, "$1.pod";
+       }
+  }
+}
+close(PERLPOD);
+die "$0: could not find the pod listing of perl.pod\n"
+  unless @PERLPODS;
+@PERLPODS{@PERLPODS} = ();
+
+# Cross-check against ourselves
+# Cross-check against the MANIFEST
+# Cross-check against the perl.pod
+
+foreach my $i (sort keys %PODS) {
+  warn "$0: $i exists but is unknown by buildtoc\n"
+       unless exists $pods{$i};
+  warn "$0: $i exists but is unknown by ../MANIFEST\n"
+       unless exists $MANIPODS{$i};
+  warn "$0: $i exists but is unknown by perl.pod\n"
+       unless exists $PERLPODS{$i};
+}
+foreach my $i (sort keys %pods) {
+  warn "$0: $i is known by buildtoc but does not exist\n"
+       unless exists $PODS{$i};
+}
+foreach my $i (sort keys %MANIPODS) {
+  warn "$0: $i is known by ../MANIFEST but does not exist\n"
+       unless exists $PODS{$i};
+}
+foreach my $i (sort keys %PERLPODS) {
+  warn "$0: $i is known by perl.pod but does not exist\n"
+       unless exists $PODS{$i};
+}
+
+# We are ready to rock.
+open(OUT, ">perltoc.pod") || die "$0: creating perltoc.pod failed: $!";
 
 $/ = '';
 @ARGV = @pods;
@@ -64,7 +167,7 @@ sub getpods {
                    return;
                }
            }
-           warn "EVIL $file\n";
+           warn "$0: $file: cannot find =head1 NAME\n";
        }
     }
 }
@@ -243,11 +346,11 @@ sub output ($) {
     for (split /(\n)/, shift) {
        if ($_ eq "\n") {
            if ($LINE) {
-               print wrap('', '', $LINE);
+               print OUT wrap('', '', $LINE);
                $LINE = '';
            }
            if ($NEWLINE < 2) {
-               print;
+               print OUT;
                $NEWLINE++;
            }
        }
@@ -257,3 +360,6 @@ sub output ($) {
        }
     }
 }
+
+!NO!SUBS!
+
index 49fdbf2..b7032a0 100644 (file)
@@ -12,8 +12,7 @@ B<perl>       S<[ B<-sTuU> ]> S<[ B<-hv> ] [ B<-V>[:I<configvar>] ]>
     S<[ B<-i>[I<extension>] ]> S<[ B<-e> I<'command'> ] 
     [ B<--> ] [ I<programfile> ] [ I<argument> ]...>
 
-For ease of access, the Perl manual has been split up into several
-sections:
+For ease of access, the Perl manual has been split up into several sections:
 
     perl               Perl overview (this section)
     perldelta          Perl changes since previous version
index 5768081..b33376e 100644 (file)
@@ -1387,25 +1387,26 @@ delete(), each(), values() and hash iteration are faster
 
 =item New or Changed Diagnostics
 
-"%s" variable %s masks earlier declaration in same %s, "my sub" not yet
-implemented, "our" variable %s redeclared, '!' allowed only after types %s,
-/ cannot take a count, / must be followed by a, A or Z, / must be followed
-by a*, A* or Z*, / must follow a numeric type, /%s/: Unrecognized escape
-\\%c passed through, /%s/: Unrecognized escape \\%c in character class
-passed through, /%s/ should probably be written as "%s", %s() called too
-early to check prototype, %s argument is not a HASH or ARRAY element, %s
-argument is not a HASH or ARRAY element or slice, %s argument is not a
-subroutine name, %s package attribute may clash with future reserved word:
-%s, (in cleanup) %s, <> should be quotes, Attempt to join self, Bad evalled
-substitution pattern, Bad realloc() ignored, Bareword found in conditional,
-Binary number > 0b11111111111111111111111111111111 non-portable, Bit vector
-size > 32 non-portable, Buffer overflow in prime_env_iter: %s, Can't check
-filesystem of script "%s", Can't declare class for non-scalar %s in "%s",
-Can't declare %s in "%s", Can't ignore signal CHLD, forcing to default,
-Can't modify non-lvalue subroutine call, Can't read CRTL environ, Can't
-remove %s: %s, skipping file, Can't return %s from lvalue subroutine, Can't
-weaken a nonreference, Character class [:%s:] unknown, Character class
-syntax [%s] belongs inside character classes, Constant is not %s reference,
+(perhaps you forgot to load "%s"?), "%s" variable %s masks earlier
+declaration in same %s, "my sub" not yet implemented, "our" variable %s
+redeclared, '!' allowed only after types %s, / cannot take a count, / must
+be followed by a, A or Z, / must be followed by a*, A* or Z*, / must follow
+a numeric type, /%s/: Unrecognized escape \\%c passed through, /%s/:
+Unrecognized escape \\%c in character class passed through, /%s/ should
+probably be written as "%s", %s() called too early to check prototype, %s
+argument is not a HASH or ARRAY element, %s argument is not a HASH or ARRAY
+element or slice, %s argument is not a subroutine name, %s package
+attribute may clash with future reserved word: %s, (in cleanup) %s, <>
+should be quotes, Attempt to join self, Bad evalled substitution pattern,
+Bad realloc() ignored, Bareword found in conditional, Binary number >
+0b11111111111111111111111111111111 non-portable, Bit vector size > 32
+non-portable, Buffer overflow in prime_env_iter: %s, Can't check filesystem
+of script "%s", Can't declare class for non-scalar %s in "%s", Can't
+declare %s in "%s", Can't ignore signal CHLD, forcing to default, Can't
+modify non-lvalue subroutine call, Can't read CRTL environ, Can't remove
+%s: %s, skipping file, Can't return %s from lvalue subroutine, Can't weaken
+a nonreference, Character class [:%s:] unknown, Character class syntax [%s]
+belongs inside character classes, Constant is not %s reference,
 constant(%s): %s, CORE::%s is not a keyword, defined(@array) is deprecated,
 defined(%hash) is deprecated, Did not produce a valid header, (Did you mean
 "local" instead of "our"?), Document contains no data, entering effective
@@ -3332,7 +3333,7 @@ program
 
 =back
 
-=item Embedding Perl under Win32
+=item Embedding Perl under Windows
 
 =item MORAL
 
@@ -3813,48 +3814,49 @@ B::Stash, B::Terse, B::Xref
 =item DESCRIPTION
 
 AvFILL, av_clear, av_extend, av_fetch, av_len, av_make, av_pop, av_push,
-av_shift, av_store, av_undef, av_unshift, call_argv, call_method, call_pv,
-call_sv, CLASS, Copy, croak, CvSTASH, dMARK, dORIGMARK, dSP, dXSARGS,
-dXSI32, ENTER, eval_pv, eval_sv, EXTEND, fbm_compile, fbm_instr, FREETMPS,
-get_av, get_cv, get_hv, get_sv, GIMME, GIMME_V, GvSV, gv_fetchmeth,
-gv_fetchmethod, gv_fetchmethod_autoload, gv_stashpv, gv_stashsv, G_ARRAY,
-G_DISCARD, G_EVAL, G_NOARGS, G_SCALAR, G_VOID, HEf_SVKEY, HeHASH, HeKEY,
-HeKLEN, HePV, HeSVKEY, HeSVKEY_force, HeSVKEY_set, HeVAL, HvNAME, hv_clear,
-hv_delete, hv_delete_ent, hv_exists, hv_exists_ent, hv_fetch, hv_fetch_ent,
-hv_iterinit, hv_iterkey, hv_iterkeysv, hv_iternext, hv_iternextsv,
-hv_iterval, hv_magic, hv_store, hv_store_ent, hv_undef, isALNUM, isALPHA,
-isDIGIT, isLOWER, isSPACE, isUPPER, items, ix, LEAVE, looks_like_number,
-MARK, mg_clear, mg_copy, mg_find, mg_free, mg_get, mg_length, mg_magical,
-mg_set, Move, New, newAV, Newc, newCONSTSUB, newHV, newRV_inc, newRV_noinc,
-NEWSV, newSViv, newSVnv, newSVpv, newSVpvf, newSVpvn, newSVrv, newSVsv,
-newSVuv, newXS, newXSproto, Newz, Nullav, Nullch, Nullcv, Nullhv, Nullsv,
-ORIGMARK, perl_alloc, perl_construct, perl_destruct, perl_free, perl_parse,
-perl_run, PL_DBsingle, PL_DBsub, PL_DBtrace, PL_dowarn, PL_modglobal,
-PL_na, PL_sv_no, PL_sv_undef, PL_sv_yes, POPi, POPl, POPn, POPp, POPs,
-PUSHi, PUSHMARK, PUSHn, PUSHp, PUSHs, PUSHu, PUTBACK, Renew, Renewc,
-require_pv, RETVAL, Safefree, savepv, savepvn, SAVETMPS, SP, SPAGAIN, ST,
-strEQ, strGE, strGT, strLE, strLT, strNE, strnEQ, strnNE, StructCopy,
-SvCUR, SvCUR_set, SvEND, SvGETMAGIC, SvGROW, SvIOK, SvIOKp, SvIOK_off,
-SvIOK_on, SvIOK_only, SvIV, SvIVX, SvLEN, SvLOCK, SvNIOK, SvNIOKp,
-SvNIOK_off, SvNOK, SvNOKp, SvNOK_off, SvNOK_on, SvNOK_only, SvNV, SvNVX,
-SvOK, SvOOK, SvPOK, SvPOKp, SvPOK_off, SvPOK_on, SvPOK_only, SvPV, SvPVX,
-SvPV_force, SvPV_nolen, SvREFCNT, SvREFCNT_dec, SvREFCNT_inc, SvROK,
-SvROK_off, SvROK_on, SvRV, SvSETMAGIC, SvSetSV, SvSetSV_nosteal, SvSTASH,
-SvTAINT, SvTAINTED, SvTAINTED_off, SvTAINTED_on, SvTRUE, SvTYPE, svtype,
-SVt_IV, SVt_NV, SVt_PV, SVt_PVAV, SVt_PVCV, SVt_PVHV, SVt_PVMG, SvUNLOCK,
-SvUPGRADE, SvUV, SvUVX, sv_2mortal, sv_bless, sv_catpv, sv_catpvf,
-sv_catpvf_mg, sv_catpvn, sv_catpvn_mg, sv_catpv_mg, sv_catsv, sv_catsv_mg,
-sv_chop, sv_cmp, sv_dec, sv_derived_from, sv_eq, sv_grow, sv_inc,
-sv_insert, sv_isa, sv_isobject, sv_len, sv_magic, sv_mortalcopy,
-sv_newmortal, sv_setiv, sv_setiv_mg, sv_setnv, sv_setnv_mg, sv_setpv,
-sv_setpvf, sv_setpvf_mg, sv_setpviv, sv_setpviv_mg, sv_setpvn,
-sv_setpvn_mg, sv_setpv_mg, sv_setref_iv, sv_setref_nv, sv_setref_pv,
-sv_setref_pvn, sv_setsv, sv_setsv_mg, sv_setuv, sv_setuv_mg, sv_unref,
-sv_upgrade, sv_usepvn, sv_usepvn_mg, sv_vcatpvfn, sv_vsetpvfn, THIS,
-toLOWER, toUPPER, warn, XPUSHi, XPUSHn, XPUSHp, XPUSHs, XPUSHu, XS,
-XSRETURN, XSRETURN_EMPTY, XSRETURN_IV, XSRETURN_NO, XSRETURN_NV,
-XSRETURN_PV, XSRETURN_UNDEF, XSRETURN_YES, XST_mIV, XST_mNO, XST_mNV,
-XST_mPV, XST_mUNDEF, XST_mYES, XS_VERSION, XS_VERSION_BOOTCHECK, Zero
+av_shift, av_store, av_undef, av_unshift, bytes_to_utf8, call_argv,
+call_method, call_pv, call_sv, CLASS, Copy, croak, CvSTASH, dMARK,
+dORIGMARK, dSP, dXSARGS, dXSI32, ENTER, eval_pv, eval_sv, EXTEND,
+fbm_compile, fbm_instr, FREETMPS, get_av, get_cv, get_hv, get_sv, GIMME,
+GIMME_V, GvSV, gv_fetchmeth, gv_fetchmethod, gv_fetchmethod_autoload,
+gv_stashpv, gv_stashsv, G_ARRAY, G_DISCARD, G_EVAL, G_NOARGS, G_SCALAR,
+G_VOID, HEf_SVKEY, HeHASH, HeKEY, HeKLEN, HePV, HeSVKEY, HeSVKEY_force,
+HeSVKEY_set, HeVAL, HvNAME, hv_clear, hv_delete, hv_delete_ent, hv_exists,
+hv_exists_ent, hv_fetch, hv_fetch_ent, hv_iterinit, hv_iterkey,
+hv_iterkeysv, hv_iternext, hv_iternextsv, hv_iterval, hv_magic, hv_store,
+hv_store_ent, hv_undef, isALNUM, isALPHA, isDIGIT, isLOWER, isSPACE,
+isUPPER, items, ix, LEAVE, looks_like_number, MARK, mg_clear, mg_copy,
+mg_find, mg_free, mg_get, mg_length, mg_magical, mg_set, Move, New, newAV,
+Newc, newCONSTSUB, newHV, newRV_inc, newRV_noinc, NEWSV, newSViv, newSVnv,
+newSVpv, newSVpvf, newSVpvn, newSVrv, newSVsv, newSVuv, newXS, newXSproto,
+Newz, Nullav, Nullch, Nullcv, Nullhv, Nullsv, ORIGMARK, perl_alloc,
+perl_construct, perl_destruct, perl_free, perl_parse, perl_run,
+PL_DBsingle, PL_DBsub, PL_DBtrace, PL_dowarn, PL_modglobal, PL_na,
+PL_sv_no, PL_sv_undef, PL_sv_yes, POPi, POPl, POPn, POPp, POPs, PUSHi,
+PUSHMARK, PUSHn, PUSHp, PUSHs, PUSHu, PUTBACK, Renew, Renewc, require_pv,
+RETVAL, Safefree, savepv, savepvn, SAVETMPS, SP, SPAGAIN, ST, strEQ, strGE,
+strGT, strLE, strLT, strNE, strnEQ, strnNE, StructCopy, SvCUR, SvCUR_set,
+SvEND, SvGETMAGIC, SvGROW, SvIOK, SvIOKp, SvIOK_off, SvIOK_on, SvIOK_only,
+SvIV, SvIVX, SvLEN, SvLOCK, SvNIOK, SvNIOKp, SvNIOK_off, SvNOK, SvNOKp,
+SvNOK_off, SvNOK_on, SvNOK_only, SvNV, SvNVX, SvOK, SvOOK, SvPOK, SvPOKp,
+SvPOK_off, SvPOK_on, SvPOK_only, SvPV, SvPVX, SvPV_force, SvPV_nolen,
+SvREFCNT, SvREFCNT_dec, SvREFCNT_inc, SvROK, SvROK_off, SvROK_on, SvRV,
+SvSETMAGIC, SvSetSV, SvSetSV_nosteal, SvSTASH, SvTAINT, SvTAINTED,
+SvTAINTED_off, SvTAINTED_on, SvTRUE, SvTYPE, svtype, SVt_IV, SVt_NV,
+SVt_PV, SVt_PVAV, SVt_PVCV, SVt_PVHV, SVt_PVMG, SvUNLOCK, SvUPGRADE, SvUV,
+SvUVX, sv_2mortal, sv_bless, sv_catpv, sv_catpvf, sv_catpvf_mg, sv_catpvn,
+sv_catpvn_mg, sv_catpv_mg, sv_catsv, sv_catsv_mg, sv_chop, sv_cmp, sv_dec,
+sv_derived_from, sv_eq, sv_grow, sv_inc, sv_insert, sv_isa, sv_isobject,
+sv_len, sv_magic, sv_mortalcopy, sv_newmortal, sv_setiv, sv_setiv_mg,
+sv_setnv, sv_setnv_mg, sv_setpv, sv_setpvf, sv_setpvf_mg, sv_setpviv,
+sv_setpviv_mg, sv_setpvn, sv_setpvn_mg, sv_setpv_mg, sv_setref_iv,
+sv_setref_nv, sv_setref_pv, sv_setref_pvn, sv_setsv, sv_setsv_mg, sv_setuv,
+sv_setuv_mg, sv_unref, sv_upgrade, sv_usepvn, sv_usepvn_mg, sv_vcatpvfn,
+sv_vsetpvfn, THIS, toLOWER, toUPPER, U8 *s, utf8_to_bytes, warn, XPUSHi,
+XPUSHn, XPUSHp, XPUSHs, XPUSHu, XS, XSRETURN, XSRETURN_EMPTY, XSRETURN_IV,
+XSRETURN_NO, XSRETURN_NV, XSRETURN_PV, XSRETURN_UNDEF, XSRETURN_YES,
+XST_mIV, XST_mNO, XST_mNV, XST_mPV, XST_mUNDEF, XST_mYES, XS_VERSION,
+XS_VERSION_BOOTCHECK, Zero
 
 =item AUTHORS
 
@@ -4145,30 +4147,6 @@ double
 
 =back
 
-=head2 lib - manipulate @INC at compile time
-
-=over
-
-=item SYNOPSIS
-
-=item DESCRIPTION
-
-=over
-
-=item Adding directories to @INC
-
-=item Deleting directories from @INC
-
-=item Restoring original @INC
-
-=back
-
-=item SEE ALSO
-
-=item AUTHOR
-
-=back
-
 =head2 locale - Perl pragma to use and avoid POSIX locales for built-in
 operations
 
@@ -4290,32 +4268,6 @@ integer, float, binary, q, qr
 
 =back
 
-=head2 pwent - Perl pragma to control the pwent functions
-
-=over
-
-=item SYNOPSIS
-
-=item DESCRIPTION
-
-=over
-
-=item subpragma shadow_password
-
-=back
-
-=back
-
-=head2 re - Perl pragma to alter regular expression behaviour
-
-=over
-
-=item SYNOPSIS
-
-=item DESCRIPTION
-
-=back
-
 =head2 sigtrap - Perl pragma to enable simple signal handling
 
 =over
@@ -4872,18 +4824,6 @@ C<-oFILENAME>, C<-r>, C<-D[tO]>
 
 =back
 
-=head2 Bblock, B::Bblock - Walk basic blocks
-
-=over
-
-=item SYNOPSIS
-
-=item DESCRIPTION
-
-=item AUTHOR
-
-=back
-
 =head2 Benchmark - benchmark running times of Perl code
 
 =over
@@ -4942,29 +4882,6 @@ STYLE ] ), cmpthese ( RESULTSHASHREF ), countit(TIME, CODE), disablecache (
 
 =back
 
-=head2 Bytecode, B::Bytecode - Perl compiler's bytecode backend
-
-=over
-
-=item SYNOPSIS
-
-=item DESCRIPTION
-
-=item OPTIONS
-
-B<-ofilename>, B<-afilename>, B<-->, B<-f>, B<-fcompress-nullops>,
-B<-fomit-sequence-numbers>, B<-fbypass-nullops>, B<-On>, B<-D>, B<-Do>,
-B<-Db>, B<-Da>, B<-DC>, B<-S>, B<-Ppackage>    Stores package in the
-output.    =back
-
-=item EXAMPLES
-
-=item BUGS
-
-=item AUTHORS
-
-=back
-
 =head2 CGI - Simple Common Gateway Interface Class
 
 =over
@@ -5543,275 +5460,6 @@ Example 1, Example 2, Example 3
 
 =back
 
-=head2 Config - access Perl configuration information
-
-=over
-
-=item SYNOPSIS
-
-=item DESCRIPTION
-
-myconfig(), config_sh(), config_vars(@names)
-
-=item EXAMPLE
-
-=item WARNING
-
-=item GLOSSARY
-
-=over
-
-=item _
-
-C<_a>, C<_exe>, C<_o>
-
-=item a
-
-C<afs>, C<alignbytes>, C<ansi2knr>, C<aphostname>, C<api_revision>,
-C<api_subversion>, C<api_version>, C<api_versionstring>, C<ar>, C<archlib>,
-C<archlibexp>, C<archname64>, C<archname>, C<archobjs>, C<awk>
-
-=item b
-
-C<baserev>, C<bash>, C<bin>, C<bincompat5005>, C<binexp>, C<bison>,
-C<byacc>, C<byteorder>
-
-=item c
-
-C<c>, C<castflags>, C<cat>, C<cc>, C<cccdlflags>, C<ccdlflags>, C<ccflags>,
-C<ccsymbols>, C<cf_by>, C<cf_email>, C<cf_time>, C<charsize>, C<chgrp>,
-C<chmod>, C<chown>, C<clocktype>, C<comm>, C<compress>
-
-=item C
-
-C<CONFIGDOTSH>, C<contains>, C<cp>, C<cpio>, C<cpp>, C<cpp_stuff>,
-C<cppccsymbols>, C<cppflags>, C<cpplast>, C<cppminus>, C<cpprun>,
-C<cppstdin>, C<cppsymbols>, C<crosscompile>, C<cryptlib>, C<csh>
-
-=item d
-
-C<d_access>, C<d_accessx>, C<d_alarm>, C<d_archlib>, C<d_atolf>,
-C<d_atoll>, C<d_attribut>, C<d_bcmp>, C<d_bcopy>, C<d_bincompat5005>,
-C<d_bsd>, C<d_bsdgetpgrp>, C<d_bsdsetpgrp>, C<d_bzero>, C<d_casti32>,
-C<d_castneg>, C<d_charvspr>, C<d_chown>, C<d_chroot>, C<d_chsize>,
-C<d_closedir>, C<d_const>, C<d_crypt>, C<d_csh>, C<d_cuserid>,
-C<d_dbl_dig>, C<d_difftime>, C<d_dirnamlen>, C<d_dlerror>, C<d_dlopen>,
-C<d_dlsymun>, C<d_dosuid>, C<d_drand48proto>, C<d_dup2>, C<d_eaccess>,
-C<d_endgrent>, C<d_endhent>, C<d_endnent>, C<d_endpent>, C<d_endpwent>,
-C<d_endsent>, C<d_eofnblk>, C<d_eunice>, C<d_fchmod>, C<d_fchown>,
-C<d_fcntl>, C<d_fd_macros>, C<d_fd_set>, C<d_fds_bits>, C<d_fgetpos>,
-C<d_flexfnam>, C<d_flock>, C<d_fork>, C<d_fpathconf>, C<d_fpos64_t>,
-C<d_frexpl>, C<d_fs_data_s>, C<d_fseeko>, C<d_fsetpos>, C<d_fstatfs>,
-C<d_fstatvfs>, C<d_ftello>, C<d_ftime>, C<d_Gconvert>, C<d_getcwd>,
-C<d_getespwnam>, C<d_getfsstat>, C<d_getgrent>, C<d_getgrps>,
-C<d_gethbyaddr>, C<d_gethbyname>, C<d_gethent>, C<d_gethname>,
-C<d_gethostprotos>, C<d_getlogin>, C<d_getmnt>, C<d_getmntent>,
-C<d_getnbyaddr>, C<d_getnbyname>, C<d_getnent>, C<d_getnetprotos>,
-C<d_getpbyname>, C<d_getpbynumber>, C<d_getpent>, C<d_getpgid>,
-C<d_getpgrp2>, C<d_getpgrp>, C<d_getppid>, C<d_getprior>,
-C<d_getprotoprotos>, C<d_getprpwnam>, C<d_getpwent>, C<d_getsbyname>,
-C<d_getsbyport>, C<d_getsent>, C<d_getservprotos>, C<d_getspnam>,
-C<d_gettimeod>, C<d_gnulibc>, C<d_grpasswd>, C<d_hasmntopt>, C<d_htonl>,
-C<d_iconv>, C<d_index>, C<d_inetaton>, C<d_int64_t>, C<d_isascii>,
-C<d_isnan>, C<d_isnanl>, C<d_killpg>, C<d_lchown>, C<d_ldbl_dig>,
-C<d_link>, C<d_locconv>, C<d_lockf>, C<d_longdbl>, C<d_longlong>,
-C<d_lseekproto>, C<d_lstat>, C<d_madvise>, C<d_mblen>, C<d_mbstowcs>,
-C<d_mbtowc>, C<d_memchr>, C<d_memcmp>, C<d_memcpy>, C<d_memmove>,
-C<d_memset>, C<d_mkdir>, C<d_mkdtemp>, C<d_mkfifo>, C<d_mkstemp>,
-C<d_mkstemps>, C<d_mktime>, C<d_mmap>, C<d_modfl>, C<d_mprotect>, C<d_msg>,
-C<d_msg_ctrunc>, C<d_msg_dontroute>, C<d_msg_oob>, C<d_msg_peek>,
-C<d_msg_proxy>, C<d_msgctl>, C<d_msgget>, C<d_msgrcv>, C<d_msgsnd>,
-C<d_msync>, C<d_munmap>, C<d_mymalloc>, C<d_nice>, C<d_nv_preserves_uv>,
-C<d_nv_preserves_uv_bits>, C<d_off64_t>, C<d_old_pthread_create_joinable>,
-C<d_oldpthreads>, C<d_oldsock>, C<d_open3>, C<d_pathconf>, C<d_pause>,
-C<d_perl_otherlibdirs>, C<d_phostname>, C<d_pipe>, C<d_poll>,
-C<d_portable>, C<d_PRId64>, C<d_PRIeldbl>, C<d_PRIEldbl>, C<d_PRIfldbl>,
-C<d_PRIFldbl>, C<d_PRIgldbl>, C<d_PRIGldbl>, C<d_PRIi64>, C<d_PRIo64>,
-C<d_PRIu64>, C<d_PRIx64>, C<d_PRIX64>, C<d_pthread_yield>, C<d_pwage>,
-C<d_pwchange>, C<d_pwclass>, C<d_pwcomment>, C<d_pwexpire>, C<d_pwgecos>,
-C<d_pwpasswd>, C<d_pwquota>, C<d_qgcvt>, C<d_quad>, C<d_readdir>,
-C<d_readlink>, C<d_rename>, C<d_rewinddir>, C<d_rmdir>, C<d_safebcpy>,
-C<d_safemcpy>, C<d_sanemcmp>, C<d_sched_yield>, C<d_scm_rights>,
-C<d_seekdir>, C<d_select>, C<d_sem>, C<d_semctl>, C<d_semctl_semid_ds>,
-C<d_semctl_semun>, C<d_semget>, C<d_semop>, C<d_setegid>, C<d_seteuid>,
-C<d_setgrent>, C<d_setgrps>, C<d_sethent>, C<d_setlinebuf>, C<d_setlocale>,
-C<d_setnent>, C<d_setpent>, C<d_setpgid>, C<d_setpgrp2>, C<d_setpgrp>,
-C<d_setprior>, C<d_setpwent>, C<d_setregid>, C<d_setresgid>,
-C<d_setresuid>, C<d_setreuid>, C<d_setrgid>, C<d_setruid>, C<d_setsent>,
-C<d_setsid>, C<d_setvbuf>, C<d_sfio>, C<d_shm>, C<d_shmat>,
-C<d_shmatprototype>, C<d_shmctl>, C<d_shmdt>, C<d_shmget>, C<d_sigaction>,
-C<d_sigsetjmp>, C<d_socket>, C<d_socklen_t>, C<d_sockpair>, C<d_sqrtl>,
-C<d_statblks>, C<d_statfs_f_flags>, C<d_statfs_s>, C<d_statvfs>,
-C<d_stdio_cnt_lval>, C<d_stdio_ptr_lval>, C<d_stdio_stream_array>,
-C<d_stdiobase>, C<d_stdstdio>, C<d_strchr>, C<d_strcoll>, C<d_strctcpy>,
-C<d_strerrm>, C<d_strerror>, C<d_strtod>, C<d_strtol>, C<d_strtold>,
-C<d_strtoll>, C<d_strtoul>, C<d_strtoull>, C<d_strtouq>, C<d_strxfrm>,
-C<d_suidsafe>, C<d_symlink>, C<d_syscall>, C<d_sysconf>, C<d_sysernlst>,
-C<d_syserrlst>, C<d_system>, C<d_tcgetpgrp>, C<d_tcsetpgrp>, C<d_telldir>,
-C<d_telldirproto>, C<d_time>, C<d_times>, C<d_truncate>, C<d_tzname>,
-C<d_umask>, C<d_uname>, C<d_union_semun>, C<d_ustat>, C<d_vendorarch>,
-C<d_vendorbin>, C<d_vendorlib>, C<d_vfork>, C<d_void_closedir>,
-C<d_voidsig>, C<d_voidtty>, C<d_volatile>, C<d_vprintf>, C<d_wait4>,
-C<d_waitpid>, C<d_wcstombs>, C<d_wctomb>, C<d_xenix>, C<date>,
-C<db_hashtype>, C<db_prefixtype>, C<defvoidused>, C<direntrytype>,
-C<dlext>, C<dlsrc>, C<doublesize>, C<drand01>, C<dynamic_ext>
-
-=item e
-
-C<eagain>, C<ebcdic>, C<echo>, C<egrep>, C<emacs>, C<eunicefix>,
-C<exe_ext>, C<expr>, C<extensions>
-
-=item f
-
-C<fflushall>, C<fflushNULL>, C<find>, C<firstmakefile>, C<flex>,
-C<fpossize>, C<fpostype>, C<freetype>, C<full_ar>, C<full_csh>, C<full_sed>
-
-=item g
-
-C<gccversion>, C<gidformat>, C<gidsign>, C<gidsize>, C<gidtype>,
-C<glibpth>, C<grep>, C<groupcat>, C<groupstype>, C<gzip>
-
-=item h
-
-C<h_fcntl>, C<h_sysfile>, C<hint>, C<hostcat>, C<huge>
-
-=item i
-
-C<i16size>, C<i16type>, C<i32size>, C<i32type>, C<i64size>, C<i64type>,
-C<i8size>, C<i8type>, C<i_arpainet>, C<i_bsdioctl>, C<i_db>, C<i_dbm>,
-C<i_dirent>, C<i_dld>, C<i_dlfcn>, C<i_fcntl>, C<i_float>, C<i_gdbm>,
-C<i_grp>, C<i_iconv>, C<i_ieeefp>, C<i_inttypes>, C<i_limits>, C<i_locale>,
-C<i_machcthr>, C<i_malloc>, C<i_math>, C<i_memory>, C<i_mntent>, C<i_ndbm>,
-C<i_netdb>, C<i_neterrno>, C<i_netinettcp>, C<i_niin>, C<i_poll>,
-C<i_prot>, C<i_pthread>, C<i_pwd>, C<i_rpcsvcdbm>, C<i_sfio>, C<i_sgtty>,
-C<i_shadow>, C<i_socks>, C<i_stdarg>, C<i_stddef>, C<i_stdlib>,
-C<i_string>, C<i_sunmath>, C<i_sysaccess>, C<i_sysdir>, C<i_sysfile>,
-C<i_sysfilio>, C<i_sysin>, C<i_sysioctl>, C<i_syslog>, C<i_sysmman>,
-C<i_sysmode>, C<i_sysmount>, C<i_sysndir>, C<i_sysparam>, C<i_sysresrc>,
-C<i_syssecrt>, C<i_sysselct>, C<i_syssockio>, C<i_sysstat>, C<i_sysstatfs>,
-C<i_sysstatvfs>, C<i_systime>, C<i_systimek>, C<i_systimes>, C<i_systypes>,
-C<i_sysuio>, C<i_sysun>, C<i_sysutsname>, C<i_sysvfs>, C<i_syswait>,
-C<i_termio>, C<i_termios>, C<i_time>, C<i_unistd>, C<i_ustat>, C<i_utime>,
-C<i_values>, C<i_varargs>, C<i_varhdr>, C<i_vfork>,
-C<ignore_versioned_solibs>, C<inc_version_list>, C<inc_version_list_init>,
-C<incpath>, C<inews>, C<installarchlib>, C<installbin>, C<installman1dir>,
-C<installman3dir>, C<installprefix>, C<installprefixexp>,
-C<installprivlib>, C<installscript>, C<installsitearch>, C<installsitebin>,
-C<installsitelib>, C<installstyle>, C<installusrbinperl>,
-C<installvendorarch>, C<installvendorbin>, C<installvendorlib>, C<intsize>,
-C<ivdformat>, C<ivsize>, C<ivtype>
-
-=item k
-
-C<known_extensions>, C<ksh>
-
-=item l
-
-C<large>, C<ld>, C<lddlflags>, C<ldflags>, C<ldlibpthname>, C<less>,
-C<lib_ext>, C<libc>, C<libperl>, C<libpth>, C<libs>, C<libsdirs>,
-C<libsfiles>, C<libsfound>, C<libspath>, C<libswanted>, C<line>, C<lint>,
-C<lkflags>, C<ln>, C<lns>, C<locincpth>, C<loclibpth>, C<longdblsize>,
-C<longlongsize>, C<longsize>, C<lp>, C<lpr>, C<ls>, C<lseeksize>,
-C<lseektype>
-
-=item m
-
-C<mail>, C<mailx>, C<make>, C<make_set_make>, C<mallocobj>, C<mallocsrc>,
-C<malloctype>, C<man1dir>, C<man1direxp>, C<man1ext>, C<man3dir>,
-C<man3direxp>, C<man3ext>
-
-=item M
-
-C<Mcc>, C<medium>, C<mips_type>, C<mkdir>, C<mmaptype>, C<models>,
-C<modetype>, C<more>, C<multiarch>, C<mv>, C<myarchname>, C<mydomain>,
-C<myhostname>, C<myuname>
-
-=item n
-
-C<n>, C<netdb_hlen_type>, C<netdb_host_type>, C<netdb_name_type>,
-C<netdb_net_type>, C<nm>, C<nm_opt>, C<nm_so_opt>, C<nonxs_ext>, C<nroff>,
-C<nvsize>, C<nvtype>
-
-=item o
-
-C<o_nonblock>, C<obj_ext>, C<old_pthread_create_joinable>, C<optimize>,
-C<orderlib>, C<osname>, C<osvers>, C<otherlibdirs>
-
-=item p
-
-C<package>, C<pager>, C<passcat>, C<patchlevel>, C<path_sep>, C<perl5>,
-C<perl>
-
-=item P
-
-C<PERL_REVISION>, C<PERL_SUBVERSION>, C<PERL_VERSION>, C<perladmin>,
-C<perlpath>, C<pg>, C<phostname>, C<pidtype>, C<plibpth>, C<pm_apiversion>,
-C<pmake>, C<pr>, C<prefix>, C<prefixexp>, C<privlib>, C<privlibexp>,
-C<prototype>, C<ptrsize>
-
-=item q
-
-C<quadkind>, C<quadtype>
-
-=item r
-
-C<randbits>, C<randfunc>, C<randseedtype>, C<ranlib>, C<rd_nodata>,
-C<revision>, C<rm>, C<rmail>, C<runnm>
-
-=item s
-
-C<sched_yield>, C<scriptdir>, C<scriptdirexp>, C<sed>, C<seedfunc>,
-C<selectminbits>, C<selecttype>, C<sendmail>, C<sh>, C<shar>, C<sharpbang>,
-C<shmattype>, C<shortsize>, C<shrpenv>, C<shsharp>, C<sig_count>,
-C<sig_name>, C<sig_name_init>, C<sig_num>, C<sig_num_init>, C<signal_t>,
-C<sitearch>, C<sitearchexp>, C<sitebin>, C<sitebinexp>, C<sitelib>,
-C<sitelib_stem>, C<sitelibexp>, C<siteprefix>, C<siteprefixexp>,
-C<sizesize>, C<sizetype>, C<sleep>, C<smail>, C<small>, C<so>,
-C<sockethdr>, C<socketlib>, C<socksizetype>, C<sort>, C<spackage>,
-C<spitshell>, C<split>, C<sPRId64>, C<sPRIeldbl>, C<sPRIEldbl>,
-C<sPRIfldbl>, C<sPRIFldbl>, C<sPRIgldbl>, C<sPRIGldbl>, C<sPRIi64>,
-C<sPRIo64>, C<sPRIu64>, C<sPRIx64>, C<sPRIX64>, C<src>, C<ssizetype>,
-C<startperl>, C<startsh>, C<static_ext>, C<stdchar>, C<stdio_base>,
-C<stdio_bufsiz>, C<stdio_cnt>, C<stdio_filbuf>, C<stdio_ptr>,
-C<stdio_stream_array>, C<strings>, C<submit>, C<subversion>, C<sysman>
-
-=item t
-
-C<tail>, C<tar>, C<tbl>, C<tee>, C<test>, C<timeincl>, C<timetype>,
-C<touch>, C<tr>, C<trnl>, C<troff>
-
-=item u
-
-C<u16size>, C<u16type>, C<u32size>, C<u32type>, C<u64size>, C<u64type>,
-C<u8size>, C<u8type>, C<uidformat>, C<uidsign>, C<uidsize>, C<uidtype>,
-C<uname>, C<uniq>, C<uquadtype>, C<use5005threads>, C<use64bitall>,
-C<use64bitint>, C<usedl>, C<useithreads>, C<uselargefiles>,
-C<uselongdouble>, C<usemorebits>, C<usemultiplicity>, C<usemymalloc>,
-C<usenm>, C<useopcode>, C<useperlio>, C<useposix>, C<usesfio>,
-C<useshrplib>, C<usesocks>, C<usethreads>, C<usevendorprefix>, C<usevfork>,
-C<usrinc>, C<uuname>, C<uvoformat>, C<uvsize>, C<uvtype>, C<uvuformat>,
-C<uvxformat>
-
-=item v
-
-C<vendorarch>, C<vendorarchexp>, C<vendorbin>, C<vendorbinexp>,
-C<vendorlib>, C<vendorlib_stem>, C<vendorlibexp>, C<vendorprefix>,
-C<vendorprefixexp>, C<version>, C<vi>, C<voidflags>
-
-=item x
-
-C<xlibpth>, C<xs_apiversion>
-
-=item z
-
-C<zcat>, C<zip>
-
-=back
-
-=item NOTE
-
-=back
-
 =head2 Cwd, getcwd - get pathname of current working directory
 
 =over
@@ -6157,37 +5805,6 @@ veryCompact, set, get
 
 =back
 
-=head2 DynaLoader - Dynamically load C libraries into Perl code
-
-=over
-
-=item SYNOPSIS
-
-=item DESCRIPTION
-
-@dl_library_path, @dl_resolve_using, @dl_require_symbols, @dl_librefs,
-@dl_modules, dl_error(), $dl_debug, dl_findfile(), dl_expandspec(),
-dl_load_file(), dl_unload_file(), dl_loadflags(), dl_find_symbol(),
-dl_find_symbol_anywhere(), dl_undef_symbols(), dl_install_xsub(),
-bootstrap()
-
-=item AUTHOR
-
-=back
-
-=head2 DynaLoader::XSLoader, XSLoader - Dynamically load C libraries into
-Perl code
-
-=over
-
-=item SYNOPSIS
-
-=item DESCRIPTION
-
-=item AUTHOR
-
-=back
-
 =head2 English - use nice English (or awk) names for ugly punctuation
 variables
 
@@ -6232,6 +5849,8 @@ arrays
 
 =item Specialised Import Lists
 
+=item Constants can be inlined
+
 =item Exporting without using Export's import method
 
 =item Module Version Checking
@@ -6877,18 +6496,6 @@ C<Added to MANIFEST:> I<file>
 
 =back
 
-=head2 ExtUtils::Miniperl, writemain - write the C code for perlmain.c
-
-=over
-
-=item SYNOPSIS
-
-=item DESCRIPTION
-
-=item SEE ALSO
-
-=back
-
 =head2 ExtUtils::Mkbootstrap - make a bootstrap file for use by DynaLoader
 
 =over
@@ -7328,10 +6935,6 @@ splitdir
 
 catpath
 
-abs2rel
-
-rel2abs
-
 =over
 
 =item SEE ALSO
@@ -8152,22 +7755,6 @@ functions
 
 =back
 
-=head2 O - Generic interface to Perl Compiler backends
-
-=over
-
-=item SYNOPSIS
-
-=item DESCRIPTION
-
-=item CONVENTIONS
-
-=item IMPLEMENTATION
-
-=item AUTHOR
-
-=back
-
 =head2 ODBM_File - Tied access to odbm files
 
 =over
@@ -8304,12 +7891,12 @@ rewinddir, rmdir, scanf, setgid, setjmp, setlocale, setpgid, setsid,
 setuid, sigaction, siglongjmp, sigpending, sigprocmask, sigsetjmp,
 sigsuspend, sin, sinh, sleep, sprintf, sqrt, srand, sscanf, stat, strcat,
 strchr, strcmp, strcoll, strcpy, strcspn, strerror, strftime, strlen,
-strncat, strncmp, strncpy, stroul, strpbrk, strrchr, strspn, strstr,
-strtod, strtok, strtol, strtoul, strxfrm, sysconf, system, tan, tanh,
-tcdrain, tcflow, tcflush, tcgetpgrp, tcsendbreak, tcsetpgrp, time, times,
-tmpfile, tmpnam, tolower, toupper, ttyname, tzname, tzset, umask, uname,
-ungetc, unlink, utime, vfprintf, vprintf, vsprintf, wait, waitpid,
-wcstombs, wctomb, write
+strncat, strncmp, strncpy, strpbrk, strrchr, strspn, strstr, strtod,
+strtok, strtol, strtoul, strxfrm, sysconf, system, tan, tanh, tcdrain,
+tcflow, tcflush, tcgetpgrp, tcsendbreak, tcsetpgrp, time, times, tmpfile,
+tmpnam, tolower, toupper, ttyname, tzname, tzset, umask, uname, ungetc,
+unlink, utime, vfprintf, vprintf, vsprintf, wait, waitpid, wcstombs,
+wctomb, write
 
 =item CLASSES
 
@@ -8397,8 +7984,6 @@ Constants
 
 Constants, Macros
 
-=item CREATION
-
 =back
 
 =head2 Pod::Checker, podchecker() - check pod documents for syntax errors
@@ -10067,20 +9652,6 @@ functions
 
 March 18th, 2000
 
-=back
-
-=head2 XSLoader - Dynamically load C libraries into Perl code
-
-=over
-
-=item SYNOPSIS
-
-=item DESCRIPTION
-
-=item AUTHOR
-
-=back
-
 =head1 AUXILIARY DOCUMENTATION
 
 Here should be listed all the extra programs' documentation, but they