This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
revert SAVEDESTRUCTOR() to accepting void(*)(void*) for source
authorGurusamy Sarathy <gsar@cpan.org>
Sun, 10 Oct 1999 20:42:40 +0000 (20:42 +0000)
committerGurusamy Sarathy <gsar@cpan.org>
Sun, 10 Oct 1999 20:42:40 +0000 (20:42 +0000)
compatibility; introduce SAVEDESTRUCTOR_X() that accepts
void(*)(pTHX_ void*)

p4raw-id: //depot/perl@4339

22 files changed:
embed.h
embed.pl
ext/Devel/DProf/DProf.xs
global.sym
mg.c
objXSUB.h
perl.h
perlapi.c
perly.c
perly.y
perly_c.diff
pod/perlguts.pod
pod/perltoc.pod
pp.c
pp_hot.c
proto.h
regcomp.h
regexec.c
scope.c
scope.h
toke.c
vms/perly_c.vms

diff --git a/embed.h b/embed.h
index fa457d2..18953ae 100644 (file)
--- a/embed.h
+++ b/embed.h
 #define save_clearsv           Perl_save_clearsv
 #define save_delete            Perl_save_delete
 #define save_destructor                Perl_save_destructor
+#define save_destructor_x      Perl_save_destructor_x
 #define save_freesv            Perl_save_freesv
 #define save_freeop            Perl_save_freeop
 #define save_freepv            Perl_save_freepv
 #define save_clearsv(a)                Perl_save_clearsv(aTHX_ a)
 #define save_delete(a,b,c)     Perl_save_delete(aTHX_ a,b,c)
 #define save_destructor(a,b)   Perl_save_destructor(aTHX_ a,b)
+#define save_destructor_x(a,b) Perl_save_destructor_x(aTHX_ a,b)
 #define save_freesv(a)         Perl_save_freesv(aTHX_ a)
 #define save_freeop(a)         Perl_save_freeop(aTHX_ a)
 #define save_freepv(a)         Perl_save_freepv(aTHX_ a)
 #define save_delete            Perl_save_delete
 #define Perl_save_destructor   CPerlObj::Perl_save_destructor
 #define save_destructor                Perl_save_destructor
+#define Perl_save_destructor_x CPerlObj::Perl_save_destructor_x
+#define save_destructor_x      Perl_save_destructor_x
 #define Perl_save_freesv       CPerlObj::Perl_save_freesv
 #define save_freesv            Perl_save_freesv
 #define Perl_save_freeop       CPerlObj::Perl_save_freeop
index 9f90d53..e44ba23 100755 (executable)
--- a/embed.pl
+++ b/embed.pl
@@ -1529,7 +1529,8 @@ p |void   |save_aptr      |AV** aptr
 p      |AV*    |save_ary       |GV* gv
 p      |void   |save_clearsv   |SV** svp
 p      |void   |save_delete    |HV* hv|char* key|I32 klen
-p      |void   |save_destructor|DESTRUCTORFUNC_t f|void* p
+p      |void   |save_destructor|DESTRUCTORFUNC_NOCONTEXT_t f|void* p
+p      |void   |save_destructor_x|DESTRUCTORFUNC_t f|void* p
 p      |void   |save_freesv    |SV* sv
 p      |void   |save_freeop    |OP* o
 p      |void   |save_freepv    |char* pv
index 69f0b89..220a1e2 100644 (file)
@@ -561,7 +561,7 @@ XS(XS_DB_sub)
         sv_setiv( DBsingle, 0 ); /* disable DB single-stepping */
 #endif 
 
-       SAVEDESTRUCTOR(check_depth, (void*)depth);
+       SAVEDESTRUCTOR_X(check_depth, (void*)depth);
        depth++;
 
         prof_mark( OP_ENTERSUB );
index 7200c60..ecde292 100644 (file)
@@ -465,6 +465,7 @@ Perl_save_ary
 Perl_save_clearsv
 Perl_save_delete
 Perl_save_destructor
+Perl_save_destructor_x
 Perl_save_freesv
 Perl_save_freeop
 Perl_save_freepv
diff --git a/mg.c b/mg.c
index f72d287..b08cee3 100644 (file)
--- a/mg.c
+++ b/mg.c
@@ -48,7 +48,7 @@ S_save_magic(pTHX_ I32 mgs_ix, SV *sv)
     MGS* mgs;
     assert(SvMAGICAL(sv));
 
-    SAVEDESTRUCTOR(restore_magic, (void*)mgs_ix);
+    SAVEDESTRUCTOR_X(restore_magic, (void*)mgs_ix);
 
     mgs = SSPTR(mgs_ix, MGS*);
     mgs->mgs_sv = sv;
@@ -2004,7 +2004,7 @@ Perl_sighandler(int sig)
     if (flags & 1) {
        PL_savestack_ix += 5;           /* Protect save in progress. */
        o_save_i = PL_savestack_ix;
-       SAVEDESTRUCTOR(unwind_handler_stack, (void*)&flags);
+       SAVEDESTRUCTOR_X(unwind_handler_stack, (void*)&flags);
     }
     if (flags & 4) 
        PL_markstack_ptr++;             /* Protect mark. */
@@ -2102,7 +2102,7 @@ restore_magic(pTHXo_ void *p)
     if (PL_savestack_ix == mgs->mgs_ss_ix)
     {
        I32 popval = SSPOPINT;
-        assert(popval == SAVEt_DESTRUCTOR);
+        assert(popval == SAVEt_DESTRUCTOR_X);
         PL_savestack_ix -= 2;
        popval = SSPOPINT;
         assert(popval == SAVEt_ALLOC);
index cd8f2d8..9620006 100644 (file)
--- a/objXSUB.h
+++ b/objXSUB.h
 #define Perl_save_destructor   pPerl->Perl_save_destructor
 #undef  save_destructor
 #define save_destructor                Perl_save_destructor
+#undef  Perl_save_destructor_x
+#define Perl_save_destructor_x pPerl->Perl_save_destructor_x
+#undef  save_destructor_x
+#define save_destructor_x      Perl_save_destructor_x
 #undef  Perl_save_freesv
 #define Perl_save_freesv       pPerl->Perl_save_freesv
 #undef  save_freesv
diff --git a/perl.h b/perl.h
index e8c9c1e..5baf49a 100644 (file)
--- a/perl.h
+++ b/perl.h
@@ -1766,7 +1766,8 @@ union any {
     I32                any_i32;
     IV         any_iv;
     long       any_long;
-    void       (*any_dptr) (pTHXo_ void*);
+    void       (*any_dptr) (void*);
+    void       (*any_dxptr) (pTHXo_ void*);
 };
 #endif
 
@@ -2577,6 +2578,7 @@ typedef void      (CPERLscope(*regfree_t)) (pTHX_ struct regexp* r);
 int Perl_yylex(pTHX_ YYSTYPE *lvalp, int *lcharp);
 #endif
 
+typedef void (*DESTRUCTORFUNC_NOCONTEXT_t) (void*);
 typedef void (*DESTRUCTORFUNC_t) (pTHXo_ void*);
 typedef void (*SVFUNC_t) (pTHXo_ SV*);
 typedef I32  (*SVCOMPARE_t) (pTHXo_ SV*, SV*);
index 0f20e54..ac38dff 100644 (file)
--- a/perlapi.c
+++ b/perlapi.c
@@ -3324,11 +3324,18 @@ Perl_save_delete(pTHXo_ HV* hv, char* key, I32 klen)
 
 #undef  Perl_save_destructor
 void
-Perl_save_destructor(pTHXo_ DESTRUCTORFUNC_t f, void* p)
+Perl_save_destructor(pTHXo_ DESTRUCTORFUNC_NOCONTEXT_t f, void* p)
 {
     ((CPerlObj*)pPerl)->Perl_save_destructor(f, p);
 }
 
+#undef  Perl_save_destructor_x
+void
+Perl_save_destructor_x(pTHXo_ DESTRUCTORFUNC_t f, void* p)
+{
+    ((CPerlObj*)pPerl)->Perl_save_destructor_x(f, p);
+}
+
 #undef  Perl_save_freesv
 void
 Perl_save_freesv(pTHXo_ SV* sv)
diff --git a/perly.c b/perly.c
index 9b619c9..0ed07fc 100644 (file)
--- a/perly.c
+++ b/perly.c
@@ -29,7 +29,22 @@ struct ysv {
     YYSTYPE oldyylval;
 };
 
-static void yydestruct(pTHXo_ void *ptr);
+static void yydestruct(void *ptr);
+
+static void
+yydestruct(void *ptr)
+{
+    struct ysv* ysave = (struct ysv*)ptr;
+    if (ysave->yyss) Safefree(ysave->yyss);
+    if (ysave->yyvs) Safefree(ysave->yyvs);
+    yydebug    = ysave->oldyydebug;
+    yynerrs    = ysave->oldyynerrs;
+    yyerrflag  = ysave->oldyyerrflag;
+    yychar     = ysave->oldyychar;
+    yyval      = ysave->oldyyval;
+    yylval     = ysave->oldyylval;
+    Safefree(ysave);
+}
 
 #line 49 "perly.y"
 #if 0 /* get this from perly.h instead */
@@ -2479,23 +2494,3 @@ yyabort:
 yyaccept:
     return retval;
 }
-
-#ifdef PERL_OBJECT
-#define NO_XSLOCKS
-#include "XSUB.h"
-#endif
-
-static void
-yydestruct(pTHXo_ void *ptr)
-{
-    struct ysv* ysave = (struct ysv*)ptr;
-    if (ysave->yyss) Safefree(ysave->yyss);
-    if (ysave->yyvs) Safefree(ysave->yyvs);
-    yydebug    = ysave->oldyydebug;
-    yynerrs    = ysave->oldyynerrs;
-    yyerrflag  = ysave->oldyyerrflag;
-    yychar     = ysave->oldyychar;
-    yyval      = ysave->oldyyval;
-    yylval     = ysave->oldyylval;
-    Safefree(ysave);
-}
diff --git a/perly.y b/perly.y
index c8163e1..93e5f77 100644 (file)
--- a/perly.y
+++ b/perly.y
@@ -39,7 +39,22 @@ struct ysv {
     YYSTYPE oldyylval;
 };
 
-static void yydestruct(pTHXo_ void *ptr);
+static void yydestruct(void *ptr);
+
+static void
+yydestruct(void *ptr)
+{
+    struct ysv* ysave = (struct ysv*)ptr;
+    if (ysave->yyss) Safefree(ysave->yyss);
+    if (ysave->yyvs) Safefree(ysave->yyvs);
+    yydebug    = ysave->oldyydebug;
+    yynerrs    = ysave->oldyynerrs;
+    yyerrflag  = ysave->oldyyerrflag;
+    yychar     = ysave->oldyychar;
+    yyval      = ysave->oldyyval;
+    yylval     = ysave->oldyylval;
+    Safefree(ysave);
+}
 
 %}
 
index 7ade2f3..f42a10c 100644 (file)
   yyaccept:
 !     return (0);
   }
---- 2524,2570 ----
+--- 2524,2550 ----
   #endif
       if (yyssp >= yyss + yystacksize - 1)
       {
 !     retval = 1;
   yyaccept:
 !     return retval;
-! }
-! 
-! #ifdef PERL_OBJECT
-! #define NO_XSLOCKS
-! #include "XSUB.h"
-! #endif
-! 
-! static void
-! yydestruct(pTHXo_ void *ptr)
-! {
-!     struct ysv* ysave = (struct ysv*)ptr;
-!     if (ysave->yyss) Safefree(ysave->yyss);
-!     if (ysave->yyvs) Safefree(ysave->yyvs);
-!     yydebug  = ysave->oldyydebug;
-!     yynerrs  = ysave->oldyynerrs;
-!     yyerrflag        = ysave->oldyyerrflag;
-!     yychar   = ysave->oldyychar;
-!     yyval    = ysave->oldyyval;
-!     yylval   = ysave->oldyylval;
-!     Safefree(ysave);
   }
index d0f9167..a8d820e 100644 (file)
@@ -1099,10 +1099,15 @@ this:
 
   SAVEDELETE(PL_defstash, savepv(tmpbuf), strlen(tmpbuf));
 
-=item C<SAVEDESTRUCTOR(f,p)>
+=item C<SAVEDESTRUCTOR(DESTRUCTORFUNC_NOCONTEXT_t f, void *p)>
 
 At the end of I<pseudo-block> the function C<f> is called with the
-only argument (of type C<void*>) C<p>.
+only argument C<p>.
+
+=item C<SAVEDESTRUCTOR_X(DESTRUCTORFUNC_t f, void *p)>
+
+At the end of I<pseudo-block> the function C<f> is called with the
+implicit context argument (if any), and C<p>.
 
 =item C<SAVESTACK_POS()>
 
index 5842f18..dee5951 100644 (file)
@@ -362,7 +362,7 @@ What does CPAN/src/... mean?
 
 =item Where can I get information on Perl?
 
-=item What are the Perl newsgroups on USENET?  Where do I post questions?
+=item What are the Perl newsgroups on Usenet?  Where do I post questions?
 
 =item Where should I post source code?
 
@@ -377,7 +377,7 @@ References, Tutorials
 
 =item Perl on the Net: FTP and WWW Access
 
-=item What mailing lists are there for perl?
+=item What mailing lists are there for Perl?
 
 =item Archives of comp.lang.perl.misc
 
@@ -446,9 +446,9 @@ References, Tutorials
 
 =item How can I get C<#!perl> to work on [MS-DOS,NT,...]?
 
-=item Can I write useful perl programs on the command line?
+=item Can I write useful Perl programs on the command line?
 
-=item Why don't perl one-liners work on my DOS/Mac/VMS system?
+=item Why don't Perl one-liners work on my DOS/Mac/VMS system?
 
 =item Where can I learn about CGI or Web programming in Perl?
 
@@ -515,7 +515,7 @@ Trig functions?
 
 =item How do I find yesterday's date?
 
-=item Does Perl have a year 2000 problem?  Is Perl Y2K compliant?
+=item Does Perl have a Year 2000 problem?  Is Perl Y2K compliant?
 
 =back
 
@@ -1089,7 +1089,7 @@ CGI script to do bad things?
 
 =item AUTHOR AND COPYRIGHT
 
-=head2 perldelta - what's new for perl5.006 (as of 5.005_56)
+=head2 perldelta - what's new for perl v5.6 (as of v5.005_62)
 
 =item DESCRIPTION
 
@@ -1099,18 +1099,51 @@ CGI script to do bad things?
 
 =item Perl Source Incompatibilities
 
+Treatment of list slices of undef has changed, Possibly changed
+pseudo-random number generator, Hashing function for hash keys has changed,
+C<undef> fails on read only values, Close-on-exec bit may be set on pipe()
+handles, Writing C<"$$1"> to mean C<"${$}1"> is unsupported, values(%h) and
+C<\(%h)> operate on aliases to values, not copies, vec(EXPR,OFFSET,BITS)
+enforces powers-of-two BITS, Text of some diagnostic output has changed,
+C<%@> has been removed
+
 =item C Source Incompatibilities
 
-C<PERL_POLLUTE>, C<PERL_POLLUTE_MALLOC>, C<PL_na> and C<dTHR> Issues
+C<PERL_POLLUTE>, C<PERL_IMPLICIT_CONTEXT>, C<PERL_POLLUTE_MALLOC>, C<PL_na>
+and C<dTHR> Issues
 
 =item Compatible C Source API Changes
 
-C<PATCHLEVEL> is now C<PERL_VERSION>
+C<PATCHLEVEL> is now C<PERL_VERSION>, Support for C++ exceptions
 
 =item Binary Incompatibilities
 
 =back
 
+=item Installation and Configuration Improvements
+
+=over
+
+=item New Configure flags
+
+=item -Dusethreads and -Duse64bits now more daring
+
+=item Long Doubles
+
+=item -Dusemorebits
+
+=item -Duselargefiles
+
+=item installusrbinperl
+
+=item SOCKS support
+
+=item C<-A> flag
+
+=item New Installation Scheme
+
+=back
+
 =item Core Changes
 
 =over
@@ -1119,22 +1152,60 @@ C<PATCHLEVEL> is now C<PERL_VERSION>
 
 =item Lexically scoped warning categories
 
+=item Lvalue subroutines
+
+=item "our" declarations
+
+=item Weak references
+
 =item Binary numbers supported
 
+=item Some arrows may be omitted in calls through references
+
 =item syswrite() ease-of-use
 
+=item Filehandles can be autovivified
+
 =item 64-bit support
 
+=item Large file support
+
+=item "more bits"
+
 =item Better syntax checks on parenthesized unary operators
 
+=item POSIX character class syntax [: :] supported
+
 =item Improved C<qw//> operator
 
 =item pack() format 'Z' supported
 
 =item pack() format modifier '!' supported
 
+=item pack() and unpack() support counted strings
+
+=item Comments in pack() templates
+
 =item $^X variables may now have names longer than one character
 
+=item C<use attrs> implicit in subroutine attributes
+
+=item Regular expression improvements
+
+=item Overloading improvements
+
+=item open() with more than two arguments
+
+=item Support for interpolating named characters
+
+=item Experimental support for user-hooks in @INC
+
+=item C<require> and C<do> may be overridden
+
+=item New variable $^C reflects C<-c> switch
+
+=item Optional Y2K warnings
+
 =back
 
 =item Significant bug fixes
@@ -1145,11 +1216,85 @@ C<PATCHLEVEL> is now C<PERL_VERSION>
 
 =item C<eval '...'> improvements
 
+=item All compilation errors are true errors
+
 =item Automatic flushing of output buffers
 
+=item Better diagnostics on meaningless filehandle operations
+
+=item Where possible, buffered data discarded from duped input filehandle
+
+=item system(), backticks and pipe open now reflect exec() failure
+
+=item Implicitly closed filehandles are safer
+
+=item C<(\$)> prototype and C<$foo{a}>
+
+=item Pseudo-hashes work better
+
+=item C<goto &sub> and AUTOLOAD
+
+=item C<-bareword> allowed under C<use integer>
+
+=item Boolean assignment operators are legal lvalues
+
+=item C<sort $coderef @foo> allowed
+
+=item Failures in DESTROY()
+
+=item Locale bugs fixed
+
+=item Memory leaks
+
+=item Spurious subroutine stubs after failed subroutine calls
+
+=item Consistent numeric conversions
+
+=item Taint failures under C<-U>
+
+=item END blocks and the C<-c> switch
+
+=item Potential to leak DATA filehandles
+
+=item Diagnostics follow STDERR
+
+=item Other fixes for better diagnostics
+
 =back
 
-=item Supported Platforms
+=item Performance enhancements
+
+=over
+
+=item Simple sort() using { $a <=> $b } and the like are optimized
+
+=item Optimized assignments to lexical variables
+
+=item Method lookups optimized
+
+=item Faster mechanism to invoke XSUBs
+
+=item Perl_malloc() improvements
+
+=item Faster subroutine calls
+
+=back
+
+=item Platform specific changes
+
+=over
+
+=item Additional supported platforms
+
+=item DOS
+
+=item OS/2
+
+=item VMS
+
+=item Win32
+
+=back
 
 =item New tests
 
@@ -1159,9 +1304,12 @@ C<PATCHLEVEL> is now C<PERL_VERSION>
 
 =item Modules
 
-Dumpvalue, Benchmark, Devel::Peek, Fcntl, File::Spec,
-File::Spec::Functions, Math::BigInt, Math::Complex, Math::Trig, SDBM_File,
-Time::Local, Win32, DBM Filters
+attributes, B, ByteLoader, B, constant, charnames, Data::Dumper, DB,
+DB_File, Devel::DProf, Dumpvalue, Benchmark, Devel::Peek,
+ExtUtils::MakeMaker, Fcntl, File::Compare, File::Find, File::Spec,
+File::Spec::Functions, Getopt::Long, IO, JPL, Math::BigInt, Math::Complex,
+Math::Trig, Pod::Parser, Pod::Text and Pod::Man, SDBM_File, Time::Local,
+Win32, DBM Filters
 
 =item Pragmata
 
@@ -1169,20 +1317,67 @@ Time::Local, Win32, DBM Filters
 
 =item Utility Changes
 
+=over
+
+=item h2ph
+
+=item perlcc
+
+=item h2xs
+
+=back
+
 =item Documentation Changes
 
-perlopentut.pod, perlreftut.pod, perltootc.pod
+perlopentut.pod, perlreftut.pod, perltootc.pod, perlcompile.pod
 
 =item New Diagnostics
 
-/%s/: Unrecognized escape \\%c passed through, Unrecognized escape \\%c
-passed through, Missing command in piped open, defined(@array) is
-deprecated (and not really meaningful), defined(%hash) is deprecated (and
-not really meaningful)
+"my sub" not yet implemented, '!' 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, Repeat count in pack overflows, Repeat
+count in unpack overflows, /%s/: Unrecognized escape \\%c passed through,
+/%s/ should probably be written as "%s", %s() called too early to check
+prototype, %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, 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 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): %%^H is not localized, constant(%s): %s,
+defined(@array) is deprecated, defined(%hash) is deprecated, Did not
+produce a valid header, Document contains no data, entering effective %s
+failed, Filehandle %s opened only for output, Hexadecimal number >
+0xffffffff non-portable, Ill-formed CRTL environ value "%s", Ill-formed
+message in prime_env_iter: |%s|, Illegal binary digit %s, Illegal binary
+digit %s ignored, Illegal number of bits in vec, Integer overflow in %s
+number, Invalid %s attribute: %s, Invalid %s attributes: %s, Invalid
+separator character %s in attribute list, Invalid separator character %s in
+subroutine attribute list, leaving effective %s failed, Lvalue subs
+returning %s not implemented yet, Method %s not permitted, Missing
+%sbrace%s on \N{}, Missing command in piped open, Missing name in "my sub",
+no UTC offset information; assuming local time is UTC, Octal number >
+037777777777 non-portable, panic: del_backref, panic: kid popen errno read,
+panic: magic_killbackrefs, Possible Y2K bug: %s, Premature end of script
+headers, realloc() of freed memory ignored, Reference is already weak,
+setpgrp can't take arguments, Strange *+?{} on zero-length expression,
+switching effective %s is not implemented, This Perl can't reset CRTL
+eviron elements (%s), This Perl can't set CRTL environ elements (%s=%s),
+Unknown open() mode '%s', Unknown process %x sent message to
+prime_env_iter: %s, Unrecognized escape \\%c passed through, Unterminated
+attribute parameter in attribute list, Unterminated attribute list,
+Unterminated attribute parameter in subroutine attribute list, Unterminated
+subroutine attribute list, Value of CLI symbol "%s" too long, Version
+number must be a constant number
 
 =item Obsolete Diagnostics
 
-=item Configuration Changes
+Character class syntax [: :] is reserved for future extensions, Ill-formed
+logical name |%s| in prime_env_iter, regexp too big, Use of "$$<digit>" to
+mean "${$}<digit>" is deprecated
 
 =item BUGS
 
@@ -1343,6 +1538,8 @@ i, m, s, x
 
 =item Regular Expressions
 
+cntrl, graph, print, punct, xdigit, 
+
 =item Extended Patterns
 
 C<(?#text)>, C<(?imsx-imsx)>, C<(?:pattern)>, C<(?imsx-imsx:pattern)>,
@@ -1387,7 +1584,8 @@ B<-D>I<number>, B<-e> I<commandline>, B<-F>I<pattern>, B<-h>,
 B<-i>[I<extension>], B<-I>I<directory>, B<-l>[I<octnum>],
 B<-m>[B<->]I<module>, B<-M>[B<->]I<module>, B<-M>[B<->]I<'module ...'>,
 B<-[mM]>[B<->]I<module=arg[,arg]...>, B<-n>, B<-p>, B<-P>, B<-s>, B<-S>,
-B<-T>, B<-u>, B<-U>, B<-v>, B<-V>, B<-V:>I<name>, B<-w>, B<-x> I<directory>
+B<-T>, B<-u>, B<-U>, B<-v>, B<-V>, B<-V:>I<name>, B<-w>, B<-W>, B<-X>,
+B<-x> I<directory>
 
 =back
 
@@ -1449,12 +1647,13 @@ LABEL, last, lc EXPR, lc, lcfirst EXPR, lcfirst, length EXPR, length, link
 OLDFILE,NEWFILE, listen SOCKET,QUEUESIZE, local EXPR, localtime EXPR, lock,
 log EXPR, log, lstat FILEHANDLE, lstat EXPR, lstat, m//, map BLOCK LIST,
 map EXPR,LIST, mkdir FILENAME,MASK, msgctl ID,CMD,ARG, msgget KEY,FLAGS,
-msgsnd ID,MSG,FLAGS, msgrcv ID,VAR,SIZE,TYPE,FLAGS, my EXPR, next LABEL,
-next, no Module LIST, oct EXPR, oct, open FILEHANDLE,EXPR, open FILEHANDLE,
-opendir DIRHANDLE,EXPR, ord EXPR, ord, pack TEMPLATE,LIST, package, package
-NAMESPACE, pipe READHANDLE,WRITEHANDLE, pop ARRAY, pop, pos SCALAR, pos,
-print FILEHANDLE LIST, print LIST, print, printf FILEHANDLE FORMAT, LIST,
-printf FORMAT, LIST, prototype FUNCTION, push ARRAY,LIST, q/STRING/,
+msgsnd ID,MSG,FLAGS, msgrcv ID,VAR,SIZE,TYPE,FLAGS, my EXPR, my EXPR :
+ATTRIBUTES, next LABEL, next, no Module LIST, oct EXPR, oct, open
+FILEHANDLE,MODE,EXPR, open FILEHANDLE,EXPR, open FILEHANDLE, opendir
+DIRHANDLE,EXPR, ord EXPR, ord, our EXPR, pack TEMPLATE,LIST, package,
+package NAMESPACE, pipe READHANDLE,WRITEHANDLE, pop ARRAY, pop, pos SCALAR,
+pos, print FILEHANDLE LIST, print LIST, print, printf FILEHANDLE FORMAT,
+LIST, printf FORMAT, LIST, prototype FUNCTION, push ARRAY,LIST, q/STRING/,
 qq/STRING/, qr/STRING/, qx/STRING/, qw/STRING/, quotemeta EXPR, quotemeta,
 rand EXPR, rand, read FILEHANDLE,SCALAR,LENGTH,OFFSET, read
 FILEHANDLE,SCALAR,LENGTH, readdir DIRHANDLE, readline EXPR, readlink EXPR,
@@ -1475,20 +1674,20 @@ sort LIST, splice ARRAY,OFFSET,LENGTH,LIST, splice ARRAY,OFFSET,LENGTH,
 splice ARRAY,OFFSET, split /PATTERN/,EXPR,LIMIT, split /PATTERN/,EXPR,
 split /PATTERN/, split, sprintf FORMAT, LIST, sqrt EXPR, sqrt, srand EXPR,
 srand, stat FILEHANDLE, stat EXPR, stat, study SCALAR, study, sub BLOCK,
-sub NAME, sub NAME BLOCK, substr EXPR,OFFSET,LEN,REPLACEMENT, substr
-EXPR,OFFSET,LEN, substr EXPR,OFFSET, symlink OLDFILE,NEWFILE, syscall LIST,
-sysopen FILEHANDLE,FILENAME,MODE, sysopen FILEHANDLE,FILENAME,MODE,PERMS,
-sysread FILEHANDLE,SCALAR,LENGTH,OFFSET, sysread FILEHANDLE,SCALAR,LENGTH,
-sysseek FILEHANDLE,POSITION,WHENCE, system LIST, system PROGRAM LIST,
-syswrite FILEHANDLE,SCALAR,LENGTH,OFFSET, syswrite
-FILEHANDLE,SCALAR,LENGTH, syswrite FILEHANDLE,SCALAR, tell FILEHANDLE,
-tell, telldir DIRHANDLE, tie VARIABLE,CLASSNAME,LIST, tied VARIABLE, time,
-times, tr///, truncate FILEHANDLE,LENGTH, truncate EXPR,LENGTH, uc EXPR,
-uc, ucfirst EXPR, ucfirst, umask EXPR, umask, undef EXPR, undef, unlink
-LIST, unlink, unpack TEMPLATE,EXPR, untie VARIABLE, unshift ARRAY,LIST, use
-Module LIST, use Module, use Module VERSION LIST, use VERSION, utime LIST,
-values HASH, vec EXPR,OFFSET,BITS, wait, waitpid PID,FLAGS, wantarray, warn
-LIST, write FILEHANDLE, write EXPR, write, y///
+sub NAME, sub NAME BLOCK, substr EXPR,OFFSET,LENGTH,REPLACEMENT, substr
+EXPR,OFFSET,LENGTH, substr EXPR,OFFSET, symlink OLDFILE,NEWFILE, syscall
+LIST, sysopen FILEHANDLE,FILENAME,MODE, sysopen
+FILEHANDLE,FILENAME,MODE,PERMS, sysread FILEHANDLE,SCALAR,LENGTH,OFFSET,
+sysread FILEHANDLE,SCALAR,LENGTH, sysseek FILEHANDLE,POSITION,WHENCE,
+system LIST, system PROGRAM LIST, syswrite FILEHANDLE,SCALAR,LENGTH,OFFSET,
+syswrite FILEHANDLE,SCALAR,LENGTH, syswrite FILEHANDLE,SCALAR, tell
+FILEHANDLE, tell, telldir DIRHANDLE, tie VARIABLE,CLASSNAME,LIST, tied
+VARIABLE, time, times, tr///, truncate FILEHANDLE,LENGTH, truncate
+EXPR,LENGTH, uc EXPR, uc, ucfirst EXPR, ucfirst, umask EXPR, umask, undef
+EXPR, undef, unlink LIST, unlink, unpack TEMPLATE,EXPR, untie VARIABLE,
+unshift ARRAY,LIST, use Module LIST, use Module, use Module VERSION LIST,
+use VERSION, utime LIST, values HASH, vec EXPR,OFFSET,BITS, wait, waitpid
+PID,FLAGS, wantarray, warn LIST, write FILEHANDLE, write EXPR, write, y///
 
 =back
 
@@ -1520,8 +1719,8 @@ $EFFECTIVE_USER_ID, $EUID, $>, $REAL_GROUP_ID, $GID, $(,
 $EFFECTIVE_GROUP_ID, $EGID, $), $PROGRAM_NAME, $0, $[, $PERL_VERSION, $],
 $COMPILING, $^C, $DEBUGGING, $^D, $SYSTEM_FD_MAX, $^F, $^H, $INPLACE_EDIT,
 $^I, $^M, $OSNAME, $^O, $PERLDB, $^P, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20,
-$^R, $^S, $BASETIME, $^T, $WARNING, $^W, $EXECUTABLE_NAME, $^X, $ARGV,
-@ARGV, @INC, @_, %INC, %ENV, $ENV{expr}, %SIG, $SIG{expr}
+$^R, $^S, $BASETIME, $^T, $WARNING, $^W, ${^Warnings}, $EXECUTABLE_NAME,
+$^X, $ARGV, @ARGV, @INC, @_, %INC, %ENV, $ENV{expr}, %SIG, $SIG{expr}
 
 =item Error Indicators
 
@@ -1545,6 +1744,8 @@ $^R, $^S, $BASETIME, $^T, $WARNING, $^W, $EXECUTABLE_NAME, $^X, $ARGV,
 
 =item Temporary Values via local()
 
+=item Lvalue subroutines
+
 =item Passing Symbol Table Entries (typeglobs)
 
 =item When to Still Use local()
@@ -1563,6 +1764,8 @@ You want to temporarily change just one element of an array or hash
 
 =item Autoloading
 
+=item Subroutine Attributes
+
 =back
 
 =item SEE ALSO
@@ -1597,9 +1800,9 @@ You want to temporarily change just one element of an array or hash
 
 =item Pragmatic Modules
 
-attrs, autouse, base, blib, constant, diagnostics, fields, filetest,
-integer, less, lib, locale, ops, overload, re, sigtrap, strict, subs, utf8,
-vars, vmsish, warnings
+attributes, attrs, autouse, base, blib, constant, diagnostics, fields,
+filetest, integer, less, lib, locale, ops, overload, re, sigtrap, strict,
+subs, utf8, vars, warnings, vmsish
 
 =item Standard Modules
 
@@ -2582,7 +2785,10 @@ environment for DOS, OS/2, etc.
 C<emx@iaehv.nl>,C<http://www.leo.org/pub/comp/os/os2/leo/gnu/emx+gcc/index.
 html> or
 C<ftp://hobbes.nmsu.edu/pub/os2/dev/emx>, Build instructions for Win32,
-L<perlwin32>, The ActiveState Pages, C<http://www.activestate.com/>
+L<perlwin32>, The ActiveState Pages, C<http://www.activestate.com/>, The
+Cygwin environment for Win32;
+L<README.cygwin>,C<http://sourceware.cygnus.com/cygwin/>, The U/WIN
+environment for Win32,C<http://www.research.att.com/sw/tools/uwin/>
 
 =item S<Mac OS>
 
@@ -2592,8 +2798,8 @@ C<http://pudge.net/mmp/>
 
 =item VMS
 
-L<perlvms.pod>, vmsperl list, C<majordomo@perl.org>, vmsperl on the web,
-C<http://www.sidhe.org/vmsperl/index.html>
+L<README.vms>, L<perlvms.pod>, vmsperl list, C<majordomo@perl.org>, vmsperl
+on the web, C<http://www.sidhe.org/vmsperl/index.html>
 
 =item VOS
 
@@ -2602,15 +2808,19 @@ C<http://ftp.stratus.com/pub/vos/vos.html>
 
 =item EBCDIC Platforms
 
-perl-mvs list, AS/400 Perl information at
-C<http://as400.rochester.ibm.com/>
+L<README.os390>, L<README.posix-bc>, L<README.vmesa>, perl-mvs list, AS/400
+Perl information at C<http://as400.rochester.ibm.com/>as well as on CPAN in
+the F<ports/> directory
 
 =item Acorn RISC OS
 
 =item Other perls
 
-Atari, Guido Flohr's page C<http://stud.uni-sb.de/~gufl0000/>, HP 300
-MPE/iX C<http://www.cccd.edu/~markb/perlix.html>, Novell Netware
+Amiga, L<README.amiga>, Atari, L<README.mint> and Guido Flohr's web
+pageC<http://stud.uni-sb.de/~gufl0000/>, Be OS, L<README.beos>, HP 300
+MPE/iX, L<README.mpeix> and Mark Bixby's web
+pageC<http://www.cccd.edu/~markb/perlix.html>, Novell Netware, Plan 9,
+L<README.plan9>
 
 =back
 
@@ -2649,10 +2859,11 @@ wait, waitpid PID,FLAGS
 
 =item CHANGES
 
-v1.43, 24 May 1999, v1.42, 22 May 1999, v1.41, 19 May 1999, v1.40, 11 April
-1999, v1.39, 11 February 1999, v1.38, 31 December 1998, v1.37, 19 December
-1998, v1.36, 9 September 1998, v1.35, 13 August 1998, v1.33, 06 August
-1998, v1.32, 05 August 1998, v1.30, 03 August 1998, v1.23, 10 July 1998
+v1.44, 19 July 1999, v1.43, 24 May 1999, v1.42, 22 May 1999, v1.41, 19 May
+1999, v1.40, 11 April 1999, v1.39, 11 February 1999, v1.38, 31 December
+1998, v1.37, 19 December 1998, v1.36, 9 September 1998, v1.35, 13 August
+1998, v1.33, 06 August 1998, v1.32, 05 August 1998, v1.30, 03 August 1998,
+v1.23, 10 July 1998
 
 =item AUTHORS / CONTRIBUTORS
 
@@ -2852,54 +3063,82 @@ B<PerlIO_get_base(f)>, B<PerlIO_get_bufsiz(f)>
 
 =item AUTHOR
 
-=head2 perlxstut, perlXStut - Tutorial for XSUBs
+=head2 perlxstut, perlXStut - Tutorial for writing XSUBs
 
 =item DESCRIPTION
 
+=item SPECIAL NOTES
+
 =over
 
-=item VERSION CAVEAT
+=item make
+
+=item Version caveat
+
+=item Dynamic Loading versus Static Loading
+
+=back
+
+=item TUTORIAL
 
-=item DYNAMIC VERSUS STATIC
+=over
 
 =item EXAMPLE 1
 
 =item EXAMPLE 2
 
-=item WHAT HAS GONE ON?
+=item What has gone on?
 
-=item WRITING GOOD TEST SCRIPTS
+=item Writing good test scripts
 
 =item EXAMPLE 3
 
-=item WHAT'S NEW HERE?
+=item What's new here?
 
-=item INPUT AND OUTPUT PARAMETERS
+=item Input and Output Parameters
 
-=item THE XSUBPP COMPILER
+=item The XSUBPP Program
 
-=item THE TYPEMAP FILE
+=item The TYPEMAP file
 
-=item WARNING
+=item Warning about Output Arguments
 
 =item EXAMPLE 4
 
-=item WHAT HAS HAPPENED HERE?
+=item What has happened here?
 
-=item SPECIFYING ARGUMENTS TO XSUBPP
+=item More about XSUBPP
 
-=item THE ARGUMENT STACK
+=item The Argument Stack
 
-=item EXTENDING YOUR EXTENSION
+=item Extending your Extension
 
-=item DOCUMENTING YOUR EXTENSION
+=item Documenting your Extension
 
-=item INSTALLING YOUR EXTENSION
+=item Installing your Extension
 
-=item SEE ALSO
+=item EXAMPLE 5
+
+=item New Things in this Example
+
+=item EXAMPLE 6 (Coming Soon)
+
+=item EXAMPLE 7 (Coming Soon)
+
+=item EXAMPLE 8 (Coming Soon)
+
+=item EXAMPLE 9 (Coming Soon)
+
+=item Troubleshooting these Examples
+
+=back
+
+=item See also
 
 =item Author
 
+=over
+
 =item Last Changed
 
 =back
@@ -2953,11 +3192,12 @@ B<PerlIO_get_base(f)>, B<PerlIO_get_bufsiz(f)>
 C<SAVEINT(int i)>, C<SAVEIV(IV i)>, C<SAVEI32(I32 i)>, C<SAVELONG(long i)>,
 C<SAVESPTR(s)>, C<SAVEPPTR(p)>, C<SAVEFREESV(SV *sv)>, C<SAVEFREEOP(OP
 *op)>, C<SAVEFREEPV(p)>, C<SAVECLEARSV(SV *sv)>, C<SAVEDELETE(HV *hv, char
-*key, I32 length)>, C<SAVEDESTRUCTOR(f,p)>, C<SAVESTACK_POS()>, C<SV*
-save_scalar(GV *gv)>, C<AV* save_ary(GV *gv)>, C<HV* save_hash(GV *gv)>,
-C<void save_item(SV *item)>, C<void save_list(SV **sarg, I32 maxsarg)>,
-C<SV* save_svref(SV **sptr)>, C<void save_aptr(AV **aptr)>, C<void
-save_hptr(HV **hptr)>
+*key, I32 length)>, C<SAVEDESTRUCTOR(DESTRUCTORFUNC_NOCONTEXT_t f, void
+*p)>, C<SAVEDESTRUCTOR_X(DESTRUCTORFUNC_t f, void *p)>, C<SAVESTACK_POS()>,
+C<SV* save_scalar(GV *gv)>, C<AV* save_ary(GV *gv)>, C<HV* save_hash(GV
+*gv)>, C<void save_item(SV *item)>, C<void save_list(SV **sarg, I32
+maxsarg)>, C<SV* save_svref(SV **sptr)>, C<void save_aptr(AV **aptr)>,
+C<void save_hptr(HV **hptr)>
 
 =back
 
@@ -2999,6 +3239,18 @@ save_hptr(HV **hptr)>
 
 =back
 
+=item The Perl Internal API
+
+=over
+
+=item Background and PERL_IMPLICIT_CONTEXT
+
+=item How do I use all this in extensions?
+
+=item Future Plans and PERL_IMPLICIT_SYS
+
+=back
+
 =item API LISTING
 
 av_clear, av_extend, av_fetch, AvFILL, av_len, av_make, av_pop, av_push,
@@ -3040,13 +3292,11 @@ SvSetSV, SvSetSV_nosteal, sv_setsv, sv_setsv_mg, sv_setuv, sv_setuv_mg,
 SvSTASH, SvTAINT, SvTAINTED, SvTAINTED_off, SvTAINTED_on, SVt_IV, SVt_PV,
 SVt_PVAV, SVt_PVCV, SVt_PVHV, SVt_PVMG, SVt_NV, SvTRUE, SvTYPE, svtype,
 PL_sv_undef, sv_unref, SvUPGRADE, sv_upgrade, sv_usepvn, sv_usepvn_mg,
-sv_vcatpvfn(sv, pat, patlen, args, svargs, svmax, used_locale),
-sv_vsetpvfn(sv, pat, patlen, args, svargs, svmax, used_locale), SvUV,
-SvUVX, PL_sv_yes, 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_mNV,
-XST_mNO, XST_mPV, XST_mUNDEF, XST_mYES, XS_VERSION, XS_VERSION_BOOTCHECK,
-Zero
+sv_vcatpvfn, sv_vsetpvfn, SvUV, SvUVX, PL_sv_yes, 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_mNV, XST_mNO, XST_mPV, XST_mUNDEF, XST_mYES,
+XS_VERSION, XS_VERSION_BOOTCHECK, Zero
 
 =item AUTHORS
 
@@ -3132,6 +3382,46 @@ callback
 
 =item DATE
 
+=head2 perlcompile - Introduction to the Perl Compiler-Translator 
+
+=item DESCRIPTION
+
+=over
+
+=item Layout
+
+B::Bytecode, B::C, B::CC, B::Lint, B::Deparse, B::Xref
+
+=back
+
+=item Using The Back Ends
+
+=over
+
+=item The Cross Referencing Back End (B::Xref)
+
+i, &, s, r
+
+=item The Decompiling Back End
+
+=item The Lint Back End (B::Lint)
+
+=item The Simple C Back End
+
+=item The Bytecode Back End
+
+=item The Optimized C Back End
+
+B, O, B::Asmdata, B::Assembler, B::Bblock, B::Bytecode, B::C, B::CC,
+B::Debug, B::Deparse, B::Disassembler, B::Lint, B::Showlex, B::Stackobj,
+B::Stash, B::Terse, B::Xref
+
+=back
+
+=item KNOWN PROBLEMS
+
+=item AUTHOR
+
 =head2 perlhist - the Perl history records
 
 =item DESCRIPTION
@@ -3160,7 +3450,7 @@ callback
 
 =head1 PRAGMA DOCUMENTATION
 
-=head2 attrs - set/get attributes of a subroutine
+=head2 attrs - set/get attributes of a subroutine (deprecated)
 
 =item SYNOPSIS
 
@@ -3174,7 +3464,35 @@ method, locked
 
 =item DESCRIPTION
 
-=head2 attrs - set/get attributes of a subroutine
+=head2 attributes - get/set subroutine or variable attributes
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=over
+
+=item Built-in Attributes
+
+locked, method
+
+=item Available Subroutines
+
+get, reftype
+
+=item Package-specific Attribute Handling
+
+FETCH_I<type>_ATTRIBUTES, MODIFY_I<type>_ATTRIBUTES
+
+=item Syntax of Attribute Lists
+
+=back
+
+=item EXAMPLES
+
+=item SEE ALSO
+
+=head2 attrs - set/get attributes of a subroutine (deprecated)
 
 =item SYNOPSIS
 
@@ -3222,6 +3540,17 @@ method, locked
 
 encoding
 
+=head2 charnames - define character names for C<\N{named}> string literal
+escape.
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=item CUSTOM TRANSLATORS
+
+=item BUGS
+
 =head2 constant - Perl pragma to declare constants
 
 =item SYNOPSIS
@@ -3309,11 +3638,11 @@ double
 
 =over
 
-=item ADDING DIRECTORIES TO @INC
+=item Adding directories to @INC
 
-=item DELETING DIRECTORIES FROM @INC
+=item Deleting directories from @INC
 
-=item RESTORING ORIGINAL @INC
+=item Restoring original @INC
 
 =back
 
@@ -3494,8 +3823,6 @@ C<strict refs>, C<strict vars>, C<strict subs>
 
 =item DESCRIPTION
 
-C<warning deprecated>
-
 =head1 MODULE DOCUMENTATION
 
 =head2 AnyDBM_File - provide framework for multiple DBMs
@@ -3629,7 +3956,7 @@ FILL, MAX, KEYS, RITER, NAME, PMROOT, ARRAY
 
 =item B::OP METHODS
 
-next, sibling, ppaddr, desc, targ, type, seq, flags, private
+next, sibling, name, ppaddr, desc, targ, type, seq, flags, private
 
 =item B::UNOP METHOD
 
@@ -3790,7 +4117,22 @@ B<-ffreetmps-each-bblock>, B<-ffreetmps-each-loop>, B<-fomit-taint>, B<-On>
 
 =item OPTIONS
 
-B<-l>, B<-p>, B<-q>, B<-u>I<PACKAGE>, B<-s>I<LETTERS>, B<C>
+B<-l>, B<-p>, B<-q>, B<-u>I<PACKAGE>, B<-s>I<LETTERS>, B<C>, B<i>I<NUMBER>,
+B<T>, B<v>I<STRING>B<.>
+
+=item USING B::Deparse AS A MODULE
+
+=over
+
+=item Synopsis
+
+=item Description
+
+=item new
+
+=item coderef2text
+
+=back
 
 =item BUGS
 
@@ -3891,17 +4233,19 @@ C<-oFILENAME>, C<-r>, C<-D[tO]>
 
 =item Methods
 
-new, debug
+new, debug, iters
 
 =item Standard Exports
 
 timeit(COUNT, CODE), timethis ( COUNT, CODE, [ TITLE, [ STYLE ]] ),
-timethese ( COUNT, CODEHASHREF, [ STYLE ] ), timediff ( T1, T2 ), timesum (
-T1, T2 ), timestr ( TIMEDIFF, [ STYLE, [ FORMAT ] ] )
+timethese ( COUNT, CODEHASHREF, [ STYLE ] ), timediff ( T1, T2 ), timestr (
+TIMEDIFF, [ STYLE, [ FORMAT ] ] )
 
 =item Optional Exports
 
-clearcache ( COUNT ), clearallcache ( ), disablecache ( ), enablecache ( )
+clearcache ( COUNT ), clearallcache ( ), cmpthese ( COUT, CODEHASHREF, [
+STYLE ] ), cmpthese ( RESULTSHASHREF ), countit(TIME, CODE), disablecache (
+), enablecache ( ), timesum ( T1, T2 )
 
 =back
 
@@ -4269,6 +4613,24 @@ B<name()>, B<value()>, B<domain()>, B<path()>, B<expires()>
 
 =item SEE ALSO
 
+=head2 CGI::Pretty - module to produce nicely formatted HTML code
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=over
+
+=item Tags that won't be formatted
+
+=back
+
+=item BUGS
+
+=item AUTHOR
+
+=item SEE ALSO
+
 =head2 CGI::Push - Simple Interface to Server Push
 
 =item SYNOPSIS
@@ -4408,6 +4770,12 @@ module
 
 =item BUGS
 
+=head2 Carp::Heavy - Carp guts
+
+=item SYNOPIS
+
+=item DESCRIPTION
+
 =head2 Class::Struct - declare struct-like datatypes as Perl classes
 
 =item SYNOPSIS
@@ -4460,7 +4828,8 @@ C<archlib>, C<archlibexp>, C<archname64>, C<archname>, C<archobjs>, C<awk>
 
 =item b
 
-C<baserev>, C<bash>, C<bin>, C<binexp>, C<bison>, C<byacc>, C<byteorder>
+C<baserev>, C<bash>, C<bin>, C<bincompat5005>, C<binexp>, C<bison>,
+C<byacc>, C<byteorder>
 
 =item c
 
@@ -4473,65 +4842,64 @@ C<cryptlib>, C<csh>
 
 =item d
 
-C<d_access>, C<d_accessx>, C<d_alarm>, C<d_archlib>, C<d_attribut>,
-C<d_bcmp>, C<d_bcopy>, 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_cmsghdr_s>, C<d_const>,
-C<d_crypt>, C<d_csh>, C<d_cuserid>, C<d_dbl_dig>, C<d_dbmclose64>,
-C<d_dbminit64>, C<d_delete64>, C<d_difftime>, C<d_dirent64_s>,
-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_fetch64>, C<d_fgetpos64>, C<d_fgetpos>,
-C<d_firstkey64>, C<d_flexfnam>, C<d_flock64_s>, C<d_flock>, C<d_fopen64>,
-C<d_fork>, C<d_fpathconf>, C<d_freopen64>, C<d_fseek64>, C<d_fseeko64>,
-C<d_fseeko>, C<d_fsetpos64>, C<d_fsetpos>, C<d_fstat64>, C<d_fstatfs>,
-C<d_fstatvfs>, C<d_ftell64>, C<d_ftello64>, C<d_ftello>, C<d_ftime>,
-C<d_ftruncate64>, C<d_Gconvert>, 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_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_getpwent>,
-C<d_getsbyname>, C<d_getsbyport>, C<d_getsent>, C<d_getservprotos>,
+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_cmsghdr_s>, 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_endspent>, 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_fseeko>, C<d_fsetpos>, C<d_fstatfs>,
+C<d_fstatvfs>, C<d_ftello>, C<d_ftime>, C<d_Gconvert>, 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_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_getpwent>, C<d_getsbyname>, C<d_getsbyport>,
+C<d_getsent>, C<d_getservprotos>, C<d_getspent>, C<d_getspnam>,
 C<d_gettimeod>, C<d_gnulibc>, C<d_grpasswd>, C<d_hasmntopt>, C<d_htonl>,
-C<d_index>, C<d_inetaton>, C<d_ino64_t>, C<d_int64t>, C<d_iovec_s>,
-C<d_isascii>, C<d_killpg>, C<d_lchown>, C<d_link>, C<d_llseek>,
-C<d_locconv>, C<d_lockf64>, C<d_lockf>, C<d_longdbl>, C<d_longlong>,
-C<d_lseek64>, C<d_lstat64>, 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_mkfifo>, C<d_mktime>, C<d_mmap>,
-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_msghdr_s>,
-C<d_msgrcv>, C<d_msgsnd>, C<d_msync>, C<d_munmap>, C<d_mymalloc>,
-C<d_nextkey64>, C<d_nice>, C<d_off64_t>, C<d_offset_t>,
-C<d_old_pthread_create_joinable>, C<d_oldpthreads>, C<d_oldsock>,
-C<d_open3>, C<d_open64>, C<d_opendir64>, C<d_pathconf>, C<d_pause>,
-C<d_phostname>, C<d_pipe>, C<d_poll>, C<d_portable>, 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_readdir64>, C<d_readdir>,
-C<d_readlink>, C<d_readv>, C<d_recvmsg>, 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_seekdir64>, C<d_seekdir>, C<d_select>, C<d_sem>,
+C<d_index>, C<d_inetaton>, C<d_int64t>, C<d_iovec_s>, C<d_isascii>,
+C<d_killpg>, C<d_lchown>, C<d_ldbl_dig>, C<d_link>, C<d_llseek>,
+C<d_locconv>, C<d_lockf>, C<d_longdbl>, C<d_longlong>, 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_mkfifo>, C<d_mktime>, C<d_mmap>, 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_msghdr_s>, C<d_msgrcv>,
+C<d_msgsnd>, C<d_msync>, C<d_munmap>, C<d_mymalloc>, C<d_nice>,
+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_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_readdir>, C<d_readlink>, C<d_readv>, C<d_recvmsg>, 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_sendmsg>, 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_sockpair>, C<d_stat64>, C<d_statblks>, C<d_statfs>,
+C<d_setspent>, 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_sockpair>, C<d_statblks>, C<d_statfs>,
 C<d_statfsflags>, 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_store64>,
-C<d_strchr>, C<d_strcoll>, C<d_strctcpy>, C<d_strerrm>, C<d_strerror>,
-C<d_strtod>, C<d_strtol>, C<d_strtoul>, C<d_strxfrm>, C<d_suidsafe>,
+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_strtoul>, C<d_strtoull>, 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_telldir64>, C<d_telldir>,
-C<d_telldirproto>, C<d_time>, C<d_times>, C<d_tmpfile64>, C<d_truncate64>,
-C<d_truncate>, C<d_tzname>, C<d_umask>, C<d_uname>, C<d_union_semun>,
-C<d_vfork>, C<d_void_closedir>, C<d_voidsig>, C<d_voidtty>, C<d_volatile>,
+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_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_writev>, C<d_xenix>, C<date>, C<db_hashtype>, C<db_prefixtype>,
 C<defvoidused>, C<direntrytype>, C<dlext>, C<dlsrc>, C<doublesize>,
@@ -4563,17 +4931,19 @@ C<i_dlfcn>, C<i_fcntl>, C<i_float>, C<i_gdbm>, C<i_grp>, 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_pthread>, C<i_pwd>,
-C<i_rpcsvcdbm>, C<i_sfio>, C<i_sgtty>, C<i_stdarg>, C<i_stddef>,
-C<i_stdlib>, C<i_string>, C<i_sysaccess>, C<i_sysdir>, C<i_sysfile>,
-C<i_sysfilio>, C<i_sysin>, C<i_sysioctl>, C<i_sysmman>, 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_sysstatvfs>, C<i_systime>, C<i_systimek>,
-C<i_systimes>, C<i_systypes>, C<i_sysuio>, C<i_sysun>, C<i_syswait>,
-C<i_termio>, C<i_termios>, C<i_time>, C<i_unistd>, C<i_utime>, C<i_values>,
-C<i_varargs>, C<i_varhdr>, C<i_vfork>, C<ignore_versioned_solibs>,
-C<incpath>, C<inews>, C<installarchlib>, C<installbin>, C<installman1dir>,
-C<installman3dir>, C<installprivlib>, C<installscript>, C<installsitearch>,
-C<installsitelib>, C<installusrbinperl>, C<intsize>
+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_sysaccess>,
+C<i_sysdir>, C<i_sysfile>, C<i_sysfilio>, C<i_sysin>, C<i_sysioctl>,
+C<i_sysmman>, 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_sysstatvfs>, C<i_systime>, C<i_systimek>, C<i_systimes>, C<i_systypes>,
+C<i_sysuio>, C<i_sysun>, C<i_syswait>, C<i_termio>, C<i_termios>,
+C<i_time>, C<i_unistd>, C<i_utime>, C<i_values>, C<i_varargs>, C<i_varhdr>,
+C<i_vfork>, C<ignore_versioned_solibs>, C<incpath>, C<inews>,
+C<installarchlib>, C<installbin>, C<installman1dir>, C<installman3dir>,
+C<installprefix>, C<installprefixexp>, C<installprivlib>, C<installscript>,
+C<installsitearch>, C<installsitelib>, C<installstyle>,
+C<installusrbinperl>, C<installvendorlib>, C<intsize>
 
 =item k
 
@@ -4581,11 +4951,11 @@ C<known_extensions>, C<ksh>
 
 =item l
 
-C<large>, C<ld>, C<lddlflags>, C<ldflags>, C<less>, C<lib_ext>, C<libc>,
-C<libperl>, C<libpth>, C<libs>, 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>
+C<large>, C<ld>, C<lddlflags>, C<ldflags>, C<ldlibpthname>, C<less>,
+C<lib_ext>, C<libc>, C<libperl>, C<libpth>, C<libs>, 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
 
@@ -4613,8 +4983,8 @@ C<orderlib>, C<osname>, C<osvers>
 
 C<package>, C<pager>, C<passcat>, C<patchlevel>, C<path_sep>, C<perl>,
 C<perladmin>, C<perlpath>, C<pg>, C<phostname>, C<pidtype>, C<plibpth>,
-C<pmake>, C<pr>, C<prefix>, C<prefixexp>, C<privlib>, C<privlibexp>,
-C<prototype>, C<ptrsize>
+C<pm_apiversion>, C<pmake>, C<pr>, C<prefix>, C<prefixexp>, C<privlib>,
+C<privlibexp>, C<prototype>, C<ptrsize>
 
 =item r
 
@@ -4627,12 +4997,15 @@ 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<sitelib>, C<sitelibexp>, C<sizetype>,
-C<sleep>, C<smail>, C<small>, C<so>, C<sockethdr>, C<socketlib>, C<sort>,
-C<spackage>, C<spitshell>, C<split>, 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>
+C<sitearch>, C<sitearchexp>, C<sitelib>, C<sitelibexp>, C<siteprefix>,
+C<siteprefixexp>, C<sizetype>, C<sleep>, C<smail>, C<small>, C<so>,
+C<sockethdr>, C<socketlib>, 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
 
@@ -4641,17 +5014,20 @@ C<touch>, C<tr>, C<trnl>, C<troff>
 
 =item u
 
-C<uidtype>, C<uname>, C<uniq>, C<use64bits>, C<usedl>, C<usemultiplicity>,
+C<uidsign>, C<uidtype>, C<uname>, C<uniq>, C<use64bits>, C<usedl>,
+C<uselargefiles>, C<uselongdouble>, C<usemorebits>, C<usemultiplicity>,
 C<usemymalloc>, C<usenm>, C<useopcode>, C<useperlio>, C<useposix>,
-C<usesfio>, C<useshrplib>, C<usethreads>, C<usevfork>, C<usrinc>, C<uuname>
+C<usesfio>, C<useshrplib>, C<usesocks>, C<usethreads>, C<usevendorprefix>,
+C<usevfork>, C<usrinc>, C<uuname>
 
 =item v
 
+C<vendorlib>, C<vendorlibexp>, C<vendorprefix>, C<vendorprefixexp>,
 C<version>, C<vi>, C<voidflags>
 
 =item x
 
-C<xlibpth>
+C<xlibpth>, C<xs_apiversion>
 
 =item z
 
@@ -4710,7 +5086,7 @@ B<DB_HASH>, B<DB_BTREE>, B<DB_RECNO>
 
 =over
 
-=item Using DB_File with Berkeley DB version 2
+=item Using DB_File with Berkeley DB version 2 or 3
 
 =item Interface to Berkeley DB
 
@@ -4772,6 +5148,21 @@ $X-E<gt>put($key, $value [, $flags]) ;>, B<$status = $X-E<gt>del($key [,
 $flags]) ;>, B<$status = $X-E<gt>fd ;>, B<$status = $X-E<gt>seq($key,
 $value, $flags) ;>, B<$status = $X-E<gt>sync([$flags]) ;>
 
+=item DBM FILTERS
+
+B<filter_store_key>, B<filter_store_value>, B<filter_fetch_key>,
+B<filter_fetch_value>
+
+=over
+
+=item The Filter
+
+=item An Example -- the NULL termination problem.
+
+=item Another Example -- Key is a C int.
+
+=back
+
 =item HINTS AND TIPS 
 
 =over
@@ -4798,6 +5189,8 @@ $value, $flags) ;>, B<$status = $X-E<gt>sync([$flags]) ;>
 
 =back
 
+=item REFERENCES
+
 =item HISTORY
 
 =item BUGS
@@ -4843,7 +5236,8 @@ $Data::Dumper::Freezer    I<or>  $I<OBJ>->Freezer(I<[NEWVAL]>),
 $Data::Dumper::Toaster I<or>  $I<OBJ>->Toaster(I<[NEWVAL]>),
 $Data::Dumper::Deepcopy  I<or> $I<OBJ>->Deepcopy(I<[NEWVAL]>),
 $Data::Dumper::Quotekeys  I<or>  $I<OBJ>->Quotekeys(I<[NEWVAL]>),
-$Data::Dumper::Bless  I<or>  $I<OBJ>->Bless(I<[NEWVAL]>)
+$Data::Dumper::Bless  I<or>  $I<OBJ>->Bless(I<[NEWVAL]>),
+$Data::Dumper::Maxdepth  I<or> $I<OBJ>->Maxdepth(I<[NEWVAL]>)
 
 =item Exports
 
@@ -4861,6 +5255,22 @@ Dumper
 
 =item SEE ALSO
 
+=head2 Devel::DProf - a Perl code profiler
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=item PROFILE FORMAT
+
+=item AUTOLOAD
+
+=item ENVIRONMENT
+
+=item BUGS
+
+=item SEE ALSO
+
 =head2 Devel::Peek - A data debugging tool for the XS programmer
 
 =item SYNOPSIS
@@ -4913,7 +5323,7 @@ Dumper
 
 =head2 Dumpvalue - provides screen dump of Perl data.
 
-=item SYNOPSYS
+=item SYNOPSIS
 
 =item DESCRIPTION
 
@@ -4980,6 +5390,8 @@ variables
 
 =over
 
+=item How to Export
+
 =item Selecting What To Export
 
 =item Specialised Import Lists
@@ -4994,6 +5406,12 @@ variables
 
 =back
 
+=head2 Exporter::Heavy - Exporter guts
+
+=item SYNOPIS
+
+=item DESCRIPTION
+
 =head2 ExtUtils::Command - utilities to replace common UNIX commands in
 Makefiles etc.
 
@@ -5123,14 +5541,14 @@ extliblist, file_name_is_absolute, find_perl
 
 =item Methods to actually produce chunks of text for the Makefile
 
-fixin, force (o), guess_name, has_link_code, init_dirscan, init_main,
-init_others, install (o), installbin (o), libscan (o), linkext (o), lsdir,
-macro (o), makeaperl (o), makefile (o), manifypods (o), maybe_command,
-maybe_command_in_dirs, needs_linking (o), nicetext, parse_version,
-parse_abstract, pasthru (o), path, perl_script, perldepend (o), ppd,
-perm_rw (o), perm_rwx (o), pm_to_blib, post_constants (o), post_initialize
-(o), postamble (o), prefixify, processPL (o), realclean (o),
-replace_manpage_separator, static (o), static_lib (o), staticmake (o),
+fixin, force (o), guess_name, has_link_code, htmlifypods (o), init_dirscan,
+init_main, init_others, install (o), installbin (o), libscan (o), linkext
+(o), lsdir, macro (o), makeaperl (o), makefile (o), manifypods (o),
+maybe_command, maybe_command_in_dirs, needs_linking (o), nicetext,
+parse_version, parse_abstract, pasthru (o), path, perl_script, perldepend
+(o), ppd, perm_rw (o), perm_rwx (o), pm_to_blib, post_constants (o),
+post_initialize (o), postamble (o), prefixify, processPL (o), realclean
+(o), replace_manpage_separator, static (o), static_lib (o), staticmake (o),
 subdir_x (o), subdirs (o), test (o), test_via_harness (o), test_via_script
 (o), tool_autosplit (o), tools_other (o), tool_xsubpp (o), top_targets (o),
 writedoc, xs_c (o), xs_cpp (o), xs_o (o), perl_archive, export_list
@@ -5150,8 +5568,7 @@ ExtUtils::MakeMaker
 
 =item Methods always loaded
 
-eliminate_macros, fixpath, catdir, catfile, wraplist, curdir (override),
-rootdir (override), updir (override)
+wraplist, rootdir (override)
 
 =item SelfLoaded methods
 
@@ -5182,8 +5599,8 @@ ExtUtils::MakeMaker
 
 catfile, constants (o), static_lib (o), dynamic_bs (o), dynamic_lib (o),
 canonpath, perl_script, pm_to_blib, test_via_harness (o), tool_autosplit
-(override), tools_other (o), xs_o (o), top_targets (o), manifypods (o),
-dist_ci (o), dist_core (o), pasthru (o)
+(override), tools_other (o), xs_o (o), top_targets (o), htmlifypods (o),
+manifypods (o), dist_ci (o), dist_core (o), pasthru (o)
 
 =head2 ExtUtils::MakeMaker - create an extension Makefile
 
@@ -5217,15 +5634,17 @@ dist_ci (o), dist_core (o), pasthru (o)
 
 AUTHOR, ABSTRACT, ABSTRACT_FROM, BINARY_LOCATION, C, CAPI, CCFLAGS, CONFIG,
 CONFIGURE, DEFINE, DIR, DISTNAME, DL_FUNCS, DL_VARS, EXCLUDE_EXT,
-EXE_FILES, FIRST_MAKEFILE, FULLPERL, FUNCLIST, H, IMPORTS, INC,
-INCLUDE_EXT, INSTALLARCHLIB, INSTALLBIN, INSTALLDIRS, INSTALLMAN1DIR,
-INSTALLMAN3DIR, INSTALLPRIVLIB, INSTALLSCRIPT, INSTALLSITEARCH,
-INSTALLSITELIB, INST_ARCHLIB, INST_BIN, INST_EXE, INST_LIB, INST_MAN1DIR,
-INST_MAN3DIR, INST_SCRIPT, LDFROM, LIB, LIBPERL_A, LIBS, LINKTYPE,
-MAKEAPERL, MAKEFILE, MAN1PODS, MAN3PODS, MAP_TARGET, MYEXTLIB, NAME,
-NEEDS_LINKING, NOECHO, NORECURS, NO_VC, OBJECT, OPTIMIZE, PERL, PERLMAINCC,
-PERL_ARCHLIB, PERL_LIB, PERL_SRC, PERM_RW, PERM_RWX, PL_FILES, PM,
-PMLIBDIRS, POLLUTE, PPM_INSTALL_EXEC, PPM_INSTALL_SCRIPT, PREFIX,
+EXE_FILES, FIRST_MAKEFILE, FULLPERL, FUNCLIST, H, HTMLLIBPODS,
+HTMLSCRIPTPODS, IMPORTS, INC, INCLUDE_EXT, INSTALLARCHLIB, INSTALLBIN,
+INSTALLDIRS, INSTALLHTMLPRIVLIBDIR, INSTALLHTMLSCRIPTDIR,
+INSTALLHTMLSITELIBDIR, INSTALLMAN1DIR, INSTALLMAN3DIR, INSTALLPRIVLIB,
+INSTALLSCRIPT, INSTALLSITEARCH, INSTALLSITELIB, INST_ARCHLIB, INST_BIN,
+INST_EXE, INST_LIB, INST_HTMLLIBDIR, INST_HTMLSCRIPTDIR, INST_MAN1DIR,
+INST_MAN3DIR, INST_SCRIPT, PERL_MALLOC_OK, LDFROM, LIB, LIBPERL_A, LIBS,
+LINKTYPE, MAKEAPERL, MAKEFILE, MAN1PODS, MAN3PODS, MAP_TARGET, MYEXTLIB,
+NAME, NEEDS_LINKING, NOECHO, NORECURS, NO_VC, OBJECT, OPTIMIZE, PERL,
+PERLMAINCC, PERL_ARCHLIB, PERL_LIB, PERL_SRC, PERM_RW, PERM_RWX, PL_FILES,
+PM, PMLIBDIRS, POLLUTE, PPM_INSTALL_EXEC, PPM_INSTALL_SCRIPT, PREFIX,
 PREREQ_PM, SKIP, TYPEMAPS, VERSION, VERSION_FROM, XS, XSOPT, XSPROTOARG,
 XS_VERSION
 
@@ -5485,6 +5904,8 @@ catpath, abs2rel, rel2abs
 
 =item DESCRIPTION
 
+eliminate_macros, fixpath
+
 =over
 
 =item Methods always loaded
@@ -5763,8 +6184,8 @@ new ( [ARGS] )
 
 =item METHODS
 
-accept([PKG]), timeout([VAL]), sockopt(OPT [, VAL]), sockdomain, socktype,
-protocol, connected
+accept([PKG]), socketpair(DOMAIN, TYPE, PROTOCOL), timeout([VAL]),
+sockopt(OPT [, VAL]), sockdomain, socktype, protocol, connected
 
 =item SEE ALSO
 
@@ -5961,8 +6382,8 @@ new ( [ARGS] )
 
 =item METHODS
 
-accept([PKG]), timeout([VAL]), sockopt(OPT [, VAL]), sockdomain, socktype,
-protocol, connected
+accept([PKG]), socketpair(DOMAIN, TYPE, PROTOCOL), timeout([VAL]),
+sockopt(OPT [, VAL]), sockdomain, socktype, protocol, connected
 
 =item SEE ALSO
 
@@ -6535,10 +6956,13 @@ Constants, Macros
 =item ARGUMENTS
 
 help, htmldir, htmlroot, infile, outfile, podroot, podpath, libpods,
-netscape, nonetscape, index, noindex, recurse, norecurse, title, verbose
+netscape, nonetscape, index, noindex, recurse, norecurse, title, css,
+verbose, quiet
 
 =item EXAMPLE
 
+=item ENVIRONMENT
+
 =item AUTHOR
 
 =item BUGS
@@ -6649,6 +7073,28 @@ B<Pod::ParseTree>
 
 =item AUTHOR
 
+=head2 Pod::Man - Convert POD data to formatted *roff input
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+center, date, fixed, fixedbold, fixeditalic, fixedbolditalic, release,
+section
+
+=item DIAGNOSTICS
+
+roff font should be 1 or 2 chars, not `%s', Invalid link %s, Unknown escape
+EE<lt>%sE<gt>, Unknown sequence %s, Unmatched =back
+
+=item BUGS
+
+=item NOTES
+
+=item SEE ALSO
+
+=item AUTHOR
+
 =head2 Pod::Parser - base class for creating POD filters and translators
 
 =item SYNOPSIS
@@ -6661,6 +7107,10 @@ B<Pod::ParseTree>
 
 =item QUICK OVERVIEW
 
+=item PARSING OPTIONS
+
+B<-want_nonPODs> (default: unset), B<-process_cut_cmd> (default: unset)
+
 =item RECOMMENDED SUBROUTINE/METHOD OVERRIDES
 
 =item B<command()>
@@ -6699,7 +7149,8 @@ C<$text>, C<$line_num>, C<$pod_para>
 
 =item B<parse_text()>
 
-B<-expand_seq> =E<gt> I<code-ref>|I<method-name>, B<-expand_ptree> =E<gt>
+B<-expand_seq> =E<gt> I<code-ref>|I<method-name>, B<-expand_text> =E<gt>
+I<code-ref>|I<method-name>, B<-expand_ptree> =E<gt>
 I<code-ref>|I<method-name>
 
 =item B<interpolate()>
@@ -6712,8 +7163,12 @@ I<code-ref>|I<method-name>
 
 =item ACCESSOR METHODS
 
+=item B<errorsub()>
+
 =item B<cutting()>
 
+=item B<parseopts()>
+
 =item B<output_file()>
 
 =item B<output_handle()>
@@ -6732,20 +7187,7 @@ I<code-ref>|I<method-name>
 
 =item B<_pop_input_stream()>
 
-=item SEE ALSO
-
-=item AUTHOR
-
-=head2 Pod::PlainText, pod2plaintext - function to convert POD data to
-formatted ASCII text
-
-=item SYNOPSIS
-
-=item REQUIRES
-
-=item EXPORTS
-
-=item DESCRIPTION
+=item TREE-BASED PARSING
 
 =item SEE ALSO
 
@@ -6802,15 +7244,49 @@ B<-output>, B<-sections>, B<-ranges>
 
 =item AUTHOR
 
-=head2 Pod::Text - convert POD data to formatted ASCII text
+=head2 Pod::Text - Convert POD data to formatted ASCII text
 
 =item SYNOPSIS
 
 =item DESCRIPTION
 
+alt, indent, loose, sentence, width
+
+=item DIAGNOSTICS
+
+Bizarre space in item, Can't open %s for reading: %s, Unknown escape: %s,
+Unknown sequence: %s, Unmatched =back
+
+=item RESTRICTIONS
+
+=item NOTES
+
+=item SEE ALSO
+
 =item AUTHOR
 
-=item TODO
+=head2 Pod::Text::Color - Convert POD data to formatted color ASCII text
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=item BUGS
+
+=item SEE ALSO
+
+=item AUTHOR
+
+=head2 Pod::Text::Termcap, Pod::Text::Color - Convert POD data to ASCII
+text with format escapes
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=item SEE ALSO
+
+=item AUTHOR
 
 =head2 Pod::Usage, pod2usage() - print a usage message from embedded pod
 documentation
diff --git a/pp.c b/pp.c
index 6b45946..41aeeeb 100644 (file)
--- a/pp.c
+++ b/pp.c
@@ -5198,7 +5198,7 @@ PP(pp_lock)
        DEBUG_S(PerlIO_printf(Perl_debug_log, "0x%lx: pp_lock lock 0x%lx\n",
                              (unsigned long)thr, (unsigned long)sv);)
        MUTEX_UNLOCK(MgMUTEXP(mg));
-       SAVEDESTRUCTOR(Perl_unlock_condpair, sv);
+       SAVEDESTRUCTOR_X(Perl_unlock_condpair, sv);
     }
 #endif /* USE_THREADS */
     if (SvTYPE(retsv) == SVt_PVAV || SvTYPE(retsv) == SVt_PVHV
index 78a454c..344b808 100644 (file)
--- a/pp_hot.c
+++ b/pp_hot.c
@@ -2299,7 +2299,7 @@ try_autoload:
            DEBUG_S(PerlIO_printf(Perl_debug_log, "%p: pp_entersub lock %p\n",
                                  thr, sv);)
            MUTEX_UNLOCK(MgMUTEXP(mg));
-           SAVEDESTRUCTOR(Perl_unlock_condpair, sv);
+           SAVEDESTRUCTOR_X(Perl_unlock_condpair, sv);
        }
        MUTEX_LOCK(CvMUTEXP(cv));
     }
@@ -2344,7 +2344,7 @@ try_autoload:
            CvOWNER(cv) = thr;
            SvREFCNT_inc(cv);
            if (CvDEPTH(cv) == 0)
-               SAVEDESTRUCTOR(unset_cvowner, (void*) cv);
+               SAVEDESTRUCTOR_X(unset_cvowner, (void*) cv);
        }
        else {
            /* (2) => grab ownership of cv. (3) => make clone */
@@ -2382,7 +2382,7 @@ try_autoload:
            DEBUG_S(if (CvDEPTH(cv) != 0)
                        PerlIO_printf(Perl_debug_log, "depth %ld != 0\n",
                                      CvDEPTH(cv)););
-           SAVEDESTRUCTOR(unset_cvowner, (void*) cv);
+           SAVEDESTRUCTOR_X(unset_cvowner, (void*) cv);
        }
     }
 #endif /* USE_THREADS */
diff --git a/proto.h b/proto.h
index 2f68d9b..6551c31 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -510,7 +510,8 @@ VIRTUAL void        Perl_save_aptr(pTHX_ AV** aptr);
 VIRTUAL AV*    Perl_save_ary(pTHX_ GV* gv);
 VIRTUAL void   Perl_save_clearsv(pTHX_ SV** svp);
 VIRTUAL void   Perl_save_delete(pTHX_ HV* hv, char* key, I32 klen);
-VIRTUAL void   Perl_save_destructor(pTHX_ DESTRUCTORFUNC_t f, void* p);
+VIRTUAL void   Perl_save_destructor(pTHX_ DESTRUCTORFUNC_NOCONTEXT_t f, void* p);
+VIRTUAL void   Perl_save_destructor_x(pTHX_ DESTRUCTORFUNC_t f, void* p);
 VIRTUAL void   Perl_save_freesv(pTHX_ SV* sv);
 VIRTUAL void   Perl_save_freeop(pTHX_ OP* o);
 VIRTUAL void   Perl_save_freepv(pTHX_ char* pv);
index e30c8e7..d6ee2f1 100644 (file)
--- a/regcomp.h
+++ b/regcomp.h
@@ -247,14 +247,14 @@ struct regnode_2 {
 #define        FAIL(m) \
     STMT_START {                                                       \
        if (!SIZE_ONLY)                                                 \
-           SAVEDESTRUCTOR(clear_re,(void*)PL_regcomp_rx);              \
+           SAVEDESTRUCTOR_X(clear_re,(void*)PL_regcomp_rx);            \
        Perl_croak(aTHX_ "/%.127s/: %s",  PL_regprecomp,m);             \
     } STMT_END
 
 #define        FAIL2(pat,m) \
     STMT_START {                                                       \
        if (!SIZE_ONLY)                                                 \
-           SAVEDESTRUCTOR(clear_re,(void*)PL_regcomp_rx);              \
+           SAVEDESTRUCTOR_X(clear_re,(void*)PL_regcomp_rx);            \
        S_re_croak2(aTHX_ "/%.127s/: ",pat,PL_regprecomp,m);            \
     } STMT_END
 
index ed74369..65a3b90 100644 (file)
--- a/regexec.c
+++ b/regexec.c
@@ -1509,7 +1509,7 @@ S_regtry(pTHX_ regexp *prog, char *startpos)
            }
            PL_reg_magic    = mg;
            PL_reg_oldpos   = mg->mg_len;
-           SAVEDESTRUCTOR(restore_pos, 0);
+           SAVEDESTRUCTOR_X(restore_pos, 0);
         }
        if (!PL_reg_curpm)
            New(22,PL_reg_curpm, 1, PMOP);
diff --git a/scope.c b/scope.c
index 8952f43..9ee0429 100644 (file)
--- a/scope.c
+++ b/scope.c
@@ -541,7 +541,7 @@ Perl_save_list(pTHX_ register SV **sarg, I32 maxsarg)
 }
 
 void
-Perl_save_destructor(pTHX_ DESTRUCTORFUNC_t f, void* p)
+Perl_save_destructor(pTHX_ DESTRUCTORFUNC_NOCONTEXT_t f, void* p)
 {
     dTHR;
     SSCHECK(3);
@@ -551,6 +551,16 @@ Perl_save_destructor(pTHX_ DESTRUCTORFUNC_t f, void* p)
 }
 
 void
+Perl_save_destructor_x(pTHX_ DESTRUCTORFUNC_t f, void* p)
+{
+    dTHR;
+    SSCHECK(3);
+    SSPUSHDXPTR(f);
+    SSPUSHPTR(p);
+    SSPUSHINT(SAVEt_DESTRUCTOR_X);
+}
+
+void
 Perl_save_aelem(pTHX_ AV *av, I32 idx, SV **sptr)
 {
     dTHR;
@@ -831,7 +841,11 @@ Perl_leave_scope(pTHX_ I32 base)
            break;
        case SAVEt_DESTRUCTOR:
            ptr = SSPOPPTR;
-           CALLDESTRUCTOR(aTHXo_ ptr);
+           (*SSPOPDPTR)(ptr);
+           break;
+       case SAVEt_DESTRUCTOR_X:
+           ptr = SSPOPPTR;
+           (*SSPOPDXPTR)(aTHXo_ ptr);
            break;
        case SAVEt_REGCONTEXT:
        case SAVEt_ALLOC:
diff --git a/scope.h b/scope.h
index c975cd1..f481306 100644 (file)
--- a/scope.h
+++ b/scope.h
@@ -28,6 +28,7 @@
 #define SAVEt_HINTS            27
 #define SAVEt_ALLOC            28
 #define SAVEt_GENERIC_SVREF    29
+#define SAVEt_DESTRUCTOR_X     30
 
 #define SSCHECK(need) if (PL_savestack_ix + need > PL_savestack_max) savestack_grow()
 #define SSPUSHINT(i) (PL_savestack[PL_savestack_ix++].any_i32 = (I32)(i))
 #define SSPUSHIV(i) (PL_savestack[PL_savestack_ix++].any_iv = (IV)(i))
 #define SSPUSHPTR(p) (PL_savestack[PL_savestack_ix++].any_ptr = (void*)(p))
 #define SSPUSHDPTR(p) (PL_savestack[PL_savestack_ix++].any_dptr = (p))
+#define SSPUSHDXPTR(p) (PL_savestack[PL_savestack_ix++].any_dxptr = (p))
 #define SSPOPINT (PL_savestack[--PL_savestack_ix].any_i32)
 #define SSPOPLONG (PL_savestack[--PL_savestack_ix].any_long)
 #define SSPOPIV (PL_savestack[--PL_savestack_ix].any_iv)
 #define SSPOPPTR (PL_savestack[--PL_savestack_ix].any_ptr)
 #define SSPOPDPTR (PL_savestack[--PL_savestack_ix].any_dptr)
+#define SSPOPDXPTR (PL_savestack[--PL_savestack_ix].any_dxptr)
 
 #define SAVETMPS save_int((int*)&PL_tmps_floor), PL_tmps_floor = PL_tmps_ix
 #define FREETMPS if (PL_tmps_ix > PL_tmps_floor) free_tmps()
 #define SAVEGENERICSV(s)       save_generic_svref((SV**)&(s))
 #define SAVEDELETE(h,k,l) \
          save_delete(SOFT_CAST(HV*)(h), SOFT_CAST(char*)(k), (I32)(l))
-#define CALLDESTRUCTOR (*SSPOPDPTR)
 #define SAVEDESTRUCTOR(f,p) \
-         save_destructor((DESTRUCTORFUNC_t)(f), SOFT_CAST(void*)(p))
+         save_destructor((DESTRUCTORFUNC_NOCONTEXT_t)(f), SOFT_CAST(void*)(p))
+
+#define SAVEDESTRUCTOR_X(f,p) \
+         save_destructor_x((DESTRUCTORFUNC_t)(f), SOFT_CAST(void*)(p))
 
 #define SAVESTACK_POS() \
     STMT_START {                               \
diff --git a/toke.c b/toke.c
index 58b82df..4cab2a2 100644 (file)
--- a/toke.c
+++ b/toke.c
@@ -375,13 +375,13 @@ Perl_lex_start(pTHX_ SV *line)
     SAVESPTR(PL_linestr);
     SAVEPPTR(PL_lex_brackstack);
     SAVEPPTR(PL_lex_casestack);
-    SAVEDESTRUCTOR(restore_rsfp, PL_rsfp);
+    SAVEDESTRUCTOR_X(restore_rsfp, PL_rsfp);
     SAVESPTR(PL_lex_stuff);
     SAVEI32(PL_lex_defer);
     SAVEI32(PL_sublex_info.sub_inwhat);
     SAVESPTR(PL_lex_repl);
-    SAVEDESTRUCTOR(restore_expect, PL_tokenbuf + PL_expect); /* encode as pointer */
-    SAVEDESTRUCTOR(restore_lex_expect, PL_tokenbuf + PL_expect);
+    SAVEDESTRUCTOR_X(restore_expect, PL_tokenbuf + PL_expect); /* encode as pointer */
+    SAVEDESTRUCTOR_X(restore_lex_expect, PL_tokenbuf + PL_expect);
 
     PL_lex_state = LEX_NORMAL;
     PL_lex_defer = 0;
index 08fa561..8014792 100644 (file)
@@ -30,7 +30,22 @@ struct ysv {
     YYSTYPE oldyylval;
 };
 
-static void yydestruct(pTHXo_ void *ptr);
+static void yydestruct(void *ptr);
+
+static void
+yydestruct(void *ptr)
+{
+    struct ysv* ysave = (struct ysv*)ptr;
+    if (ysave->yyss) Safefree(ysave->yyss);
+    if (ysave->yyvs) Safefree(ysave->yyvs);
+    yydebug    = ysave->oldyydebug;
+    yynerrs    = ysave->oldyynerrs;
+    yyerrflag  = ysave->oldyyerrflag;
+    yychar     = ysave->oldyychar;
+    yyval      = ysave->oldyyval;
+    yylval     = ysave->oldyylval;
+    Safefree(ysave);
+}
 
 #line 49 "perly.y"
 #if 0 /* get this from perly.h instead */
@@ -2481,23 +2496,3 @@ yyabort:
 yyaccept:
     return retval;
 }
-
-#ifdef PERL_OBJECT
-#define NO_XSLOCKS
-#include "XSUB.h"
-#endif
-
-static void
-yydestruct(pTHXo_ void *ptr)
-{
-    struct ysv* ysave = (struct ysv*)ptr;
-    if (ysave->yyss) Safefree(ysave->yyss);
-    if (ysave->yyvs) Safefree(ysave->yyvs);
-    yydebug    = ysave->oldyydebug;
-    yynerrs    = ysave->oldyynerrs;
-    yyerrflag  = ysave->oldyyerrflag;
-    yychar     = ysave->oldyychar;
-    yyval      = ysave->oldyyval;
-    yylval     = ysave->oldyylval;
-    Safefree(ysave);
-}