# ignore bug*.pl
bug*.pl
+# Exists during ./Configure
+/UU
+
# files produced by './configure.gnu' on a Linux machine
Makefile.old
/Makefile
Anton Berezin <tobez@tobez.org>
Anton Tagunov <tagunov@motor.ru>
Archer Sully <archer@meer.net>
+Aristotle Pagaltzis <pagaltzis@gmx.de>
Arjen Laarhoven <arjen@nl.demon.net>
+Arkturuz <arkturuz@gmail.com>
Arne Ahrend <aahrend@web.de>
Arnold D. Robbins <arnold@gnu.ai.mit.edu>
Art Green <Art_Green@mercmarine.com>
Craig A. Berry <craigberry@mac.com>
Craig Milo Rogers <Rogers@ISI.EDU>
Curtis Poe <cp@onsitetech.com>
+Curtis Jewell <perl@csjewell.fastmail.us>
Dagfinn Ilmari Mannsåker <ilmari@ilmari.org>
Dale Amon <amon@vnl.com>
Damian Conway <damian@conway.org>
James A. Duncan <jduncan@fotango.com>
James FitzGibbon <james@ican.net>
James Jurach <muaddib@erf.net>
+James E Keenan <jkeen@verizon.net>
James Mastros <james@mastros.biz>
Jamshid Afshar
Jan D. <jan.djarv@mbox200.swipnet.se>
Kingpin <mthurn@copper.dulles.tasc.com>
Kirrily Robert <skud@infotrope.net>
Kiyotaka Sakai <ksakai@netwk.ntt-at.co.jp>
+kmx <kmx@volny.cz>
Kragen Sitaker <kragen@pobox.com>
Krishna Sethuraman <krishna@sgi.com>
Kriton Kyrimis <kyrimis@princeton.edu>
Mark Fowler <mark@twoshortplanks.com>
Mark Hanson
Mark J. Reed <mreed@strange.turner.com>
+Mark Jason Dominus <mjd@plover.com>
Mark K Trettin <mkt@lucent.com>
Mark Kaehny <kaehny@execpc.com>
Mark Kettenis <kettenis@wins.uva.nl>
Mark Pizzolato <mark@infocomm.com>
Mark R. Levinson <mrl@isc.upenn.edu>
Mark Stosberg <mark@summersault.com>
-Mark-Jason Dominus <mjd@plover.com>
Marko Asplund <aspa@merlot.kronodoc.fi>
Marnix van Ammers <marnix@gmail.com>
Martien Verbruggen <mgjv@comdyn.com.au>
Matt Kraai <kraai@ftbfs.org>
Matt Sergeant <matt@sergeant.org>
Matt Taggart <taggart@debian.org>
+Matt S Trout <mst@shadowcat.co.uk>
Matthew Black <black@csulb.edu>
Matthew Green <mrg@splode.eterna.com.au>
Matthew Sachs <matthewg@zevils.com>
Nicholas Clark <nick@ccl4.org>
Nicholas Oxhøj
Nicholas Perez <nperez@cpan.org>
+Nick Cleaton <nick@cleaton.net>
Nick Duffek
Nick Gianniotis
Nick Ing-Simmons
Reini Urban <rurban@x-ray.at>
Renee Baecker <renee.baecker@smart-websolutions.de>
Rex Dieter <rdieter@math.unl.edu>
-Ricardo SIGNES <rjbs@cpan.org>
+Ricardo Signes <rjbs@cpan.org>
Rich Morin <rdm@cfcl.com>
Rich Rauenzahn <rrauenza@hp.com>
Rich Salz <rsalz@bbn.com>
Ruben Schattevoy <schattev@imb-jena.de>
Rudolph Todd Maceyko <rm55+@pitt.edu>
Rujith S. de Silva <desilva@netbox.com>
+Ruslan Zakirov <ruz@bestpractical.com>
Russ Allbery <rra@stanford.edu>
Russell Fulton <russell@ccu1.auckland.ac.nz>
Russell Mosemann <mose@ccsn.edu>
Spiros Denaxas <spiros@lokku.com>
Sreeji K Das <sreeji_k@yahoo.com>
Stas Bekman <stas@stason.org>
-Steffen Müller <7k8lrvf02@sneakemail.com>
+Steffen Müller <smueller@cpan.org>
Steffen Ullrich <coyote.frank@gmx.net>
Stéphane Payrard <stef@mongueurs.net>
Stepan Kasal <skasal@redhat.com>
Stephen Zander <gibreel@pobox.com>
Steve A Fink <sfink@cs.berkeley.edu>
Steve Grazzini <grazz@pobox.com>
-Steve Hay <SteveHay@planit.com>
+Steve Hay <steve.m.hay@googlemail.com>
Steve Kelem <steve.kelem@xilinx.com>
Steve McDougall <swmcd@world.std.com>
Steve Nielsen <spn@enteract.com>
Timur I. Bakeyev <bsdi@listserv.bat.ru>
Tkil <tkil@reptile.scrye.com>
Todd C. Miller <Todd.Miller@courtesan.com>
+Todd Rinaldo <toddr@cpanel.net>
Todd T. Fries <todd@fries.int.mrleng.com>
Todd Vierling <tv@duh.org>
Tom Bates <tom_bates@att.net>
# $Id: Head.U 6 2006-08-25 22:21:46Z rmanfredi $
#
-# Generated on Fri Nov 6 07:43:05 CET 2009 [metaconfig 3.5 PL0]
+# Generated on Mon Mar 29 10:12:43 CEST 2010 [metaconfig 3.5 PL0]
# (with additional metaconfig patches by perlbug@perl.org)
cat >c1$$ <<EOF
rm -f c1$$ c2$$
if test -f /dev/cputype -a -f /dev/drivers -a -f /dev/osversion; then
- cat >&4 <<EOF
+ cat <<EOF
***
*** I'm sorry but this system looks like Plan 9 and Plan 9 doesn't do
*** Configure that well. (Plan 9 is close to UNIX but not close enough.)
fi
if test ! -c /dev/null ; then
- cat >&4 <<EOF
+ cat <<EOF
***
*** I'm sorry, but /dev/null appears to be a file rather than a device.
*** Please consult your operating sytem's notes for making a device
d_pipe=''
d_poll=''
d_portable=''
+d_prctl=''
+d_prctl_set_name=''
d_procselfexe=''
procselfexe=''
d_old_pthread_create_joinable=''
incpath=''
mips_type=''
usrinc=''
+vaproto=''
d_vendorarch=''
installvendorarch=''
vendorarch=''
_egrep=$grep
;;
esac
+case "$less" in
+'') ;;
+*) if $less -R </dev/null >/dev/null; then
+ echo "Substituting less -R for less."
+ less="$less -R"
+ _less=$less
+ fi
+ ;;
+esac
case "$ln" in
ln)
echo "Substituting cp for ln."
: DTrace support
dflt_dtrace='/usr/sbin/dtrace'
+$test -x /usr/bin/dtrace && dflt_dtrace='/usr/bin/dtrace'
+
cat <<EOM
Perl can be built to support DTrace on platforms that support it.
set poll d_poll
eval $inlibc
+: see if prctl exists
+set prctl d_prctl
+eval $inlibc
+
+: see if prctl supports PR_SET_NAME
+d_prctl_set_name=$undef
+case $d_prctl in
+ $define)
+ $cat >try.c <<EOM
+#include <sys/prctl.h>
+
+int main (int argc, char *argv[])
+{
+ return (prctl (PR_SET_NAME, "Test"));
+ } /* main */
+EOM
+ set try
+ if eval $compile_ok && $run ./try; then
+ echo "Your prctl (PR_SET_NAME, ...) works"
+ d_prctl_set_name=$define
+ fi
+ $rm_try
+ ;;
+ esac
+
: see if readlink exists
set readlink d_readlink
eval $inlibc
;;
esac
+: see if prototypes support variable argument declarations
+echo " "
+case "$prototype$i_stdarg" in
+$define$define)
+ echo "It appears we'll be able to prototype varargs functions." >&4
+ val="$define"
+ ;;
+*)
+ echo "Too bad... We won't be using prototyped varargs functions..." >&4
+ val="$undef"
+ ;;
+esac
+set vaproto
+eval $setvar
+
: determine compiler compiler
case "$yacc" in
'')
./Cppsym < Cppsym.know > Cppsym.true
: Add in any linux cpp "predefined macros":
case "$osname::$gccversion" in
- *linux*::*.*|*gnukfreebsd*::*.*)
+ *linux*::*.*|*gnukfreebsd*::*.*|gnu::*.*)
tHdrH=_tmpHdr
rm -f $tHdrH'.h' $tHdrH
touch $tHdrH'.h'
d_pipe='$d_pipe'
d_poll='$d_poll'
d_portable='$d_portable'
+d_prctl='$d_prctl'
+d_prctl_set_name='$d_prctl_set_name'
d_printf_format_null='$d_printf_format_null'
d_procselfexe='$d_procselfexe'
d_pseudofork='$d_pseudofork'
uvtype='$uvtype'
uvuformat='$uvuformat'
uvxformat='$uvxformat'
+vaproto='$vaproto'
vendorarch='$vendorarch'
vendorarchexp='$vendorarchexp'
vendorbin='$vendorbin'
aphostname='/bin/hostname'
api_revision='5'
api_subversion='0'
-api_version='11'
-api_versionstring='5.11.0'
+api_version='13'
+api_versionstring='5.13.0'
ar='ar'
-archlib='/usr/lib/perl5/5.11.3/armv4l-linux'
-archlibexp='/usr/lib/perl5/5.11.3/armv4l-linux'
+archlib='/usr/lib/perl5/5.13.0/armv4l-linux'
+archlibexp='/usr/lib/perl5/5.13.0/armv4l-linux'
archname64=''
archname='armv4l-linux'
archobjs=''
cat='cat'
cc='cc'
cccdlflags='-fpic'
-ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.11.3/armv4l-linux/CORE'
+ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.13.0/armv4l-linux/CORE'
ccflags='-fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
ccname='arm-linux-gcc'
d_pipe='define'
d_poll='define'
d_portable='define'
+d_prctl='define'
+d_prctl_set_name='define'
d_printf_format_null='undef'
d_procselfexe='define'
d_pseudofork='undef'
inc_version_list_init='0'
incpath=''
inews=''
-installarchlib='./install_me_here/usr/lib/perl5/5.11.3/armv4l-linux'
+installarchlib='./install_me_here/usr/lib/perl5/5.13.0/armv4l-linux'
installbin='./install_me_here/usr/bin'
installhtml1dir=''
installhtml3dir=''
installman3dir='./install_me_here/usr/share/man/man3'
installprefix='./install_me_here/usr'
installprefixexp='./install_me_here/usr'
-installprivlib='./install_me_here/usr/lib/perl5/5.11.3'
+installprivlib='./install_me_here/usr/lib/perl5/5.13.0'
installscript='./install_me_here/usr/bin'
-installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.11.3/armv4l-linux'
+installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.13.0/armv4l-linux'
installsitebin='./install_me_here/usr/bin'
installsitehtml1dir=''
installsitehtml3dir=''
-installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.11.3'
+installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.13.0'
installsiteman1dir='./install_me_here/usr/share/man/man1'
installsiteman3dir='./install_me_here/usr/share/man/man3'
installsitescript='./install_me_here/usr/bin'
pr=''
prefix='/usr'
prefixexp='/usr'
-privlib='/usr/lib/perl5/5.11.3'
-privlibexp='/usr/lib/perl5/5.11.3'
+privlib='/usr/lib/perl5/5.13.0'
+privlibexp='/usr/lib/perl5/5.13.0'
procselfexe='"/proc/self/exe"'
prototype='define'
ptrsize='4'
sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 6, 17, 29, 31, 0'
sig_size='68'
signal_t='void'
-sitearch='/usr/lib/perl5/site_perl/5.11.3/armv4l-linux'
-sitearchexp='/usr/lib/perl5/site_perl/5.11.3/armv4l-linux'
+sitearch='/usr/lib/perl5/site_perl/5.13.0/armv4l-linux'
+sitearchexp='/usr/lib/perl5/site_perl/5.13.0/armv4l-linux'
sitebin='/usr/bin'
sitebinexp='/usr/bin'
sitehtml1dir=''
sitehtml1direxp=''
sitehtml3dir=''
sitehtml3direxp=''
-sitelib='/usr/lib/perl5/site_perl/5.11.3'
+sitelib='/usr/lib/perl5/site_perl/5.13.0'
sitelib_stem='/usr/lib/perl5/site_perl'
-sitelibexp='/usr/lib/perl5/site_perl/5.11.3'
+sitelibexp='/usr/lib/perl5/site_perl/5.13.0'
siteman1dir='/usr/share/man/man1'
siteman1direxp='/usr/share/man/man1'
siteman3dir='/usr/share/man/man3'
strerror_r_proto='0'
strings='/usr/include/string.h'
submit=''
-subversion='3'
+subversion='0'
sysman='/usr/share/man/man1'
tail=''
tar=''
uvtype='unsigned long'
uvuformat='"lu"'
uvxformat='"lx"'
+vaproto='undef'
vendorarch=''
vendorarchexp=''
vendorbin=''
vendorprefixexp=''
vendorscript=''
vendorscriptexp=''
-version='5.11.3'
-version_patchlevel_string='version 11 subversion 3'
+version='5.13.0'
+version_patchlevel_string='version 13 subversion 0'
versiononly='undef'
vi=''
voidflags='15'
config_args=''
config_argc=0
PERL_REVISION=5
-PERL_VERSION=11
-PERL_SUBVERSION=3
+PERL_VERSION=13
+PERL_SUBVERSION=0
PERL_API_REVISION=5
-PERL_API_VERSION=11
+PERL_API_VERSION=13
PERL_API_SUBVERSION=0
PERL_PATCHLEVEL=
PERL_CONFIG_SH=true
aphostname='/bin/hostname'
api_revision='5'
api_subversion='0'
-api_version='11'
-api_versionstring='5.11.0'
+api_version='13'
+api_versionstring='5.13.0'
ar='ar'
-archlib='/usr/lib/perl5/5.11.3/armv4l-linux'
-archlibexp='/usr/lib/perl5/5.11.3/armv4l-linux'
+archlib='/usr/lib/perl5/5.13.0/armv4l-linux'
+archlibexp='/usr/lib/perl5/5.13.0/armv4l-linux'
archname64=''
archname='armv4l-linux'
archobjs=''
cat='cat'
cc='arm-none-linux-gnueabi-gcc'
cccdlflags='-fpic'
-ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.11.3/armv4l-linux/CORE'
+ccdlflags='-rdynamic -Wl,-rpath,/usr/lib/perl5/5.13.0/armv4l-linux/CORE'
ccflags='-fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
ccname='arm-linux-gcc'
inc_version_list_init='0'
incpath=''
inews=''
-installarchlib='./install_me_here/usr/lib/perl5/5.11.3/armv4l-linux'
+installarchlib='./install_me_here/usr/lib/perl5/5.13.0/armv4l-linux'
installbin='./install_me_here/usr/bin'
installhtml1dir=''
installhtml3dir=''
installman3dir='./install_me_here/usr/share/man/man3'
installprefix='./install_me_here/usr'
installprefixexp='./install_me_here/usr'
-installprivlib='./install_me_here/usr/lib/perl5/5.11.3'
+installprivlib='./install_me_here/usr/lib/perl5/5.13.0'
installscript='./install_me_here/usr/bin'
-installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.11.3/armv4l-linux'
+installsitearch='./install_me_here/usr/lib/perl5/site_perl/5.13.0/armv4l-linux'
installsitebin='./install_me_here/usr/bin'
installsitehtml1dir=''
installsitehtml3dir=''
-installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.11.3'
+installsitelib='./install_me_here/usr/lib/perl5/site_perl/5.13.0'
installsiteman1dir='./install_me_here/usr/share/man/man1'
installsiteman3dir='./install_me_here/usr/share/man/man3'
installsitescript='./install_me_here/usr/bin'
pr=''
prefix='/usr'
prefixexp='/usr'
-privlib='/usr/lib/perl5/5.11.3'
-privlibexp='/usr/lib/perl5/5.11.3'
+privlib='/usr/lib/perl5/5.13.0'
+privlibexp='/usr/lib/perl5/5.13.0'
procselfexe='"/proc/self/exe"'
prototype='define'
ptrsize='4'
sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 6, 17, 29, 31, 0'
sig_size='68'
signal_t='void'
-sitearch='/usr/lib/perl5/site_perl/5.11.3/armv4l-linux'
-sitearchexp='/usr/lib/perl5/site_perl/5.11.3/armv4l-linux'
+sitearch='/usr/lib/perl5/site_perl/5.13.0/armv4l-linux'
+sitearchexp='/usr/lib/perl5/site_perl/5.13.0/armv4l-linux'
sitebin='/usr/bin'
sitebinexp='/usr/bin'
sitehtml1dir=''
sitehtml1direxp=''
sitehtml3dir=''
sitehtml3direxp=''
-sitelib='/usr/lib/perl5/site_perl/5.11.3'
+sitelib='/usr/lib/perl5/site_perl/5.13.0'
sitelib_stem='/usr/lib/perl5/site_perl'
-sitelibexp='/usr/lib/perl5/site_perl/5.11.3'
+sitelibexp='/usr/lib/perl5/site_perl/5.13.0'
siteman1dir='/usr/share/man/man1'
siteman1direxp='/usr/share/man/man1'
siteman3dir='/usr/share/man/man3'
strerror_r_proto='0'
strings='/usr/include/string.h'
submit=''
-subversion='3'
+subversion='0'
sysman='/usr/share/man/man1'
tail=''
tar=''
vendorprefixexp=''
vendorscript=''
vendorscriptexp=''
-version='5.11.3'
-version_patchlevel_string='version 11 subversion 3'
+version='5.13.0'
+version_patchlevel_string='version 13 subversion 0'
versiononly='undef'
vi=''
voidflags='15'
config_args=''
config_argc=0
PERL_REVISION=5
-PERL_VERSION=11
-PERL_SUBVERSION=3
+PERL_VERSION=13
+PERL_SUBVERSION=0
PERL_API_REVISION=5
-PERL_API_VERSION=11
+PERL_API_VERSION=13
PERL_API_SUBVERSION=0
PERL_PATCHLEVEL=
PERL_CONFIG_SH=true
L<"Reporting Problems"> below.
For information on what's new in this release, see the
-pod/perl5113delta.pod file. For more information about how to find more
+pod/perl5131delta.pod file. For more information about how to find more
specific detail about changes, see the Changes file.
=head1 DESCRIPTION
=head2 Changes and Incompatibilities
-Please see pod/perl5113delta.pod for a description of the changes and
+Please see pod/perl5131delta.pod for a description of the changes and
potential incompatibilities introduced with this release. A few of
the most important issues are listed below, but you should refer
-to pod/perl5113delta.pod for more detailed information.
+to pod/perl5131delta.pod for more detailed information.
B<WARNING:> This version is not binary compatible with prior releases of Perl.
If you have built extensions (i.e. modules that include C code)
On a related issue, old modules may possibly be affected by the changes
in the Perl language in the current release. Please see
-pod/perl5113delta.pod for a description of what's changed. See your
+pod/perl5131delta.pod for a description of what's changed. See your
installed copy of the perllocal.pod file for a (possibly incomplete)
list of locally installed modules. Also see CPAN::autobundle for one
way to make a "bundle" of your currently installed modules.
On these systems, it might be the default compilation mode, and there
is currently no guarantee that passing no use64bitall option to the
Configure process will build a 32bit perl. Implementing -Duse32bit*
-options is planned for perl 5.12.
+options is planned for a future release of perl.
=head3 Long doubles
=item Directories for the perl distribution
-By default, Configure will use the following directories for 5.11.3.
+By default, Configure will use the following directories for 5.13.1.
$version is the full perl version number, including subversion, e.g.
-5.11.3 or 5.9.5, and $archname is a string like sun4-sunos,
+5.13.1 or 5.9.5, and $archname is a string like sun4-sunos,
determined by Configure. The full definitions of all Configure
variables are in the file Porting/Glossary.
"-Duserelocatableinc" is that everything is relocated. The initial
install is done to the original configured prefix.
+This option is not compatible with the building of a shared libperl
+("-Duseshrplib"), because in that case perl is linked with an hard-coded
+rpath that points at the libperl.so, that cannot be relocated.
+
=head2 Site-wide Policy settings
After Configure runs, it stores a number of common site-wide "policy"
To disable certain extensions so that they are not built, use the
-Dnoextensions=... and -Donlyextensions=... options. They both accept
-a space-separated list of extensions. The extensions listed in
+a space-separated list of extensions, such as C<IPC/SysV>. The extensions
+listed in
C<noextensions> are removed from the list of extensions to build, while
the C<onlyextensions> is rather more severe and builds only the listed
extensions. The latter should be used with extreme caution since
SCO prior to 3.2.4 may be missing dbmclose(). An upgrade to 3.2.4
that includes libdbm.nfs (which includes dbmclose()) may be available.
+=item error: too few arguments to function 'dbmclose'
+
+Building ODBM_File on some (Open)SUSE distributions might run into this
+error, as the header file is broken. There are two ways to deal with this
+
+ 1. Disable the use of ODBM_FILE
+
+ Configure ... -Dnoextensions=ODBM_File
+
+ 2. Fix the header file, somewhat like this:
+
+ --- a/usr/include/dbm.h 2010-03-24 08:54:59.000000000 +0100
+ +++ b/usr/include/dbm.h 2010-03-24 08:55:15.000000000 +0100
+ @@ -59,4 +59,4 @@ extern datum firstkey __P((void));
+
+ extern datum nextkey __P((datum key));
+
+ -extern int dbmclose __P((DBM *));
+ +extern int dbmclose __P((void));
+
=item Note (probably harmless): No library found for -lsomething
If you see such a message during the building of an extension, but
by hand to see if it makes any difference. If individual tests
bomb, you can run them by hand, e.g.,
- cd t ; ./perl -MTestInit op/groups.t
+ ./perl -MTestInit t/op/groups.t
Another way to get more detailed information about failed tests and
individual subtests is to cd to the t directory and run
=head1 Coexistence with earlier versions of perl 5
-Perl 5.11 is not binary compatible with earlier versions of Perl.
+Perl 5.12 is not binary compatible with earlier versions of Perl.
In other words, you will have to recompile your XS modules.
In general, you can usually safely upgrade from one version of Perl (e.g.
libraries after 5.6.0, but not for executables. TODO?) One convenient
way to do this is by using a separate prefix for each version, such as
- sh Configure -Dprefix=/opt/perl5.11.3
+ sh Configure -Dprefix=/opt/perl5.13.1
-and adding /opt/perl5.11.3/bin to the shell PATH variable. Such users
+and adding /opt/perl5.13.1/bin to the shell PATH variable. Such users
may also wish to add a symbolic link /usr/local/bin/perl so that
scripts can still start with #!/usr/local/bin/perl.
=head2 Upgrading from 5.11.0 or earlier
-B<Perl 5.11.3 is binary incompatible with Perl 5.11.1 and any earlier
+B<Perl 5.13.1 is binary incompatible with Perl 5.11.1 and any earlier
Perl release.> Perl modules having binary parts
(meaning that a C compiler is used) will have to be recompiled to be
-used with 5.11.3. If you find you do need to rebuild an extension with
-5.11.3, you may safely do so without disturbing the older
+used with 5.13.1. If you find you do need to rebuild an extension with
+5.13.1, you may safely do so without disturbing the older
installations. (See L<"Coexistence with earlier versions of perl 5">
above.)
cpan/CGI/t/uploadInfo.t See if CGI.pm works
cpan/CGI/t/upload_post_text.txt Test data for CGI.pm
cpan/CGI/t/upload.t See if CGI.pm works
+cpan/CGI/t/url.t See if CGI.pm works
cpan/CGI/t/user_agent.t See if CGI->user_agent() works
cpan/CGI/t/utf8.t See if CGI.pm works
cpan/CGI/t/util-58.t See if 5.8-dependent features work
cpan/CGI/t/util.t See if CGI.pm works
-cpan/Class-ISA/ChangeLog Changes for Class::ISA
-cpan/Class-ISA/lib/Class/ISA.pm Class::ISA
-cpan/Class-ISA/t/00_about_verbose.t Tests for Class::ISA
-cpan/Class-ISA/t/01_old_junk.t Tests for Class::ISA
cpan/Compress-Raw-Bzip2/bzip2-src/blocksort.c
-cpan/Compress-Raw-Bzip2/bzip2-src/bzip2.c
-cpan/Compress-Raw-Bzip2/bzip2-src/bzip2recover.c
cpan/Compress-Raw-Bzip2/bzip2-src/bzlib.c
cpan/Compress-Raw-Bzip2/bzip2-src/bzlib.h
cpan/Compress-Raw-Bzip2/bzip2-src/bzlib_private.h
cpan/Compress-Raw-Bzip2/bzip2-src/compress.c
cpan/Compress-Raw-Bzip2/bzip2-src/crctable.c
cpan/Compress-Raw-Bzip2/bzip2-src/decompress.c
-cpan/Compress-Raw-Bzip2/bzip2-src/dlltest.c
cpan/Compress-Raw-Bzip2/bzip2-src/huffman.c
cpan/Compress-Raw-Bzip2/bzip2-src/LICENSE
-cpan/Compress-Raw-Bzip2/bzip2-src/mk251.c
cpan/Compress-Raw-Bzip2/bzip2-src/randtable.c
-cpan/Compress-Raw-Bzip2/bzip2-src/spewG.c
-cpan/Compress-Raw-Bzip2/bzip2-src/unzcrash.c
cpan/Compress-Raw-Bzip2/Bzip2.xs
cpan/Compress-Raw-Bzip2/Changes
cpan/Compress-Raw-Bzip2/fallback/constants.h
cpan/CPAN/lib/CPAN/Tarzip.pm helper package for CPAN.pm
cpan/CPAN/lib/CPAN/URL.pm
cpan/CPAN/lib/CPAN/Version.pm Simple math with different flavors of version strings
-cpan/CPAN/Makefile.PL
cpan/CPAN/PAUSE2003.pub CPAN public key
cpan/CPAN/PAUSE2005.pub CPAN public key
cpan/CPAN/PAUSE2007.pub CPAN public key
cpan/ExtUtils-ParseXS/lib/ExtUtils/ParseXS.pm converts Perl XS code into C code
cpan/ExtUtils-ParseXS/lib/ExtUtils/xsubpp External subroutine preprocessor
cpan/ExtUtils-ParseXS/t/basic.t See if ExtUtils::ParseXS works
+cpan/ExtUtils-ParseXS/t/lib/IncludeTester.pm ExtUtils::ParseXS testing utility
cpan/ExtUtils-ParseXS/t/more.t Extended ExtUtils::ParseXS testing
cpan/ExtUtils-ParseXS/t/typemap Standard typemap for controlled testing
cpan/ExtUtils-ParseXS/t/usage.t ExtUtils::ParseXS tests
cpan/ExtUtils-ParseXS/t/XSUsage.xs ExtUtils::ParseXS tests
cpan/File-Fetch/lib/File/Fetch.pm File::Fetch
cpan/File-Fetch/t/01_File-Fetch.t File::Fetch tests
+cpan/File-Fetch/t/null_subclass.t
cpan/File-Path/lib/File/Path.pm Do things like 'mkdir -p' and 'rm -r'
cpan/File-Path/t/Path.t See if File::Path works
cpan/File-Path/t/taint.t See if File::Path works with -T
cpan/List-Util/t/weak.t Scalar::Util
cpan/List-Util/XS.pp List::Util
cpan/Locale-Codes/ChangeLog Locale::Codes
+cpan/Locale-Codes/lib/Locale/Codes/Changes.pod Locale::Codes documentation
+cpan/Locale-Codes/lib/Locale/Codes/Country.pm Locale::Codes
+cpan/Locale-Codes/lib/Locale/Codes/Currency.pm Locale::Codes
+cpan/Locale-Codes/lib/Locale/Codes/Language.pm Locale::Codes
+cpan/Locale-Codes/lib/Locale/Codes.pm Locale::Codes
+cpan/Locale-Codes/lib/Locale/Codes.pod Locale::Codes documentation
+cpan/Locale-Codes/lib/Locale/Codes/Script.pm Locale::Codes
cpan/Locale-Codes/lib/Locale/Constants.pm Locale::Codes
cpan/Locale-Codes/lib/Locale/Constants.pod Locale::Codes documentation
cpan/Locale-Codes/lib/Locale/Country.pm Locale::Codes
cpan/Locale-Codes/lib/Locale/Language.pod Locale::Codes documentation
cpan/Locale-Codes/lib/Locale/Script.pm Locale::Codes
cpan/Locale-Codes/lib/Locale/Script.pod Locale::Codes documentation
-cpan/Locale-Codes/Makefile.PL
-cpan/Locale-Codes/README Locale::Codes
-cpan/Locale-Codes/t/all.t See if Locale::Codes work
-cpan/Locale-Codes/t/constants.t See if Locale::Codes work
-cpan/Locale-Codes/t/country.t See if Locale::Codes work
-cpan/Locale-Codes/t/currency.t See if Locale::Codes work
-cpan/Locale-Codes/t/language.t See if Locale::Codes work
-cpan/Locale-Codes/t/rename.t See if Locale::Codes work
-cpan/Locale-Codes/t/script.t See if Locale::Codes work
-cpan/Locale-Codes/t/uk.t See if Locale::Codes work
+cpan/Locale-Codes/LICENSE Locale::Codes
+cpan/Locale-Codes/README.first Locale::Codes
+cpan/Locale-Codes/t/alias_code.t Locale::Codes tests
+cpan/Locale-Codes/t/code2country.t Locale::Codes tests
+cpan/Locale-Codes/t/code2currency.t Locale::Codes tests
+cpan/Locale-Codes/t/code2language.t Locale::Codes tests
+cpan/Locale-Codes/t/code2script.t Locale::Codes tests
+cpan/Locale-Codes/t/country2code.t Locale::Codes tests
+cpan/Locale-Codes/t/country_code2code.t Locale::Codes tests
+cpan/Locale-Codes/t/country.t Locale::Codes tests
+cpan/Locale-Codes/t/currency2code.t Locale::Codes tests
+cpan/Locale-Codes/t/language2code.t Locale::Codes tests
+cpan/Locale-Codes/t/language.t Locale::Codes tests
+cpan/Locale-Codes/t/script2code.t Locale::Codes tests
+cpan/Locale-Codes/t/testfunc.pl Locale::Codes tests
cpan/Locale-Maketext-Simple/lib/Locale/Maketext/Simple.pm Locale::Simple
cpan/Locale-Maketext-Simple/t/0-signature.t Locale::Simple tests
cpan/Locale-Maketext-Simple/t/1-basic.t Locale::Simple tests
cpan/podlators/t/basic.t podlators test
cpan/podlators/t/basic.txt podlators test
cpan/podlators/t/color.t podlators test
+cpan/podlators/t/devise-date.t podlators test
cpan/podlators/t/filehandle.t podlators test
+cpan/podlators/t/man-heading.t podlators test
cpan/podlators/t/man-options.t podlators test
cpan/podlators/t/man.t podlators test
cpan/podlators/t/man-utf8.t podlators test
+cpan/podlators/t/overstrike.t podlators test
cpan/podlators/t/parselink.t podlators test
cpan/podlators/t/pod-parser.t podlators test
cpan/podlators/t/pod-spelling.t podlators test
cpan/podlators/t/text-options.t podlators test
cpan/podlators/t/text.t podlators test
cpan/podlators/t/text-utf8.t podlators test
-cpan/podlators/VERSION podlators custom Makefile.PL
cpan/podlators/VERSION podlators distribution version
cpan/Pod-Parser/lib/Pod/Checker.pm Pod-Parser - check POD documents for syntax errors
cpan/Pod-Parser/lib/Pod/Find.pm used by pod/splitpod
dist/Data-Dumper/Todo Data pretty printer, futures
dist/Data-Dumper/t/overload.t See if Data::Dumper works for overloaded data
dist/Data-Dumper/t/pair.t See if Data::Dumper pair separator works
+dist/Data-Dumper/t/terse.t See if Data::Dumper terse option works
dist/ExtUtils-Install/Changes ExtUtils-Install change log
dist/ExtUtils-Install/lib/ExtUtils/Installed.pm Information on installed extensions
dist/ExtUtils-Install/lib/ExtUtils/Install.pm Handles 'make install' on extensions
dist/Pod-Perldoc/t/checkerbasic.t test Pod::Perldoc::ToChecker
dist/Pod-Perldoc/t/perldocbasic.t test Pod::Perldoc basic operation
dist/Pod-Perldoc/t/textbasic.t test Pod::Perldoc::ToText
-dist/Pod-Plainer/Plainer.pm Pod migration utility module
-dist/Pod-Plainer/t/plainer.t Test Pod::Plainer
dist/Safe/Changes Changes for Safe.pm
dist/Safe/Makefile.PL Makefile.PL for Safe.pm
dist/Safe/MANIFEST MANIFEST for Safe.pm
dist/Safe/t/safeops.t Tests that all ops can be trapped by Safe
dist/Safe/t/safesort.t Tests Safe with sort
dist/Safe/t/safeuniversal.t Tests Safe with functions from universal.c
+dist/Safe/t/safeutf8.t Tests Safe with utf8.pm
+dist/Safe/t/safewrap.t Tests Safe::wrap_code_ref()
dist/SelfLoader/lib/SelfLoader.pm Load functions only on demand
dist/SelfLoader/t/01SelfLoader.t See if SelfLoader works
dist/SelfLoader/t/02SelfLoader-buggy.t See if SelfLoader works
dist/Storable/t/utf8hash.t See if Storable works
dist/Storable/t/utf8.t See if Storable works
dist/Storable/t/weak.t Can Storable store weakrefs
-dist/Switch/Changes Changes for Switch.pm
-dist/Switch/Makefile.PL Makefile.PL for Switch.pm
-dist/Switch/MANIFEST MANIFEST for Switch.pm
-dist/Switch/META.yml META.yml for Switch.pm
-dist/Switch/README README for Switch.pm
-dist/Switch/Switch.pm Switch for Perl
-dist/Switch/t/given.t See if Perl 6 given (switch) works
-dist/Switch/t/nested.t See if nested switch works
-dist/Switch/t/switch.t See if Perl 5 switch works
dist/Thread-Queue/lib/Thread/Queue.pm Thread-safe queues
dist/Thread-Queue/t/01_basic.t Thread::Queue tests
dist/Thread-Queue/t/02_refs.t Thread::Queue tests
doop.c Support code for various operations
dosish.h Some defines for MS/DOSish machines
dump.c Debugging output
-emacs/cperl-mode.el An alternate perl-mode
-emacs/e2ctags.pl etags to ctags converter
-emacs/ptags Creates smart TAGS file
embed.fnc Database used by embed.pl
embed.h Maps symbols to safer names
embed.pl Produces {embed,embedvar,proto}.h, global.sym
ext/XS-APItest-KeywordRPN/README XS::APItest::KeywordRPN extension
ext/XS-APItest-KeywordRPN/t/keyword_plugin.t test keyword plugin mechanism
ext/XS-APItest-KeywordRPN/t/multiline.t test plugin parsing across lines
+ext/XS-APItest-KeywordRPN/t/stuff_svcur_bug.t test for a bug in lex_stuff_pvn
ext/XS-APItest/Makefile.PL XS::APItest extension
ext/XS-APItest/MANIFEST XS::APItest extension
ext/XS-APItest/notcore.c Test API functions when PERL_CORE is not defined
ext/XS-APItest/t/my_cxt.t XS::APItest: test MY_CXT interface
ext/XS-APItest/t/my_exit.t XS::APItest: test my_exit
ext/XS-APItest/t/op.t XS::APItest: tests for OP related APIs
-ext/XS-APItest/t/pmflag.t Test deprecation warning for Perl_pmflag()
+ext/XS-APItest/t/pmflag.t Test removal of Perl_pmflag()
ext/XS-APItest/t/printf.t XS::APItest extension
+ext/XS-APItest/t/ptr_table.t Test ptr_table_* APIs
ext/XS-APItest/t/push.t XS::APItest extension
ext/XS-APItest/t/rmagical.t XS::APItest extension
ext/XS-APItest/t/svpeek.t XS::APItest extension
ext/XS-APItest/t/utf16_to_utf8.t Test behaviour of utf16_to_utf8{,reversed}
ext/XS-APItest/t/xs_special_subs_require.t for require too
ext/XS-APItest/t/xs_special_subs.t Test that XS BEGIN/CHECK/INIT/END work
+ext/XS-APItest/typemap
ext/XS-Typemap/Makefile.PL XS::Typemap extension
ext/XS-Typemap/README XS::Typemap extension
ext/XS-Typemap/stdio.c XS::Typemap extension
lib/unicore/PropList.txt Unicode character database
lib/unicore/PropValueAliases.txt Unicode character database
lib/unicore/README.perl Unicode character database
-lib/unicore/README.perl Unicode character database
lib/unicore/ReadMe.txt Unicode character database info
lib/unicore/Scripts.txt Unicode character database
lib/unicore/SpecialCasing.txt Unicode character database
pod/perl5111delta.pod Perl changes in version 5.11.1
pod/perl5112delta.pod Perl changes in version 5.11.2
pod/perl5113delta.pod Perl changes in version 5.11.3
+pod/perl5114delta.pod Perl changes in version 5.11.4
+pod/perl5115delta.pod Perl changes in version 5.11.5
+pod/perl5120delta.pod Perl changes in version 5.12.0
+pod/perl5130delta.pod Perl changes in version 5.13.0
+pod/perl5131delta.pod Perl changes in version 5.13.1
pod/perl561delta.pod Perl changes in version 5.6.1
pod/perl56delta.pod Perl changes in version 5.6
pod/perl570delta.pod Perl changes in version 5.7.0
Porting/checkansi.pl Check source code for ANSI-C violations
Porting/checkAUTHORS.pl Check that the AUTHORS file is complete
Porting/checkcfgvar.pl Check that config scripts define all symbols
+Porting/check-cpan-pollution Check for commits that may wrongly touch CPAN distros
+Porting/checkpodencoding.pl Check POD encoding
Porting/checkURL.pl Check whether we have working URLs
Porting/checkVERSION.pl Check whether we have $VERSIONs
Porting/cmpVERSION.pl Compare whether two trees have changed modules
Porting/config.sh Sample config.sh
Porting/core-cpan-diff Compare core distros with their CPAN equivalents
Porting/corecpan.pl Reports outdated dual-lived modules
-Porting/corelist-perldelta.pl Generates data perldelta from Module::CoreList
+Porting/corelist-diff Tool to produce corelist diffs
+Porting/corelist-perldelta.pl Generates data perldelta from Module::CoreList
Porting/corelist.pl Generates data for Module::CoreList
Porting/curliff.pl Curliff or liff your curliffable files.
Porting/expand-macro.pl A tool to expand C macro definitions in the Perl source
t/io/binmode.t See if binmode() works
t/io/crlf.t See if :crlf works
t/io/crlf_through.t See if pipe passes data intact with :crlf
+t/io/defout.t See if PL_defoutgv works
t/io/dup.t See if >& works right
t/io/errno.t See if $! is correctly set
t/io/fflush.t See if auto-flush on fork/exec/system/qx works
t/op/dbm.t See if dbmopen/dbmclose work
t/op/defins.t See if auto-insert of defined() works
t/op/delete.t See if delete works
+t/op/die_except.t See if die/eval avoids $@ clobberage
t/op/die_exit.t See if die and exit status interaction works
+t/op/die_keeperr.t See if G_KEEPERR works for destructors
t/op/die.t See if die works
t/op/dor.t See if defined-or (//) works
t/op/do.t See if subroutines work
t/op/exists_sub.t See if exists(&sub) works
t/op/exp.t See if math functions work
t/op/fh.t See if filehandles work
+t/op/filehandle.t Tests for http://rt.perl.org/rt3/Ticket/Display.html?id=72586
t/op/filetest.t See if file tests work
t/op/filetest_t.t See if -t file test works
t/op/flip.t See if range operator works
t/op/or.t See if || works in weird situations
t/op/overload_integer.t See if overload::constant for integer works after "use".
t/op/override.t See if operator overriding works
+t/op/packagev.t See if package VERSION work
t/op/pack.t See if pack and unpack work
t/op/pos.t See if pos works
t/op/pow.t See if ** works
+t/op/protowarn.t See if the illegalproto warnings work
t/op/push.t See if push and pop work
t/op/pwent.t See if getpw*() functions work
t/op/qq.t See if qq works
t/op/reverse.t See if reverse operator works
t/op/runlevel.t See if die() works from perl_call_*()
t/op/setpgrpstack.t See if setpgrp works
+t/op/sigdispatch.t See if signals are always dispatched
t/op/sleep.t See if sleep works
t/op/smartmatch.t See if the ~~ operator works
t/op/sort.t See if sort works
t/op/studytied.t See if study works with tied scalars
t/op/sub_lval.t See if lvalue subroutines work
t/op/sub.t See if subroutines work
+t/op/svleak.t See if stuff leaks SVs
t/op/switch.t See if switches (given/when) work
t/op/symbolcache.t See if undef/delete works on stashes with functions
t/op/sysio.t See if sysread and syswrite work
t/op/tiearray.t See if tie for arrays works
t/op/tiehandle.t See if tie for handles works
t/op/tie.t See if tie/untie functions work
+t/op/time_loop.t Test that very large values don't hang gmtime and localtime.
t/op/time.t See if time functions work
t/op/tr.t See if tr works
t/op/undef.t See if undef works
t/op/upgrade.t See if upgrading and assigning scalars works
t/op/utf8cache.t Tests malfunctions of utf8 cache
t/op/utf8decode.t See if UTF-8 decoding works
+t/op/utf8magic.t See if utf8:: functions handle magic variables
t/op/utfhash.t See if utf8 keys in hashes behave
t/op/utftaint.t See if utf8 and taint work together
t/op/vec.t See if vectors work
t/op/ver.t See if v-strings and the %v format flag work
t/op/wantarray.t See if wantarray works
+t/op/warn.t See if warn works
t/op/while_readdir.t See if while(readdir) works
t/op/write.t See if write works (formats work)
t/op/yadayada.t See if ... works
name: perl
-version: 5.011003
+version: 5.013000
abstract: Practical Extraction and Report Language
author: perl5-porters@perl.org
license: perl
homepage: http://www.perl.org/
bugtracker: http://rt.perl.org/perlbug/
license: http://dev.perl.org/licenses/
+ repository: http://perl5.git.perl.org/
distribution_type: core
generated_by: Porting/makemeta
no_index:
- dist/XSLoader
- ext/Time-Local
- lib/version
+ - win32
file:
- dist/IO/ChangeLog
- lib/Exporter.t
- lib/Exporter/Heavy.pm
- lib/newgetopt.pl
+ - lib/unicore/mktables
- lib/version.pm
- lib/version.pod
- lib/version.t
- pod/pod2usage.PL
- pod/podchecker.PL
- pod/podselect.PL
+ - Porting/Maintainers.pm
+ - Porting/perldelta_template.pod
+ - TestInit.pm
obj2 = hv$(OBJ_EXT) av$(OBJ_EXT) run$(OBJ_EXT) pp_hot$(OBJ_EXT) sv$(OBJ_EXT) pp$(OBJ_EXT) scope$(OBJ_EXT) pp_ctl$(OBJ_EXT) pp_sys$(OBJ_EXT)
obj3 = doop$(OBJ_EXT) doio$(OBJ_EXT) regexec$(OBJ_EXT) utf8$(OBJ_EXT) taint$(OBJ_EXT) deb$(OBJ_EXT) universal$(OBJ_EXT) globals$(OBJ_EXT) perlio$(OBJ_EXT) perlapi$(OBJ_EXT) numeric$(OBJ_EXT) mathoms$(OBJ_EXT) locale$(OBJ_EXT) pp_pack$(OBJ_EXT) pp_sort$(OBJ_EXT)
-mini_obj = $(obj1) $(obj2) $(obj3) $(ARCHOBJS)
+mini_obj = $(obj1) $(obj2) $(obj3) $(ARCHOBJS) $(DTRACE_O)
ndt_obj = $(obj0) $(obj1) $(obj2) $(obj3) $(ARCHOBJS)
obj = $(ndt_obj) $(DTRACE_O)
.PHONY: all translators utilities
-lib/Config_git.pl git_version.h: $(MINIPERL_EXE) make_patchnum.pl
+# Both git_version.h and lib/Config_git.pl are built
+# by make_patchnum.pl.
+git_version.h: lib/Config_git.pl
+
+lib/Config_git.pl: $(MINIPERL_EXE) make_patchnum.pl
$(MINIPERL) make_patchnum.pl
# make sure that we recompile perl.c if the git version changes
globals\$(OBJ_EXT): uudmap.h bitcount.h
-uudmap.h bitcount.h: generate_uudmap\$(HOST_EXE_EXT)
+uudmap.h: bitcount.h
+
+bitcount.h: generate_uudmap\$(HOST_EXE_EXT)
\$(RUN) ./generate_uudmap\$(HOST_EXE_EXT) uudmap.h bitcount.h
generate_uudmap\$(HOST_EXE_EXT): generate_uudmap\$(OBJ_EXT)
.PHONY: preplibrary
preplibrary: $(MINIPERL_EXE) $(CONFIGPM) lib/re.pm $(PREPLIBRARY_LIBPERL)
-$(CONFIGPM_FROM_CONFIG_SH) $(CONFIGPOD): config.sh $(MINIPERL_EXE) configpm Porting/Glossary lib/Config_git.pl
+$(CONFIGPM_FROM_CONFIG_SH): $(CONFIGPOD)
+
+$(CONFIGPOD): config.sh $(MINIPERL_EXE) configpm Porting/Glossary lib/Config_git.pl
$(MINIPERL) configpm
lib/ExtUtils/Miniperl.pm: miniperlmain.c $(MINIPERL_EXE) minimod.pl $(CONFIGPM)
pod/perltoc.pod: $(perltoc_pod_prereqs) $(PERL_EXE) $(ext) pod/buildtoc
$(RUN_PERL) -f -Ilib pod/buildtoc --build-toc -q
-pod/perlapi.pod pod/perlintern.pod: $(MINIPERL_EXE) autodoc.pl embed.fnc
+pod/perlapi.pod: pod/perlintern.pod
+
+pod/perlintern.pod: $(MINIPERL_EXE) autodoc.pl embed.fnc
$(MINIPERL) autodoc.pl
pod/perlmodlib.pod: $(MINIPERL_EXE) pod/perlmodlib.PL MANIFEST
$(MINIPERL) $(Icwd) pod/perlmodlib.PL -q
-pod/perldelta.pod: pod/perl5113delta.pod
- $(LNS) perl5113delta.pod pod/perldelta.pod
+pod/perldelta.pod: pod/perl5131delta.pod
+ $(LNS) perl5131delta.pod pod/perldelta.pod
extra.pods: $(MINIPERL_EXE)
-@test ! -f extra.pods || rm -f `cat extra.pods`
makedepend: makedepend.SH config.sh
sh ./makedepend.SH
+runtests: runtests.SH config.sh
+ sh ./runtests.SH
+
.PHONY: test check test_prep test_prep_nodll test_prep_pre \
test_prep_reonly test_tty test-tty test_notty test-notty \
utest ucheck test.utf8 check.utf8 test.torture torturetest \
test_prep_pre: preplibrary utilities $(nonxs_ext)
-test_prep: test_prep_pre $(MINIPERL_EXE) $(unidatafiles) $(PERL_EXE) $(dynamic_ext) $(TEST_PERL_DLL)
+test_prep: test_prep_pre $(MINIPERL_EXE) $(unidatafiles) $(PERL_EXE) $(dynamic_ext) $(TEST_PERL_DLL) runtests
cd t && (rm -f $(PERL_EXE); $(LNS) ../$(PERL_EXE) $(PERL_EXE))
test_prep_reonly: $(MINIPERL_EXE) $(PERL_EXE) $(dynamic_ext_re) $(TEST_PERL_DLL)
# Here comes the CW tools - TO BE FILLED TO BUILD WITH CW -
-MODULE_DESC = "Perl 5.11.3 for NetWare"
+MODULE_DESC = "Perl 5.13.0 for NetWare"
CCTYPE = CodeWarrior
C_COMPILER = mwccnlm -c
CPP_COMPILER = mwccnlm
# versioned installation can be obtained by setting INST_TOP above to a
# path that includes an arbitrary version string.
#
-INST_VER = \5.11.3
+INST_VER = \5.13.0
#
# Comment this out if you DON'T want your perl installation to have
d_pipe='define'
d_poll='undef'
d_portable='define'
+d_prctl='undef'
+d_prctl_set_name='undef'
d_printf_format_null='undef'
d_procselfexe='undef'
d_pseudofork='undef'
uvtype='unsigned long'
uvuformat='"lu"'
uvxformat='"lx"'
+vaproto='undef'
vendorarch=''
vendorarchexp=''
vendorbin=''
* This symbol contains the ~name expanded version of ARCHLIB, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
-#define ARCHLIB "c:\\perl\\5.11.3\\lib\\NetWare-x86-multi-thread" /**/
+#define ARCHLIB "c:\\perl\\5.13.0\\lib\\NetWare-x86-multi-thread" /**/
/*#define ARCHLIB_EXP "" /**/
/* ARCHNAME:
* This symbol is the filename expanded version of the BIN symbol, for
* programs that do not want to deal with that at run-time.
*/
-#define BIN "c:\\perl\\5.11.3\\bin\\NetWare-x86-multi-thread" /**/
-#define BIN_EXP "c:\\perl\\5.11.3\\bin\\NetWare-x86-multi-thread" /**/
+#define BIN "c:\\perl\\5.13.0\\bin\\NetWare-x86-multi-thread" /**/
+#define BIN_EXP "c:\\perl\\5.13.0\\bin\\NetWare-x86-multi-thread" /**/
/* BYTEORDER:
* This symbol holds the hexadecimal constant defined in byteorder,
* This symbol contains the ~name expanded version of SITEARCH, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
-#define SITEARCH "c:\\perl\\site\\5.11.3\\lib\\NetWare-x86-multi-thread" /**/
+#define SITEARCH "c:\\perl\\site\\5.13.0\\lib\\NetWare-x86-multi-thread" /**/
/*#define SITEARCH_EXP "" /**/
/* SITELIB:
* removed. The elements in inc_version_list (inc_version_list.U) can
* be tacked onto this variable to generate a list of directories to search.
*/
-#define SITELIB "c:\\perl\\site\\5.11.3\\lib" /**/
+#define SITELIB "c:\\perl\\site\\5.13.0\\lib" /**/
/*#define SITELIB_EXP "" /**/
#define SITELIB_STEM "" /**/
indicates to the C program that it should not assume that it is
running on the machine it was compiled on.
+d_prctl (d_prctl.U):
+ This variable conditionally defines the HAS_PRCTL symbol, which
+ indicates to the C program that the prctl() routine is available.
+
+d_prctl_set_name (d_prctl.U):
+ This variable conditionally defines the HAS_PRCTL_SET_NAME symbol,
+ which indicates to the C program that the prctl() routine supports
+ the PR_SET_NAME option.
+
d_PRId64 (quadfio.U):
This variable conditionally defines the PERL_PRId64 symbol, which
indiciates that stdio has a symbol to print 64-bit decimal numbers.
This variable contains the format string used for printing
a Perl UV as an unsigned hexadecimal integer in uppercase ABCDEF.
+vaproto (vaproto.U):
+ This variable conditionally defines CAN_VAPROTO on systems supporting
+ prototype declaration of functions with a variable number of
+ arguments. See also prototype.
+
vendorarch (vendorarch.U):
This variable contains the value of the PERL_VENDORARCH symbol.
It may have a ~ on the front.
# Also, a "module" does not necessarily mean a CPAN module, it
# might mean a file or files or a subdirectory.
# Most (but not all) of the modules have dual lives in the core
-# and in CPAN. Those that have a CPAN existence, have the CPAN
-# attribute set to true.
+# and in CPAN.
package Maintainers;
'sadahiro' => 'SADAHIRO Tomoyuki <SADAHIRO@cpan.org>',
'salva' => 'Salvador Fandiño GarcÃa <salva@cpan.org>',
'saper' => 'Sébastien Aperghis-Tramoni <saper@cpan.org>',
+ 'sbeck' => 'Sullivan Beck <sbeck@cpan.org>',
'sburke' => 'Sean Burke <sburke@cpan.org>',
'mschwern' => 'Michael Schwern <mschwern@cpan.org>',
'simonw' => 'Simon Wistow <simonw@cpan.org>',
# Each entry in the %Modules hash roughly represents a distribution,
-# except in the case of CPAN=1, where it *exactly* represents a single
+# except when DISTRIBUTION is set, where it *exactly* represents a single
# CPAN distribution.
# The keys of %Modules are human descriptions of the distributions, and
# names to be recursed down, which collectively generate a complete list
# of the files associated with the distribution.
-# CPAN can be either 1 (this distribution is also available on CPAN),
-# or 0 (there is no # valid CPAN release).
-
# UPSTREAM indicates where patches should go. undef implies
# that this hasn't been discussed for the module at hand.
# "blead" indicates that the copy of the module in the blead
'Archive::Extract' =>
{
'MAINTAINER' => 'kane',
- 'DISTRIBUTION' => 'BINGOS/Archive-Extract-0.36.tar.gz',
+ 'DISTRIBUTION' => 'BINGOS/Archive-Extract-0.38.tar.gz',
'FILES' => q[cpan/Archive-Extract],
- 'CPAN' => 1,
'UPSTREAM' => 'cpan',
'BUGS' => 'bug-archive-extract@rt.cpan.org',
},
'MAINTAINER' => 'kane',
'DISTRIBUTION' => 'BINGOS/Archive-Tar-1.54.tar.gz',
'FILES' => q[cpan/Archive-Tar],
- 'CPAN' => 1,
'UPSTREAM' => 'cpan',
'BUGS' => 'bug-archive-tar@rt.cpan.org',
},
'MAINTAINER' => 'rgarcia',
'DISTRIBUTION' => 'SMUELLER/Attribute-Handlers-0.87.tar.gz',
'FILES' => q[dist/Attribute-Handlers],
- 'CPAN' => 1,
'UPSTREAM' => 'blead',
},
t/system.t
)
],
- 'CPAN' => 1,
'UPSTREAM' => 'cpan',
},
'DISTRIBUTION' => 'SMUELLER/AutoLoader-5.70.tar.gz',
'FILES' => q[cpan/AutoLoader],
'EXCLUDED' => [ qw( t/00pod.t ) ],
- 'CPAN' => 1,
'UPSTREAM' => 'cpan',
},
{
'MAINTAINER' => 'smccam',
'FILES' => q[ext/B/B/Concise.pm ext/B/t/concise.t],
- 'CPAN' => 0,
'UPSTREAM' => undef,
},
'B::Debug' =>
{
'MAINTAINER' => 'rurban',
- 'DISTRIBUTION' => 'RURBAN/B-Debug-1.11.tar.gz',
+ 'DISTRIBUTION' => 'RURBAN/B-Debug-1.12.tar.gz',
'FILES' => q[cpan/B-Debug],
'EXCLUDED' => [ qw( t/coverage.html t/pod.t ) ],
- 'CPAN' => 1,
'UPSTREAM' => undef,
},
{
'MAINTAINER' => 'smccam',
'FILES' => q[dist/B-Deparse],
- 'CPAN' => 0,
'UPSTREAM' => 'blead',
},
'DISTRIBUTION' => 'JJORE/B-Lint-1.11.tar.gz',
'FILES' => q[cpan/B-Lint],
'EXCLUDED' => [ qw( t/test.pl ) ],
- 'CPAN' => 1,
'UPSTREAM' => undef,
},
'MAINTAINER' => 'rgarcia',
'DISTRIBUTION' => 'RGARCIA/base-2.15.tar.gz',
'FILES' => q[dist/base],
- 'CPAN' => 1,
'UPSTREAM' => 'blead',
},
'DISTRIBUTION' => 'TELS/math/bignum-0.23.tar.gz',
'FILES' => q[cpan/bignum],
'EXCLUDED' => [ qr{^inc/Module/}, qw(t/pod.t t/pod_cov.t) ],
- 'CPAN' => 1,
'UPSTREAM' => undef,
},
'CGI' =>
{
'MAINTAINER' => 'lstein',
- 'DISTRIBUTION' => 'LDS/CGI.pm-3.48.tar.gz',
+ 'DISTRIBUTION' => 'LDS/CGI.pm-3.49.tar.gz',
'FILES' => q[cpan/CGI],
'EXCLUDED' => [ qr{^t/lib/Test},
qw( cgi-lib_porting.html
t/fast.t
)
],
- 'CPAN' => 1,
- 'UPSTREAM' => 'cpan',
- },
-
- 'Class::ISA' =>
- {
- 'MAINTAINER' => 'smueller',
- 'DISTRIBUTION' => 'SMUELLER/Class-ISA-0.36.tar.gz',
- 'FILES' => q[cpan/Class-ISA],
- 'CPAN' => 1,
'UPSTREAM' => 'cpan',
- 'DEPRECATED' => 5.011,
},
'Compress::Raw::Bzip2' =>
qw( bzip2-src/bzip2-cpp.patch
)
],
- 'CPAN' => 1,
'UPSTREAM' => undef,
},
t/99pod.t
)
],
- 'CPAN' => 1,
'UPSTREAM' => undef,
},
eg/synopsis.pl
)
],
- 'CPAN' => 1,
'UPSTREAM' => 'blead',
},
'CPAN' =>
{
'MAINTAINER' => 'andk',
- 'DISTRIBUTION' => 'ANDK/CPAN-1.94_53.tar.gz',
+ 'DISTRIBUTION' => 'ANDK/CPAN-1.94_56.tar.gz',
'FILES' => q[cpan/CPAN],
'EXCLUDED' => [ qr{^distroprefs/},
qr{^inc/Test/},
qr{^t/CPAN/authors/},
qw{
lib/CPAN/Admin.pm
+ Makefile.PL
SlayMakefile
t/00signature.t
t/04clean_load.t
t/yaml_code.yml
},
],
- 'CPAN' => 1,
'UPSTREAM' => 'cpan',
},
t/032_CPANPLUS-Internals-Source-via-sqlite.t
},
],
- 'CPAN' => 1,
'UPSTREAM' => 'cpan',
'BUGS' => 'bug-cpanplus@rt.cpan.org',
},
'CPANPLUS::Dist::Build' =>
{
'MAINTAINER' => 'bingos',
- 'DISTRIBUTION' => 'BINGOS/CPANPLUS-Dist-Build-0.44.tar.gz',
+ 'DISTRIBUTION' => 'BINGOS/CPANPLUS-Dist-Build-0.46.tar.gz',
'FILES' => q[cpan/CPANPLUS-Dist-Build],
'EXCLUDED' => [ qr{^inc/},
qw{ t/99_pod.t
t/99_pod_coverage.t
},
],
- 'CPAN' => 1,
'UPSTREAM' => 'cpan',
},
'MAINTAINER' => 'p5p', # Not gsar. Not ilyam
'DISTRIBUTION' => 'SMUELLER/Data-Dumper-2.125.tar.gz',
'FILES' => q[dist/Data-Dumper],
- 'CPAN' => 1,
'UPSTREAM' => 'blead',
},
fallback.xs
},
],
- 'CPAN' => 1,
'UPSTREAM' => undef,
},
'DISTRIBUTION' => 'MHX/Devel-PPPort-3.19.tar.gz',
'FILES' => q[cpan/Devel-PPPort],
'EXCLUDED' => [ qw{PPPort.pm} ], # we use PPPort_pm.PL instead
- 'CPAN' => 1,
'UPSTREAM' => 'cpan',
},
'DISTRIBUTION' => 'GAAS/Digest-1.16.tar.gz',
'FILES' => q[cpan/Digest],
'EXCLUDED' => [ qw{digest-bench} ],
- 'CPAN' => 1,
'UPSTREAM' => undef,
},
'DISTRIBUTION' => 'GAAS/Digest-MD5-2.39.tar.gz',
'FILES' => q[cpan/Digest-MD5],
'EXCLUDED' => [ qw{rfc1321.txt} ],
- 'CPAN' => 1,
'UPSTREAM' => undef,
},
'DISTRIBUTION' => 'MSHELOR/Digest-SHA-5.47.tar.gz',
'FILES' => q[cpan/Digest-SHA],
'EXCLUDED' => [ qw{t/pod.t t/podcover.t examples/dups} ],
- 'CPAN' => 1,
'UPSTREAM' => undef,
},
'MAINTAINER' => 'dankogai',
'DISTRIBUTION' => 'DANKOGAI/Encode-2.39.tar.gz',
'FILES' => q[cpan/Encode],
- 'CPAN' => 1,
'UPSTREAM' => undef,
},
qw{t/0-signature.t Makefile.PL MANIFEST META.yml
README SIGNATURE},
],
- 'CPAN' => 1,
'UPSTREAM' => undef,
},
'MAP' => { 't/' => 'lib/',
'lib/' => 'lib/',
},
- 'CPAN' => 1,
'UPSTREAM' => 'blead',
},
'MAINTAINER' => 'kwilliams',
'DISTRIBUTION' => 'DAGOLDEN/ExtUtils-CBuilder-0.27.tar.gz',
'FILES' => q[cpan/ExtUtils-CBuilder],
- 'CPAN' => 1,
'UPSTREAM' => 'cpan',
},
lib/Shell/Command.pm
},
],
- 'CPAN' => 1,
'UPSTREAM' => undef,
},
examples/perl_regcomp_posix_keyword.pl
},
],
- 'CPAN' => 1,
'UPSTREAM' => undef,
},
t/pod.t
},
],
- 'CPAN' => 1,
'UPSTREAM' => 'blead',
},
'EXCLUDED' => [ qr{^t/lib/Test/},
qr{^inc/ExtUtils/},
],
- 'CPAN' => 1,
'UPSTREAM' => 'first-come',
},
'MAINTAINER' => 'rkobes',
'DISTRIBUTION' => 'RKOBES/ExtUtils-Manifest-1.57.tar.gz',
'FILES' => q[cpan/ExtUtils-Manifest],
- 'CPAN' => 1,
'UPSTREAM' => 'cpan',
},
'ExtUtils::ParseXS' =>
{
'MAINTAINER' => 'kwilliams',
- 'DISTRIBUTION' => 'DAGOLDEN/ExtUtils-ParseXS-2.21.tar.gz',
+ 'DISTRIBUTION' => 'DAGOLDEN/ExtUtils-ParseXS-2.2205.tar.gz',
'EXCLUDED' => [ qw{
t/bugs/RT48104.xs
t/bugs/typemap
t/include/nscore.h
}],
'FILES' => q[cpan/ExtUtils-ParseXS],
- 'CPAN' => 1,
'UPSTREAM' => 'cpan',
},
{
'MAINTAINER' => 'perlfaq',
'FILES' => q[pod/perlfaq*],
- 'CPAN' => 0,
'UPSTREAM' => undef,
},
'File::Fetch' =>
{
'MAINTAINER' => 'kane',
- 'DISTRIBUTION' => 'BINGOS/File-Fetch-0.22.tar.gz',
+ 'DISTRIBUTION' => 'BINGOS/File-Fetch-0.24.tar.gz',
'FILES' => q[cpan/File-Fetch],
- 'CPAN' => 1,
'UPSTREAM' => 'cpan',
},
'MAP' => { '' => 'cpan/File-Path/lib/File/',
't/' => 'cpan/File-Path/t/',
},
- 'CPAN' => 1,
'UPSTREAM' => undef,
},
misc/results.txt
}
],
- 'CPAN' => 1,
'UPSTREAM' => undef,
},
'EXCLUDED' => [ qw(Makefile.PL MANIFEST README META.yml),
qr{^demo/}
],
- 'CPAN' => 1,
'UPSTREAM' => 'blead',
},
'perlfilter.pod' => 'pod/perlfilter.pod',
'' => 'cpan/Filter-Util-Call/',
},
- 'CPAN' => 1,
'UPSTREAM' => undef,
},
'MAP' => { '' => 'cpan/Getopt-Long/',
'lib/newgetopt.pl' => 'lib/newgetopt.pl',
},
- 'CPAN' => 1,
'UPSTREAM' => 'cpan',
},
'MAINTAINER' => 'p5p',
'DISTRIBUTION' => 'SBURKE/I18N-LangTags-0.35.tar.gz',
'FILES' => q[dist/I18N-LangTags],
- 'CPAN' => 0,
'UPSTREAM' => 'blead',
},
'MAINTAINER' => 'ilyaz',
'DISTRIBUTION' => 'ILYAZ/modules/if-0.0401.tar.gz',
'FILES' => q[cpan/if],
- 'CPAN' => 1,
'UPSTREAM' => undef,
},
'DISTRIBUTION' => 'GBARR/IO-1.25.tar.gz',
'FILES' => q[dist/IO/],
'EXCLUDED' => [ qw{t/test.pl}, ],
- 'CPAN' => 1,
'UPSTREAM' => 'blead',
},
'DISTRIBUTION' => 'PMQS/IO-Compress-2.021.tar.gz',
'FILES' => q[cpan/IO-Compress],
'EXCLUDED' => [ qr{t/Test/} ],
- 'CPAN' => 1,
'UPSTREAM' => 'cpan',
},
'MAINTAINER' => 'tomhughes',
'DISTRIBUTION' => 'TOMHUGHES/IO-Zlib-1.10.tar.gz',
'FILES' => q[cpan/IO-Zlib],
- 'CPAN' => 1,
'UPSTREAM' => undef,
},
'IPC::Cmd' =>
{
'MAINTAINER' => 'kane',
- 'DISTRIBUTION' => 'BINGOS/IPC-Cmd-0.54.tar.gz',
+ 'DISTRIBUTION' => 'BINGOS/IPC-Cmd-0.58.tar.gz',
'FILES' => q[cpan/IPC-Cmd],
- 'CPAN' => 1,
'UPSTREAM' => 'cpan',
},
'DISTRIBUTION' => 'MHX/IPC-SysV-2.01.tar.gz',
'FILES' => q[cpan/IPC-SysV],
'EXCLUDED' => [ qw{const-c.inc const-xs.inc} ],
- 'CPAN' => 1,
'UPSTREAM' => 'cpan',
},
'DISTRIBUTION' => 'SMUELLER/lib-0.62.tar.gz',
'FILES' => q[dist/lib/],
'EXCLUDED' => [ qw{forPAUSE/lib.pm t/00pod.t} ],
- 'CPAN' => 1,
'UPSTREAM' => 'blead',
},
'DISTRIBUTION' => 'GBARR/libnet-1.22.tar.gz',
'FILES' => q[cpan/libnet],
'EXCLUDED' => [ qw{Configure install-nomake} ],
- 'CPAN' => 1,
'UPSTREAM' => undef,
},
'Locale-Codes' =>
{
- 'MAINTAINER' => 'neilb',
- 'DISTRIBUTION' => 'NEILB/Locale-Codes-2.07.tar.gz',
+ 'MAINTAINER' => 'sbeck',
+ 'DISTRIBUTION' => 'SBECK/Locale-Codes-3.12.tar.gz',
'FILES' => q[cpan/Locale-Codes],
- 'CPAN' => 1,
- 'UPSTREAM' => undef,
+ 'EXCLUDED' => [ qw{t/pod_coverage.t t/pod.t}, qr{^t/runtests},
+ qr{^internal/}, qr{^examples/} ],
+ 'UPSTREAM' => 'cpan',
},
'Locale::Maketext' =>
'DISTRIBUTION' => 'FERREIRA/Locale-Maketext-1.13.tar.gz',
'FILES' => q[dist/Locale-Maketext],
'EXCLUDED' => [ qw{perlcriticrc t/00_load.t t/pod.t} ],
- 'CPAN' => 1,
'UPSTREAM' => 'blead',
},
'DISTRIBUTION' => 'JESSE/Locale-Maketext-Simple-0.21.tar.gz',
'FILES' => q[cpan/Locale-Maketext-Simple],
'EXCLUDED' => [ qr{^inc/} ],
- 'CPAN' => 1,
'UPSTREAM' => 'cpan',
},
'MAINTAINER' => 'kane',
'DISTRIBUTION' => 'KANE/Log-Message-0.02.tar.gz',
'FILES' => q[cpan/Log-Message],
- 'CPAN' => 1,
'UPSTREAM' => 'cpan',
},
'MAINTAINER' => 'kane',
'DISTRIBUTION' => 'BINGOS/Log-Message-Simple-0.06.tar.gz',
'FILES' => q[cpan/Log-Message-Simple],
- 'CPAN' => 1,
'UPSTREAM' => 'cpan',
},
{
'MAINTAINER' => 'lwall',
'FILES' => q[mad],
- 'CPAN' => 0,
'UPSTREAM' => undef,
},
t/pod_cov.t
}
],
- 'CPAN' => 1,
'UPSTREAM' => undef,
},
'lib/Math/BigInt/FastCalc.pm'
=> 'cpan/Math-BigInt-FastCalc/FastCalc.pm',
},
- 'CPAN' => 1,
'UPSTREAM' => undef,
},
t/pod_cov.t
},
],
- 'CPAN' => 1,
'UPSTREAM' => undef,
},
t/pod-coverage.t
},
],
- 'CPAN' => 1,
'UPSTREAM' => 'cpan',
},
Memoize/Saves.pm
},
],
- 'CPAN' => 1,
'UPSTREAM' => undef,
},
'MIME::Base64' =>
{
'MAINTAINER' => 'gaas',
- 'DISTRIBUTION' => 'GAAS/MIME-Base64-3.08.tar.gz',
+ 'DISTRIBUTION' => 'GAAS/MIME-Base64-3.09.tar.gz',
'FILES' => q[cpan/MIME-Base64],
'EXCLUDED' => [ qw{ t/bad-sv.t }, ],
- 'CPAN' => 1,
- 'UPSTREAM' => undef,
+ 'UPSTREAM' => 'cpan',
},
'Module::Build' =>
{
'MAINTAINER' => 'kwilliams',
- 'DISTRIBUTION' => 'DAGOLDEN/Module-Build-0.36.tar.gz',
+ 'DISTRIBUTION' => 'DAGOLDEN/Module-Build-0.3603.tar.gz',
'FILES' => q[cpan/Module-Build],
'EXCLUDED' => [ qw{ t/par.t t/signature.t },
qr!^contrib/!, qr!^devtools! ],
- 'CPAN' => 1,
'UPSTREAM' => 'cpan',
},
'MAINTAINER' => 'rgarcia',
'DISTRIBUTION' => 'BINGOS/Module-CoreList-2.23.tar.gz',
'FILES' => q[dist/Module-CoreList],
- 'CPAN' => 1,
'UPSTREAM' => 'blead',
},
'MAINTAINER' => 'kane',
'DISTRIBUTION' => 'KANE/Module-Load-0.16.tar.gz',
'FILES' => q[cpan/Module-Load],
- 'CPAN' => 1,
'UPSTREAM' => 'cpan',
},
'Module::Load::Conditional' =>
{
'MAINTAINER' => 'kane',
- 'DISTRIBUTION' => 'BINGOS/Module-Load-Conditional-0.34.tar.gz',
+ 'DISTRIBUTION' => 'BINGOS/Module-Load-Conditional-0.38.tar.gz',
'FILES' => q[cpan/Module-Load-Conditional],
- 'CPAN' => 1,
'UPSTREAM' => 'cpan',
},
'MAINTAINER' => 'kane',
'DISTRIBUTION' => 'BINGOS/Module-Loaded-0.06.tar.gz',
'FILES' => q[cpan/Module-Loaded],
- 'CPAN' => 1,
'UPSTREAM' => 'cpan',
},
'MAINTAINER' => 'simonw',
'DISTRIBUTION' => 'SIMONW/Module-Pluggable-3.9.tar.gz',
'FILES' => q[cpan/Module-Pluggable],
- 'CPAN' => 1,
- 'UPSTREAM' => undef,
+ 'UPSTREAM' => 'cpan',
},
'Net::Ping' =>
'MAINTAINER' => 'smpeters',
'DISTRIBUTION' => 'SMPETERS/Net-Ping-2.36.tar.gz',
'FILES' => q[dist/Net-Ping],
- 'CPAN' => 1,
'UPSTREAM' => 'blead',
},
'DISTRIBUTION' => 'FLORA/NEXT-0.64.tar.gz',
'FILES' => q[cpan/NEXT],
'EXCLUDED' => [ qr{^demo/} ],
- 'CPAN' => 1,
'UPSTREAM' => 'cpan',
},
'MAINTAINER' => 'kane',
'DISTRIBUTION' => 'BINGOS/Object-Accessor-0.36.tar.gz',
'FILES' => q[cpan/Object-Accessor],
- 'CPAN' => 1,
'UPSTREAM' => 'cpan',
},
'MAINTAINER' => 'kane',
'DISTRIBUTION' => 'KANE/Package-Constants-0.02.tar.gz',
'FILES' => q[cpan/Package-Constants],
- 'CPAN' => 1,
'UPSTREAM' => 'cpan',
},
# the tarball. Russell's Paradox eat your heart out.
'EXCLUDED' => [ qw( Params-Check-0.26.tar.gz ) ],
'FILES' => q[cpan/Params-Check],
- 'CPAN' => 1,
'UPSTREAM' => 'cpan',
},
'MAINTAINER' => 'corion',
'DISTRIBUTION' => 'CORION/parent-0.223.tar.gz',
'FILES' => q[cpan/parent],
- 'CPAN' => 1,
'UPSTREAM' => undef,
},
'DISTRIBUTION' => 'SMUELLER/Parse-CPAN-Meta-1.40.tar.gz',
'FILES' => q[cpan/Parse-CPAN-Meta],
'EXCLUDED' => [ qw( t/97_meta.t t/98_pod.t t/99_pmv.t ) ],
- 'CPAN' => 1,
'UPSTREAM' => 'cpan',
# NOTE: 'perl uupacktool.pl t/data/utf_16_le_bom.yml.packed'
# run by hand after import, as the core's test harness doesn't
'DISTRIBUTION' => 'SMUELLER/PathTools-3.31.tar.gz',
'FILES' => q[cpan/Cwd],
'EXCLUDED' => [ qr{^t/lib/Test/} ],
- 'CPAN' => 1,
'UPSTREAM' => "cpan",
# NOTE: PathTools is in cpan/Cwd/ because it contains Cwd.xs and
# something, possibly Makefile.SH, makes an assumption that the
{
'MAINTAINER' => 'pvhp',
'FILES' => q[pod/perlebcdic.pod],
- 'CPAN' => 0,
'UPSTREAM' => undef,
},
{
'MAINTAINER' => 'p5p',
'FILES' => q[ext/PerlIO],
- 'CPAN' => 0,
'UPSTREAM' => undef,
},
'MAINTAINER' => 'elizabeth',
'DISTRIBUTION' => 'ELIZABETH/PerlIO-via-QuotedPrint-0.06.tar.gz',
'FILES' => q[cpan/PerlIO-via-QuotedPrint],
- 'CPAN' => 1,
'UPSTREAM' => undef,
},
{
'MAINTAINER' => 'laun',
'FILES' => q[pod/perlpacktut.pod],
- 'CPAN' => 0,
'UPSTREAM' => undef,
},
{
'MAINTAINER' => 'sburke',
'FILES' => q[pod/perlpodspec.pod],
- 'CPAN' => 0,
'UPSTREAM' => undef,
},
'MAINTAINER' => 'abigail',
'FILES' => q[pod/perlrecharclass.pod
pod/perlrebackslash.pod],
- 'CPAN' => 0,
'UPSTREAM' => undef,
},
{
MAINTAINER => 'avar',
FILES => q[pod/perlreapi.pod],
- CPAN => 0,
'UPSTREAM' => undef,
},
{
'MAINTAINER' => 'mjd',
'FILES' => q[pod/perlreftut.pod],
- 'CPAN' => 0,
'UPSTREAM' => undef,
},
{
'MAINTAINER' => 'elizabeth',
'FILES' => q[pod/perlthrtut.pod],
- 'CPAN' => 0,
'UPSTREAM' => undef,
},
'MAINTAINER' => 'arandal',
'DISTRIBUTION' => 'SBURKE/Pod-Escapes-1.04.tar.gz',
'FILES' => q[cpan/Pod-Escapes],
- 'CPAN' => 1,
'UPSTREAM' => undef,
},
'MAP' => { '' => 'cpan/Pod-LaTeX/',
'pod2latex.PL' => 'pod/pod2latex.PL',
},
- 'CPAN' => 1,
'UPSTREAM' => undef,
},
'MAP' => { '' => 'cpan/Pod-Parser/',
'scripts/' => 'pod/',
},
- 'CPAN' => 1,
'UPSTREAM' => undef,
},
'MAP' => { '' => 'dist/Pod-Perldoc/',
'lib/perldoc.pod' => 'pod/perldoc.pod',
},
- 'CPAN' => 1,
'UPSTREAM' => 'blead',
},
- 'Pod::Plainer' =>
- {
- 'DISTRIBUTION' => 'RMBARKER/Pod-Plainer-1.01.tar.gz',
- 'MAINTAINER' => 'rmbarker',
- 'FILES' => q[dist/Pod-Plainer],
- 'CPAN' => 1,
- 'UPSTREAM' => 'blead',
- 'EXCLUDED' => [ qw(t/pod.t t/pod-coverage.t) ],
- 'DEPRECATED' => 5.011,
- },
-
'Pod::Simple' =>
{
'MAINTAINER' => 'arandal',
# have been in blead a long time. I'm going to assume then that
# the blead versions of these two files are authoritative - DAPM
'EXCLUDED' => [ qw( lib/perlpod.pod lib/perlpodspec.pod ) ],
- 'CPAN' => 1,
'UPSTREAM' => 'cpan',
},
'podlators' =>
{
'MAINTAINER' => 'rra',
- 'DISTRIBUTION' => 'RRA/podlators-2.2.2.tar.gz',
+ 'DISTRIBUTION' => 'RRA/podlators-2.3.1.tar.gz',
'FILES' => q[cpan/podlators
pod/pod2man.PL
pod/pod2text.PL
'MAP' => { '' => 'cpan/podlators/',
'scripts/' => 'pod/',
},
- 'CPAN' => 1,
'UPSTREAM' => 'cpan',
},
'Safe' =>
{
'MAINTAINER' => 'rgarcia',
- 'DISTRIBUTION' => 'RGARCIA/Safe-2.19.tar.gz',
+ 'DISTRIBUTION' => 'RGARCIA/Safe-2.22.tar.gz',
'FILES' => q[dist/Safe],
- 'CPAN' => 1,
'UPSTREAM' => 'blead',
},
'Scalar-List-Utils' =>
{
'MAINTAINER' => 'gbarr',
- 'DISTRIBUTION' => 'GBARR/Scalar-List-Utils-1.21.tar.gz',
+ 'DISTRIBUTION' => 'GBARR/Scalar-List-Utils-1.23.tar.gz',
# Note that perl uses its own version of Makefile.PL
'FILES' => q[cpan/List-Util],
'EXCLUDED' => [ qr{^inc/Module/},
qr{^inc/Test/},
qw{ mytypemap },
],
- 'CPAN' => 1,
'UPSTREAM' => undef,
},
'DISTRIBUTION' => 'SMUELLER/SelfLoader-1.17.tar.gz',
'FILES' => q[dist/SelfLoader],
'EXCLUDED' => [ qw{ t/00pod.t } ],
- 'CPAN' => 1,
'UPSTREAM' => 'blead',
},
'DISTRIBUTION' => 'AMS/Storable-2.21.tar.gz',
'FILES' => q[dist/Storable],
'EXCLUDED' => [ qr{^t/Test/} ],
- 'CPAN' => 1,
- 'UPSTREAM' => 'blead',
- },
-
- 'Switch' =>
- {
- 'MAINTAINER' => 'rgarcia',
- 'DISTRIBUTION' => 'RGARCIA/Switch-2.15.tar.gz',
- 'FILES' => q[dist/Switch],
- 'CPAN' => 1,
'UPSTREAM' => 'blead',
- 'DEPRECATED' => 5.011,
},
'Sys::Syslog' =>
win32/PerlLog.RES
},
],
- 'CPAN' => 1,
'UPSTREAM' => 'cpan',
},
'DISTRIBUTION' => 'RRA/ANSIColor-2.02.tar.gz',
'FILES' => q[cpan/Term-ANSIColor],
'EXCLUDED' => [ qr{^tests/}, qw(t/pod-spelling.t t/pod.t) ],
- 'CPAN' => 1,
'UPSTREAM' => 'cpan',
},
'MAINTAINER' => 'jstowe',
'DISTRIBUTION' => 'JSTOWE/Term-Cap-1.12.tar.gz',
'FILES' => q[cpan/Term-Cap],
- 'CPAN' => 1,
'UPSTREAM' => undef,
},
'MAINTAINER' => 'kane',
'DISTRIBUTION' => 'KANE/Term-UI-0.20.tar.gz',
'FILES' => q[cpan/Term-UI],
- 'CPAN' => 1,
'UPSTREAM' => 'cpan',
},
'MAINTAINER' => 'jesse',
'DISTRIBUTION' => 'JESSE/Test-1.25_02.tar.gz',
'FILES' => q[cpan/Test],
- 'CPAN' => 1,
'UPSTREAM' => 'cpan',
},
t/lib/if.pm
}
],
- 'CPAN' => 1,
'UPSTREAM' => undef,
},
lib/Test/Builder/IO/Scalar.pm
}
],
- 'CPAN' => 1,
'UPSTREAM' => 'cpan',
},
'DISTRIBUTION' => 'ADAMK/Text-Balanced-2.02.tar.gz',
'FILES' => q[cpan/Text-Balanced],
'EXCLUDED' => [ qw( t/97_meta.t t/98_pod.t t/99_pmv.t ) ],
- 'CPAN' => 1,
'UPSTREAM' => undef,
},
'ParseWords.pm' => 'cpan/Text-ParseWords/lib/Text/ParseWords.pm',
'' => 'cpan/Text-ParseWords/',
},
- 'CPAN' => 1,
'UPSTREAM' => undef,
},
# considerably over the years
'test.pl' => 'cpan/Text-Soundex/t/Soundex.t',
},
- 'CPAN' => 1,
'UPSTREAM' => undef,
},
'DISTRIBUTION' => 'MUIR/modules/Text-Tabs+Wrap-2009.0305.tar.gz',
'FILES' => q[cpan/Text-Tabs],
'EXCLUDED' => [ qw( t/dnsparks.t ) ], # see af6492bf9e
- 'CPAN' => 1,
'UPSTREAM' => 'cpan',
},
t/99_pod.t
t/test.pl
) ],
- 'CPAN' => 1,
'UPSTREAM' => 'blead',
},
t/99_pod.t
t/test.pl
) ],
- 'CPAN' => 1,
'UPSTREAM' => 'blead',
},
'threads' =>
{
'MAINTAINER' => 'jdhedden',
- 'DISTRIBUTION' => 'JDHEDDEN/threads-1.75.tar.gz',
+ 'DISTRIBUTION' => 'JDHEDDEN/threads-1.77.tar.gz',
'FILES' => q[dist/threads],
- 'EXCLUDED' => [ qw(examples/pool.pl
- t/pod.t
+ 'EXCLUDED' => [ qr{^examples/},
+ qw(t/pod.t
t/test.pl
threads.h
) ],
- 'CPAN' => 1,
'UPSTREAM' => 'blead',
},
'threads::shared' =>
{
'MAINTAINER' => 'jdhedden',
- 'DISTRIBUTION' => 'JDHEDDEN/threads-shared-1.32.tar.gz',
+ 'DISTRIBUTION' => 'JDHEDDEN/threads-shared-1.33.tar.gz',
'FILES' => q[dist/threads-shared],
'EXCLUDED' => [ qw(examples/class.pl
shared.h
t/pod.t
t/test.pl
) ],
- 'CPAN' => 1,
'UPSTREAM' => 'blead',
},
'MAINTAINER' => 'mjd',
'DISTRIBUTION' => 'MJD/Tie-File-0.96.tar.gz',
'FILES' => q[cpan/Tie-File],
- 'CPAN' => 1,
'UPSTREAM' => undef,
},
'MAINTAINER' => 'nuffin',
'DISTRIBUTION' => 'NUFFIN/Tie-RefHash-1.38.tar.gz',
'FILES' => q[cpan/Tie-RefHash],
- 'CPAN' => 1,
'UPSTREAM' => 'cpan',
},
'MAINTAINER' => 'zefram',
'DISTRIBUTION' => 'JHI/Time-HiRes-1.9719.tar.gz',
'FILES' => q[cpan/Time-HiRes],
- 'CPAN' => 1,
'UPSTREAM' => undef,
},
'DISTRIBUTION' => 'DROLSKY/Time-Local-1.1901.tar.gz',
'FILES' => q[ext/Time-Local],
'EXCLUDED' => [ qw(t/pod-coverage.t t/pod.t) ],
- 'CPAN' => 1,
'UPSTREAM' => 'blead',
# Currently Time::Local is no longer backwards compatible with Pre-5.11 perls
# the version in core has now deviated from the CPAN version. To re-dual-life
'MAINTAINER' => 'msergeant',
'DISTRIBUTION' => 'MSERGEANT/Time-Piece-1.15.tar.gz',
'FILES' => q[cpan/Time-Piece],
- 'CPAN' => 1,
'UPSTREAM' => undef,
},
'EXCLUDED' => [ qr{X$},
qw{disableXS enableXS }
],
- 'CPAN' => 1,
'UPSTREAM' => 'first-come',
},
'DISTRIBUTION' => 'SADAHIRO/Unicode-Normalize-1.03.tar.gz',
'FILES' => q[cpan/Unicode-Normalize],
'EXCLUDED' => [ qw{MANIFEST.N Normalize.pmN disableXS enableXS }],
- 'CPAN' => 1,
'UPSTREAM' => 'first-come',
},
'MAP' => { 'lib/' => 'lib/',
't/coretests.pm' => 'lib/version.t',
},
- 'CPAN' => 1,
'UPSTREAM' => undef,
},
{
'MAINTAINER' => 'craig',
'FILES' => q[vms configure.com README.vms],
- 'CPAN' => 0,
'UPSTREAM' => undef,
},
{
'MAINTAINER' => 'craig',
'FILES' => q[ext/VMS-DCLsym],
- 'CPAN' => 0,
'UPSTREAM' => undef,
},
{
'MAINTAINER' => 'craig',
'FILES' => q[ext/VMS-Stdio],
- 'CPAN' => 0,
'UPSTREAM' => undef,
},
lib/warnings
t/lib/warnings
],
- 'CPAN' => 0,
'UPSTREAM' => undef,
},
{
'MAINTAINER' => 'jand',
'FILES' => q[win32 t/win32 README.win32 ext/Win32CORE],
- 'CPAN' => 0,
'UPSTREAM' => undef,
},
'MAINTAINER' => 'jand',
'DISTRIBUTION' => "JDB/Win32-0.39.tar.gz",
'FILES' => q[cpan/Win32],
- 'CPAN' => 1,
'UPSTREAM' => 'cpan',
},
'EXCLUDED' => [ qr{^ex/},
qw{t/pod.t},
],
- 'CPAN' => 1,
'UPSTREAM' => 'cpan',
},
{
'MAINTAINER' => 'zefram',
'FILES' => q[ext/XS-APItest-KeywordRPN],
- 'CPAN' => 0,
'UPSTREAM' => 'blead',
},
t/portfs.t
XSLoader.pm}, # we use XSLoader_pm.PL
],
- 'CPAN' => 1,
'UPSTREAM' => 'blead',
},
{
'MAINTAINER' => 'laun',
'FILES' => q[x2p/s2p.PL],
- 'CPAN' => 0,
'UPSTREAM' => undef,
},
lib/vars{.pm,.t,_carp.t}
lib/vmsish.{pm,t}
],
- 'CPAN' => 0,
'UPSTREAM' => undef,
},
);
+# legacy CPAN flag
+for (values %Modules) {
+ $_->{CPAN} = !!$_->{DISTRIBUTION};
+}
+
1;
undef,
],
+ # perl511, perl511.dll, perl511.lib, perl511s.lib, libperl511.a
+ [
+ qr{\b ((?:lib)?) perl (\d\d\d) (s?) \b }x,
+ sub {$2, "$1perl$newx$newy$3" },
+ "$oldx$oldy",
+ qr/makedef|win32|hints/, # makedef.pl, README.win32, win32/*, hints/*
+ ],
+
);
my %contents;
for my $file (sort keys %changes) {
open my $fh, '<', $file or die "open '$file': $!\n";
+ binmode $fh;
$contents{$file} = [ <$fh> ];
chomp @{$contents{$file}};
close $fh or die "close: '$file': $!\n";
for my $file (sort keys %contents) {
my $nfile = "$file-new";
open my $fh, '>', $nfile or die "create '$nfile' failed: $!\n";
+ binmode $fh;
print $fh $_, "\n" for @{$contents{$file}};
close $fh or die "failed to close $nfile; aborting: $!\n";
--- /dev/null
+#!perl
+use strict;
+use warnings;
+use Getopt::Long qw/GetOptions/;
+use Term::ANSIColor qw/color/;
+use constant GITCMD => 'git';
+
+sub usage {
+ print <<HERE;
+Usage: $0 [options] [<start-commit> [<end-commit>]]
+
+Scans the commit logs for commits that are potentially, illegitimately
+touching modules that are primarily maintained outside of the perl core.
+Also checks for commits that span multiple distributions in cpan/ or dist/.
+Makes sure that updated CPAN distributions also update Porting/Maintainers.pl,
+but otherwise ignores changes to that file (and MANIFEST).
+
+Skip the <start-commit> to go back indefinitely. <end-commit> defaults to
+HEAD.
+
+ -h/--help shows this help
+ -v/--verbose shows the output of "git show --stat <commit>" for each commit
+ -c/--color uses colored output
+HERE
+ exit(1);
+}
+
+our $Verbose = 0;
+our $Color = 0;
+GetOptions(
+ 'h|help' => \&usage,
+ 'v|verbose' => \$Verbose,
+ 'c|color|colour' => \$Color,
+);
+
+my $start_commit = shift;
+my $end_commit = shift;
+$end_commit = 'HEAD' if not defined $end_commit;
+my $commit_range_cmd = defined($start_commit) ? " $start_commit..$end_commit" : "";
+
+# format: hash\0author\0committer\0short_msg
+our $LogCmd = GITCMD() . q{ log --no-color -M -C --name-only '--pretty=format:%h%x00%an%x00%cn%x00%s'} . $commit_range_cmd;
+our @ColumnSpec = qw(hash author committer commit_msg);
+
+open my $fh, '-|', $LogCmd
+ or die "Can't run '$LogCmd' to get the commit log: $!";
+
+my ($safe_commits, $unsafe_commits) = parse_log($fh);
+
+if (@$unsafe_commits) {
+ my $header = "Potentially unsafe commits:";
+ print color("red") if $Color;
+ print $header, "\n";
+ print("=" x length($header), "\n\n") if $Verbose;
+ print color("reset") if $Color;
+ print_commit_info($_) foreach reverse @$unsafe_commits;
+ print "\n";
+}
+
+if (@$safe_commits) {
+ my $header = "Presumably safe commits:";
+ print color("green") if $Color;
+ print $header, "\n";
+ print("=" x length($header), "\n") if $Verbose;
+ print color("reset") if $Color;
+ print_commit_info($_) foreach reverse @$safe_commits;
+ print "\n";
+}
+
+exit(0);
+
+
+
+# single-line info about the commit at hand
+sub print_commit_info {
+ my $commit = shift;
+
+ my $author_info = "by $commit->{author}"
+ . ($commit->{author} eq $commit->{committer}
+ ? ''
+ : " committed by $commit->{committer}");
+
+ if ($Verbose) {
+ print color("yellow") if $Color;
+ my $header = "$commit->{hash} $author_info: $commit->{msg}";
+ print "$header\n", ("-" x length($header)), "\n";
+ print color("reset") if $Color;
+
+ my $cmd = GITCMD() . ' show --stat ' . ($Color?'--color ':'')
+ . $commit->{hash};
+ print `$cmd`; # make sure git knows this isn't a terminal
+ print "\n";
+ }
+ else {
+ print color("yellow") if $Color;
+ print " $commit->{hash} $author_info: $commit->{msg}\n";
+ print color("reset") if $Color;
+ }
+}
+
+
+# check whether the commit at hand is safe, unsafe or uninteresting
+sub check_commit {
+ my $commit = shift;
+ my $safe = shift;
+ my $unsafe = shift;
+
+ # Note to self: Adding any more greps and such will make this
+ # look even more silly. Just use a single foreach, smart guy!
+ my $touches_maintainers_pl = 0;
+ my @files = grep {
+ $touches_maintainers_pl = 1
+ if $_ eq 'Porting/Maintainers.pl';
+ $_ ne 'MANIFEST' and $_ ne 'Porting/Maintainers.pl'
+ }
+ @{$commit->{files}};
+ my @touching_cpan = grep {/^cpan\//} @files;
+ return if not @touching_cpan;
+
+ # check for unsafe commits to cpan/
+ my %touched_cpan_dirs;
+ $touched_cpan_dirs{$_}++ for grep {defined $_}
+ map {s/^cpan\/([^\/]*).*$/$1/; $_}
+ @touching_cpan;
+
+ my $touches_multiple_cpan_dists = (keys(%touched_cpan_dirs) > 1);
+
+ my $touches_others = @files - @touching_cpan;
+
+ if (@touching_cpan) {
+ if ($touches_others) {
+ $commit->{msg} = 'Touched files under cpan/ and other locations';
+ push @$unsafe, $commit;
+ }
+ elsif ($touches_multiple_cpan_dists) {
+ $commit->{msg} = 'Touched multiple directories under cpan/';
+ push @$unsafe, $commit;
+ }
+ elsif (not $touches_maintainers_pl) {
+ $commit->{msg} = 'Touched files under cpan/, but does not update '
+ . 'Porting/Maintainers.pl';
+ push @$unsafe, $commit;
+ }
+ elsif ($commit->{commit_msg} =~ /(?:up(?:grad|dat)|import)(?:ed?|ing)/i) {
+ $commit->{msg} = 'Touched files under cpan/ with '
+ . '"upgrading"-like commit message';
+ push @$safe, $commit;
+ }
+ else {
+ $commit->{msg} = 'Touched files under cpan/ without '
+ . '"upgrading"-like commit message';
+ push @$unsafe, $commit;
+ }
+ }
+
+ # check for unsafe commits to dist/
+ my @touching_dist = grep {/^dist\//} @files;
+ my %touched_dist_dirs;
+ $touched_dist_dirs{$_}++ for grep {defined $_}
+ map {s/^dist\/([^\/]*).*$/$1/; $_}
+ @touching_dist;
+ $touches_others = @files - @touching_dist;
+ my $touches_multiple_dists = (keys(%touched_dist_dirs) > 1);
+
+ if (@touching_dist) {
+ if ($touches_others) {
+ $commit->{msg} = 'Touched files under dist/ and other locations';
+ push @$unsafe, $commit;
+ }
+ elsif ($touches_multiple_dists) {
+ $commit->{msg} = 'Touched multiple directories under cpan/';
+ push @$unsafe, $commit;
+ }
+ }
+}
+
+# given file handle, parse the git log output and put the resulting commit
+# structure into safe/unsafe compartments
+sub parse_log {
+ my $fh = shift;
+ my @safe_commits;
+ my @unsafe_commits;
+ my $commit;
+ while (defined(my $line = <$fh>)) {
+ chomp $line;
+ if (not $commit) {
+ next if $line =~ /^\s*$/;
+ my @cols = split /\0/, $line;
+ @cols == @ColumnSpec && !grep {!defined($_)} @cols
+ or die "Malformed commit header line: '$line'";
+ $commit = {
+ files => [],
+ map {$ColumnSpec[$_] => $cols[$_]} (0..$#cols)
+ };
+ next;
+ }
+ elsif ($line =~ /^\s*$/) { # within commit, blank line
+ check_commit($commit, \@safe_commits, \@unsafe_commits);
+ $commit = undef;
+ }
+ else { # within commit, non-blank (file) line
+ push @{$commit->{files}}, $line;
+ }
+ }
+
+ return(\@safe_commits, \@unsafe_commits);
+}
+
sub eight_dot_three {
return () if $seen{$_[0]}++;
- my ($dir, $base, $ext) = ($_[0] =~ m{^(?:(.+)/)?([^/.]+)(?:\.([^/.]+))?$});
+ my ($dir, $base, $ext) = ($_[0] =~ m{^(?:(.+)/)?([^/.]*)(?:\.([^/.]+))?$});
my $file = $base . ( defined $ext ? ".$ext" : "" );
$base = substr($base, 0, 8);
$ext = substr($ext, 0, 3) if defined $ext;
if (defined $dir && $dir =~ /\./) {
print "directory name contains '.': $dir\n";
}
+ if ($base eq "") {
+ print "filename starts with dot: $_[0]\n";
+ }
if ($file =~ /[^A-Za-z0-9\._-]/) {
print "filename contains non-portable characters: $_[0]\n";
}
next;
}
while (m!/|\z!g) {
- my ($dir, $edt) = eight_dot_three($`);
+ my ($dir, $edt) = eight_dot_three("$`");
next unless defined $dir;
($dir, $edt) = map { lc } ($dir, $edt);
push @{$dir{$dir}->{$edt}}, $_;
use strict;
use Text::Wrap;
$Text::Wrap::columns = 80;
-my ($committer, $patch, $log,$date);
+my ($committer, $patch, $author, $date);
use Getopt::Long;
my ($rank, $percentage, $cumulative, $reverse, $ta, @authors, %authors,
if (!$result or (($rank||0) + ($ta||0) + (@authors ? 1 : 0) != 1) or !@ARGV) {
die <<"EOS";
-$0 --rank Changelogs # rank authors by patches
-$0 --acknowledged <authors file> Changelogs # Display unacknowledged authors
-$0 --thanks-applied Changelogs # ranks committers
+$0 --rank changes # rank authors by patches
+$0 --acknowledged <authors file> changes # Display unacknowledged authors
+$0 --thanks-applied changes # ranks committers of others' patches
$0 --percentage ... # show rankings as percentages
$0 --cumulative ... # show rankings cumulatively
$0 --reverse ... # show rankings in reverse
Specify stdin as - if needs be. Remember that option names can be abbreviated.
+Generate changes with git log --pretty=fuller rev1..rev2
EOS
}
my @lines = split(/^commit\s*/sm,join('',<>));
for ( @lines) {
- next if m/^$/;
+ next if m/^$/;
next if m/^(\S*?)^Merge:/ism; # skip merge commits
- if (m/^(.*?)^Author:\s*(.*?)^Date:\s*(.*?)^(.*)$/gism) {
+if (m/^(.*?)^Author:\s*(.*?)^AuthorDate:\s*(.*?)^Commit:\s*(.*?)^(.*)$/gism) {
# new patch
- ($patch, $committer, $date,$log) = ($1,$2,$3,$4);
+ ($patch, $author, $date, $committer) = ($1,$2,$3,$4);
+ chomp($author);
+ unless ($author) { die $_}
chomp($committer);
unless ($committer) { die $_}
- &process ($committer, $patch, $log);
+ &process($committer, $patch, $author);
} else { die "XXX $_ did not match";}
}
}
sub process {
- my ($committer, $patch, $log) = @_;
+ my ($committer, $patch, $author) = @_;
+ return unless $author;
return unless $committer;
- my @authors = $log =~ /From:\s+.*?([^"\@ \t\n<>]+\@[^"\@ \t\n<>]+)/gm;
- if (@authors) {
- foreach my $addr (@authors) {
+ $author = _raw_address($author);
+ $patchers{$author}++;
- $patchers{_raw_address($addr)}++;
- }
- # print "$patch: @authors\n";
- $committers{_raw_address($committer)}++;
- } else {
- # print "$patch: $committer\n";
- # Not entirely fair as this means that the maint pumpking scores for
- # everything intergrated that wasn't a third party patch in blead
- $patchers{_raw_address($committer)}++;
+ $committer = _raw_address($committer);
+ if ($committer ne $author) {
+ # separate commit credit only if committing someone else's patch
+ $committers{$committer}++;
}
}
$addr =~ s/^\s*(.*)\s*<\s*(.*?)\s*>.*$/$2/ ;
$real_name = $1;
}
+ $addr =~ s/\[mailto://;
+ $addr =~ s/\]//;
$addr = lc $addr;
$addr = $map{$addr} || $addr;
$addr =~ s/\\100/@/g; # Sometimes, there are encoded @ signs in the git log.
sky sky\100nanisky.com
+ artur\100contiller.se
+ arthur\100contiller.se
-steveh stevehay\100planit.com
+steveh steve.m.hay\100googlemail.com
++ stevehay\100planit.com
+ steve.hay\100uk.radan.com
stevep steve\100fisharerojo.org
+ steve.peters\100gmail.com
+ david\100wheeler.net
dennis\100booking.com dennis\100camel.ams6.corp.booking.com
dev-perl\100pimb.org knew-p5p\100pimb.org
++ lists-p5p\100pimb.org
djberg86\100attbi.com djberg96\100attbi.com
domo\100computer.org shouldbedomo\100mac.com
+ domo\100slipper.ip.lu
jpeacock\100rowman.com john.peacock\100havurah-software.org
+ jpeacock\100havurah-software.org
+ jpeacock\100dsl092-147-156.wdc1.dsl.speakeasy.net
++ jpeacock\100jpeacock-hp.doesntexist.org
jql\100accessone.com jql\100jql.accessone.com
jsm28\100hermes.cam.ac.uk jsm28\100cam.ac.uk
+ ml1050\100freemail.hu
lewart\100uiuc.edu lewart\100vadds.cvm.uiuc.edu
+ d-lewart\100uiuc.edu
+lkundrak\100v3.sk lubo.rintel\100gooddata.com
lstein\100cshl.org lstein\100formaggio.cshl.org
+ lstein\100genome.wi.mit.edu
lupe\100lupe-christoph.de lupe\100alanya.m.isar.de
rmbarker\100cpan.org rmb1\100cise.npl.co.uk
+ robin.barker\100npl.co.uk
+ rmb\100cise.npl.co.uk
++ robin\100spade-ubuntu.(none)
robertmay\100cpan.org rob\100themayfamily.me.uk
roberto\100keltia.freenix.fr roberto\100eurocontrol.fr
robin\100cpan.org robin\100kitsite.com
--- /dev/null
+#!/usr/bin/env perl
+use 5.010;
+use open qw< :encoding(utf8) :std >;
+use autodie;
+use strict;
+use File::Find;
+use Encode::Guess;
+
+# Check if POD files contain non-ASCII without specifying
+# =encoding. Run it as:
+
+## perl Porting/checkpodencoding.pl
+
+find(
+ {
+ wanted => \&finder,
+ no_chdir => 1,
+ },
+ '.'
+);
+
+sub finder {
+ my $file = $_;
+
+ return if -B $file;
+
+ open my $fh, '<', $file;
+
+ #say STDERR "Checking $file";
+
+ next if
+ # Test cases
+ $file ~~ m[Pod-Simple/t];
+
+ my ($in_pod, $has_encoding, @non_ascii);
+
+ FILE: while (my $line = <$fh>) {
+ chomp $line;
+ if ($line ~~ /^=[a-z]+/) {
+ $in_pod = 1;
+ }
+
+ if ($in_pod) {
+ if ($line ~~ /^=encoding (\S+)/) {
+ $has_encoding = 1;
+ last FILE;
+ } elsif ($line ~~ /[^[:ascii:]]/) {
+ my $encoding = guess_encoding($line);
+ push @non_ascii => {
+ num => $.,
+ line => $line,
+ encoding => (ref $encoding ? "$encoding->{Name}?" : 'unknown!'),
+ };
+ }
+ }
+
+ if ($line ~~ /^=cut/) {
+ $in_pod = 0;
+ }
+ }
+
+ if (@non_ascii and not $has_encoding) {
+ say "$file:";
+ $DB::single = 1;
+ for (@non_ascii) {
+ say " $_->{num} ($_->{encoding}): $_->{line}";
+ }
+ }
+}
use Maintainers;
sub usage {
-die <<'EOF';
+die <<"EOF";
usage: $0 [ -d -x ] source_dir1 source_dir2
EOF
}
aphostname=''
api_revision='5'
api_subversion='0'
-api_version='11'
-api_versionstring='5.11.0'
+api_version='13'
+api_versionstring='5.13.0'
ar='ar'
-archlib='/opt/perl/lib/5.11.3/i686-linux-64int'
-archlibexp='/opt/perl/lib/5.11.3/i686-linux-64int'
+archlib='/opt/perl/lib/5.13.0/i686-linux-64int'
+archlibexp='/opt/perl/lib/5.13.0/i686-linux-64int'
archname64='64int'
archname='i686-linux-64int'
archobjs=''
d_pipe='define'
d_poll='define'
d_portable='define'
+d_prctl='define'
+d_prctl_set_name='define'
d_printf_format_null='define'
d_procselfexe='define'
d_pseudofork='undef'
incpath=''
inews=''
initialinstalllocation='/opt/perl/bin'
-installarchlib='/opt/perl/lib/5.11.3/i686-linux-64int'
+installarchlib='/opt/perl/lib/5.13.0/i686-linux-64int'
installbin='/opt/perl/bin'
installhtml1dir=''
installhtml3dir=''
installman3dir='/opt/perl/man/man3'
installprefix='/opt/perl'
installprefixexp='/opt/perl'
-installprivlib='/opt/perl/lib/5.11.3'
+installprivlib='/opt/perl/lib/5.13.0'
installscript='/opt/perl/bin'
-installsitearch='/opt/perl/lib/site_perl/5.11.3/i686-linux-64int'
+installsitearch='/opt/perl/lib/site_perl/5.13.0/i686-linux-64int'
installsitebin='/opt/perl/bin'
installsitehtml1dir=''
installsitehtml3dir=''
-installsitelib='/opt/perl/lib/site_perl/5.11.3'
+installsitelib='/opt/perl/lib/site_perl/5.13.0'
installsiteman1dir='/opt/perl/man/man1'
installsiteman3dir='/opt/perl/man/man3'
installsitescript='/opt/perl/bin'
perl_patchlevel='34948'
perladmin='yourname@yourhost.yourplace.com'
perllibs='-lnsl -ldl -lm -lcrypt -lutil -lc'
-perlpath='/opt/perl/bin/perl5.11.3'
+perlpath='/opt/perl/bin/perl5.13.0'
pg='pg'
phostname=''
pidtype='pid_t'
pr=''
prefix='/opt/perl'
prefixexp='/opt/perl'
-privlib='/opt/perl/lib/5.11.3'
-privlibexp='/opt/perl/lib/5.11.3'
+privlib='/opt/perl/lib/5.13.0'
+privlibexp='/opt/perl/lib/5.13.0'
procselfexe='"/proc/self/exe"'
prototype='define'
ptrsize='4'
sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 6, 17, 29, 31, 0'
sig_size='69'
signal_t='void'
-sitearch='/opt/perl/lib/site_perl/5.11.3/i686-linux-64int'
-sitearchexp='/opt/perl/lib/site_perl/5.11.3/i686-linux-64int'
+sitearch='/opt/perl/lib/site_perl/5.13.0/i686-linux-64int'
+sitearchexp='/opt/perl/lib/site_perl/5.13.0/i686-linux-64int'
sitebin='/opt/perl/bin'
sitebinexp='/opt/perl/bin'
sitehtml1dir=''
sitehtml1direxp=''
sitehtml3dir=''
sitehtml3direxp=''
-sitelib='/opt/perl/lib/site_perl/5.11.3'
+sitelib='/opt/perl/lib/site_perl/5.13.0'
sitelib_stem='/opt/perl/lib/site_perl'
-sitelibexp='/opt/perl/lib/site_perl/5.11.3'
+sitelibexp='/opt/perl/lib/site_perl/5.13.0'
siteman1dir='/opt/perl/man/man1'
siteman1direxp='/opt/perl/man/man1'
siteman3dir='/opt/perl/man/man3'
srandom_r_proto='0'
src='.'
ssizetype='ssize_t'
-startperl='#!/opt/perl/bin/perl5.11.3'
+startperl='#!/opt/perl/bin/perl5.13.0'
startsh='#!/bin/sh'
static_ext=' '
stdchar='char'
strerror_r_proto='0'
strings='/usr/include/string.h'
submit=''
-subversion='3'
+subversion='0'
sysman='/usr/share/man/man1'
tail=''
tar=''
uvtype='unsigned long long'
uvuformat='"Lu"'
uvxformat='"Lx"'
+vaproto='undef'
vendorarch=''
vendorarchexp=''
vendorbin=''
vendorprefixexp=''
vendorscript=''
vendorscriptexp=''
-version='5.11.3'
-version_patchlevel_string='version 11 subversion 3'
+version='5.13.0'
+version_patchlevel_string='version 13 subversion 0'
versiononly='define'
vi=''
voidflags='15'
config_arg8='-Dusedevel'
config_arg9='-dE'
PERL_REVISION=5
-PERL_VERSION=11
-PERL_SUBVERSION=3
+PERL_VERSION=13
+PERL_SUBVERSION=0
PERL_API_REVISION=5
-PERL_API_VERSION=11
+PERL_API_VERSION=13
PERL_API_SUBVERSION=0
PERL_PATCHLEVEL=34948
PERL_CONFIG_SH=true
* This symbol contains the ~name expanded version of ARCHLIB, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
-#define ARCHLIB "/pro/lib/perl5/5.11.3/i686-linux-64int" /**/
-#define ARCHLIB_EXP "/pro/lib/perl5/5.11.3/i686-linux-64int" /**/
+#define ARCHLIB "/pro/lib/perl5/5.13.0/i686-linux-64int" /**/
+#define ARCHLIB_EXP "/pro/lib/perl5/5.13.0/i686-linux-64int" /**/
/* ARCHNAME:
* This symbol holds a string representing the architecture name.
* This symbol contains the ~name expanded version of PRIVLIB, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
-#define PRIVLIB "/pro/lib/perl5/5.11.3" /**/
-#define PRIVLIB_EXP "/pro/lib/perl5/5.11.3" /**/
+#define PRIVLIB "/pro/lib/perl5/5.13.0" /**/
+#define PRIVLIB_EXP "/pro/lib/perl5/5.13.0" /**/
/* CAN_PROTOTYPE:
* If defined, this macro indicates that the C compiler can handle
* This symbol contains the ~name expanded version of SITEARCH, to be used
* in programs that are not prepared to deal with ~ expansion at run-time.
*/
-#define SITEARCH "/pro/lib/perl5/site_perl/5.11.3/i686-linux-64int" /**/
-#define SITEARCH_EXP "/pro/lib/perl5/site_perl/5.11.3/i686-linux-64int" /**/
+#define SITEARCH "/pro/lib/perl5/site_perl/5.13.0/i686-linux-64int" /**/
+#define SITEARCH_EXP "/pro/lib/perl5/site_perl/5.13.0/i686-linux-64int" /**/
/* SITELIB:
* This symbol contains the name of the private library for this package.
* removed. The elements in inc_version_list (inc_version_list.U) can
* be tacked onto this variable to generate a list of directories to search.
*/
-#define SITELIB "/pro/lib/perl5/site_perl/5.11.3" /**/
-#define SITELIB_EXP "/pro/lib/perl5/site_perl/5.11.3" /**/
+#define SITELIB "/pro/lib/perl5/site_perl/5.13.0" /**/
+#define SITELIB_EXP "/pro/lib/perl5/site_perl/5.13.0" /**/
#define SITELIB_STEM "/pro/lib/perl5/site_perl" /**/
/* Size_t_size:
* script to make sure (one hopes) that it runs with perl and not
* some shell.
*/
-#define STARTPERL "#!/pro/bin/perl5.11.3" /**/
+#define STARTPERL "#!/pro/bin/perl5.13.0" /**/
/* HAS_STDIO_STREAM_ARRAY:
* This symbol, if defined, tells that there is an array
-r/--reverse Reverses the diff (perl to CPAN).
+-u/--upstream only print modules with the given upstream (defaults to all)
+
-v/--verbose List the fate of *all* files in the tarball, not just those
that differ or are missing.
my $scan_all;
my $diff_opts;
my $reverse = 0;
+ my @wanted_upstreams;
my $cache_dir;
my $use_diff;
my $output_file;
'h|help' => \&usage,
'o|output=s' => \$output_file,
'r|reverse' => \$reverse,
+ 'u|upstream=s@'=> \@wanted_upstreams,
'v|verbose' => \$verbose,
'x|crosscheck' => \$do_crosscheck,
) or usage;
}
else {
do_compare(\@modules, $outfh, $output_file, $cache_dir, $verbose, $use_diff,
- $reverse, $diff_opts);
+ $reverse, $diff_opts, \@wanted_upstreams);
}
}
sub do_compare {
my ($modules, $outfh, $output_file, $cache_dir, $verbose,
- $use_diff, $reverse, $diff_opts) = @_;
+ $use_diff, $reverse, $diff_opts, $wanted_upstreams) = @_;
# first, make sure we have a directory where they can all be untarred,
warn "WARNING: duplicate entry for $dist in $module\n"
}
+ my $upstream = $m->{UPSTREAM} || 'UNKNOWN';
+ next if @$wanted_upstreams and ! ($upstream ~~ $wanted_upstreams);
print $outfh "\n$module - ".$Maintainers::Modules{$module}->{DISTRIBUTION}."\n" unless $use_diff;
print $outfh " upstream is: ".($m->{UPSTREAM} || 'UNKNOWN!')."\n";
--- /dev/null
+use strict;
+use 5.010;
+use lib 'dist/Module-CoreList/lib';
+
+use List::MoreUtils qw(uniq);
+use Module::CoreList;
+use Text::Table;
+
+my $old_ver = "5.010000";
+my $new_ver = "5.011005";
+
+my $old = $Module::CoreList::version{ $old_ver };
+my $new = $Module::CoreList::version{ $new_ver };
+
+my $table = Text::Table->new('perl', \' | ', $old_ver, \' | ', $new_ver);
+
+for my $lib (uniq sort (keys %$old, keys %$new)) {
+ my $old = exists $old->{ $lib } ? $old->{ $lib } // '(undef)' : '(absent)';
+ my $new = exists $new->{ $lib } ? $new->{ $lib } // '(undef)' : '(absent)';
+
+ next if $old eq $new;
+
+ $table->add($lib, $old, $new);
+}
+
+print $table;
my ($old, $new) = @ARGV;
$old ||= $versions[-2];
$new ||= $versions[-1];
-
$deprecated = $Module::CoreList::deprecated{$new};
my (@new,@deprecated,@removed,@pragmas,@modules);
# %Modules defines what is currently in core
for my $k ( keys %Modules ) {
+ warn "Considering $k";
next unless exists $corelist->{$new}{$k};
my $old_ver = $corelist->{$old}{$k};
my $new_ver = $corelist->{$new}{$k};
--- /dev/null
+=head1 NAME
+
+perlepigraphs - list of Perl release epigraphs
+
+=head1 DESCRIPTION
+
+Many Perl release announcements included an I<epigraph>, a short excerpt
+from a literary or other creative work, chosen by the pumpking or
+release manager. This file assembles the known list of epigraph for
+posterity.
+
+I<Note>: these have also been referred to as <epigrams>, but the
+definition of I<epigraph> is closer to the way they have been used.
+Consult your favorite dictionary for details.
+
+=head1 EPIGRAPHS
+
+=head2 v5.13.0 - Jules Verne, "A Journey to the Centre of the Earth"
+
+=over
+
+The heat still remained at quite a supportable degree. With an
+involuntary shudder, I reflected on what the heat must have been
+when the volcano of Sneffels was pouring its smoke, flames, and
+streams of boiling lava -- all of which must have come up by the
+road we were now following. I could imagine the torrents of hot
+seething stone darting on, bubbling up with accompaniments of
+smoke, steam, and sulphurous stench!
+
+"Only to think of the consequences," I mused, "if the old
+volcano were once more to set to work."
+
+=back
+
+=head2 v5.12.1 - Kurt Vonnegut, "Cat's Cradle"
+
+=over
+
+"Now suppose," chortled Dr. Breed, enjoying himself, "that there were
+many possible ways in which water could crystallize, could freeze.
+Suppose that the sort of ice we skate upon and put into highballs—
+what we might call ice-one—is only one of several types of ice.
+Suppose water always froze as ice-one on Earth because it had never
+had a seed to teach it how to form ice-two, ice-three, ice-four
+...? And suppose," he rapped on his desk with his old hand again,
+"that there were one form, which we will call ice-nine—a crystal as
+hard as this desk—with a melting point of, let us say, one-hundred
+degrees Fahrenheit, or, better still, a melting point of one-hundred-
+and-thirty degrees."
+
+=back
+
+=head2 v5.12.1-RC2 - Kurt Vonnegut, "Cat's Cradle"
+
+=over
+
+San Lorenzo was fifty miles long and twenty miles wide, I learned from
+the supplement to the New York Sunday Times. Its population was four
+hundred, fifty thousand souls, "...all fiercely dedicated to the ideals
+of the Free World."
+
+Its highest point, Mount McCabe, was eleven thousand feet above sea
+level. Its capital was Bolivar, "...a strikingly modern city built on a
+harbor capable of sheltering the entire United States Navy." The principal
+exports were sugar, coffee, bananas, indigo, and handcrafted novelties.
+
+=back
+
+=head2 v5.12.1-RC2 - Kurt Vonnegut, "Cat's Cradle"
+
+=over
+
+Which brings me to the Bokononist concept of a wampeter. A wampeter is
+the pivot of a karass. No karass is without a wampeter, Bokonon tells us,
+just as no wheel is without a hub. Anything can be a wampeter: a tree,
+a rock, an animal, an idea, a book, a melody, the Holy Grail. Whatever
+it is, the members of its karass revolve about it in the majestic chaos
+of a spiral nebula. The orbits of the members of a karass about their
+common wampeter are spiritual orbits, naturally. It is souls and not
+bodies that revolve. As Bokonon invites us to sing:
+
+ Around and around and around we spin,
+ With feet of lead and wings of tin . . .
+
+=back
+
+=head2 v5.12.0 - Lewis Carroll, "Alice's Adventures in Wonderland"
+
+=over
+
+'Please would you tell me,' said Alice, a little timidly, for she was
+not quite sure whether it was good manners for her to speak first, 'why
+your cat grins like that?'
+
+'It's a Cheshire cat,' said the Duchess, 'and that's why. Pig!'
+
+She said the last word with such sudden violence that Alice quite
+jumped; but she saw in another moment that it was addressed to the baby,
+and not to her, so she took courage, and went on again:--
+
+'I didn't know that Cheshire cats always grinned; in fact, I didn't know
+that cats COULD grin.'
+
+'They all can,' said the Duchess; 'and most of 'em do.'
+
+=back
+
+=head2 v5.12.0-RC5 - Lewis Carroll, "Alice's Adventures in Wonderland"
+
+=over
+
+'Not QUITE right, I'm afraid,' said Alice, timidly; 'some of the words
+have got altered.'
+
+'It is wrong from beginning to end,' said the Caterpillar decidedly, and
+there was silence for some minutes.
+
+=back
+
+=head2 v5.12.0-RC4 - Lewis Carroll, "Alice's Adventures in Wonderland"
+
+=over
+
+'It was much pleasanter at home,' thought poor Alice, 'when one wasn't
+always growing larger and smaller, and being ordered about by mice and
+rabbits. I almost wish I hadn't gone down that rabbit-hole--and yet--and
+yet--it's rather curious, you know, this sort of life! I do wonder what
+can have happened to me! When I used to read fairy-tales, I fancied that
+kind of thing never happened, and now here I am in the middle of one!
+
+=back
+
+=head2 v5.12.0-RC3 - Lewis Carroll, "Alice's Adventures in Wonderland"
+
+=over
+
+At last the Mouse, who seemed to be a person of authority among them,
+called out, 'Sit down, all of you, and listen to me! I'LL soon make you
+dry enough!' They all sat down at once, in a large ring, with the Mouse
+in the middle. Alice kept her eyes anxiously fixed on it, for she felt
+sure she would catch a bad cold if she did not get dry very soon.
+
+'Ahem!' said the Mouse with an important air, 'are you all ready? This
+is the driest thing I know. Silence all round, if you please! "William
+the Conqueror, whose cause was favoured by the pope, was soon submitted
+to by the English, who wanted leaders, and had been of late much
+accustomed to usurpation and conquest. Edwin and Morcar, the earls of
+Mercia and Northumbria—"'
+
+=back
+
+=head2 v5.12.0-RC2 - no epigraph
+
+=head2 v5.12.0-RC1 - Lewis Carroll, "Alice's Adventures in Wonderland"
+
+=over
+
+So she was considering in her own mind (as well as she could, for the
+hot day made her feel very sleepy and stupid), whether the pleasure of
+making a daisy-chain would be worth the trouble of getting up and
+picking the daisies, when suddenly a White Rabbit with pink eyes ran
+close by her.
+
+There was nothing so VERY remarkable in that; nor did Alice think it so
+VERY much out of the way to hear the Rabbit say to itself, 'Oh dear! Oh
+dear! I shall be late!' (when she thought it over afterwards, it
+occurred to her that she ought to have wondered at this, but at the time
+it all seemed quite natural); but when the Rabbit actually TOOK A WATCH
+OUT OF ITS WAISTCOAT-POCKET, and looked at it, and then hurried on,
+Alice started to her feet, for it flashed across her mind that she had
+never before seen a rabbit with either a waistcoat-pocket, or a watch to
+take out of it, and burning with curiosity, she ran across the field
+after it, and fortunately was just in time to see it pop down a large
+rabbit-hole under the hedge.
+
+In another moment down went Alice after it, never once considering how
+in the world she was to get out again.
+
+=back
+
+=head2 v5.12.0-RC0 - no epigraph
+
+=head2 v5.11.5 - Samuel Taylor Coleridge, "Christabel"
+
+=over
+
+ A little child, a limber elf,
+ Singing, dancing to itself,
+ A fairy thing with red round cheeks,
+ That always finds, and never seeks,
+ Makes such a vision to the sight
+ As fills a father's eyes with light;
+ And pleasures flow in so thick and fast
+ Upon his heart, that he at last
+ Must needs express his love's excess
+ With words of unmeant bitterness.
+ Perhaps 'tis pretty to force together
+ Thoughts so all unlike each other;
+ To mutter and mock a broken charm,
+ To dally with wrong that does no harm.
+ Perhaps 'tis tender too and pretty
+ At each wild word to feel within
+ A sweet recoil of love and pity.
+ And what, if in a world of sin
+ (O sorrow and shame should this be true!)
+ Such giddiness of heart and brain
+ Comes seldom save from rage and pain,
+ So talks as it's most used to do.
+
+=back
+
+=head2 v5.11.4 - Fyodor Dostoevsky, "Crime and Punishment"
+
+=over
+
+And you don't suppose that I went into it headlong like a fool? I went
+into it like a wise man, and that was just my destruction. And you
+mustn't suppose that I didn't know, for instance, that if I began to
+question myself whether I had the right to gain power -- I certainly
+hadn't the right -- or that if I asked myself whether a human being is a
+louse it proved that it wasn't so for me, though it might be for a man
+who would go straight to his goal without asking questions.... If I
+worried myself all those days, wondering whether Napoleon would have
+done it or not, I felt clearly of course that I wasn't Napoleon.
+
+=back
+
+=head2 v5.11.3 - Mark Twain, "The Adventures of Tom Sawyer"
+
+=over
+
+"Say -- I'm going in a swimming, I am. Don't you wish you could? But of
+course you'd druther work—wouldn't you? Course you would!"
+
+Tom contemplated the boy a bit, and said: "What do you call work?"
+
+"Why ain't that work?"
+
+Tom resumed his whitewashing, and answered carelessly: "Well, maybe it
+is, and maybe it aint. All I know, is, it suits Tom Sawyer."
+
+"Oh come, now, you don't mean to let on that you like it?"
+
+The brush continued to move. "Like it? Well I don't see why I oughtn't
+to like it. Does a boy get a chance to whitewash a fence every day?"
+
+That put the thing in a new light. Ben stopped nibbling his apple. Tom
+swept his brush daintily back and forth -- stepped back to note the effect
+-- added a touch here and there-criticised the effect again -- Ben
+watching every move and getting more and more interested, more and more
+absorbed. Presently he said: "Say, Tom, let me whitewash a little."
+
+=back
+
+
+=head2 v5.11.2 - Michael Marshall Smith, "Only Forward"
+
+=over
+
+The streets were pretty quiet, which was nice. They're always quiet here
+at that time: you have to be wearing a black jacket to be out on the
+streets between seven and nine in the evening, and not many people in
+the area have black jackets. It's just one of those things. I currently
+live in Colour Neighbourhood, which is for people who are heavily into
+colour. All the streets and buildings are set for instant colourmatch:
+as you walk down the road they change hue to offset whatever you're
+wearing. When the streets are busy it's kind of intense, and anyone
+prone to epileptic seizures isn't allowed to live in the Neighbourhood,
+however much they're into colour.
+
+=back
+
+=head2 v5.11.1 - Joseph Heller, "Catch-22"
+
+=over
+
+Milo had been caught red-handed in the act of plundering his countrymen,
+and, as a result, his stock had never been higher. He proved good as his
+word when a rawboned major from Minnesota curled his lip in rebellious
+disavowal and demanded his share of the syndicate Milo kept saying
+everybody owned. Milo met the challenge by writing the words "A Share"
+on the nearest scrap of paper and handing it away with a virtuous disdain
+that won the envy and admiration of almost everyone who knew him. His
+glory was at a peak, and Colonel Cathcart, who knew and admired his
+war record, was astonished by the deferential humility with which Mil
+presented himself at Group Headquarters and made his fantastic appeal
+for more hazardous assignment.
+
+=back
+
+=head2 v5.11.0 - Mikhail Bulgakov, "The Master and Margarita"
+
+=over
+
+Whispers of an "evil power" were heard in lines at dairy shops, in
+streetcars, stores, arguments, kitchens, suburban and long-distance
+trains, at stations large and small, in dachas and on beaches. Needless
+to say, truly mature and cultured people did not tell these stories
+about an evil power's visit to the capital. In fact, they even made fun
+of them and tried to talk sense into those who told them. Nevertheless,
+facts are facts, as they say, and cannot simply be dismissed without
+explanation: somebody had visited the capital. The charred cinders of
+Griboyedov alone, and many other things besides, confirmed it. Cultured
+people shared the point of view of the investigating team: it was the
+work of a gang of hypnotists and ventriloquists magnificently skilled in
+their art.
+
+=back
+
+
+=head2 v5.10.1 - Right Hon. James Hacker MP, "The Complete Yes Minister: The Diaries of a Cabinet Minister"
+
+=over
+
+'Briefly, sir, I am the Permanent Under-Secretary of State, known as
+the Permanent Secretary. Woolley here is your Principal Private
+Secretary. I, too, have a Principal Private Secretary, and he is the
+Principal Private Secretary to the Permanent Secretary. Directly
+responsible to me are ten Deputy Secretaries, eighty-seven Under
+Secretaries and two hundred and nineteen Assistant Secretaries.
+Directly responsible to the Principal Private Secretaries are plain
+Private Secretaries. The Prime Minister will be appointing two
+Parliamentary Under-Secretaries and you will be appointing your own
+Parliamentary Private Secretary.'
+
+'Can they all type?' I joked.
+
+'None of us can type, Minister,' replied Sir Humphrey smoothly. 'Mrs
+McKay types - she is your Secretary.'
+
+I couldn't tell whether or not he was joking. 'What a pity,' I said.
+'We could have opened an agency.'
+
+Sir Humphrey and Bernard laughed. 'Very droll, sir,' said Sir
+Humphrey. 'Most amusing, sir,' said Bernard. Were they genuinely
+amused at my wit, or just being rather patronising? 'I suppose they
+all say that, do they?' I ventured.
+
+Sir Humphrey reassured me on that. 'Certainly not, Minister,' he
+replied. 'Not quite all.'
+
+=back
+
+=head2 v5.10.1-RC2 - no epigraph
+
+=head2 v5.10.1-RC1 - no epigraph
+
+=head2 v5.10.0 - Laurence Sterne, "Tristram Shandy"
+
+=over
+
+He would often declare, in speaking his thoughts upon the subject, that
+he did not conceive how the greatest family in England could stand it
+out against an uninterrupted succession of six or seven short
+noses.--And for the contrary reason, he would generally add, That it
+must be one of the greatest problems in civil life, where the same
+number of long and jolly noses, following one another in a direct line,
+did not raise and hoist it up into the best vacancies in the kingdom.
+
+=back
+
+=head2 v5.10.0-RC2 - no epigraph
+
+=head2 v5.10.0-RC1 - no epigraph
+
+=head2 v5.9.5 - no epigraph
+
+=head2 v5.9.4 - no epigraph
+
+=head2 v5.9.3 - no epigraph
+
+=head2 v5.9.2 - Thomas Pynchon, "V"
+
+=over
+
+This word flip was weird. Every recording date of McClintic's he'd
+gotten into the habit of talking electricity with the audio men and
+technicians of the studio. McClintic once couldn't have cared less
+about electricity, but now it seemed if that was helping him reach a
+bigger audience, some digging, some who would never dig, but all
+paying and those royalties keeping the Triumph in gas and McClintic
+in J. Press suits, then McClintic ought to be grateful to
+electricity, ought maybe to learn a little more about it. So he'd
+picked up some here and there, and one day last summer he got around
+to talking stochastic music and digital computers with one
+technician. Out of the conversation had come Set/Reset, which was
+getting to be a signature for the group. He had found out from this
+sound man about a two-triode circuit called a flip-flop, which when
+it turned on could be one of two ways, depending on which tube was
+conducting and which was cut off: set or reset, flip or flop.
+
+"And that," the man said, "can be yes or no, or one or zero. And
+that is what you might call one of the basic units, or specialized
+`cells' in a big `electronic brain.' "
+
+"Crazy," said McClintic, having lost him back there someplace. But
+one thing that did occur to him was if a computer's brain could go
+flip or flop, why so could a musician's. As long as you were flop,
+everything was cool. But where did the trigger-pulse come from to
+make you flip?
+
+=back
+
+=head2 v5.9.1 - Tom Stoppard, "Arcadia"
+
+=over
+
+Aren't you supposed to have a pony?
+
+=back
+
+=head2 v5.9.0 - Doris Lessing, "Martha Quest"
+
+=over
+
+What of October, that ambiguous month
+
+=back
+
+=head2 v5.8.9 - Right Hon. James Hacker MP, "The Complete Yes Minister: The Diaries of a Cabinet Minister"
+
+=over
+
+Frank and I, unlike the civil servants, were still puzzled that such a
+proposal as the Europass could even be seriously under consideration by
+the FCO. We can both see clearly that it is wonderful ammunition for the
+anti-Europeans. I asked Humphrey if the Foreign Office doesn't realise
+how damaging this would be to the European ideal?
+
+'I'm sure they do, Minister, he said. That's why they support it.'
+
+This was even more puzzling, since I'd always been under the impression
+that the FO is pro-Europe. 'Is it or isn't it?' I asked Humphrey.
+
+'Yes and no,' he replied of course, 'if you'll pardon the
+expression. The Foreign Office is pro-Europe because it is really
+anti-Europe. In fact the Civil Service was united in its desire to make
+sure the Common Market didn't work. That's why we went into it.'
+
+This sounded like a riddle to me. I asked him to explain further. And
+basically his argument was as follows: Britain has had the same foreign
+policy objective for at least the last five hundred years - to create a
+disunited Europe. In that cause we have fought with the Dutch against
+the Spanish, with the Germans against the French, with the French and
+Italians against the Germans, and with the French against the Italians
+and Germans. [The Dutch rebellion against Phillip II of Spain, the
+Napoleonic Wars, the First World War, and the Second World War - Ed.]
+
+In other words, divide and rule. And the Foreign Office can see no
+reason to change when it has worked so well until now.
+
+I was aware of this, naturally, but I regarded it as ancient history.
+Humphrey thinks that it is, in fact, current policy. It was necessary
+for us to break up the EEC, he explained, so we had to get inside. We
+had previously tried to break it up from the outside, but that didn't
+work. [A reference to our futile and short-lived involvement in EFTA,
+the European Free Trade Association, founded in 1960 and which the UK
+left in 1972 - Ed.] Now that we're in, we are able to make a complete
+pig's breakfast out of it. We've now set the Germans against the French,
+the French against the Italians, the Italians against the Dutch... and
+the Foreign office is terribly happy. It's just like old time.
+
+I was staggered by all of this. I thought that the all of us who are
+publicly pro-European believed in the European ideal. I said this to Sir
+Humphrey, and he simply chuckled.
+
+So I asked him: if we don't believe in the European Ideal, why are we
+pushing to increase the membership?
+
+'Same reason,' came the reply. 'It's just like the United Nations. The
+more members it has, the more arguments you can stir up, and the more
+futile and impotent it becomes.'
+
+This all strikes me as the most appalling cynicism, and I said so.
+
+Sir Humphrey agreed completely. 'Yes Minister. We call it
+diplomacy. It's what made Britain great, you know.'
+
+=back
+
+=head2 v5.8.9-RC2 - Right Hon. James Hacker MP, "The Complete Yes Minister: The Diaries of a Cabinet Minister"
+
+=over
+
+There was silence in the office. I didn't know what we were going to do
+about the four hundred new people supervising our economy drive or the
+four hundred new people for the Bureaucratic Watchdog Office, or
+anything! I simply sat and waited and hoped that my head would stop
+thumping and that some idea would be suggested by someone sometime soon.
+
+Sir Humphrey obliged. 'Minister... if we were to end the economy drive
+and close the Bureaucratic Watchdog Office we could issue an immediate
+press announcement that you had axed eight hundred jobs.' He had
+obviously thought this out carefully in advance, for at this moment he
+produced a slim folder from under his arm. 'If you'd like to approve
+this draft...'
+
+I couldn't believe the impertinence of the suggestion. Axed eight
+hundred jobs? 'But no one was ever doing these jobs,' I pointed out
+incredulously. 'No one's been appointed yet.'
+
+'Even greater economy,' he replied instantly. 'We've saved eight hundred
+redundancy payments as well.'
+
+'But...' I attempted to explain '... that's just phony. It's dishonest,
+it's juggling with figures, it's pulling the wool over people's eyes.'
+
+'A government press release, in fact.' said Humphrey.
+
+=back
+
+=head2 v5.8.9-RC1 - Right Hon. James Hacker MP, "The Complete Yes Minister: The Diaries of a Cabinet Minister"
+
+=over
+
+A jumbo jet touched down, with BURANDAN AIRWAYS written on the side. I
+was hugely impressed. British Airways are having to pawn their Concordes,
+and here is this little tiny African state with its own airline, jumbo
+jets and all.
+
+I asked Bernard how many planes Burandan Airways had. 'None,' he said.
+
+I told him not to be silly and use his eyes. 'No Minister, it belongs to
+Freddie Laker,' he said. 'They chartered it last week and repainted it
+specially.' Apparently most of the Have-Nots (I mean, LDCs) do this - at
+the opening of the UN General Assembly the runways of Kennedy Airport are
+jam-packed with phoney flag-carriers. 'In fact,' said Bernard with a sly
+grin, 'there was one 747 that belonged to nine different African airlines
+in a month. They called it the mumbo-jumbo.'
+
+While we watched nothing much happening on the TV except the mumbo-jumbo
+taxiing around Prestwick and the Queen looking a bit chilly, Bernard gave
+me the next day's schedule and explained that I was booked on the night
+sleeper from King's Cross to Edinburgh because I had to vote in a
+three-line whip at the House tonight and would have to miss the last
+plane. Then the commentator, in that special hushed BBC voice used for any
+occasion with which Royalty is connected, announced reverentially that we
+were about to catch our first glimpse of President Selim.
+
+And out of the plane stepped Charlie. My old friend Charlie Umtali. We
+were at LSE together. Not Selim Mohammed at all, but Charlie.
+
+Bernard asked me if I were sure. Silly question. How could you forget a
+name like Charlie Umtali?
+
+I sent Bernard for Sir Humphrey, who was delighted to hear that we now
+know something about our official visitor.
+
+Bernard's official brief said nothing. Amazing! Amazing how little the FCO
+has been able to find out. Perhaps they were hoping it would all be on the
+car radio. All the brief says is that Colonel Selim Mohammed had converted
+to Islam some years ago, they didn't know his original name, and therefore
+knew little of his background.
+
+I was able to tell Humphrey and Bernard /all/ about his background.
+Charlie was a red-hot political economist, I informed them. Got the top
+first. Wiped the floor with everyone.
+
+Bernard seemed relieved. 'Well that's all right then.'
+
+'Why?' I enquired.
+
+'I think Bernard means,' said Sir Humphrey helpfully, 'that he'll know how
+to behave if he was at an English University. Even if it was the LSE.' I
+never know whether or not Humphrey is insulting me intentionally.
+
+Humphrey was concerned about Charlie's political colour. 'When you said
+that he was red-hot, were you speaking politically?'
+
+In a way I was. 'The thing about Charlie is that you never quite know
+where you are with him. He's the sort of chap who follows you into a
+revolving door and comes out in front.'
+
+'No deeply held convictions?' asked Sir Humphrey.
+
+'No. The only thing Charlie was committed too was Charlie.'
+
+'Ah, I see. A politician, Minister.'
+
+=back
+
+=head2 v5.8.8 - Joe Raposo, "Bein' Green"
+
+=over
+
+ It's not that easy bein' green
+ Having to spend each day the color of the leaves
+ When I think it could be nicer being red or yellow or gold
+ Or something much more colorful like that
+
+ It's not easy bein' green
+ It seems you blend in with so many other ordinary things
+ And people tend to pass you over 'cause you're
+ Not standing out like flashy sparkles in the water
+ Or stars in the sky
+
+ But green's the color of Spring
+ And green can be cool and friendly-like
+ And green can be big like an ocean
+ Or important like a mountain
+ Or tall like a tree
+
+ When green is all there is to be
+ It could make you wonder why, but why wonder why?
+ Wonder I am green and it'll do fine, it's beautiful
+ And I think it's what I want to be
+
+=back
+
+=head2 v5.8.8-RC1 - Cosgrove Hall Productions, "Dangermouse"
+
+=over
+
+ Greenback: And the world is mine, all mine. Muhahahahaha. See to it!
+
+ Stiletto: Si, Barone. Subito, Barone.
+
+=back
+
+=head2 v5.8.7 - Sergei Prokofiev, "Peter and the Wolf"
+
+=over
+
+And now, imagine the triumphant procession: Peter at the head; after him the
+hunters leading the wolf; and winding up the procession, grandfather and the
+cat.
+
+Grandfather shook his head discontentedly: "Well, and if Peter hadn't caught
+the wolf? What then?"
+
+=back
+
+=head2 v5.8.7-RC1 - Sergei Prokofiev, "Peter and the Wolf"
+
+=over
+
+And now this is how things stood: The cat was sitting on one branch. The
+bird on another, not too close to the cat. And the wolf walked round and
+round the tree, looking at them with greedy eyes.
+
+In the meantime, Peter, without the slightest fear, stood behind the
+gate, watching all that was going on. He ran home,got a strong rope and
+climbed up the high stone wall.
+
+One of the branches of the tree, around which the wolf was walking,
+stretched out over the wall.
+
+Grabbing hold of the branch, Peter lightly climbed over on to the tree.
+Peter said to the bird: "Fly down and circle round the wolf's head, only
+take care that he doesn't catch you!".
+
+The bird almost touched the wolf's head with its wings, while the wolf
+snapped angrily at him from this side and that.
+
+How that bird teased the wolf, how that wolf wanted to catch him! But
+the bird was clever and the wolf simply couldn't do anything about it.
+
+=back
+
+=head2 v5.8.6 - A. A. Milne, "The House at Pooh Corner"
+
+=over
+
+"Hallo, Pooh," said Piglet, giving a jump of surprise. "I knew it was
+you."
+
+"So did I,", said Pooh. "What are you doing?"
+
+"I'm planting a haycorn, Pooh, so that it can grow up into an oak-tree,
+and have lots of haycorns just outside the front door instead of having
+to walk miles and miles, do you see, Pooh?"
+
+"Supposing it doesn't?" said Pooh.
+
+"It will, because Christopher Robin says it will, so that's why I'm
+planting it."
+
+"Well," aid Pooh, "if I plant a honeycomb outside my house, then it will
+grow up into a beehive."
+
+Piglet wasn't quite sure about this.
+
+"Or a /piece/ of a honeycomb," said Pooh, "so as not to waste too much.
+Only then I might only get a piece of a beehive, and it might be the
+wrong piece, where the bees were buzzing and not hunnying. Bother"
+
+Piglet agreed that that would be rather bothering.
+
+"Besides, Pooh, it's a very difficult thing, planting unless you know
+how to do it," he said; and he put the acorn in the hole he had made,
+and covered it up with earth, and jumped on it.
+
+=back
+
+=head2 v5.8.6-RC1 - A. A. Milne, "Winnie the Pooh"
+
+=over
+
+"Hallo!" said Piglet, "whare are /you/ doing?"
+
+"Hunting," said Pooh.
+
+"Hunting what?"
+
+"Tracking something," said Winnie-the-Pooh very mysteriously.
+
+"Tracking what?" said Piglet, coming closer.
+
+"That's just what I ask myself, I ask myself, What?"
+
+"What do you think you'll answer?"
+
+"I shall have to wait until I catch up with it," said Winnie-the-Pooh.
+"Now, look there." He pointed to the ground in front of him. "What do
+you see there?"
+
+"Track," said Piglet. "Paw-marks." He gave a little squeak of
+excitement. "Oh, Pooh!" Do you think it's a--a--a Woozle?"
+
+=back
+
+=head2 v5.8.5 - wikipedia, "Yew"
+
+=over
+
+Yews are relatively slow growing trees, widely used in landscaping and
+ornamental horticulture. They have flat, dark-green needles, reddish
+bark, and bear seeds with red arils, which are eaten by thrushes,
+waxwings and other birds, dispersing the hard seeds undamaged in their
+droppings. Yew wood is reddish brown (with white sapwood), and very
+hard. It was traditionally used to make bows, especially the English
+longbow.
+
+In England, the Common Yew (Taxus baccata, also known as English Yew) is
+often found in churchyards. It is sometimes suggested that these are
+placed there as a symbol of long life or trees of death, and some are
+likely to be over 3,000 years old. It is also suggested that yew trees
+may have a pre-Christian association with old pagan holy sites, and the
+Christian church found it expedient to use and take over existing sites.
+Another explanation is that the poisonous berries and foliage discourage
+farmers and drovers from letting their animals wander into the burial
+grounds. The yew tree is a frequent symbol in the Christian poetry of
+T.S. Eliot, especially his Four Quartets.
+
+=back
+
+=head2 v5.8.5-RC2 - wikipedia, "Beech"
+
+=over
+
+Beeches are trees of the Genus Fagus, family Fagaceae, including about
+ten species in Europe, Asia, and North America. The leaves are entire or
+sparsely toothed. The fruit is a small, sharply-angled nut, borne in
+pairs in spiny husks. The beech most commonly grown as an ornamental or
+shade tree is the European beech (Fagus sylvatica).
+
+The southern beeches belong to a different but related genus,
+Nothofagus. They are found in Australia, New Zealand, New Guinea, New
+Caledonia and South America.
+
+=back
+
+=head2 v5.8.5-RC1 - wikipedia, "Pedunculate Oak" (abridged)
+
+=over
+
+The Pedunculate Oak is called the Common Oak in Britain, and is also
+often called the English Oak in other English speaking countries It is a
+large deciduous tree to 25-35m tall (exceptionally to 40m), with lobed
+and sessile (stalk-less) leaves. Flowering takes place in early to mid
+spring, and their fruit, called "acorns", ripen by autumn of the same
+year. The acorns are pedunculate (having a peduncle or acorn-stalk) and
+may occur singly, or several acorns may occur on a stalk.
+
+It forms a long-lived tree, with a large widespreading head of rugged
+branches. While it may naturally live to an age of a few centuries, many
+of the oldest trees are pollarded or coppiced, both pruning techniques
+that extend the tree's potential lifespan, if not its health.
+
+Within its native range it is valued for its importance to insects and
+other wildlife. Numerous insects live on the leaves, buds, and in the
+acorns. The acorns form a valuable food resource for several small
+mammals and some birds, notably Jays Garrulus glandarius.
+
+It is planted for forestry, and produces a long-lasting and durable
+heartwood, much in demand for interior and furniture work.
+
+=back
+
+=head2 v5.8.4 - T. S. Eliot, "The Old Gumbie Cat"
+
+=over
+
+ I have a Gumbie Cat in mind, her name is Jennyanydots;
+ The curtain-cord she likes to wind, and tie it into sailor-knots.
+ She sits upon the window-sill, or anything that's smooth and flat:
+ She sits and sits and sits and sits -- and that's what makes a Gumbie Cat!
+
+ But when the day's hustle and bustle is done,
+ Then the Gumbie Cat's work is but hardly begun.
+ She thinks that the cockroaches just need employment
+ To prevent them from idle and wanton destroyment.
+ So she's formed, from that a lot of disorderly louts,
+ A troop of well-disciplined helpful boy-scouts,
+ With a purpose in life and a good deed to do--
+ And she's even created a Beetles' Tattoo.
+
+
+ So for Old Gumbie Cats let us now give three cheers --
+ On whom well-ordered households depend, it appears.
+
+=back
+
+
+=head2 v5.8.4-RC2 - T. S. Eliot, "Macavity: The Mystery Cat"
+
+=over
+
+ Macavity's a Mystery Cat: he's called the Hidden Paw --
+ For he's the master criminal who can defy the Law.
+ He's the bafflement of Scotland Yard, the Flying Squad's despair:
+ For when they reach the scene of crime -- /Macavity's not there/!
+
+ Macavity, Macavity, there's no one like Macavity,
+ He's broken every human law, he breaks the law of gravity.
+ His powers of levitation would make a fakir stare,
+ And when you reach the scene of crime -- /Macavity's not there/!
+ You may seek him in the basement, you may look up in the air --
+ But I tell you once and once again, /Macavity's not there/!
+
+=back
+
+=head2 v5.8.4-RC1 - T. S. Eliot, "Skimbleshanks: The Railway Cat"
+
+=over
+
+ There's a whisper down the line at 11.39
+ When the Night Mail's ready to depart,
+ Saying 'Skimble where is Skimble has he gone to hunt the thimble?
+ We must find him of the train can't start.'
+ All the guards and all the porters and the stationmaster's daughters
+ They are searching high and low,
+ Saying 'Skimble where is Skimble for unless he's very nimble
+ Then the Night Mail just can't go'
+ At 11.42 then the signal's overdue
+ And the passengers are frantic to a man--
+ Then Skimble will appear and he'll saunter to the rear:
+ He's been busy in the luggage van!
+ He gives one flash of his glass-green eyes
+ And the the signal goes 'All Clear!'
+ And we're off at last of the northern part
+ Of the Northern Hemisphere!
+
+=back
+
+=head2 v5.8.3 - Arthur William Edgar O'Shaugnessy, "Ode"
+
+=over
+
+ We are the music makers,
+ And we are the dreamers of dreams,
+ Wandering by lonely sea-breakers,
+ And sitting by desolate streams; --
+ World-losers and world-forsakers,
+ On whom the pale moon gleams:
+ Yet we are the movers and shakers
+ Of the world for ever, it seems.
+
+=back
+
+=head2 v5.8.3-RC1 - Irving Berlin, "Let's Face the Music and Dance"
+
+=over
+
+ There may be trouble ahead,
+ But while there's music and moonlight,
+ And love and romance,
+ Let's face the music and dance.
+
+ Before the fiddlers have fled,
+ Before they ask us to pay the bill,
+ And while we still have that chance,
+ Let's face the music and dance.
+
+ Soon, we'll be without the moon,
+ Humming a different tune, and then,
+
+ There may be teardrops to shed,
+ So while there's music and moonlight,
+ And love and romance,
+ Let's face the music and dance.
+
+=back
+
+=head2 v5.8.2 - Walt Whitman, "Passage to India"
+
+=over
+
+ Passage, immediate passage! the blood burns in my veins!
+ Away O soul! hoist instantly the anchor!
+ Cut the hawsers - hall out - shake out every sail!
+ Have we not stood here like trees in the ground long enough?
+ Have we not grovel'd here long enough, eating and drinking like mere brutes?
+ Have we not darken'd and dazed ourselves with books long enough?
+
+
+ Sail forth - steer for the deep waters only,
+ Reckless O soul, exploring, I with the and thou with me,
+ For we are bound where mariner has not yet dared to go,
+ And we will risk the ship, ourselves and all.
+
+ O my brave soul!
+ O farther farther sail!
+ O daring job, but safe! are they not all the seas of God?
+ O farther, farther, farther sail!
+
+=back
+
+=head2 v5.8.2-RC2 - Eric Idle/John Du Prez, "Accountancy Shanty"
+
+=over
+
+ It's fun to charter an accountant
+ And sail the wide accountan-cy,
+ To find, explore the funds offshore
+ And skirt the shoals of bankruptcy.
+
+=back
+
+=head2 v5.8.2-RC1 - Edward Lear, "The Jumblies"
+
+=over
+
+ They went to sea in a Sieve, they did,
+ In a Sieve they went to sea:
+ In spite of all their friends could say,
+ On a winter's morn, on a stormy day,
+ In a Sieve they went to sea!
+ And when the Sieve turned round and round,
+ And everyone cried, "You'll all be drowned!"
+ They cried aloud, "Our Sieve ain't big,
+ But we don't care a button, we don't care a fig!
+ In a Sieve we'll go to sea!"
+
+ Far and few, far and few,
+ Are the lands where the Jumblies live;
+ Their heads are green, and their hands are blue,
+ And they went to sea in a Sieve.
+
+=back
+
+=head2 v5.8.1 - Terry Pratchett, "The Color of Magic"
+
+=over
+
+"What happens next?" asked Twoflower.
+
+Hrun screwed a finger in his ear and inspected it absently.
+
+"Oh,", he said, "I expect in a minute the door will be
+flung back and I'll be dragged off to some sort of temple
+arena where I'll fight maybe a couple of giant spiders
+and an eight-foot slave from the jungles of Klatch and then
+I'll rescue some kind of a princess from the altar and then
+I'll kill off a few guards or whatever and then this girl
+will show me the secret passage out of the place and we'll
+liberate a couple of horses and escape with the treasure."
+Hrun leaned his head back on his hands and looked at the
+ceiling, whistling tunelessly.
+
+"All that?" said Twoflower.
+
+"Usually."
+
+=back
+
+=head2 v5.8.1-RC5 - Terry Pratchett, "Lords and Ladies"
+
+=over
+
+No matter what she did with her hair it took about
+three minutes for it to tangle itself up again,