summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--embed.h4
-rwxr-xr-xembed.pl3
-rw-r--r--ext/Devel/DProf/DProf.xs2
-rw-r--r--global.sym1
-rw-r--r--mg.c6
-rw-r--r--objXSUB.h4
-rw-r--r--perl.h4
-rw-r--r--perlapi.c9
-rw-r--r--perly.c37
-rw-r--r--perly.y17
-rw-r--r--perly_c.diff22
-rw-r--r--pod/perlguts.pod9
-rw-r--r--pod/perltoc.pod918
-rw-r--r--pp.c2
-rw-r--r--pp_hot.c6
-rw-r--r--proto.h3
-rw-r--r--regcomp.h4
-rw-r--r--regexec.c2
-rw-r--r--scope.c18
-rw-r--r--scope.h9
-rw-r--r--toke.c6
-rw-r--r--vms/perly_c.vms37
22 files changed, 814 insertions, 309 deletions
diff --git a/embed.h b/embed.h
index fa457d2839..18953ae651 100644
--- a/embed.h
+++ b/embed.h
@@ -540,6 +540,7 @@
#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
@@ -1899,6 +1900,7 @@
#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)
@@ -3730,6 +3732,8 @@
#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
diff --git a/embed.pl b/embed.pl
index 9f90d53284..e44ba23dd0 100755
--- 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
diff --git a/ext/Devel/DProf/DProf.xs b/ext/Devel/DProf/DProf.xs
index 69f0b899a3..220a1e2e92 100644
--- a/ext/Devel/DProf/DProf.xs
+++ b/ext/Devel/DProf/DProf.xs
@@ -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 );
diff --git a/global.sym b/global.sym
index 7200c602a0..ecde292073 100644
--- a/global.sym
+++ b/global.sym
@@ -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 f72d2875d8..b08cee356b 100644
--- 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);
diff --git a/objXSUB.h b/objXSUB.h
index cd8f2d8612..9620006725 100644
--- a/objXSUB.h
+++ b/objXSUB.h
@@ -2706,6 +2706,10 @@
#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 e8c9c1ec82..5baf49a93c 100644
--- 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*);
diff --git a/perlapi.c b/perlapi.c
index 0f20e54a47..ac38dffdfb 100644
--- 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 9b619c9fcb..0ed07fcf12 100644
--- 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 c8163e135e..93e5f77af9 100644
--- 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);
+}
%}
diff --git a/perly_c.diff b/perly_c.diff
index 7ade2f3b01..f42a10c9ef 100644
--- a/perly_c.diff
+++ b/perly_c.diff
@@ -134,7 +134,7 @@
yyaccept:
! return (0);
}
---- 2524,2570 ----
+--- 2524,2550 ----
#endif
if (yyssp >= yyss + yystacksize - 1)
{
@@ -161,24 +161,4 @@
! 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);
}
diff --git a/pod/perlguts.pod b/pod/perlguts.pod
index d0f916786c..a8d820ef2e 100644
--- a/pod/perlguts.pod
+++ b/pod/perlguts.pod
@@ -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()>
diff --git a/pod/perltoc.pod b/pod/perltoc.pod
index 5842f18250..dee5951db5 100644
--- a/pod/perltoc.pod
+++ b/pod/perltoc.pod
@@ -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 6b45946db4..41aeeebe1e 100644
--- 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
diff --git a/pp_hot.c b/pp_hot.c
index 78a454ccd8..344b8086c1 100644
--- 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 2f68d9bd69..6551c31179 100644
--- 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);
diff --git a/regcomp.h b/regcomp.h
index e30c8e7ca5..d6ee2f1be4 100644
--- 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
diff --git a/regexec.c b/regexec.c
index ed7436933b..65a3b90e74 100644
--- 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 8952f43a59..9ee0429e02 100644
--- 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 c975cd188f..f481306564 100644
--- 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))
@@ -35,11 +36,13 @@
#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()
@@ -81,9 +84,11 @@
#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 58b82df8cf..4cab2a22dc 100644
--- 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;
diff --git a/vms/perly_c.vms b/vms/perly_c.vms
index 08fa561bee..8014792169 100644
--- a/vms/perly_c.vms
+++ b/vms/perly_c.vms
@@ -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);
-}