Resync with mainline prior to post-5.6.0 updates
authorCharles Bailey <bailey@newman.upenn.edu>
Tue, 23 May 2000 23:35:13 +0000 (23:35 +0000)
committerbailey <bailey@newman.upenn.edu>
Tue, 23 May 2000 23:35:13 +0000 (23:35 +0000)
p4raw-id: //depot/vmsperl@6111

380 files changed:
AUTHORS
Changes5.6 [new file with mode: 0644]
Configure
INSTALL
MAINTAIN
MANIFEST
Porting/Glossary
Porting/config.sh
Porting/config_H
Porting/makerel
README.amiga
README.cygwin
README.hpux
README.machten [new file with mode: 0644]
README.mint
README.os2
README.os390
README.posix-bc
README.win32
Todo
Todo-5.6
config_h.SH
configpm
configure.com
cop.h
cygwin/Makefile.SHs
cygwin/cygwin.c
doio.c
doop.c
emacs/cperl-mode.el
embed.h
embed.pl
embedvar.h
epoc/config.sh
ext/B/B/Bblock.pm
ext/B/B/Bytecode.pm
ext/B/B/Deparse.pm
ext/B/B/Disassembler.pm
ext/B/B/Stash.pm
ext/DB_File/Changes
ext/DB_File/DB_File.pm
ext/DB_File/DB_File.xs
ext/DB_File/version.c
ext/Data/Dumper/Dumper.xs
ext/Devel/Peek/Peek.xs
ext/DynaLoader/DynaLoader_pm.PL
ext/DynaLoader/XSLoader_pm.PL
ext/DynaLoader/dl_aix.xs
ext/DynaLoader/dlutils.c
ext/Fcntl/Fcntl.pm
ext/Fcntl/Fcntl.xs
ext/File/Glob/Glob.pm
ext/IO/lib/IO/File.pm
ext/IO/lib/IO/Poll.pm
ext/IO/lib/IO/Seekable.pm
ext/IO/lib/IO/Select.pm
ext/IO/lib/IO/Socket/INET.pm
ext/IO/poll.c
ext/IPC/SysV/Msg.pm
ext/POSIX/Makefile.PL
ext/POSIX/POSIX.xs
ext/Socket/Socket.pm
ext/Socket/Socket.xs
ext/Sys/Syslog/Syslog.pm
ext/Sys/Syslog/Syslog.xs
ext/Thread/Thread.pm
ext/Thread/Thread/Queue.pm
ext/Thread/Thread/Semaphore.pm
ext/Thread/Thread/Specific.pm
global.sym
gv.c
handy.h
hints/cygwin.sh
hints/dec_osf.sh
hints/dos_djgpp.sh
hints/esix4.sh
hints/freebsd.sh
hints/hpux.sh
hints/irix_6.sh
hints/linux.sh
hints/machten.sh
hints/newsos4.sh
hints/openbsd.sh
hints/posix-bc.sh
hints/powerux.sh
hints/solaris_2.sh
hints/unicos.sh
hints/unicosmk.sh
installperl
intrpvar.h
iperlsys.h
lib/CGI.pm
lib/CGI/Carp.pm
lib/CGI/Cookie.pm
lib/CGI/Pretty.pm
lib/CGI/Push.pm
lib/CGI/Util.pm [new file with mode: 0644]
lib/Carp/Heavy.pm
lib/Class/Struct.pm
lib/Dumpvalue.pm
lib/English.pm
lib/ExtUtils/Liblist.pm
lib/ExtUtils/MM_Unix.pm
lib/ExtUtils/MM_Win32.pm
lib/ExtUtils/MakeMaker.pm
lib/ExtUtils/xsubpp
lib/File/Compare.pm
lib/File/Find.pm
lib/File/Spec.pm
lib/File/Spec/Functions.pm
lib/File/Spec/Mac.pm
lib/File/Spec/OS2.pm
lib/File/Spec/Unix.pm
lib/File/Spec/VMS.pm
lib/File/Spec/Win32.pm
lib/File/Temp.pm [new file with mode: 0644]
lib/Getopt/Long.pm
lib/I18N/Collate.pm
lib/IPC/Open2.pm
lib/IPC/Open3.pm
lib/Math/Complex.pm
lib/Pod/Checker.pm
lib/Pod/Find.pm
lib/Pod/InputObjects.pm
lib/Pod/Man.pm
lib/Pod/ParseUtils.pm
lib/Pod/Parser.pm
lib/Pod/Select.pm
lib/Pod/Text.pm
lib/Pod/Usage.pm
lib/Text/Abbrev.pm
lib/Tie/Handle.pm
lib/Tie/Hash.pm
lib/Tie/Scalar.pm
lib/User/pwent.pm
lib/charnames.pm
lib/constant.pm
lib/diagnostics.pm
lib/dumpvar.pl
lib/fields.pm
lib/open.pm
lib/perl5db.pl
lib/strict.pm
lib/syslog.pl
lib/unicode/Is/Alnum.pl
lib/unicode/Is/Alpha.pl
lib/unicode/Is/LbrkAI.pl [new file with mode: 0644]
lib/unicode/Is/LbrkAL.pl [new file with mode: 0644]
lib/unicode/Is/LbrkB2.pl [new file with mode: 0644]
lib/unicode/Is/LbrkBA.pl [new file with mode: 0644]
lib/unicode/Is/LbrkBB.pl [new file with mode: 0644]
lib/unicode/Is/LbrkBK.pl [new file with mode: 0644]
lib/unicode/Is/LbrkCB.pl [new file with mode: 0644]
lib/unicode/Is/LbrkCL.pl [new file with mode: 0644]
lib/unicode/Is/LbrkCM.pl [new file with mode: 0644]
lib/unicode/Is/LbrkCR.pl [new file with mode: 0644]
lib/unicode/Is/LbrkEX.pl [new file with mode: 0644]
lib/unicode/Is/LbrkGL.pl [new file with mode: 0644]
lib/unicode/Is/LbrkHY.pl [new file with mode: 0644]
lib/unicode/Is/LbrkID.pl [new file with mode: 0644]
lib/unicode/Is/LbrkIN.pl [new file with mode: 0644]
lib/unicode/Is/LbrkIS.pl [new file with mode: 0644]
lib/unicode/Is/LbrkLF.pl [new file with mode: 0644]
lib/unicode/Is/LbrkNS.pl [new file with mode: 0644]
lib/unicode/Is/LbrkNU.pl [new file with mode: 0644]
lib/unicode/Is/LbrkOP.pl [new file with mode: 0644]
lib/unicode/Is/LbrkPO.pl [new file with mode: 0644]
lib/unicode/Is/LbrkPR.pl [new file with mode: 0644]
lib/unicode/Is/LbrkQU.pl [new file with mode: 0644]
lib/unicode/Is/LbrkSA.pl [new file with mode: 0644]
lib/unicode/Is/LbrkSG.pl [new file with mode: 0644]
lib/unicode/Is/LbrkSP.pl [new file with mode: 0644]
lib/unicode/Is/LbrkSY.pl [new file with mode: 0644]
lib/unicode/Is/LbrkXX.pl [new file with mode: 0644]
lib/unicode/Is/LbrkZW.pl [new file with mode: 0644]
lib/unicode/Is/Word.pl
lib/unicode/mktables.PL
lib/vars.pm
lib/warnings.pm
lib/warnings/register.pm [new file with mode: 0644]
makedef.pl
makedepend.SH
mg.c
objXSUB.h
op.c
op.h
opcode.h
opcode.pl
patchlevel.h
perl.c
perl.h
perlapi.c
perlapi.h
pod/Makefile
pod/Win32.pod
pod/buildtoc
pod/perl.pod
pod/perl56delta.pod [new file with mode: 0644]
pod/perlapi.pod
pod/perlbook.pod
pod/perlboot.pod
pod/perlcall.pod
pod/perlcompile.pod
pod/perldata.pod
pod/perldbmfilter.pod
pod/perldebguts.pod [new file with mode: 0644]
pod/perldebug.pod
pod/perldiag.pod
pod/perlfaq3.pod
pod/perlfaq4.pod
pod/perlfaq5.pod
pod/perlfaq7.pod
pod/perlfilter.pod
pod/perlfork.pod
pod/perlfunc.pod
pod/perlguts.pod
pod/perlhack.pod
pod/perlhist.pod
pod/perlintern.pod
pod/perlipc.pod
pod/perllexwarn.pod
pod/perllocale.pod
pod/perlmod.pod
pod/perlmodinstall.pod
pod/perlmodlib.pod
pod/perlnumber.pod
pod/perlop.pod
pod/perlopentut.pod
pod/perlpod.pod
pod/perlport.pod
pod/perlre.pod
pod/perlref.pod
pod/perlrequick.pod [new file with mode: 0644]
pod/perlretut.pod [new file with mode: 0644]
pod/perlrun.pod
pod/perlsec.pod
pod/perlstyle.pod
pod/perlsub.pod
pod/perlsyn.pod
pod/perlthrtut.pod
pod/perltie.pod
pod/perltoc.pod
pod/perltodo.pod
pod/perltootc.pod
pod/perltrap.pod
pod/perlunicode.pod
pod/perlvar.pod
pod/perlxs.pod
pod/perlxstut.pod
pod/pod2man.PL
pod/pod2text.PL
pod/roffitall
pp.c
pp.h
pp.sym
pp_ctl.c
pp_hot.c
pp_proto.h
pp_sys.c
proto.h
regcomp.c
regexec.c
sv.c
sv.h
t/comp/cpp.aux
t/comp/proto.t
t/comp/use.t
t/io/fs.t
t/io/open.t
t/io/pipe.t
t/lib/anydbm.t
t/lib/attrs.t
t/lib/b.t [new file with mode: 0755]
t/lib/cgi-function.t
t/lib/cgi-html.t
t/lib/cgi-pretty.t [new file with mode: 0755]
t/lib/cgi-request.t
t/lib/charnames.t
t/lib/complex.t
t/lib/dumper.t
t/lib/fields.t
t/lib/filepath.t
t/lib/ftmp-mktemp.t [new file with mode: 0755]
t/lib/ftmp-posix.t [new file with mode: 0755]
t/lib/ftmp-security.t [new file with mode: 0755]
t/lib/ftmp-tempfile.t [new file with mode: 0755]
t/lib/glob-basic.t
t/lib/glob-case.t
t/lib/glob-taint.t
t/lib/io_poll.t
t/lib/io_sel.t
t/lib/io_sock.t
t/lib/io_unix.t
t/lib/ipc_sysv.t
t/lib/open3.t
t/lib/parsewords.t
t/lib/peek.t [new file with mode: 0644]
t/lib/socket.t
t/lib/syslog.t [new file with mode: 0755]
t/lib/thr5005.t [moved from t/lib/thread.t with 100% similarity]
t/lib/tie-stdhandle.t
t/op/64bitint.t [moved from t/op/64bit.t with 91% similarity]
t/op/array.t
t/op/assignwarn.t
t/op/bop.t
t/op/grent.t
t/op/groups.t
t/op/gv.t
t/op/hashwarn.t
t/op/lex_assign.t
t/op/magic.t
t/op/misc.t
t/op/nothr5005.t [moved from t/op/nothread.t with 100% similarity]
t/op/oct.t
t/op/pack.t
t/op/pat.t
t/op/pwent.t
t/op/quotemeta.t
t/op/re_tests
t/op/recurse.t
t/op/sort.t
t/op/sprintf.t
t/op/substr.t
t/op/sysio.t
t/op/taint.t
t/op/tie.t
t/op/universal.t
t/op/ver.t
t/pod/testp2pt.pl
t/pod/testpchk.pl
t/pragma/constant.t
t/pragma/diagnostics.t
t/pragma/locale.t
t/pragma/strict-vars
t/pragma/utf8.t
t/pragma/warn/2use
t/pragma/warn/3both
t/pragma/warn/4lint
t/pragma/warn/5nolint
t/pragma/warn/6default
t/pragma/warn/7fatal
t/pragma/warn/9enabled
t/pragma/warn/op
t/pragma/warn/pp_ctl
t/pragma/warn/pp_hot
t/pragma/warn/pp_sys
t/pragma/warn/toke
toke.c
universal.c
utf8.c
util.c
utils/h2xs.PL
utils/perlbug.PL
utils/perlcc.PL
utils/perldoc.PL
vms/ext/Stdio/Stdio.pm
vms/ext/vmsish.pm
vms/perlvms.pod
vms/subconfigure.com
vms/vms.c
vms/vmsish.h
vos/config.def
vos/config.h
vos/config_h.SH_orig
warnings.h
warnings.pl
win32/Makefile
win32/config.bc
win32/config.gc
win32/config.vc
win32/config_H.bc
win32/config_H.gc
win32/config_H.vc
win32/makefile.mk
win32/perlhost.h
win32/perllib.c
win32/vmem.h
win32/win32.c
win32/win32.h
xsutils.c

diff --git a/AUTHORS b/AUTHORS
index f978b51..bf53871 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -39,6 +39,7 @@ mbiggar               Mark A Biggar           mab@wdl.loral.com
 mbligh         Martin J. Bligh         mbligh@sequent.com
 mike           Mike Stok               mike@stok.co.uk
 millert                Todd Miller             millert@openbsd.org
+mkvale         Mark Kvale              kvale@phy.ucsf.edu
 laszlo.molnar  Laszlo Molnar           Laszlo.Molnar@eth.ericsson.se
 mpeix          Mark Bixby              markb@cccd.edu
 muir           David Muir Sharnoff     muir@idiom.com
@@ -67,6 +68,7 @@ sugalskd      Dan Sugalski            sugalskd@osshe.edu
 sundstrom      David Sundstrom         sunds@asictest.sc.ti.com
 tchrist                Tom Christiansen        tchrist@perl.com
 thomas.dorner  Dorner Thomas           Thomas.Dorner@start.de
+tjenness       Tim Jenness             t.jenness@jach.hawaii.edu
 timb           Tim Bunce               Tim.Bunce@ig.co.uk
 tom.horsley    Tom Horsley             Tom.Horsley@mail.ccur.com
 tye            Tye McQueen             tye@metronet.com
diff --git a/Changes5.6 b/Changes5.6
new file mode 100644 (file)
index 0000000..6949821
--- /dev/null
@@ -0,0 +1,27430 @@
+Please note: This file provides a complete, temporally ordered log of
+changes that went into every version of Perl.  If you'd like more
+detailed information, please consult the comments in the individual
+patches posted to the perl5-porters mailing list.  Patches for each
+individual change may also be obtained through ftp and rsync--see
+perlhack.pod for the details.
+
+
+                          ---------------
+                           CAST AND CREW
+                          ---------------
+
+To give due honor to those who have made Perl what is is today,
+here are some of the more common names in the Changes file, and their
+current addresses (as of February 2000):
+
+    Gisle Aas           <gisle@aas.no>
+    Abigail             <abigail@delanet.com>
+    Kenneth Albanowski  <kjahds@kjahds.com>
+    Russ Allbery        <rra@stanford.edu>
+    Brad Appleton       <bradapp@enteract.com>
+    Greg Bacon          <gbacon@itsc.uah.edu>
+    Robin Barker        <rmb1@cise.npl.co.uk>
+    Vishal Bhatia       <vishal@gol.com>
+    Spider Boardman     <spider@orb.nashua.nh.us>
+    Tom Christiansen    <tchrist@perl.com>
+    Mark-Jason Dominus  <mjd@plover.com>
+    Jan Dubois          <jand@activestate.com>
+    Dominic Dunlop      <domo@computer.org>
+    Eric Fifer          <efifer@sanwaint.com>
+    Hallvard B Furuseth <h.b.furuseth@usit.uio.no>
+    M. J. T. Guy        <mjtg@cus.cam.ac.uk>
+    Jarkko Hietaniemi   <jhi@iki.fi>
+    Tom Hughes          <tom@compton.nu>
+    Nick Ing-Simmons    <nik@tiuk.ti.com>
+    Andreas Koenig      <a.koenig@mind.de>
+    Douglas Lankshear   <dougl@activestate.com>
+    Doug MacEachern     <dougm@opengroup.org>
+    Raphael Manfredi    <Raphael.Manfredi@st.com>
+    Paul Marquess       <Paul.Marquess@btinternet.com>
+    Stephen McCamant    <alias@mcs.com>
+    Laszlo Molnar       <laszlo.molnar@eth.ericsson.se>
+    Hans Mulder         <hansmu@xs4all.nl>
+    Chris Nandor        <pudge@pobox.com>
+    Matthias Neeracher  <neeri@iis.ee.ethz.ch>
+    Jeff Okamoto        <okamoto@hpcc123.corp.hp.com>
+    Ulrich Pfeifer      <pfeifer@charly.informatik.uni-dortmund.de>
+    Tom Phoenix         <rootbeer@teleport.com>
+    Joshua Pritikin     <joshua.pritikin@db.com>
+    Peter Prymmer       <pvhp@forte.com>
+    Norbert Pueschel    <pueschel@imsdd.meb.uni-bonn.de>
+    Dean Roehrich       <roehrich@cray.com>
+    Hugo van der Sanden <hv@crypt0.demon.co.uk>
+    Michael G Schwern   <schwern@pobox.com>
+    Roderick Schertler  <roderick@argon.org>
+    Kurt D. Starsinic   <kstar@chapin.edu>
+    Benjamin Stuhl      <sho_pi@hotmail.com>
+    Dan Sugalski        <sugalskd@osshe.edu>
+    Nathan Torkington   <gnat@frii.com>
+    Larry W. Virden     <lvirden@cas.org>
+    Johan Vromans       <jvromans@squirrel.nl>
+    Ilya Zakharevich    <ilya@math.ohio-state.edu>
+
+And the Keepers of the Patch Pumpkin:
+
+    Charles Bailey      <bailey@newman.upenn.edu>
+    Graham Barr         <gbarr@ti.com>
+    Malcolm Beattie     <mbeattie@sable.ox.ac.uk>
+    Tim Bunce           <Tim.Bunce@ig.co.uk>
+    Andy Dougherty      <doughera@lafcol.lafayette.edu>
+    Gurusamy Sarathy    <gsar@activestate.com>
+    Chip Salzenberg     <chip@perl.com>
+
+And, of course, the Author of Perl:
+
+    Larry Wall         <larry@wall.org>
+
+
+NOTE: Each change entry shows the change number; who checked it into the
+repository; when; description of the change; which branch the change
+happened in; and the affected files.  The file lists have a short symbolic
+indicator:
+
+           !       modified
+           +       added
+           -       deleted
+           +>      branched (from elsewhere)
+           !>      merged changes (from elsewhere)
+
+
+--------------
+Version v5.6.0
+--------------
+
+____________________________________________________________________________
+[  5899] By: gsar                                  on 2000/03/23  05:39:11
+        Log: update patchlevel.h, Changes; regen perltoc.pod
+     Branch: perl
+          ! Changes patchlevel.h pod/perlhist.pod pod/perltoc.pod
+____________________________________________________________________________
+[  5898] By: jhi                                   on 2000/03/23  05:36:47
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> README.machten Todo Todo-5.6 pod/perldebug.pod
+         !> pod/perldelta.pod pod/perldiag.pod pod/perlport.pod sv.c
+____________________________________________________________________________
+[  5897] By: gsar                                  on 2000/03/23  05:31:12
+        Log: revise perldelta for more optimal ordering, minor Todo
+             rearrangments
+     Branch: perl
+          ! README.machten Todo Todo-5.6 pod/perldelta.pod
+          ! pod/perldiag.pod
+____________________________________________________________________________
+[  5896] By: gsar                                  on 2000/03/23  05:30:15
+        Log: pod updates (from Tom Christiansen)
+     Branch: perl
+          ! pod/perldebug.pod pod/perlport.pod
+____________________________________________________________________________
+[  5895] By: gsar                                  on 2000/03/23  02:33:33
+        Log: fix misplaced OP refcount for eval root
+     Branch: perl
+          ! sv.c
+____________________________________________________________________________
+[  5894] By: jhi                                   on 2000/03/22  21:37:03
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         +> README.machten
+         !> MAINTAIN MANIFEST README.win32 ext/DynaLoader/dlutils.c
+         !> ext/IO/lib/IO/File.pm hints/machten.sh pod/perl.pod
+         !> pod/perldelta.pod pod/perlsyn.pod t/io/fs.t win32/Makefile
+         !> win32/makefile.mk
+____________________________________________________________________________
+[  5893] By: gsar                                  on 2000/03/22  21:08:34
+        Log: unretract change#5871 (Dominic Dunlop reports machten is better
+             with it than without)
+     Branch: perl
+          ! hints/machten.sh
+____________________________________________________________________________
+[  5892] By: gsar                                  on 2000/03/22  20:37:44
+        Log: integrate cfgperl changes into mainline
+     Branch: perl
+         !> Configure config_h.SH hints/machten.sh hints/solaris_2.sh
+         !> hints/unicosmk.sh
+____________________________________________________________________________
+[  5891] By: gsar                                  on 2000/03/22  20:04:01
+        Log: perlsyn.pod nit (from Tom Christiansen)
+     Branch: perl
+          ! pod/perlsyn.pod
+____________________________________________________________________________
+[  5890] By: gsar                                  on 2000/03/22  19:43:22
+        Log: typo in comment
+     Branch: perl
+          ! ext/DynaLoader/dlutils.c
+____________________________________________________________________________
+[  5889] By: gsar                                  on 2000/03/22  19:41:46
+        Log: add README.machten (from Dominic Dunlop)
+     Branch: perl
+          + README.machten
+          ! MAINTAIN MANIFEST pod/perl.pod win32/Makefile
+          ! win32/makefile.mk
+____________________________________________________________________________
+[  5888] By: gsar                                  on 2000/03/22  19:29:47
+        Log: makefile nits
+     Branch: perl
+          ! win32/Makefile win32/makefile.mk
+____________________________________________________________________________
+[  5887] By: gsar                                  on 2000/03/22  19:26:03
+        Log: add note about lib/open3.t#22 failure on Win2K
+     Branch: perl
+          ! README.win32 pod/perldelta.pod
+____________________________________________________________________________
+[  5886] By: gsar                                  on 2000/03/22  19:14:20
+        Log: io/fs.t tweaks for Windows 2000
+     Branch: perl
+          ! t/io/fs.t
+____________________________________________________________________________
+[  5885] By: gsar                                  on 2000/03/22  18:41:50
+        Log: make unloading of extension shared objects (change#5381) a build
+             option (use "Configure -Accflags=-DDL_UNLOAD_ALL_AT_EXIT" to enable)
+     Branch: perl
+          ! ext/DynaLoader/dlutils.c pod/perldelta.pod
+____________________________________________________________________________
+[  5884] By: gsar                                  on 2000/03/22  18:16:45
+        Log: avoid loading both XSLoader and DynaLoader (avoids dl_error()
+             redefinition warnings when statically linked)
+     Branch: perl
+          ! ext/IO/lib/IO/File.pm
+____________________________________________________________________________
+[  5883] By: jhi                                   on 2000/03/22  17:45:01
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         +> t/lib/thr5005.t t/op/64bitint.t t/op/nothr5005.t
+          - t/lib/thread.t t/op/64bit.t t/op/nothread.t
+         !> Configure MAINTAIN MANIFEST Todo-5.6 ext/POSIX/Makefile.PL
+         !> lib/ExtUtils/Liblist.pm lib/ExtUtils/xsubpp
+         !> lib/File/Compare.pm pod/perldelta.pod universal.c util.c
+         !> utils/h2xs.PL utils/perlbug.PL win32/Makefile
+         !> win32/makefile.mk
+____________________________________________________________________________
+[  5882] By: jhi                                   on 2000/03/22  17:16:27
+        Log: Metaconfigify #5881.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig
+          ! U/installdirs/inc_version_list.U
+____________________________________________________________________________
+[  5881] By: gsar                                  on 2000/03/22  17:04:01
+        Log: avoid including things that aren't directories in inc_version_list
+             (from Robin Barker)
+     Branch: perl
+          ! Configure
+____________________________________________________________________________
+[  5880] By: gsar                                  on 2000/03/22  16:55:42
+        Log: avoid File::Compare warning when passed handles (from Nick
+             Ing-Simmons)
+     Branch: perl
+          ! lib/File/Compare.pm
+____________________________________________________________________________
+[  5879] By: jhi                                   on 2000/03/22  16:48:33
+        Log: Retract #5871.
+     Branch: cfgperl
+          ! hints/machten.sh
+____________________________________________________________________________
+[  5878] By: gsar                                  on 2000/03/22  16:29:37
+        Log: RM600-svr4 tweaks (from Frank Ridderbusch
+             <frank.ridderbusch@pdb.siemens.de>)
+     Branch: perl
+          ! ext/POSIX/Makefile.PL lib/ExtUtils/Liblist.pm
+____________________________________________________________________________
+[  5877] By: gsar                                  on 2000/03/22  15:38:49
+        Log: save RE context when calling __WARN__ and __DIE__ hooks;
+             add missing stack-of-stacks logic for new code that came
+             in with lexical warnings (this fixes coredumps from
+             -Mdiagnostics when the warnings happens to come from within
+             the RE engine)
+     Branch: perl
+          ! util.c
+____________________________________________________________________________
+[  5876] By: gsar                                  on 2000/03/22  15:02:59
+        Log: missing pieces in perldelta
+     Branch: perl
+          ! pod/perldelta.pod
+____________________________________________________________________________
+[  5875] By: gsar                                  on 2000/03/22  14:46:24
+        Log: rename tests to more appropriate names
+     Branch: perl
+         +> t/lib/thr5005.t t/op/64bitint.t t/op/nothr5005.t
+          - t/lib/thread.t t/op/64bit.t t/op/nothread.t
+          ! MAINTAIN MANIFEST pod/perldelta.pod
+____________________________________________________________________________
+[  5874] By: jhi                                   on 2000/03/22  14:32:57
+        Log: Make the no-luck-on-uselongdouble warning more visible.
+     Branch: cfgperl
+          ! hints/solaris_2.sh
+____________________________________________________________________________
+[  5873] By: gsar                                  on 2000/03/22  14:28:56
+        Log: backout change#5708; fixups for behavior of recently added -a switch;
+             support -k and -m switches in h2xs (from Hugo van der Sanden)
+     Branch: perl
+          ! lib/ExtUtils/xsubpp utils/h2xs.PL
+____________________________________________________________________________
+[  5872] By: gsar                                  on 2000/03/22  14:21:20
+        Log: remove outdated notes in makefiles
+     Branch: perl
+          ! win32/Makefile win32/makefile.mk
+____________________________________________________________________________
+[  5871] By: jhi                                   on 2000/03/22  14:17:40
+        Log: Disable SysV shm and msg even more.
+     Branch: cfgperl
+          ! hints/machten.sh
+____________________________________________________________________________
+[  5870] By: jhi                                   on 2000/03/22  14:16:54
+        Log: Augment #5865.
+     Branch: cfgperl
+          ! hints/unicosmk.sh
+____________________________________________________________________________
+[  5869] By: gsar                                  on 2000/03/22  14:07:27
+        Log: perlbug -ok shouldn't prompt (from Paul Moore
+             <Paul.Moore@uk.origin-it.com>)
+     Branch: perl
+          ! utils/perlbug.PL
+____________________________________________________________________________
+[  5868] By: gsar                                  on 2000/03/22  13:54:27
+        Log: integrate cfgperl contents into mainline
+     Branch: perl
+          ! Todo-5.6
+         !> Configure Porting/Glossary Porting/config.sh Porting/config_H
+         !> config_h.SH hints/dec_osf.sh hints/openbsd.sh
+         !> hints/solaris_2.sh hints/unicosmk.sh pod/perldelta.pod
+         !> pod/perlport.pod win32/config_H.bc win32/config_H.gc
+         !> win32/config_H.vc
+____________________________________________________________________________
+[  5867] By: jhi                                   on 2000/03/22  05:25:40
+        Log: OpenBSD pthreadness fixes from Tom Christiansen.
+     Branch: cfgperl
+          ! hints/openbsd.sh
+____________________________________________________________________________
+[  5866] By: gsar                                  on 2000/03/22  04:18:39
+        Log: UMRs in universal.c (SvCUR() may not be there unless SvPOK())
+     Branch: perl
+          ! universal.c
+____________________________________________________________________________
+[  5865] By: jhi                                   on 2000/03/21  21:38:20
+        Log: The SysV shm*() are in libc but unimplemented.
+     Branch: cfgperl
+          ! hints/unicosmk.sh
+____________________________________________________________________________
+[  5864] By: jhi                                   on 2000/03/21  21:30:02
+        Log: s/setgropus/setgroups/; # detypo in a comment
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH win32/config_H.bc win32/config_H.gc
+          ! win32/config_H.vc
+     Branch: metaconfig
+          ! U/modified/Getfile.U U/modified/d_flexfnam.U
+          ! U/modified/groupstype.U
+____________________________________________________________________________
+[  5863] By: jhi                                   on 2000/03/21  20:25:40
+        Log: Add supported platforms.
+     Branch: cfgperl
+          ! pod/perlport.pod
+____________________________________________________________________________
+[  5862] By: jhi                                   on 2000/03/21  19:19:04
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> makedef.pl
+____________________________________________________________________________
+[  5861] By: gsar                                  on 2000/03/21  19:07:13
+        Log: add missing bincompat symbols to export list
+     Branch: perl
+          ! makedef.pl
+____________________________________________________________________________
+[  5860] By: jhi                                   on 2000/03/21  18:59:39
+        Log: Disallow using too old gcc in {Tru64,Digital UNIX,DEC OSF/1}.
+             (Even gcc 2.95 doesn't seem to be working 100%.)
+     Branch: cfgperl
+          ! hints/dec_osf.sh pod/perldelta.pod
+____________________________________________________________________________
+[  5859] By: jhi                                   on 2000/03/21  16:36:27
+        Log: Nit for #5802 from Robin Barker.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig
+          ! U/modified/Getfile.U
+____________________________________________________________________________
+[  5858] By: jhi                                   on 2000/03/21  14:34:25
+        Log: Be more lenient in the case libsunmath cannot be found.
+     Branch: cfgperl
+          ! hints/solaris_2.sh
+____________________________________________________________________________
+[  5857] By: jhi                                   on 2000/03/21  14:14:38
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> (integrate 27 files)
+____________________________________________________________________________
+[  5856] By: gsar                                  on 2000/03/21  10:44:10
+        Log: here lies RC3
+     Branch: perl
+          ! Changes patchlevel.h pod/perlhist.pod
+____________________________________________________________________________
+[  5855] By: gsar                                  on 2000/03/21  10:05:42
+        Log: clone awareness for change#5847
+     Branch: perl
+          ! sv.c
+____________________________________________________________________________
+[  5854] By: gsar                                  on 2000/03/21  09:30:50
+        Log: regen win32/config*
+     Branch: perl
+          ! win32/config_H.bc win32/config_H.gc win32/config_H.vc
+____________________________________________________________________________
+[  5853] By: gsar                                  on 2000/03/21  08:56:58
+        Log: integrate cfgperl and vmsperl contents into mainline
+     Branch: perl
+         !> Configure Todo Todo-5.6 config_h.SH lib/File/Spec/VMS.pm
+         !> pod/perldelta.pod t/op/taint.t
+____________________________________________________________________________
+[  5852] By: gsar                                  on 2000/03/21  06:08:20
+        Log: README.mint tweaks (from Guido Flohr <gufl0000@stud.uni-sb.de>)
+     Branch: perl
+          ! Changes README.mint
+____________________________________________________________________________
+[  5851] By: gsar                                  on 2000/03/21  06:06:44
+        Log: make parenthetic warnings look consistent; make diagnostic on
+             "use 5.6" et al mention the alternate form; pod fixups
+     Branch: perl
+          ! gv.c op.c pod/perldelta.pod pod/perldiag.pod pp_ctl.c
+          ! t/comp/use.t t/pragma/strict-vars t/pragma/warn/op
+          ! t/pragma/warn/pp_hot t/pragma/warn/pp_sys toke.c universal.c
+          ! util.c
+____________________________________________________________________________
+[  5850] By: gsar                                  on 2000/03/21  04:05:00
+        Log: disable unused Windows code that won't run on Windows 95
+     Branch: perl
+          ! win32/vmem.h
+____________________________________________________________________________
+[  5849] By: gsar                                  on 2000/03/21  03:34:39
+        Log: $File::Find::name doesn't reflect top level files
+             correctly (from Simon Cozens <simon@brecon.co.uk>)
+     Branch: perl
+          ! lib/File/Find.pm
+____________________________________________________________________________
+[  5848] By: gsar                                  on 2000/03/21  02:46:01
+        Log: test fails when sockets not available (from Yitzchak Scott-Thoennes)
+     Branch: perl
+          ! t/lib/io_unix.t
+____________________________________________________________________________
+[  5847] By: gsar                                  on 2000/03/21  00:09:09
+        Log: under useithreads, PUSHLOOP must save PL_curpad for looking up
+             iterdata, since dounwind() may defer LEAVEs
+     Branch: perl
+          ! cop.h
+____________________________________________________________________________
+[  5846] By: jhi                                   on 2000/03/20  23:54:37
+        Log: Document the lib/io_multihomedt hang in 64-bit HP-Ux.
+     Branch: cfgperl
+          ! pod/perldelta.pod
+____________________________________________________________________________
+[  5845] By: jhi                                   on 2000/03/20  23:45:24
+        Log: detypo
+     Branch: cfgperl
+          ! t/op/taint.t
+____________________________________________________________________________
+[  5844] By: jhi                                   on 2000/03/20  23:17:18
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> lib/Dumpvalue.pm lib/User/pwent.pm lib/dumpvar.pl
+         !> lib/strict.pm op.c pod/perldata.pod pod/perldelta.pod
+         !> pod/perlfunc.pod pp.c t/io/pipe.t t/lib/charnames.t toke.c
+         !> utils/perlbug.PL
+____________________________________________________________________________
+[  5843] By: gsar                                  on 2000/03/20  22:14:35
+        Log: add note about symbolic filehandles (from Johan Vromans)
+     Branch: perl
+          ! lib/strict.pm pod/perlfunc.pod
+____________________________________________________________________________
+[  5842] By: gsar                                  on 2000/03/20  21:59:51
+        Log: perlbugtron flags in perlbug (from Richard Foley); eliminate duplicate
+             code
+     Branch: perl
+          ! utils/perlbug.PL
+____________________________________________________________________________
+[  5841] By: gsar                                  on 2000/03/20  21:06:01
+        Log: more sleep needed from slow systems (from Peter Haworth)
+     Branch: perl
+          ! t/io/pipe.t
+____________________________________________________________________________
+[  5840] By: gsar                                  on 2000/03/20  21:04:42
+        Log: typo in change#5839
+     Branch: perl
+          ! lib/Dumpvalue.pm
+____________________________________________________________________________
+[  5839] By: gsar                                  on 2000/03/20  21:03:14
+        Log: make dumpvar.pl recognize emptyness in arrays (from Matthias Urlichs
+             <smurf@noris.de>); fix up duplicate code in Dumpvalue.pm
+     Branch: perl
+          ! lib/Dumpvalue.pm lib/dumpvar.pl
+____________________________________________________________________________
+[  5838] By: gsar                                  on 2000/03/20  20:53:25
+        Log: mention handle autovivification in perldata (from Johan Vromans)
+     Branch: perl
+          ! lib/User/pwent.pm pod/perldata.pod
+____________________________________________________________________________
+[  5837] By: gsar                                  on 2000/03/20  20:37:42
+        Log: change#5797 didn't do the right thing for "\xff\N{WHITE SMILING FACE}"
+     Branch: perl
+          ! t/lib/charnames.t toke.c
+____________________________________________________________________________
+[  5836] By: gsar                                  on 2000/03/20  16:27:13
+        Log: autovivify open($fh[0],...) properly
+     Branch: perl
+          ! op.c pp.c
+____________________________________________________________________________
+[  5835] By: gsar                                  on 2000/03/19  18:51:24
+        Log: add @x->[2] bug to known issues (from Johan Vromans)
+     Branch: perl
+          ! pod/perldelta.pod
+____________________________________________________________________________
+[  5834] By: jhi                                   on 2000/03/19  18:42:35
+        Log: Fix the socklen default type (from Laszlo Molnar;
+             though I prefer signed, not unsigned); move the cross-compialtion
+             wish item to Todo; drop excess permissions in taint.t.
+     Branch: cfgperl
+          ! Configure Todo Todo-5.6 config_h.SH t/op/taint.t
+     Branch: metaconfig
+          ! U/protos/socksizetype.U
+____________________________________________________________________________
+[  5833] By: jhi                                   on 2000/03/19  18:20:42
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> (integrate 42 files)
+____________________________________________________________________________
+[  5832] By: gsar                                  on 2000/03/19  18:01:28
+        Log: pwent.pm doc tweak (from Tom Christiansen)
+     Branch: perl
+          ! lib/User/pwent.pm
+____________________________________________________________________________
+[  5831] By: gsar                                  on 2000/03/19  17:57:31
+        Log: unsigned is a more reasonable socksizetype default (from
+             Laszlo <ml1050@freemail.hu>)
+     Branch: perl
+          ! Configure
+____________________________________________________________________________
+[  5830] By: gsar                                  on 2000/03/19  17:40:20
+        Log: taint.t shouldn't fail where IPC::SysV unavailable
+     Branch: perl
+          ! t/op/taint.t
+____________________________________________________________________________
+[  5829] By: gsar                                  on 2000/03/19  17:19:46
+        Log: update Changes
+     Branch: perl
+          ! Changes embed.h
+____________________________________________________________________________
+[  5828] By: gsar                                  on 2000/03/19  16:47:14
+        Log: squelch known scalar leak due to compile failure
+     Branch: perl
+          ! t/pragma/strict-vars
+____________________________________________________________________________
+[  5827] By: gsar                                  on 2000/03/19  09:20:22
+        Log: mention how to look up perllocal.pod (from Michael G Schwern)
+     Branch: perl
+          ! pod/perlapi.pod pod/perlmodinstall.pod pod/perlmodlib.pod
+____________________________________________________________________________
+[  5826] By: gsar                                  on 2000/03/19  08:49:27
+        Log: mention need to wait for children (from Russ Allbery)
+     Branch: perl
+          ! lib/IPC/Open2.pm lib/IPC/Open3.pm pod/perldelta.pod
+____________________________________________________________________________
+[  5825] By: gsar                                  on 2000/03/19  08:47:52
+        Log: Pod::Man should strip leading lib/ for module manpages (from
+             Russ Allbery)
+     Branch: perl
+          ! lib/Pod/Man.pm
+____________________________________________________________________________
+[  5824] By: gsar                                  on 2000/03/19  08:17:49
+        Log: User::pwent fixups for additional fields (from Tom Christiansen);
+             fix bug in pw_has(); tolerate absense of pw{change,age,quota}
+             and pw{comment,class} (Debian 2.1 doesn't have either of these)
+     Branch: perl
+          ! lib/User/pwent.pm
+____________________________________________________________________________
+[  5823] By: gsar                                  on 2000/03/19  07:41:46
+        Log: pod typo fixes (from Marcel Grunauer <marcel.grunauer@lovely.net>)
+     Branch: perl
+          ! embed.pl embedvar.h hints/linux.sh pod/perlhack.pod
+          ! pod/perlnumber.pod pod/perlthrtut.pod vms/ext/Stdio/Stdio.pm
+____________________________________________________________________________
+[  5822] By: gsar                                  on 2000/03/19  07:34:29
+        Log: integrate cfgperl contents into mainline
+     Branch: perl
+          ! ext/Thread/Thread.pm pod/perlthrtut.pod
+         !> (integrate 41 files)
+____________________________________________________________________________
+[  5821] By: gsar                                  on 2000/03/19  07:14:38
+        Log: remove dead code
+     Branch: perl
+          ! lib/charnames.pm
+____________________________________________________________________________
+[  5820] By: gsar                                  on 2000/03/19  07:13:01
+        Log: fix typo
+     Branch: perl
+          ! pod/perldiag.pod
+____________________________________________________________________________
+[  5819] By: gsar                                  on 2000/03/19  07:09:32
+        Log: produce better error message when \N{...} is used without
+             "use charnames ..."
+     Branch: perl
+          ! pod/perldelta.pod pod/perldiag.pod toke.c
+____________________________________________________________________________
+[  5818] By: gsar                                  on 2000/03/19  06:30:11
+        Log: default warnLevel and dieLevel to 0 in debugger (from Tom
+             Christiansen); make dumpvar.pl safe against non-glob entries
+             in stashes
+     Branch: perl
+          ! lib/Dumpvalue.pm lib/dumpvar.pl lib/perl5db.pl
+          ! pod/perldebug.pod
+____________________________________________________________________________
+[  5817] By: gsar                                  on 2000/03/19  06:18:24
+        Log: better notes on s///ee (from Simon Cozens <simon@cozens.net>)
+     Branch: perl
+          ! pod/perlop.pod
+____________________________________________________________________________
+[  5816] By: gsar                                  on 2000/03/19  05:55:52
+        Log: support for C<use vmsish 'hushed'>; move VMSISH_EXIT out of
+             op_private (from Charles Lane <lane@DUPHY4.Physics.Drexel.Edu>)
+     Branch: perl
+          ! embed.pl op.c op.h opcode.h opcode.pl perl.h pp.sym pp_ctl.c
+          ! pp_proto.h vms/ext/vmsish.pm vms/ext/vmsish.t vms/vmsish.h
+____________________________________________________________________________
+[  5815] By: gsar                                  on 2000/03/19  05:27:31
+        Log: fix sort optimizer to not hang inside loops
+     Branch: perl
+          ! op.c t/op/sort.t
+____________________________________________________________________________
+[  5814] By: gsar                                  on 2000/03/19  03:59:29
+        Log: fixes for alias handling in debugger (from Tom Christiansen)
+     Branch: perl
+          ! lib/perl5db.pl
+____________________________________________________________________________
+[  5813] By: gsar                                  on 2000/03/19  03:38:10
+        Log: warn about CHECK and INIT blocks encountered at run time
+     Branch: perl
+          ! op.c pod/perldelta.pod pod/perldiag.pod t/pragma/warn/op
+____________________________________________________________________________
+[  5812] By: jhi                                   on 2000/03/19  03:15:58
+        Log: Taint msgrcv() messages; general SysV IPC cleanup.
+     Branch: cfgperl
+          ! doio.c ext/IPC/SysV/Msg.pm pod/perldelta.pod pod/perlfunc.pod
+          ! pod/perlipc.pod pod/perlsec.pod t/lib/ipc_sysv.t t/op/taint.t
+____________________________________________________________________________
+[  5811] By: jhi                                   on 2000/03/19  01:48:47
+        Log: Taint shmread().
+     Branch: cfgperl
+          ! doio.c pod/perldelta.pod pod/perlfunc.pod pod/perlsec.pod
+          ! t/op/taint.t
+____________________________________________________________________________
+[  5810] By: jhi                                   on 2000/03/19  01:22:47
+        Log: Taint also the passwd field of the getpw*().
+     Branch: cfgperl
+          ! pod/perldelta.pod pod/perlfunc.pod pod/perlsec.pod pp_sys.c
+          ! t/op/taint.t
+____________________________________________________________________________
+[  5809] By: jhi                                   on 2000/03/18  21:44:34
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> t/pragma/strict-vars toke.c
+____________________________________________________________________________
+[  5808] By: jhi                                   on 2000/03/18  21:40:55
+        Log: (Re-)introduce $uidsign and $gidsign.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH epoc/config.sh pp_sys.c vms/subconfigure.com
+          ! vos/config.def vos/config.h vos/config_h.SH_orig
+          ! win32/config.bc win32/config.gc win32/config.vc
+          ! win32/config_H.bc win32/config_H.gc win32/config_H.vc
+          ! win32/config_h.PL win32/config_sh.PL
+     Branch: metaconfig
+          ! U/modified/groupstype.U U/typedefs/gidtype.U
+____________________________________________________________________________
+[  5807] By: jhi                                   on 2000/03/18  20:38:12
+        Log: The #5805 requires a test change, too.
+     Branch: cfgperl
+          ! t/op/taint.t
+____________________________________________________________________________
+[  5806] By: gsar                                  on 2000/03/18  20:10:29
+        Log: queued errors may not be displayed after the PL_error_count limit
+     Branch: perl
+          ! t/pragma/strict-vars toke.c
+____________________________________________________________________________
+[  5805] By: jhi                                   on 2000/03/18  19:56:12
+        Log: Taint the shell from the getpw*. 
+     Branch: cfgperl
+          ! pod/perldelta.pod pod/perlfunc.pod pod/perlsec.pod pp_sys.c
+____________________________________________________________________________
+[  5804] By: jhi                                   on 2000/03/18  19:37:01
+        Log: Use the newSVuv().
+     Branch: cfgperl
+          ! embed.h op.c pp_sys.c toke.c
+____________________________________________________________________________
+[  5803] By: jhi                                   on 2000/03/18  19:08:40
+        Log: Add newSVuv().
+     Branch: cfgperl
+          ! Configure embed.pl global.sym objXSUB.h perlapi.c perlapi.h
+          ! pod/perlapi.pod proto.h sv.c
+____________________________________________________________________________
+[  5802] By: jhi                                   on 2000/03/18  17:11:07
+        Log: Configure nits: rewording from Sarathy (aka #5796),
+             and installation directories patch from Robin Parker.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH vos/config.h vos/config_h.SH_orig
+          ! win32/config_H.bc win32/config_H.gc win32/config_H.vc
+     Branch: metaconfig
+          ! U/modified/Getfile.U
+     Branch: metaconfig/U/perl
+          ! bincompat5005.U
+____________________________________________________________________________
+[  5801] By: jhi                                   on 2000/03/18  16:41:31
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> Changes Configure hints/dos_djgpp.sh lib/ExtUtils/xsubpp
+         !> lib/Getopt/Long.pm mg.c pod/perlpod.pod pp_hot.c
+         !> t/lib/charnames.t t/pragma/utf8.t toke.c
+____________________________________________________________________________
+[  5800] By: gsar                                  on 2000/03/18  05:16:32
+        Log: force i_ieeefp=undef on dos_djgpp (it reportedly causes failures
+             in system includes)
+     Branch: perl
+          ! hints/dos_djgpp.sh
+____________________________________________________________________________
+[  5799] By: gsar                                  on 2000/03/18  05:12:00
+        Log: Getopt::Long 2.23 update (from Johan Vromans)
+     Branch: perl
+          ! Changes lib/Getopt/Long.pm
+____________________________________________________________________________
+[  5798] By: gsar                                  on 2000/03/18  05:03:20
+        Log: recognize single-line declarations in xsubpp; add switches to
+             disable newfangled features (from Ilya Zakharevich)
+     Branch: perl
+          ! lib/ExtUtils/xsubpp
+____________________________________________________________________________
+[  5797] By: gsar                                  on 2000/03/18  04:21:43
+        Log: make "\N{...}" enable utf8-ness correctly
+     Branch: perl
+          ! t/lib/charnames.t toke.c
+____________________________________________________________________________
+[  5796] By: gsar                                  on 2000/03/18  04:03:08
+        Log: avoid mentioning Perl version in Configure question
+     Branch: perl
+          ! Configure
+____________________________________________________________________________
+[  5795] By: gsar                                  on 2000/03/18  03:32:31
+        Log: better explanation of C<> tags (from Wolfgang Laun)
+     Branch: perl
+          ! pod/perlpod.pod
+____________________________________________________________________________
+[  5794] By: gsar                                  on 2000/03/18  03:26:57
+        Log: make return values from match in a list context, as well as $& et
+             al propagate utf8-ness (from Graham Barr)
+     Branch: perl
+          ! mg.c pp_hot.c t/pragma/utf8.t
+____________________________________________________________________________
+[  5793] By: jhi                                   on 2000/03/18  01:45:30
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> hints/powerux.sh xsutils.c
+____________________________________________________________________________
+[  5792] By: gsar                                  on 2000/03/18  01:08:25
+        Log: hints fixups for PowerMAX (from Tom Horsley)
+     Branch: perl
+          ! hints/powerux.sh
+____________________________________________________________________________
+[  5791] By: gsar                                  on 2000/03/17  23:53:21
+        Log: make reftype() consistently croak on non-refs
+     Branch: perl
+          ! xsutils.c
+____________________________________________________________________________
+[  5790] By: jhi                                   on 2000/03/17  23:41:36
+        Log: Integrate with Sarathy. 
+     Branch: cfgperl
+         !> configpm ext/Thread/Thread/Queue.pm
+         !> ext/Thread/Thread/Semaphore.pm ext/Thread/Thread/Specific.pm
+         !> lib/Pod/Find.pm lib/perl5db.pl perl.c pod/perldata.pod
+____________________________________________________________________________
+[  5789] By: gsar                                  on 2000/03/17  22:37:21
+        Log: fix coredump when upgrading PL_sv_yes in a second call to
+             perl_construct() (from Doug MacEachern)
+     Branch: perl
+          ! perl.c
+____________________________________________________________________________
+[  5788] By: gsar                                  on 2000/03/17  22:32:25
+        Log: make noTTY debugger option work again (from Paul Marquess)
+     Branch: perl
+          ! lib/perl5db.pl
+____________________________________________________________________________
+[  5787] By: gsar                                  on 2000/03/17  17:00:05
+        Log: make Config.pm report sane errors with older perls
+     Branch: perl
+          ! configpm
+____________________________________________________________________________
+[  5786] By: gsar                                  on 2000/03/17  16:48:20
+        Log: syntax errors in Thread::* (from Tom Christiansen)
+     Branch: perl
+          ! ext/Thread/Thread/Queue.pm ext/Thread/Thread/Semaphore.pm
+          ! ext/Thread/Thread/Specific.pm
+____________________________________________________________________________
+[  5785] By: gsar                                  on 2000/03/17  16:45:34
+        Log: tweak perldata section on v-strings
+     Branch: perl
+          ! pod/perldata.pod
+____________________________________________________________________________
+[  5784] By: gsar                                  on 2000/03/17  16:24:28
+        Log: missing file in change#5781
+     Branch: perl
+          ! lib/Pod/Find.pm
+____________________________________________________________________________
+[  5783] By: jhi                                   on 2000/03/17  14:38:29
+        Log: Add the NEXTSTEP strftime %j bug to Known Problems.
+     Branch: cfgperl
+          ! pod/perldelta.pod
+____________________________________________________________________________
+[  5782] By: jhi                                   on 2000/03/17  14:29:46
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> embed.pl ext/B/B/Bblock.pm global.sym lib/File/Spec/Unix.pm
+         !> lib/open.pm objXSUB.h op.c perlapi.c pod/perlcompile.pod
+         !> pod/perldebug.pod sv.c t/comp/cpp.aux t/pod/testpchk.pl
+____________________________________________________________________________
+[  5781] By: gsar                                  on 2000/03/17  06:19:17
+        Log: PodParser v1.13 update (from Brad Appleton)
+     Branch: perl
+          ! t/pod/testpchk.pl
+____________________________________________________________________________
+[  5780] By: gsar                                  on 2000/03/17  05:42:45
+        Log: propagate CvFLAGS() into clones
+     Branch: perl
+          ! op.c
+____________________________________________________________________________
+[  5779] By: gsar                                  on 2000/03/17  04:58:39
+        Log: documentation fixes from p5p
+     Branch: perl
+          ! ext/B/B/Bblock.pm lib/File/Spec/Unix.pm pod/perlcompile.pod
+          ! pod/perldebug.pod
+____________________________________________________________________________
+[  5778] By: bailey                                on 2000/03/17  04:23:35
+        Log: Quick pre-release fixes: clean up results in File::Spec::VMS and
+             switch dir test order in taint.t to accomodate DECCRTL extension.
+     Branch: vmsperl
+          ! lib/File/Spec/VMS.pm t/op/taint.t
+____________________________________________________________________________
+[  5777] By: gsar                                  on 2000/03/17  04:13:27
+        Log: make attributes::reftype(*FOO{IO}) return "IO" instead of "UNKNOWN"
+             (from Tom Christiansen)
+     Branch: perl
+          ! sv.c
+____________________________________________________________________________
+[  5776] By: jhi                                   on 2000/03/17  03:40:18
+        Log: More Todo.
+     Branch: cfgperl
+          ! Todo Todo-5.6
+____________________________________________________________________________
+[  5775] By: gsar                                  on 2000/03/17  03:40:14
+        Log: s/:def/:DEFAULT/
+     Branch: perl
+          ! lib/open.pm
+____________________________________________________________________________
+[  5774] By: gsar                                  on 2000/03/17  03:39:07
+        Log: export cv_undef() and cv_const_sv() (mod_perl uses them to
+             good advantage)
+     Branch: perl
+          ! embed.pl global.sym objXSUB.h perlapi.c
+____________________________________________________________________________
+[  5773] By: gsar                                  on 2000/03/17  03:12:34
+        Log: remove non-ANSI parts in comp/cpp.t
+     Branch: perl
+          ! t/comp/cpp.aux
+____________________________________________________________________________
+[  5772] By: jhi                                   on 2000/03/17  03:11:49
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> configure.com embed.h embed.pl lib/CGI.pm
+         !> lib/ExtUtils/Mksymlists.pm lib/Pod/Man.pm perl.h
+         !> pod/pod2man.PL pod/pod2text.PL pp_sys.c vms/ext/vmsish.pm
+         !> vms/ext/vmsish.t vms/subconfigure.com vms/test.com
+         !> vms/vmsish.h
+____________________________________________________________________________
+[  5771] By: jhi                                   on 2000/03/17  03:10:34
+        Log: Make the test easier to use.
+     Branch: cfgperl
+          ! t/op/sysio.t
+____________________________________________________________________________
+[  5770] By: gsar                                  on 2000/03/17  03:04:33
+        Log: pod{man,text} updates from podlators-1.00 (from Russ Allbery)
+     Branch: perl
+          ! lib/Pod/Man.pm pod/pod2man.PL pod/pod2text.PL
+____________________________________________________________________________
+[  5769] By: gsar                                  on 2000/03/17  02:53:39
+        Log: integrate vmsperl contents into mainline (no actual changes, since
+             cfgperl already had them all)
+     Branch: perl
+         !> configure.com lib/CGI.pm lib/ExtUtils/Mksymlists.pm perl.h
+         !> vms/ext/vmsish.pm vms/ext/vmsish.t vms/subconfigure.com
+         !> vms/test.com vms/vmsish.h
+____________________________________________________________________________
+[  5768] By: gsar                                  on 2000/03/17  02:48:14
+        Log: fix signedness in test for syswrite() length argument
+     Branch: perl
+          ! pp_sys.c
+____________________________________________________________________________
+[  5767] By: gsar                                  on 2000/03/17  02:38:51
+        Log: integrate cfgperl contents into mainline
+     Branch: perl
+         !> (integrate 28 files)
+____________________________________________________________________________
+[  5766] By: jhi                                   on 2000/03/17  02:29:24
+        Log: Add "Known Problems" section.
+     Branch: cfgperl
+          ! pod/perldelta.pod
+____________________________________________________________________________
+[  5765] By: gsar                                  on 2000/03/17  00:31:19
+        Log: add missing bincompat5005 #defines
+     Branch: perl
+          ! embed.h embed.pl
+____________________________________________________________________________
+[  5764] By: jhi                                   on 2000/03/16  15:32:52
+        Log: pp_send() type tuning continues.
+     Branch: cfgperl
+          ! pp_sys.c
+____________________________________________________________________________
+[  5763] By: jhi                                   on 2000/03/16  04:09:37
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> embed.pl global.sym objXSUB.h perl.c perlapi.c
+         !> win32/perlhost.h win32/perllib.c win32/win32.h
+____________________________________________________________________________
+[  5762] By: jhi                                   on 2000/03/16  04:06:36
+        Log: VMS patches from Dan Sugalski and Charles Bailey
+     Branch: cfgperl
+          ! configure.com ext/File/Glob/Glob.pm lib/CGI.pm
+          ! lib/ExtUtils/Mksymlists.pm vms/subconfigure.com
+____________________________________________________________________________
+[  5761] By: gsar                                  on 2000/03/16  03:18:41
+        Log: due to an oversight during PERL_OBJECT migration, hosts created
+             by pseudo-fork were never being deleted, leading to a sizeable
+             memory leak; std FDs in pseudo-children are now closed
+             automatically to avoid resource leaks; basic infinite looping
+             fork() test works without leaking again in non-PERL_OBJECT
+             build
+     Branch: perl
+          ! embed.pl global.sym objXSUB.h perl.c perlapi.c
+          ! win32/perlhost.h win32/perllib.c win32/win32.h
+____________________________________________________________________________
+[  5760] By: jhi                                   on 2000/03/16  01:50:13
+        Log: Fix pp_send() sizes (pass a Size_t, not an Off_t, and
+             return a SSize_t, not an Off_t); add a note about a slightly
+             similar situation in pp_truncate(); introduce $sizesize
+             for Configure; update EPOC, VOS, Win32, and VMS for the
+             sizesize; minor updates on the EPOC config file; reword
+             socklen_t message slightly; fix fpossize (though unused   currently)
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH epoc/config.sh pp_sys.c vms/subconfigure.com
+          ! vos/config.def vos/config.h win32/config.bc win32/config.gc
+          ! win32/config.vc win32/config_H.bc win32/config_H.gc
+          ! win32/config_H.vc win32/config_h.PL win32/config_sh.PL
+     Branch: metaconfig/U/perl
+          ! d_socklen_t.U fpossize.U
+____________________________________________________________________________
+[  5759] By: jhi                                   on 2000/03/15  23:47:11
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> makedef.pl
+____________________________________________________________________________
+[  5758] By: jhi                                   on 2000/03/15  23:46:17
+        Log: Retract #5767; replace it with a tested patch
+             from Anton Berezin.
+     Branch: cfgperl
+          ! hints/freebsd.sh
+____________________________________________________________________________
+[  5757] By: jhi                                   on 2000/03/15  23:36:53
+        Log: Configure nits: do not use /tmp to avoid potential security
+             problems (Andy Dougherty: this does not fix the rampant
+             use of /tmp by the various utilities like C compilers, though.
+             Just don't run Configure as root if you care about security.),
+             fix man3dir bug (both from Andy Dougherty); fix hints files
+             not to use /tmp; retract #4993 (the description of the *symbols
+             variables is okay, after all); regen Configure.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH hints/dec_osf.sh hints/esix4.sh hints/newsos4.sh
+     Branch: metaconfig
+          + U/modified/d_flexfnam.U
+          ! U/installdirs/man3dir.U
+____________________________________________________________________________
+[  5756] By: jhi                                   on 2000/03/15  22:20:06
+        Log: cater for FreeBSD 5.*
+     Branch: cfgperl
+          ! hints/freebsd.sh
+____________________________________________________________________________
+[  5755] By: jhi                                   on 2000/03/15  22:00:57
+        Log: Add missing Windows O_ constants.
+     Branch: cfgperl
+          ! ext/Fcntl/Fcntl.pm ext/Fcntl/Fcntl.xs
+____________________________________________________________________________
+[  5754] By: gsar                                  on 2000/03/15  19:56:37
+        Log: add PL_thr_key to export list under useithreads
+     Branch: perl
+          ! makedef.pl
+____________________________________________________________________________
+[  5753] By: jhi                                   on 2000/03/15  04:19:19
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> (integrate 37 files)
+____________________________________________________________________________
+[  5752] By: bailey                                on 2000/03/15  03:45:28
+        Log: Make DEBUGGING a configurable option
+     Branch: vmsperl
+          ! configure.com
+____________________________________________________________________________
+[  5751] By: bailey                                on 2000/03/15  03:38:57
+        Log: Remove obsolete DCL symbol from subconfigure.com
+     Branch: vmsperl
+          ! vms/subconfigure.com
+____________________________________________________________________________
+[  5750] By: bailey                                on 2000/03/15  03:29:17
+        Log: Add VMS' default to the CGI.pm temp list (should update to File::Spec)
+     Branch: vmsperl
+          ! lib/CGI.pm
+         !> ext/File/Glob/Glob.pm
+____________________________________________________________________________
+[  5749] By: bailey                                on 2000/03/15  02:05:28
+        Log: Change test using obsolete %COnfig element
+     Branch: vmsperl
+          ! lib/ExtUtils/Mksymlists.pm
+____________________________________________________________________________
+[  5748] By: gsar                                  on 2000/03/14  23:39:42
+        Log: update local_patches entry for RC2
+     Branch: perl
+          ! Changes patchlevel.h pod/perlhist.pod
+____________________________________________________________________________
+[  5747] By: gsar                                  on 2000/03/14  22:44:27
+        Log: more warnings tidy-ups (from Paul Marquess)
+     Branch: perl
+          ! pod/perldelta.pod pod/perldiag.pod pod/perlfaq4.pod
+          ! t/lib/attrs.t utils/h2xs.PL
+____________________________________________________________________________
+[  5746] By: gsar                                  on 2000/03/14  22:30:43
+        Log: Sys::Syslog fix for accidental arguments to autoloaded constants
+     Branch: perl
+          ! ext/Sys/Syslog/Syslog.pm ext/Sys/Syslog/Syslog.xs
+____________________________________________________________________________
+[  5745] By: gsar                                  on 2000/03/14  22:20:27
+        Log: tweak to use SIZE_ONLY
+     Branch: perl
+          ! regcomp.c
+____________________________________________________________________________
+[  5744] By: gsar                                  on 2000/03/14  21:56:48
+        Log: regen win32/config*
+     Branch: perl
+          ! win32/Makefile win32/config_H.bc win32/config_H.gc
+          ! win32/config_H.vc win32/makefile.mk
+____________________________________________________________________________
+[  5743] By: gsar                                  on 2000/03/14  21:46:25
+        Log: change#5729 had syntax errors
+     Branch: perl
+          ! t/lib/complex.t
+____________________________________________________________________________
+[  5742] By: gsar                                  on 2000/03/14  21:26:33
+        Log: integrate vmsperl changes into mainline (change#5693 denied)
+     Branch: perl
+         !> configure.com lib/File/Spec/VMS.pm t/lib/complex.t
+         !> t/lib/filespec.t vms/ext/filespec.t vms/subconfigure.com
+         !> vms/vms.c
+____________________________________________________________________________
+[  5741] By: gsar                                  on 2000/03/14  21:17:34
+        Log: update Changes; integrate cfgperl contents into mainline
+     Branch: perl
+          ! Changes
+         !> ext/Socket/Socket.xs patchlevel.h perl.h t/lib/complex.t
+____________________________________________________________________________
+[  5740] By: gsar                                  on 2000/03/14  20:57:12
+        Log: perlfaq4 tweak (from Damian Conway <damian@cs.monash.edu.au>)
+     Branch: perl
+          ! pod/perlfaq4.pod
+____________________________________________________________________________
+[  5739] By: gsar                                  on 2000/03/14  20:53:07
+        Log: allow alternates to negate correctly (from Johan Vromans)
+     Branch: perl
+          ! lib/Getopt/Long.pm
+____________________________________________________________________________
+[  5738] By: gsar                                  on 2000/03/14  20:34:19
+        Log: kludge our way around warnings on C<use POSIX; use IO::File;>
+     Branch: perl
+          ! ext/IO/lib/IO/Seekable.pm
+____________________________________________________________________________
+[  5737] By: gsar                                  on 2000/03/14  20:06:23
+        Log: protect special characters better against interpretation by *roff
+             (from Russ Allbery)
+     Branch: perl
+          ! lib/Pod/Man.pm
+____________________________________________________________________________
+[  5736] By: gsar                                  on 2000/03/14  19:47:00
+        Log: provide an explicit base address for perl56.dll to avoid relocations;
+             increase the default stack size (RE engine can use a lot more stack
+             than the 1MB default limit); default to using the regular version of
+             the MSVCRT even for DEBUGGING builds (this allows extensions to be
+             selectively built with debugging)
+     Branch: perl
+          ! win32/Makefile win32/makefile.mk
+____________________________________________________________________________
+[  5735] By: gsar                                  on 2000/03/14  19:31:53
+        Log: regen perltoc, other pod nits
+     Branch: perl
+          ! ext/IO/poll.c pod/Makefile pod/buildtoc pod/perlnumber.pod
+          ! pod/perltoc.pod pod/roffitall
+____________________________________________________________________________
+[  5734] By: gsar                                  on 2000/03/14  19:08:22
+        Log: avoid dup warning (from Simon Cozens)
+     Branch: perl
+          ! regcomp.c
+____________________________________________________________________________
+[  5733] By: gsar                                  on 2000/03/14  18:46:50
+        Log: allow usemymalloc to be overridden via -Uusemymalloc
+     Branch: perl
+          ! hints/hpux.sh
+____________________________________________________________________________
+[  5732] By: gsar                                  on 2000/03/14  17:23:47
+        Log: test case for change#5700 (from M. J. T. Guy)
+     Branch: perl
+          ! t/op/universal.t
+____________________________________________________________________________
+[  5731] By: gsar                                  on 2000/03/14  17:15:44
+        Log: revise README.win32 for currentness, point to function
+             list in perlport.pod (from a patch suggested by Dominic Dunlop)
+     Branch: perl
+          ! README.win32 pod/perlport.pod
+____________________________________________________________________________
+[  5730] By: gsar                                  on 2000/03/14  17:14:21
+        Log: tweak sort() notes (from Nathan Torkington)
+     Branch: perl
+          ! pod/perlfunc.pod
+____________________________________________________________________________
+[  5729] By: jhi                                   on 2000/03/14  15:13:13
+        Log: Make the tests 1018 and 1019 more robust.
+     Branch: cfgperl
+          ! t/lib/complex.t
+____________________________________________________________________________
+[  5728] By: jhi                                   on 2000/03/14  15:07:48
+        Log: Fix for one of the problems in RC1 reported by M. E. O'Neill
+             in NEXTSTEP 3.3p2.
+     Branch: cfgperl
+          ! ext/Socket/Socket.xs
+____________________________________________________________________________
+[  5727] By: jhi                                   on 2000/03/14  14:57:04
+        Log: Integrate with Sarathy; unapply the #5539 that snekt in
+             with #5539.
+     Branch: cfgperl
+         +> pod/perldebguts.pod
+          ! patchlevel.h perl.h
+         !> MANIFEST lib/Text/Abbrev.pm lib/perl5db.pl pod/perl.pod
+         !> pod/perldebug.pod pod/perldelta.pod pod/perlnumber.pod
+         !> t/lib/io_sock.t utils/perlcc.PL utils/perldoc.PL
+         !> win32/makefile.mk
+____________________________________________________________________________
+[  5726] By: gsar                                  on 2000/03/14  07:43:37
+        Log: fixes for Borland compiler (from Vadim Konovalov
+             <vkonovalov@lucent.com>)
+     Branch: perl
+          ! utils/perlcc.PL win32/makefile.mk
+____________________________________________________________________________
+[  5725] By: gsar                                  on 2000/03/14  07:38:00
+        Log: more efficient Text::Abbrev (from M.E. O'Neill <oneill@cs.sfu.ca>)
+     Branch: perl
+          ! lib/Text/Abbrev.pm
+____________________________________________________________________________
+[  5724] By: gsar                                  on 2000/03/14  05:59:02
+        Log: integrate cfgperl changes into mainline, ignoring the
+             __attribute__((unused)) stuff that seems to have snuck
+             back in
+     Branch: perl
+         !> Todo-5.6 patchlevel.h perl.h pod/perl.pod pod/perlport.pod
+         !> vms/perlvms.pod
+____________________________________________________________________________
+[  5723] By: gsar                                  on 2000/03/14  05:49:08
+        Log: patches for many bugs in the debugger; documentation updates for
+             perldelta; split perldebug.pod into perldeb{ug,guts}.pod (from
+             Tom Christiansen)
+     Branch: perl
+          + pod/perldebguts.pod
+          ! MANIFEST lib/perl5db.pl pod/perl.pod pod/perldebug.pod
+          ! pod/perldelta.pod pod/perlnumber.pod pod/perlport.pod
+____________________________________________________________________________
+[  5722] By: gsar                                  on 2000/03/14  05:37:29
+        Log: add sleep() to avoid race on NeXT (from M.E. O'Neill
+             <oneill@cs.sfu.ca>)
+     Branch: perl
+          ! t/lib/io_sock.t
+____________________________________________________________________________
+[  5721] By: gsar                                  on 2000/03/14  03:53:50
+        Log: support a -U option when run as root to drop privileges (from
+             Tom Christiansen)
+     Branch: perl
+          ! utils/perldoc.PL
+____________________________________________________________________________
+[  5720] By: jhi                                   on 2000/03/14  03:43:51
+        Log: move the big AVAILABILITY list to perlport as Supported Platforms
+             (Tom Christiansen); add few more platforms
+     Branch: cfgperl
+          ! pod/perl.pod pod/perlport.pod
+____________________________________________________________________________
+[  5719] By: jhi                                   on 2000/03/14  02:44:55
+        Log: more todo
+     Branch: cfgperl
+          ! Todo-5.6
+____________________________________________________________________________
+[  5718] By: jhi                                   on 2000/03/14  02:17:16
+        Log: detypo
+     Branch: cfgperl
+          ! vms/perlvms.pod
+____________________________________________________________________________
+[  5717] By: jhi                                   on 2000/03/14  02:00:24
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+          ! patchlevel.h perl.h
+         !> (integrate 60 files)
+____________________________________________________________________________
+[  5716] By: gsar                                  on 2000/03/14  00:01:39
+        Log: reference miscount in Devel::Peek that causes debugger to
+             crash unceremoniously when doing "V DB" etc., repeatedly
+     Branch: perl
+          ! ext/Devel/Peek/Peek.xs
+____________________________________________________________________________
+[  5715] By: gsar                                  on 2000/03/13  21:40:23
+        Log: fixes for broken L<> links (from Wolfgang Laun
+             <wolfgang.laun@alcatel.at>)
+     Branch: perl
+          ! pod/Win32.pod pod/perlcall.pod pod/perlcompile.pod
+          ! pod/perldata.pod pod/perlfaq7.pod pod/perlfunc.pod
+          ! pod/perlguts.pod pod/perllocale.pod pod/perlnumber.pod
+          ! pod/perlop.pod pod/perlxstut.pod vms/perlvms.pod
+____________________________________________________________________________
+[  5714] By: gsar                                  on 2000/03/13  21:37:48
+        Log: typos in perlboot.pod (from Randal L. Schwartz <merlyn@stonehenge.com>)
+     Branch: perl
+          ! pod/perlboot.pod
+____________________________________________________________________________
+[  5713] By: gsar                                  on 2000/03/13  21:36:24
+        Log: avoid infinite loop in h2xs (from Hugo van der Sanden)
+     Branch: perl
+          ! utils/h2xs.PL
+____________________________________________________________________________
+[  5712] By: gsar                                  on 2000/03/13  21:29:15
+        Log: lexical warnings update for docs and tests (from Paul Marquess)
+     Branch: perl
+          ! ext/File/Glob/Glob.pm lib/fields.pm pod/perl.pod
+          ! pod/perldata.pod pod/perldbmfilter.pod pod/perlfaq3.pod
+          ! pod/perlfaq4.pod pod/perlfaq7.pod pod/perlfilter.pod
+          ! pod/perlipc.pod pod/perlmod.pod pod/perlmodlib.pod
+          ! pod/perlop.pod pod/perlre.pod pod/perlref.pod pod/perlrun.pod
+          ! pod/perlstyle.pod pod/perlsyn.pod pod/perltie.pod
+          ! pod/perltrap.pod pod/perlunicode.pod pod/perlxstut.pod
+          ! t/io/open.t t/lib/fields.t t/lib/parsewords.t
+          ! t/op/assignwarn.t t/op/gv.t t/op/hashwarn.t t/op/magic.t
+          ! t/op/pack.t t/op/pat.t t/op/sort.t t/op/sprintf.t
+          ! t/pragma/constant.t t/pragma/locale.t
+____________________________________________________________________________
+[  5711] By: gsar                                  on 2000/03/13  21:08:29
+        Log: updates from PodParser v1.12 on CPAN (from Brad Appleton)
+     Branch: perl
+          ! lib/Pod/Checker.pm lib/Pod/Find.pm lib/Pod/InputObjects.pm
+          ! lib/Pod/ParseUtils.pm lib/Pod/Parser.pm lib/Pod/Select.pm
+          ! lib/Pod/Usage.pm t/pod/poderrs.xr t/pod/testp2pt.pl
+          ! t/pod/testpchk.pl
+____________________________________________________________________________
+[  5710] By: gsar                                  on 2000/03/13  20:46:37
+        Log: cleaner logic in op.c, also avoids QNX optimizer bug (from Norton
+             Allen <allen@huarp.harvard.edu>)
+     Branch: perl
+          ! op.c
+____________________________________________________________________________
+[  5709] By: gsar                                  on 2000/03/13  20:43:30
+        Log: mention changes to diagnostics
+     Branch: perl
+          ! pod/perldelta.pod
+____________________________________________________________________________
+[  5708] By: gsar                                  on 2000/03/13  20:34:38
+        Log: ignore const for the purposes of typemaps (from Hugo van der Sanden)
+     Branch: perl
+          ! lib/ExtUtils/xsubpp
+____________________________________________________________________________
+[  5707] By: gsar                                  on 2000/03/13  20:23:24
+        Log: don't check for errno after Atof() (atof() doesn't set errno, and
+             where Atof() is actually strto[l]d(), some platforms seem to want
+             to set errno randomly)
+     Branch: perl
+          ! toke.c
+____________________________________________________________________________
+[  5706] By: gsar                                  on 2000/03/13  18:14:18
+        Log: integrate cfgperl changes into mainline
+     Branch: perl
+         !> Configure config_h.SH hints/hpux.sh hints/solaris_2.sh mg.c
+         !> perl.h pod/perl.pod pp.c
+____________________________________________________________________________
+[  5705] By: jhi                                   on 2000/03/13  14:44:11
+        Log: STRLEN != int.
+     Branch: cfgperl
+          ! mg.c
+____________________________________________________________________________
+[  5704] By: jhi                                   on 2000/03/13  13:18:07
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         +> lib/warnings/register.pm
+         !> (integrate 42 files)
+____________________________________________________________________________
+[  5703] By: gsar                                  on 2000/03/13  12:40:51
+        Log: mention autoflush portability caveat
+     Branch: perl
+          ! pod/perlfunc.pod pod/perlop.pod pod/perlport.pod
+____________________________________________________________________________
+[  5702] By: gsar                                  on 2000/03/13  11:09:05
+        Log: final touches for lexical warnings (from Paul Marquess)
+     Branch: perl
+          + lib/warnings/register.pm
+          ! MANIFEST ext/IO/lib/IO/Select.pm ext/Socket/Socket.pm
+          ! lib/Class/Struct.pm lib/I18N/Collate.pm lib/Tie/Handle.pm
+          ! lib/Tie/Hash.pm lib/Tie/Scalar.pm lib/constant.pm
+          ! lib/syslog.pl lib/vars.pm lib/warnings.pm mg.c perl.c
+          ! pod/perllexwarn.pod pp_ctl.c t/lib/filepath.t t/lib/io_sel.t
+          ! t/lib/socket.t t/lib/tie-stdhandle.t t/op/tie.t
+          ! t/pragma/constant.t t/pragma/diagnostics.t t/pragma/warn/2use
+          ! t/pragma/warn/9enabled warnings.h warnings.pl
+____________________________________________________________________________
+[  5701] By: gsar                                  on 2000/03/13  11:00:00
+        Log: avoid compiler warnings
+     Branch: perl
+          ! pp_hot.c
+____________________________________________________________________________
+[  5700] By: gsar                                  on 2000/03/13  09:57:59
+        Log: make the is_utf8_*() safe for use on invalid utf8 (they now
+             return false on such input instead of emitting warnings)
+     Branch: perl
+          ! embed.h embed.pl global.sym gv.c objXSUB.h perlapi.c
+          ! pod/perlapi.pod proto.h universal.c utf8.c
+____________________________________________________________________________
+[  5699] By: gsar                                  on 2000/03/13  06:59:57
+        Log: the premature FREETMPS calls in change#1187 weren't defensive enough
+     Branch: perl
+          ! pp_ctl.c pp_hot.c t/op/recurse.t
+____________________________________________________________________________
+[  5698] By: jhi                                   on 2000/03/13  05:03:37
+        Log: hints nibbling continues
+     Branch: cfgperl
+          ! hints/hpux.sh
+____________________________________________________________________________
+[  5697] By: jhi                                   on 2000/03/13  04:45:57
+        Log: there's no end to tweaking
+     Branch: cfgperl
+          ! hints/hpux.sh
+____________________________________________________________________________
+[  5696] By: jhi                                   on 2000/03/13  04:26:15
+        Log: hints tweak
+     Branch: cfgperl
+          ! hints/hpux.sh
+____________________________________________________________________________
+[  5695] By: bailey                                on 2000/03/13  03:54:09
+        Log: Trim out leftover hunk from prior resolve conflict
+     Branch: vmsperl
+          ! lib/File/Spec/VMS.pm
+____________________________________________________________________________
+[  5694] By: bailey                                on 2000/03/13  03:20:20
+        Log: Assorted configuration cleanups (Peter Prymmer, and a
+             bit from Charles Bailey and Dan Sugalski)
+     Branch: vmsperl
+          ! configure.com vms/subconfigure.com
+____________________________________________________________________________
+[  5693] By: bailey                                on 2000/03/13  03:00:16
+        Log: Add vmsish 'hushed' option to suppress error messages at exit
+     Branch: vmsperl
+          ! perl.h vms/ext/vmsish.pm vms/ext/vmsish.t vms/test.com
+          ! vms/vmsish.h
+____________________________________________________________________________
+[  5692] By: bailey                                on 2000/03/13  02:50:10
+        Log: Fix inverted test conditions for secure lnm translation
+             and default file types.  (Dan Sugalski)
+     Branch: vmsperl
+          ! vms/subconfigure.com
+____________________________________________________________________________
+[  5691] By: bailey                                on 2000/03/13  02:41:36
+        Log: Insulate tests of default display_format from different precision
+             on different machines by truncating at 1 digit less than the most
+             common choice (.15g)
+     Branch: vmsperl
+          ! t/lib/complex.t
+____________________________________________________________________________
+[  5690] By: bailey                                on 2000/03/13  02:31:44
+        Log: Resync with mainline post RC1
+     Branch: vmsperl
+         +> lib/Pod/Plainer.pm
+         !> (integrate 137 files)
+____________________________________________________________________________
+[  5689] By: bailey                                on 2000/03/13  02:22:24
+        Log: Update File::Spec::VMS and tests
+             Since reduce_ricochet has been removed from File::Spec,
+             revert changes to VMS::Filespec::vmsify made to accomodate it.
+     Branch: vmsperl
+          ! lib/File/Spec/VMS.pm t/lib/filespec.t vms/ext/filespec.t
+          ! vms/vms.c
+____________________________________________________________________________
+[  5688] By: bailey                                on 2000/03/13  02:12:11
+        Log: Basic 5.6.0 RC1 build patches for VMS
+     Branch: vmsperl
+          ! configure.com t/pragma/warn/doio t/pragma/warn/util
+          ! vms/subconfigure.com
+____________________________________________________________________________
+[  5687] By: jhi                                   on 2000/03/13  00:41:51
+        Log: Solaris long double fixes from Alan Burlison.
+     Branch: cfgperl
+          ! hints/solaris_2.sh perl.h pp.c
+____________________________________________________________________________
+[  5686] By: jhi                                   on 2000/03/13  00:17:13
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> dump.c hints/hpux.sh op.c pod/perldelta.pod t/op/misc.t
+____________________________________________________________________________
+[  5685] By: jhi                                   on 2000/03/13  00:13:17
+        Log: Retract #5680, it broke more than it helped.
+     Branch: cfgperl
+          ! hints/hpux.sh
+____________________________________________________________________________
+[  5684] By: gsar                                  on 2000/03/12  21:48:44
+        Log: set optimize=-O only if not already set
+     Branch: perl
+          ! hints/hpux.sh
+____________________________________________________________________________
+[  5683] By: gsar                                  on 2000/03/12  20:11:45
+        Log: another optimized-OP_SASSIGN bug: ops that were not OA_TARGLEX
+             were being mistakenly subverted anyway
+     Branch: perl
+          ! dump.c op.c pod/perldelta.pod t/op/misc.t
+____________________________________________________________________________
+[  5682] By: jhi                                   on 2000/03/12  18:11:52
+        Log: update AVAILABILITY for LynxOS
+     Branch: cfgperl
+          ! pod/perl.pod
+____________________________________________________________________________
+[  5681] By: jhi                                   on 2000/03/12  18:03:46
+        Log: 64-bitness hints tweaks
+     Branch: cfgperl
+          ! hints/solaris_2.sh
+____________________________________________________________________________
+[  5680] By: jhi                                   on 2000/03/12  17:49:25
+        Log: 64-bitness tweak: separate 64bitint and 64bitall.
+     Branch: cfgperl
+          ! hints/hpux.sh
+____________________________________________________________________________
+[  5679] By: jhi                                   on 2000/03/12  17:43:09
+        Log: metaconfig-ify #5676.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig/U/perl
+          ! fflushall.U
+____________________________________________________________________________
+[  5678] By: jhi                                   on 2000/03/12  17:37:14
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> Changes Configure Todo lib/File/DosGlob.pm
+____________________________________________________________________________
+[  5677] By: gsar                                  on 2000/03/12  11:35:10
+        Log: integrate cfgperl changes into mainline
+     Branch: perl
+          ! Changes Todo
+         !> Todo-5.6 perl.h pod/perldelta.pod
+____________________________________________________________________________
+[  5676] By: gsar                                  on 2000/03/12  11:27:38
+        Log: don't bother testing if we can flush all handles when fflush(stdin)
+             shows the pipe bug
+     Branch: perl
+          ! Configure
+____________________________________________________________________________
+[  5675] By: jhi                                   on 2000/03/12  05:08:29
+        Log: continue flogging the string->int conversion ifdefs
+     Branch: cfgperl
+          ! perl.h
+____________________________________________________________________________
+[  5674] By: gsar                                  on 2000/03/12  05:01:30
+        Log: fix File::DosGlob for patterns with drive names like c:*.bat
+             (suggested by Jason Mathews <mathews@computer.org>)
+     Branch: perl
+          ! lib/File/DosGlob.pm
+____________________________________________________________________________
+[  5673] By: jhi                                   on 2000/03/12  04:48:14
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> doop.c perl.h pod/perldelta.pod pod/perldiag.pod
+         !> pod/perlpod.pod toke.c utils/perldoc.PL
+____________________________________________________________________________
+[  5672] By: gsar                                  on 2000/03/12  03:57:23
+        Log: security fixes for perldoc (from Tom Christiansen)
+     Branch: perl
+          ! utils/perldoc.PL
+____________________________________________________________________________
+[  5671] By: gsar                                  on 2000/03/12  03:45:27
+        Log: Larry's patch to disallow CORE::Snark, with perldiag entry
+     Branch: perl
+          ! pod/perldelta.pod pod/perldiag.pod toke.c
+____________________________________________________________________________
+[  5670] By: gsar                                  on 2000/03/12  03:36:17
+        Log: insufficient buffer in change#5317
+     Branch: perl
+          ! doop.c
+____________________________________________________________________________
+[  5669] By: gsar                                  on 2000/03/12  03:15:29
+        Log: avoid L<foo|bar> for now, not all the pod2foo support it
+     Branch: perl
+          ! pod/perlpod.pod
+____________________________________________________________________________
+[  5668] By: gsar                                  on 2000/03/12  02:35:55
+        Log: rework change#5664
+     Branch: perl
+          ! perl.h
+____________________________________________________________________________
+[  5667] By: jhi                                   on 2000/03/11  21:35:29
+        Log: todo and perldelta updates
+     Branch: cfgperl
+          ! Todo Todo-5.6 pod/perldelta.pod
+____________________________________________________________________________
+[  5666] By: jhi                                   on 2000/03/11  21:00:34
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> perl.h
+____________________________________________________________________________
+[  5665] By: jhi                                   on 2000/03/11  20:58:58
+        Log: Fixes for #5661.
+     Branch: cfgperl
+          ! perl.h
+____________________________________________________________________________
+[  5664] By: gsar                                  on 2000/03/11  19:50:06
+        Log: fix Strtoul() misdefinition is change#5661
+     Branch: perl
+          ! perl.h
+____________________________________________________________________________
+[  5663] By: gsar                                  on 2000/03/11  19:21:18
+        Log: integrate cfgperl contents into mainline
+     Branch: perl
+         !> Configure config_h.SH hints/solaris_2.sh perl.h
+         !> t/pragma/warn/pp_hot toke.c
+____________________________________________________________________________
+[  5662] By: jhi                                   on 2000/03/11  19:06:20
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> cop.h perl.c pp_ctl.c t/op/eval.t t/op/misc.t
+____________________________________________________________________________
+[  5661] By: jhi                                   on 2000/03/11  19:03:32
+        Log: Use Atof() instead of bare strtod(); ditto for Atol()/Atoul()
+             (introduce the latter) instead of bare strtoll()/strtoll().
+     Branch: cfgperl
+          ! perl.h toke.c
+____________________________________________________________________________
+[  5660] By: gsar                                  on 2000/03/11  18:40:49
+        Log: another long-standing eval bug: return doesn't reset $@ correctly
+     Branch: perl
+          ! pp_ctl.c t/op/eval.t
+____________________________________________________________________________
+[  5659] By: jhi                                   on 2000/03/11  18:27:54
+        Log: metaconfig-ify the test for broken fflush(NULL)
+             (which ails e.g. Solaris), from Ulrich Pfeifer.
+     Branch: cfgperl
+          ! Configure config_h.SH hints/solaris_2.sh
+     Branch: metaconfig/U/perl
+          ! d_unorderedl.U fflushall.U
+____________________________________________________________________________
+[  5658] By: gsar                                  on 2000/03/11  18:11:22
+        Log: change#3511 was not defensive enough about try blocks, causing
+             bogus attempts to free closures, and thence, segfaults
+     Branch: perl
+          ! cop.h perl.c pp_ctl.c t/op/misc.t
+____________________________________________________________________________
+[  5657] By: jhi                                   on 2000/03/11  18:04:44
+        Log: Rewording.
+     Branch: cfgperl
+          ! t/pragma/warn/pp_hot
+____________________________________________________________________________
+[  5656] By: jhi                                   on 2000/03/11  17:41:29
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> (integrate 27 files)
+____________________________________________________________________________
+[  5655] By: gsar                                  on 2000/03/11  17:06:03
+        Log: reword comment
+     Branch: perl
+          ! t/pragma/warn/pp_hot
+____________________________________________________________________________
+[  5654] By: gsar                                  on 2000/03/11  17:01:47
+        Log: off-by-one in os2.c (from Ilya Zakharevich)
+     Branch: perl
+          ! os2/os2.c
+____________________________________________________________________________
+[  5653] By: gsar                                  on 2000/03/11  16:59:48
+        Log: File::Spec::VMS fixups, *not tested* on VMS (from Barrie Slaymaker)
+     Branch: perl
+          ! lib/File/Spec/VMS.pm t/lib/filespec.t
+____________________________________________________________________________
+[  5652] By: gsar                                  on 2000/03/11  16:52:03
+        Log: missing export list entry in change#5619
+     Branch: perl
+          ! makedef.pl
+____________________________________________________________________________
+[  5651] By: gsar                                  on 2000/03/11  16:50:05
+        Log: avoid using context pointer in MUTEX_INIT() et al; remove the
+             *_NOCONTEXT variants to keep it simple
+     Branch: perl
+          ! malloc.c thread.h win32/win32thread.h
+____________________________________________________________________________
+[  5650] By: gsar                                  on 2000/03/11  16:07:35
+        Log: remove =for section (from Johan Vromans)
+     Branch: perl
+          ! lib/Getopt/Long.pm
+____________________________________________________________________________
+[  5649] By: gsar                                  on 2000/03/11  16:05:50
+        Log: add nokfile target in Makefile (from Andy Dougherty)
+     Branch: perl
+          ! Makefile.SH
+____________________________________________________________________________
+[  5648] By: gsar                                  on 2000/03/11  16:02:53
+        Log: mention podchecker (from Tim Jenness <timj@jach.hawaii.edu>)
+     Branch: perl
+          ! pod/perlpod.pod
+____________________________________________________________________________
+[  5647] By: gsar                                  on 2000/03/11  16:01:03
+        Log: VMS build tweaks (from Charles Bailey)
+     Branch: perl
+          ! configure.com perl.c t/pragma/warn/doio t/pragma/warn/util
+          ! vms/subconfigure.com
+____________________________________________________________________________
+[  5646] By: gsar                                  on 2000/03/11  10:13:27
+        Log: remove outdated ftp.cis.ufl.edu reference
+     Branch: perl
+          ! pod/perlfaq2.pod
+____________________________________________________________________________
+[  5645] By: gsar                                  on 2000/03/11  10:10:39
+        Log: failed hunk in change#5644
+     Branch: perl
+          ! t/op/pat.t
+____________________________________________________________________________
+[  5644] By: gsar                                  on 2000/03/11  10:08:47
+        Log: fix optimizer bug in /^(?p{"a"})b/ (from Ilya Zakharevich)
+     Branch: perl
+          ! regcomp.c t/op/pat.t
+____________________________________________________________________________
+[  5643] By: gsar                                  on 2000/03/11  09:48:30
+        Log: better {local,gm}time documentation (from Mark-Jason Dominus)
+     Branch: perl
+          ! pod/perlfunc.pod
+____________________________________________________________________________
+[  5642] By: gsar                                  on 2000/03/11  09:45:10
+        Log: tweaks for lynxos build (from Ed Mooring <mooring@lynx.com>)
+     Branch: perl
+          ! doio.c hints/lynxos.sh perl.h
+____________________________________________________________________________
+[  5641] By: gsar                                  on 2000/03/11  09:42:56
+        Log: integrate cfgperl contents into mainline
+     Branch: perl
+         !> Configure Todo-5.6 config_h.SH hints/irix_6.sh
+         !> lib/Math/Complex.pm regcomp.c t/op/64bit.t
+____________________________________________________________________________
+[  5640] By: gsar                                  on 2000/03/11  09:24:30
+        Log: perldelta update, typos and whitespace adjustments
+     Branch: perl
+          ! lib/open.pm miniperlmain.c pod/perldelta.pod win32/perllib.c
+____________________________________________________________________________
+[  5639] By: jhi                                   on 2000/03/11  00:51:48
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> (integrate 44 files)
+____________________________________________________________________________
+[  5638] By: jhi                                   on 2000/03/11  00:45:46
+        Log: Cpp out deadcode that IRIX compiler noticed. 
+     Branch: cfgperl
+          ! regcomp.c
+____________________________________________________________________________
+[  5637] By: jhi                                   on 2000/03/10  14:22:24
+        Log: Do not use Perl's malloc in IRIX.
+     Branch: cfgperl
+          ! hints/irix_6.sh
+____________________________________________________________________________
+[  5636] By: jhi                                   on 2000/03/10  05:27:03
+        Log: More/modified unused floating point units.
+     Branch: metaconfig/U/perl
+          + d_fp_class_l.U d_unordered.U d_unorderedl.U
+          ! d_fpclass.U
+____________________________________________________________________________
+[  5635] By: jhi                                   on 2000/03/10  01:54:07
+        Log: Add various yet-unused units.
+     Branch: metaconfig/U/perl
+          + d_class.U d_fchdir.U d_finite.U d_fp_class.U d_fp_classl.U
+          + d_fpclass.U d_fpclassify.U d_frexpl.U d_futimes.U
+          + d_getitimer.U d_getrlimit.U d_iconv.U d_isfinite.U d_isinf.U
+          + d_isnan.U d_isnanl.U d_lchmod.U d_lutimes.U d_setitimer.U
+          + d_setrlimit.U d_ualarm.U d_utimes.U
+____________________________________________________________________________
+[  5634] By: jhi                                   on 2000/03/10  01:07:54
+        Log: Fix goofups noticed by Mark Bixby and Jeff Okamoto.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig
+          ! U/compline/nblock_io.U
+     Branch: metaconfig/U/perl
+          ! use64bits.U
+____________________________________________________________________________
+[  5633] By: jhi                                   on 2000/03/09  23:22:33
+        Log: Remove an obsolete note.
+     Branch: cfgperl
+          ! t/op/64bit.t
+____________________________________________________________________________
+[  5632] By: gsar                                  on 2000/03/09  18:50:43
+        Log: update Changes
+     Branch: perl
+          ! Changes
+____________________________________________________________________________
+[  5631] By: gsar                                  on 2000/03/09  18:49:12
+        Log: track more of the child state on Windows
+     Branch: perl
+          ! win32/win32.c win32/win32.h
+____________________________________________________________________________
+[  5630] By: gsar                                  on 2000/03/09  18:48:05
+        Log: UNIVERSAL::isa() and UNIVERSAL::can() fail for magic values
+     Branch: perl
+          ! universal.c
+____________________________________________________________________________
+[  5629] By: gsar                                  on 2000/03/09  18:37:35
+        Log: tweak Unicode notes, other cleanups
+     Branch: perl
+          ! Changes lib/bytes.pm lib/utf8.pm pod/perldelta.pod
+          ! pod/perlhist.pod pod/perlunicode.pod
+____________________________________________________________________________
+[  5628] By: gsar                                  on 2000/03/09  17:39:58
+        Log: support binmode(F,":crlf") and use open IN => ":raw", OUT => ":crlf"
+             semantics; the pragma sets defaults for both open() and qx//
+     Branch: perl
+          ! doio.c dosish.h embed.h embed.pl epoc/epocish.h lib/open.pm
+          ! mpeix/mpeixish.h op.c op.h opcode.h opcode.pl os2/os2ish.h
+          ! perl.h perlapi.c plan9/plan9ish.h pod/perlfunc.pod pp.sym
+          ! pp_proto.h pp_sys.c proto.h sv.h vms/vmsish.h vos/vosish.h
+____________________________________________________________________________
+[  5627] By: gsar                                  on 2000/03/09  12:54:08
+        Log: avoid autoflushing behavior of fork/system/exec on Solaris (thanks
+             to fflush(NULL) bug)
+     Branch: perl
+          ! hints/solaris_2.sh pod/perldelta.pod
+____________________________________________________________________________
+[  5626] By: gsar                                  on 2000/03/09  11:34:51
+        Log: abort build on HP-UX if bundled non-ANSI compiler is detected
+             (from Dominic Dunlop <domo@computer.org>)
+     Branch: perl
+          ! hints/hpux.sh
+____________________________________________________________________________
+[  5625] By: gsar                                  on 2000/03/09  11:17:07
+        Log: patch from Larry to make -T filetest algorithm recognize utf8 as
+             "text"
+     Branch: perl
+          ! pp_sys.c
+____________________________________________________________________________
+[  5624] By: gsar                                  on 2000/03/09  11:11:59
+        Log: provide support for deleting actions etc. (from Ronald J Kimball
+             <rjk@linguist.dartmouth.edu>)
+     Branch: perl
+          ! lib/perl5db.pl pod/perldebug.pod
+____________________________________________________________________________
+[  5623] By: gsar                                  on 2000/03/09  06:39:21
+        Log: new xsubpp keywords should be in all caps
+     Branch: perl
+          ! lib/ExtUtils/xsubpp
+____________________________________________________________________________
+[  5622] By: gsar                                  on 2000/03/09  06:26:04
+        Log: demand-load utf8.pm in swash routines
+     Branch: perl
+          ! op.c utf8.c
+____________________________________________________________________________
+[  5621] By: gsar                                  on 2000/03/08  19:27:02
+        Log: make Dump() call the XSUB implementation transparently (modified
+             version of patch suggested by David Boyce <dsb@world.std.com>)
+     Branch: perl
+          ! ext/Data/Dumper/Dumper.pm ext/Data/Dumper/Dumper.xs
+          ! pod/perldelta.pod
+____________________________________________________________________________
+[  5620] By: gsar                                  on 2000/03/08  18:35:48
+        Log: do FILE should not see outside lexicals (from Rick Delaney
+             <rick@consumercontact.com>)
+     Branch: perl
+          ! op.c pp_ctl.c t/comp/require.t
+____________________________________________________________________________
+[  5619] By: gsar                                  on 2000/03/08  18:04:45
+        Log: abstract code for C<use Foo 1.23 @ary;> into a Perl_load_module()
+             API function
+     Branch: perl
+          ! doio.c embed.h embed.pl global.sym objXSUB.h op.c op.h
+          ! perlapi.c pp_sys.c proto.h
+____________________________________________________________________________
+[  5618] By: jhi                                   on 2000/03/08  18:03:30
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         +> lib/Pod/Plainer.pm
+         !> Changes MANIFEST dosish.h embedvar.h lib/Pod/InputObjects.pm
+         !> lib/Pod/Parser.pm makedef.pl op.c op.h perl.c perlapi.h
+         !> perlvars.h pod/perlop.pod pod/pod2latex.PL sv.c unixish.h
+         !> vms/vmsish.h
+____________________________________________________________________________
+[  5617] By: jhi                                   on 2000/03/08  15:44:05
+        Log: ICU todo fixes.
+     Branch: cfgperl
+          ! Todo-5.6
+____________________________________________________________________________
+[  5616] By: jhi                                   on 2000/03/08  14:30:40
+        Log: Even more Todo.
+     Branch: cfgperl
+          ! Todo-5.6
+____________________________________________________________________________
+[  5615] By: jhi                                   on 2000/03/08  14:13:45
+        Log: More Todo.
+     Branch: cfgperl
+          ! Todo-5.6
+____________________________________________________________________________
+[  5614] By: jhi                                   on 2000/03/08  13:50:53
+        Log: wording changes
+     Branch: cfgperl
+          ! lib/Math/Complex.pm
+____________________________________________________________________________
+[  5613] By: gsar                                  on 2000/03/08  12:51:35
+        Log: clarify docs on return value from binding operators
+     Branch: perl
+          ! pod/perlop.pod
+____________________________________________________________________________
+[  5612] By: gsar                                  on 2000/03/08  12:41:38
+        Log: shore up pod2latex shortcomings, and a Pod::Parser fix (from
+             Robin Barker)
+     Branch: perl
+          + lib/Pod/Plainer.pm
+          ! MANIFEST lib/Pod/Parser.pm pod/pod2latex.PL
+____________________________________________________________________________
+[  5611] By: gsar                                  on 2000/03/08  12:22:59
+        Log: integrate cfgperl changes into mainline
+     Branch: perl
+          ! Changes
+         !> installperl lib/Math/Complex.pm pod/perldelta.pod
+         !> t/lib/complex.t vms/vmsish.h
+____________________________________________________________________________
+[  5610] By: gsar                                  on 2000/03/08  12:08:17
+        Log: add missing locks for op refcounts
+     Branch: perl
+          ! dosish.h embedvar.h makedef.pl op.c op.h perl.c perlapi.h
+          ! perlvars.h sv.c unixish.h vms/vmsish.h
+____________________________________________________________________________
+[  5609] By: gsar                                  on 2000/03/08  11:30:32
+        Log: Pod::InputObjects tweak (from Brad Appleton)
+     Branch: perl
+          ! lib/Pod/InputObjects.pm
+____________________________________________________________________________
+[  5608] By: jhi                                   on 2000/03/08  05:08:59
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> (integrate 27 files)
+____________________________________________________________________________
+[  5607] By: jhi                                   on 2000/03/08  05:07:06
+        Log: Make the stringification more customizable.
+             A potentially backward incompatible change.
+             Based on a suggestion by Roman Kosenko <ra@amk.al.lg.ua>.
+     Branch: cfgperl
+          ! lib/Math/Complex.pm pod/perldelta.pod t/lib/complex.t
+____________________________________________________________________________
+[  5606] By: jhi                                   on 2000/03/08  00:49:14
+        Log: s/lfs/largefiles/
+     Branch: metaconfig
+          ! U/mksample
+____________________________________________________________________________
+[  5605] By: gsar                                  on 2000/03/07  23:37:48
+        Log: VMS build patch (from Peter Prymmer)
+     Branch: perl
+          ! configure.com installhtml lib/lib.pm vms/descrip_mms.template
+          ! vms/subconfigure.com vms/vms.c
+____________________________________________________________________________
+[  5604] By: gsar                                  on 2000/03/07  23:25:46
+        Log: CopFILEGV(&PL_compiling) must be reset properly (from Doug MacEachern)
+     Branch: perl
+          ! perl.c
+____________________________________________________________________________
+[  5603] By: gsar                                  on 2000/03/07  23:05:16
+        Log: type mismatch
+     Branch: perl
+          ! sv.c
+____________________________________________________________________________
+[  5602] By: gsar                                  on 2000/03/07  22:40:55
+        Log: add note to INSTALL about C++ compilers (from M J T Guy)
+     Branch: perl
+          ! INSTALL
+____________________________________________________________________________
+[  5601] By: gsar                                  on 2000/03/07  22:30:35
+        Log: separate options to incpush() for adding version directories and
+             architecture directories (from Andy Dougherty)
+     Branch: perl
+          ! embed.h embed.pl perl.c proto.h t/lib/fatal.t
+____________________________________________________________________________
+[  5600] By: gsar                                  on 2000/03/07  20:18:54
+        Log: support :void to enable croaking only in void context (from
+             Simon Cozens <simon@othersideofthe.earth.li>)
+     Branch: perl
+          ! lib/Fatal.pm t/lib/fatal.t
+____________________________________________________________________________
+[  5599] By: gsar                                  on 2000/03/07  18:35:21
+        Log: Pod::Html tweak to avoid false falses
+     Branch: perl
+          ! lib/Pod/Html.pm
+____________________________________________________________________________
+[  5598] By: gsar                                  on 2000/03/07  18:21:58
+        Log: skip null siblings encountered by goto out of loopish block
+             (from Doug Lankshear)
+     Branch: perl
+          ! pp_ctl.c
+____________________________________________________________________________
+[  5597] By: gsar                                  on 2000/03/07  16:33:29
+        Log: omit XSLoader from bytecode dumps
+     Branch: perl
+          ! ext/B/B/Bytecode.pm ext/B/B/Stash.pm ext/B/B/Xref.pm
+____________________________________________________________________________
+[  5596] By: gsar                                  on 2000/03/07  10:58:17
+        Log: avoid coredump on C<printf "%vd">
+     Branch: perl
+          ! sv.c
+____________________________________________________________________________
+[  5595] By: gsar                                  on 2000/03/07  10:26:03
+        Log: add missing HTML escapes that can be displayed in xterm (from
+             Tim Jenness <timj@jach.hawaii.edu>)
+     Branch: perl
+          ! lib/Pod/Text.pm
+____________________________________________________________________________
+[  5594] By: gsar                                  on 2000/03/07  10:24:55
+        Log: Fatal.pm pod tweak (from Matt Sergeant <matt@sergeant.org>)
+     Branch: perl
+          ! lib/Fatal.pm
+____________________________________________________________________________
+[  5593] By: gsar                                  on 2000/03/07  09:57:24
+        Log: get ByteLoader working again
+     Branch: perl
+          ! bytecode.pl ext/B/B/Asmdata.pm ext/B/B/Bytecode.pm
+          ! ext/B/B/C.pm ext/ByteLoader/bytecode.h
+          ! ext/ByteLoader/byterun.c
+____________________________________________________________________________
+[  5592] By: gsar                                  on 2000/03/07  05:14:49
+        Log: typo in makedef.pl
+     Branch: perl
+          ! lib/File/Path.pm makedef.pl
+____________________________________________________________________________
+[  5591] By: jhi                                   on 2000/03/06  22:56:24
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> Changes ext/File/Glob/Glob.xs lib/Pod/Html.pm
+____________________________________________________________________________
+[  5590] By: gsar                                  on 2000/03/06  22:32:44
+        Log: fix incorrect prototypes in File::Glob
+     Branch: perl
+          ! ext/File/Glob/Glob.xs
+____________________________________________________________________________
+[  5589] By: gsar                                  on 2000/03/06  22:07:38
+        Log: update Changes
+     Branch: perl
+          ! Changes
+____________________________________________________________________________
+[  5588] By: jhi                                   on 2000/03/06  21:46:18
+        Log: From: "Craig A. Berry" <craig.berry@metamorgs.com>
+             To: vmsperl@perl.org, perl5-porters@perl.org
+             Cc: jhi@iki.fi, Charles Bailey <BAILEY@newman.upenn.edu>, gsar@activestate.com
+             Subject: [PATCH 5.5.670] circumvent VMS fileno bug in old DEC C version
+             Date: Mon, 06 Mar 2000 15:36:13 -0600
+             Message-Id: <4.2.2.20000306153539.00ca6420@exchi01.midwest.metamorgs.com>
+     Branch: cfgperl
+          ! vms/vmsish.h
+____________________________________________________________________________
+[  5587] By: jhi                                   on 2000/03/06  21:23:27
+        Log: Use $^O.
+     Branch: cfgperl
+          ! installperl
+____________________________________________________________________________
+[  5586] By: jhi                                   on 2000/03/06  21:19:15
+        Log: Undo drift from the mainline.
+     Branch: cfgperl
+         !> (integrate 1607 files)
+____________________________________________________________________________
+[  5585] By: gsar                                  on 2000/03/06  20:23:37
+        Log: change#5513 accidentally undid change#5373, put it back
+     Branch: perl
+          ! lib/Pod/Html.pm
+____________________________________________________________________________
+[  5584] By: jhi                                   on 2000/03/06  17:30:48
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> lib/File/Path.pm lib/Getopt/Long.pm lib/IPC/Open2.pm
+         !> lib/Pod/Man.pm makedef.pl toke.c vms/subconfigure.com
+____________________________________________________________________________
+[  5583] By: gsar                                  on 2000/03/06  17:02:52
+        Log: makedef.pl typos
+     Branch: perl
+          ! makedef.pl
+____________________________________________________________________________
+[  5582] By: gsar                                  on 2000/03/06  15:24:14
+        Log: Pod::Man bugfixes (from Russ Allbery)
+     Branch: perl
+          ! lib/Pod/Man.pm
+____________________________________________________________________________
+[  5581] By: gsar                                  on 2000/03/06  15:17:08
+        Log: File::Path::rmtree() doesn't delete stale symlinks correctly
+     Branch: perl
+          ! lib/File/Path.pm
+____________________________________________________________________________
+[  5580] By: gsar                                  on 2000/03/06  14:55:57
+        Log: pod nits
+     Branch: perl
+          ! lib/Getopt/Long.pm lib/IPC/Open2.pm
+____________________________________________________________________________
+[  5579] By: gsar                                  on 2000/03/06  14:55:08
+        Log: 64-bit build fix on VMS (from Dan Sugalski)
+     Branch: perl
+          ! toke.c vms/subconfigure.com
+____________________________________________________________________________
+[  5578] By: jhi                                   on 2000/03/06  14:37:46
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> README.win32 configure.com iperlsys.h lib/File/Spec/VMS.pm
+         !> lib/IPC/Open2.pm lib/IPC/Open3.pm perl.c t/lib/filefind.t
+         !> t/lib/filespec.t vms/ext/filespec.t vms/subconfigure.com
+         !> vms/test.com vms/vms.c win32/config.bc win32/config.gc
+         !> win32/config.vc win32/config_H.bc win32/config_H.gc
+         !> win32/config_H.vc win32/config_h.PL win32/perlhost.h
+         !> win32/win32.c win32/win32.h
+____________________________________________________________________________
+[  5577] By: gsar                                  on 2000/03/06  07:26:18
+        Log: skip tests that need VMS::Filespec on other platforms
+     Branch: perl
+          ! t/lib/filespec.t
+____________________________________________________________________________
+[  5576] By: gsar                                  on 2000/03/06  07:11:21
+        Log: integrate vmsperl contents into mainline
+     Branch: perl
+         !> configure.com lib/File/Spec/VMS.pm t/lib/filefind.t
+         !> t/lib/filespec.t vms/ext/filespec.t vms/subconfigure.com
+         !> vms/test.com vms/vms.c
+____________________________________________________________________________
+[  5575] By: gsar                                  on 2000/03/06  07:05:34
+        Log: support for autovivified handles (from Tom Christiansen)
+     Branch: perl
+          ! lib/IPC/Open2.pm lib/IPC/Open3.pm
+____________________________________________________________________________
+[  5574] By: gsar                                  on 2000/03/06  06:31:55
+        Log: vendorlib support for Windows; regen win32/config*
+     Branch: perl
+          ! README.win32 iperlsys.h perl.c win32/config.bc win32/config.gc
+          ! win32/config.vc win32/config_H.bc win32/config_H.gc
+          ! win32/config_H.vc win32/config_h.PL win32/perlhost.h
+          ! win32/win32.c win32/win32.h
+____________________________________________________________________________
+[  5573] By: bailey                                on 2000/03/06  05:23:23
+        Log: Skip openpid.t while VMS subprocess intercommunication in flux (several vmsperlers)
+     Branch: vmsperl
+          ! vms/test.com
+____________________________________________________________________________
+[  5572] By: gsar                                  on 2000/03/06  05:21:26
+        Log: the incpush()es weren't all quite right on Windows in change#5559
+     Branch: perl
+          ! perl.c
+____________________________________________________________________________
+[  5571] By: bailey                                on 2000/03/06  05:18:59
+        Log: Fix ricochet in File::Spec::VMS
+             Fix eval error in filespec.t
+             Misc. minor fixes in filespec.t
+     Branch: vmsperl
+          ! lib/File/Spec/VMS.pm t/lib/filespec.t
+____________________________________________________________________________
+[  5570] By: gsar                                  on 2000/03/06  05:00:44
+        Log: integrate cfgperl changes into mainline
+     Branch: perl
+         !> Configure Makefile.SH Porting/Glossary Porting/config.sh
+         !> Porting/config_H config_h.SH epoc/config.sh
+         !> ext/DynaLoader/DynaLoader_pm.PL hints/aix.sh patchlevel.h
+         !> perl.c perl.h toke.c vos/config.def vos/config.h
+         !> vos/config_h.SH_orig
+____________________________________________________________________________
+[  5569] By: jhi                                   on 2000/03/06  04:51:39
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> installperl pp.c
+____________________________________________________________________________
+[  5568] By: gsar                                  on 2000/03/06  04:48:17
+        Log: installperl wasn't putting extensions with two or more
+             nested package names in the archlib
+     Branch: perl
+          ! installperl
+____________________________________________________________________________
+[  5567] By: bailey                                on 2000/03/06  03:43:36
+        Log: Set up for vendorarch (and fix 64bitint typo) (Dan Sugalski)
+     Branch: vmsperl
+          ! configure.com vms/subconfigure.com
+____________________________________________________________________________
+[  5566] By: bailey                                on 2000/03/06  03:40:14
+        Log: Change $Config{'extensions'} to look Unixy (Charles Lane)
+             FIx logic error in glob-basic.t (Charles Lane)
+     Branch: vmsperl
+          ! configure.com vms/subconfigure.com
+____________________________________________________________________________
+[  5565] By: bailey                                on 2000/03/06  03:37:46
+        Log: Remove trailing . from typeless files (Charles Lane)
+     Branch: vmsperl
+          ! t/lib/filefind.t
+____________________________________________________________________________
+[  5564] By: bailey                                on 2000/03/06  03:36:26
+        Log: Resync with mainline, update test in vmsfspec.t
+     Branch: vmsperl
+         +> lib/Term/ANSIColor.pm t/lib/ansicolor.t
+          ! vms/ext/filespec.t
+         !> (integrate 171 files)
+____________________________________________________________________________
+[  5563] By: gsar                                  on 2000/03/06  03:29:11
+        Log: avoid warning
+     Branch: perl
+          ! pp.c
+____________________________________________________________________________
+[  5562] By: bailey                                on 2000/03/06  02:48:17
+        Log: Downcase function call to hush picky cc
+     Branch: vmsperl
+          ! vms/vms.c
+____________________________________________________________________________
+[  5561] By: jhi                                   on 2000/03/06  00:23:22
+        Log: VOS patch from Paul Green.  Note that the vos/config_h.SH_orig
+             is not exactly identical to the current config_h.SH because
+             Paul needs better $sitearch control.
+     Branch: cfgperl
+          ! vos/config.def vos/config.h vos/config_h.SH_orig
+____________________________________________________________________________
+[  5560] By: jhi                                   on 2000/03/05  23:26:41
+        Log: Avoid wiping out @dl_{librefs,modules} when XSLoader
+             falls back to DynaLoader.
+             
+             From: Doug MacEachern <dougm@pobox.com>
+             To: perl5-porters@perl.org
+             Subject: [PATCH v5.5.670] maintain DynaLoader::dl_{librefs,modules}
+             Date: Sun, 5 Mar 2000 15:19:01 -0800 (PST)
+             Message-ID: <Pine.LNX.4.10.10003051509460.16885-100000@mojo.covalent.net>
+     Branch: cfgperl
+          ! ext/DynaLoader/DynaLoader_pm.PL
+____________________________________________________________________________
+[  5559] By: jhi                                   on 2000/03/05  22:05:54
+        Log: sitelib_stem and vendorlib_stem patches from Andy;
+             problem reported in
+             From: schwern@athens.arena-i.com (Michael G Schwern)
+             To: perl5-porters@perl.org
+             Subject: [ID 20000305.001] [BUG 5.5.670 perl.c] SITELIB_EXP mangled by hack.
+             Date: Sun,  5 Mar 2000 06:31:29 -0500 (EST)
+             Message-Id: <20000305113129.80DC23820@athens.arena-i.com>
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH epoc/config.sh patchlevel.h perl.c perl.h
+          ! vos/config.def vos/config.h vos/config_h.SH_orig
+     Branch: metaconfig
+          ! U/installdirs/instubperl.U U/installdirs/sitelib.U
+          ! U/installdirs/vendorlib.U
+____________________________________________________________________________
+[  5558] By: jhi                                   on 2000/03/05  21:18:59
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> hints/linux.sh lib/Getopt/Long.pm
+____________________________________________________________________________
+[  5557] By: gsar                                  on 2000/03/05  20:35:13
+        Log: Getopt-Long v2.21 update (from Johan Vromans)
+     Branch: perl
+          ! lib/Getopt/Long.pm
+____________________________________________________________________________
+[  5556] By: gsar                                  on 2000/03/05  20:26:57
+        Log: Linux needs -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 too
+             (from Matthias Urlichs <smurf@noris.net>)
+     Branch: perl
+          ! hints/linux.sh
+____________________________________________________________________________
+[  5555] By: jhi                                   on 2000/03/05  20:15:34
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         +> lib/Term/ANSIColor.pm t/lib/ansicolor.t
+         !> MANIFEST lib/Pod/InputObjects.pm opcode.h opcode.pl
+         !> pod/perldelta.pod pod/perlfunc.pod pp.c pp_sys.c
+         !> t/comp/proto.t toke.c utils/perlbug.PL
+____________________________________________________________________________
+[  5554] By: gsar                                  on 2000/03/05  20:02:17
+        Log: prototype changes for eventually supporting C<binmode(F, ":raw")>
+             and C<open F, "-|", 'cat', '-v'>
+     Branch: perl
+          ! opcode.h opcode.pl pod/perlfunc.pod pp.c pp_sys.c
+          ! t/comp/proto.t toke.c
+____________________________________________________________________________
+[  5553] By: jhi                                   on 2000/03/05  19:55:02
+        Log: AIX gcvt() cannot format long doubles very well.
+     Branch: cfgperl
+          ! hints/aix.sh
+____________________________________________________________________________
+[  5552] By: jhi                                   on 2000/03/05  18:44:37
+        Log: the monster cpp expression needs to be on one line to
+             appease makedepend
+     Branch: cfgperl
+          ! toke.c
+____________________________________________________________________________
+[  5551] By: jhi                                   on 2000/03/05  18:24:32
+        Log: IRIX cpp is fussy.
+     Branch: cfgperl
+          ! toke.c
+____________________________________________________________________________
+[  5550] By: gsar                                  on 2000/03/05  17:46:18
+        Log: perlbug tweak to grok local_patches better
+     Branch: perl
+          ! utils/perlbug.PL
+____________________________________________________________________________
+[  5549] By: gsar                                  on 2000/03/05  17:33:10
+        Log: add Term::ANSIColor, perldelta notes on Pod::Man, and fix a bug
+             in Pod::InputObjects (from Russ Allbery)
+     Branch: perl
+          + lib/Term/ANSIColor.pm t/lib/ansicolor.t
+          ! MANIFEST lib/Pod/InputObjects.pm pod/perldelta.pod
+____________________________________________________________________________
+[  5548] By: jhi                                   on 2000/03/05  17:27:06
+        Log: clean up the makedepend temp file
+     Branch: cfgperl
+          ! Makefile.SH
+____________________________________________________________________________
+[  5547] By: jhi                                   on 2000/03/05  17:23:18
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> perl.c
+____________________________________________________________________________
+[  5546] By: jhi                                   on 2000/03/05  17:16:12
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> (integrate 47 files)
+____________________________________________________________________________
+[  5545] By: gsar                                  on 2000/03/05  17:13:48
+        Log: strip last component of SITELIB_EXP only if it looks like a
+             number
+     Branch: perl
+          ! perl.c
+____________________________________________________________________________
+[  5544] By: jhi                                   on 2000/03/05  17:12:42
+        Log: s/Perl/PeRl/; # yeah
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig
+          ! U/modified/cpp_stuff.U
+____________________________________________________________________________
+[  5543] By: gsar                                  on 2000/03/05  16:54:10
+        Log: thinko in change#4546 that caused variables to lose their importedness
+             (GvIMPORTED_XV_off should be !GvIMPORTED_XV)
+     Branch: perl
+          ! sv.c t/pragma/strict-vars
+____________________________________________________________________________
+[  5542] By: gsar                                  on 2000/03/05  09:37:26
+        Log: regen win32/config*, up version numbers &c.
+     Branch: perl
+          ! patchlevel.h win32/Makefile win32/config.bc win32/config.gc
+          ! win32/config.vc win32/config_H.bc win32/config_H.gc
+          ! win32/config_H.vc win32/makefile.mk
+____________________________________________________________________________
+[  5541] By: gsar                                  on 2000/03/05  09:20:12
+        Log: undo change#5506; add patch to make blank line warnings optional
+             (from Brad Appleton)
+     Branch: perl
+          ! lib/Pod/Checker.pm lib/Pod/Parser.pm t/pod/poderrs.xr
+____________________________________________________________________________
+[  5540] By: gsar                                  on 2000/03/05  09:04:52
+        Log: fixes for most warnings identified by gcc -Wall
+     Branch: perl
+          ! av.c cop.h deb.c doop.c dump.c embed.h embed.pl gv.c hv.c mg.c
+          ! miniperlmain.c objXSUB.h op.c perl.c perlapi.c pp.c pp_ctl.c
+          ! pp_hot.c pp_sys.c proto.h regcomp.c regexec.c regexp.h run.c
+          ! scope.c sv.c sv.h toke.c universal.c util.c xsutils.c
+____________________________________________________________________________
+[  5539] By: gsar                                  on 2000/03/05  06:37:58
+        Log: shup up warnings about dNOOP from gcc with __attribute__ ((unused))
+             (from Doug MacEachern <dougm@pobox.com>)
+     Branch: perl
+          ! patchlevel.h perl.h
+____________________________________________________________________________
+[  5538] By: gsar                                  on 2000/03/05  05:50:44
+        Log: tyop
+     Branch: perl
+          ! config_h.SH
+____________________________________________________________________________
+[  5537] By: gsar                                  on 2000/03/05  05:41:10
+        Log: integrate cfgperl contents into mainline; add new tests from
+             inc.t into 64bit.t
+     Branch: perl
+          ! t/op/64bit.t
+         !> Configure config_h.SH hints/hpux.sh hints/sco.sh perl.h
+         !> pod/perl.pod toke.c
+____________________________________________________________________________
+[  5536] By: jhi                                   on 2000/03/05  05:37:22
+        Log: dethinko
+     Branch: cfgperl
+          ! toke.c
+____________________________________________________________________________
+[  5535] By: jhi                                   on 2000/03/05  05:14:40
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> pp.c t/op/inc.t toke.c
+____________________________________________________________________________
+[  5534] By: gsar                                  on 2000/03/05  04:50:26
+        Log: optimize change#5533 to stick to IVs if constant is <= IV_MAX,
+             since runtime is highly optimized for IVs rather than UVs
+     Branch: perl
+          ! toke.c
+____________________________________________________________________________
+[  5533] By: gsar                                  on 2000/03/05  04:30:02
+        Log: scan_num() sticks to UVs rather than IVs (now -2147483648 doesn't
+             end up being promoted to an NV)
+     Branch: perl
+          ! pp.c t/op/inc.t toke.c
+____________________________________________________________________________
+[  5532] By: jhi                                   on 2000/03/05  01:11:37
+        Log: more cpp cosmetics, logic cleanup
+     Branch: cfgperl
+          ! toke.c
+____________________________________________________________________________
+[  5531] By: jhi                                   on 2000/03/05  00:51:20
+        Log: Implement #5525 in metaconfig.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig
+          ! U/modified/cpp_stuff.U
+____________________________________________________________________________
+[  5530] By: jhi                                   on 2000/03/05  00:32:51
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> config_h.SH doio.c lib/Cwd.pm lib/Pod/Html.pm lib/bytes.pm
+         !> lib/charnames.pm lib/filetest.pm lib/integer.pm lib/locale.pm
+         !> lib/overload.pm lib/utf8.pm os2/os2ish.h pod/perldebug.pod
+         !> t/lib/ipc_sysv.t t/pragma/warn/regcomp win32/config_H.bc
+         !> win32/config_H.gc win32/config_H.vc
+____________________________________________________________________________
+[  5529] By: jhi                                   on 2000/03/05  00:31:17
+        Log: Sanity check on the strtoll and strtoull.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig/U/perl
+          ! d_strtoll.U d_strtoull.U
+____________________________________________________________________________
+[  5528] By: jhi                                   on 2000/03/05  00:07:21
+        Log: Reformat the fearful cpp expression to be a little bit less fearful.
+     Branch: cfgperl
+          ! toke.c
+____________________________________________________________________________
+[  5527] By: gsar                                  on 2000/03/04  21:55:03
+        Log: make hints available via globals in the respective pragmas to
+             avoid duplicating the constants everywhere
+     Branch: perl
+          ! lib/bytes.pm lib/charnames.pm lib/filetest.pm lib/integer.pm
+          ! lib/locale.pm lib/overload.pm lib/utf8.pm
+____________________________________________________________________________
+[  5526] By: gsar                                  on 2000/03/04  20:39:36
+        Log: remove deadcode
+     Branch: perl
+          ! lib/Cwd.pm
+____________________________________________________________________________
+[  5525] By: gsar                                  on 2000/03/04  19:42:55
+        Log: make CAT2() portable for use as a macro argument with an extra
+             level of macros
+     Branch: perl
+          ! config_h.SH
+____________________________________________________________________________
+[  5524] By: gsar                                  on 2000/03/04  19:02:27
+        Log: avoid looking up stale PL_statbuf (spotted by Charles Lane
+             <lane@DUPHY4.Physics.Drexel.Edu>)
+     Branch: perl
+          ! doio.c
+____________________________________________________________________________
+[  5523] By: gsar                                  on 2000/03/04  18:59:03
+        Log: pod tweak
+     Branch: perl
+          ! pod/perldebug.pod
+____________________________________________________________________________
+[  5522] By: gsar                                  on 2000/03/04  17:46:58
+        Log: regen win32/config_H*
+     Branch: perl
+          ! win32/config_H.bc win32/config_H.gc win32/config_H.vc
+____________________________________________________________________________
+[  5521] By: jhi                                   on 2000/03/04  16:35:48
+        Log: From: "Matthias Urlichs" <smurf@noris.net>
+             To: perl5-porters@perl.org
+             Subject: BUG: Integer floatifies? +PATCH: reading BIG integers with SMALL floats
+             Date:   Sat, 4 Mar 2000 12:48:42 +0100
+             Message-ID: <20000304124841.A8090@noris.de>
+     Branch: cfgperl
+          ! toke.c
+____________________________________________________________________________
+[  5520] By: jhi                                   on 2000/03/04  15:41:12
+        Log: unthink wishful thinking
+     Branch: cfgperl
+          ! pod/perl.pod
+____________________________________________________________________________
+[  5519] By: gsar                                  on 2000/03/04  06:42:47
+        Log: fix OS/2 coredump with POSIX::tmpnam() (from Ilya Zakharevich)
+     Branch: perl
+          ! os2/os2ish.h
+____________________________________________________________________________
+[  5518] By: gsar                                  on 2000/03/04  06:02:26
+        Log: avoid "scalars leaked" message in test
+     Branch: perl
+          ! t/pragma/warn/regcomp
+____________________________________________________________________________
+[  5517] By: jhi                                   on 2000/03/04  06:01:16
+        Log: detypo
+     Branch: cfgperl
+          ! pod/perl.pod
+____________________________________________________________________________
+[  5516] By: jhi                                   on 2000/03/04  05:59:21
+        Log: cleanup AVAILABILITY and mention binaries
+     Branch: cfgperl
+          ! pod/perl.pod
+____________________________________________________________________________
+[  5515] By: gsar                                  on 2000/03/04  05:55:02
+        Log: syntax error in change#5498
+     Branch: perl
+          ! t/lib/ipc_sysv.t
+____________________________________________________________________________
+[  5514] By: jhi                                   on 2000/03/04  05:50:56
+        Log: assuming that removing the libbind will be a good idea
+     Branch: cfgperl
+          ! hints/sco.sh
+____________________________________________________________________________
+[  5513] By: gsar                                  on 2000/03/04  05:50:15
+        Log: Pod::Html fixups for nicer links to functions (from Wolfgang Laun
+             <wolfgang.laun@chello.at>)
+     Branch: perl
+          ! lib/Pod/Html.pm
+____________________________________________________________________________
+[  5512] By: jhi                                   on 2000/03/04  05:45:52
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> (integrate 41 files)
+____________________________________________________________________________
+[  5511] By: jhi                                   on 2000/03/04  05:42:37
+        Log: HP-UX 64-bitness cures
+     Branch: cfgperl
+          ! hints/hpux.sh perl.h
+____________________________________________________________________________
+[  5510] By: gsar                                  on 2000/03/04  05:40:08
+        Log: better error messages when xsubpp fails to find map for a particular
+             type (from Ilya Zakharevich)
+     Branch: perl
+          ! lib/ExtUtils/xsubpp
+____________________________________________________________________________
+[  5509] By: jhi                                   on 2000/03/04  05:33:27
+        Log: scratch #5508
+     Branch: cfgperl
+          ! perl.h
+____________________________________________________________________________
+[  5508] By: jhi                                   on 2000/03/04  05:31:19
+        Log: In HP-UX there is a secret handshake to get strtoll and strtoull.
+     Branch: cfgperl
+          ! perl.h
+____________________________________________________________________________
+[  5507] By: gsar                                  on 2000/03/04  04:27:51
+        Log: more whitespace removal (from Michael G Schwern)
+     Branch: perl
+          ! ext/Data/Dumper/Dumper.pm ext/Errno/Errno_pm.PL
+          ! ext/File/Glob/Glob.pm ext/IO/lib/IO/Select.pm
+          ! ext/IO/lib/IO/Socket.pm ext/IO/lib/IO/Socket/INET.pm
+          ! ext/IPC/SysV/Msg.pm ext/IPC/SysV/Semaphore.pm lib/CGI.pm
+          ! lib/CGI/Cookie.pm lib/CGI/Fast.pm lib/CGI/Push.pm
+          ! lib/Carp/Heavy.pm lib/DB.pm lib/Exporter/Heavy.pm
+          ! lib/File/DosGlob.pm lib/File/Find.pm lib/Getopt/Long.pm
+          ! lib/Math/Trig.pm lib/Net/Ping.pm lib/Net/netent.pm
+          ! lib/SelfLoader.pm lib/Tie/Array.pm lib/Tie/Handle.pm
+          ! lib/Tie/Scalar.pm lib/Time/Local.pm lib/filetest.pm
+          ! lib/overload.pm x2p/s2p.PL
+____________________________________________________________________________
+[  5506] By: gsar                                  on 2000/03/04  04:12:06
+        Log: temporarily disable blank line warning from Pod::Parser until
+             it can be made optional
+     Branch: perl
+          ! lib/Pod/Parser.pm t/pod/poderrs.xr
+____________________________________________________________________________
+[  5505] By: gsar                                  on 2000/03/04  04:00:44
+        Log: rid blanks in pods (from Michael G Schwern)
+     Branch: perl
+          ! README.amiga README.dos README.os2
+____________________________________________________________________________
+[  5504] By: gsar                                  on 2000/03/04  03:59:07
+        Log: avoid warnings from shmread() when given undefined variable
+             (from Tom Christiansen)
+     Branch: perl
+          ! doio.c
+____________________________________________________________________________
+[  5503] By: gsar                                  on 2000/03/04  03:53:43
+        Log: fpsetmask() needs include on freebsd (from Slaven Rezic
+             <eserte@vran.herceg.de>)
+     Branch: perl
+          ! unixish.h
+____________________________________________________________________________
+[  5502] By: gsar                                  on 2000/03/04  03:51:05
+        Log: avoid ambiguity in indirect object notation (breaks with overridden
+             run time require)
+     Branch: perl
+          ! lib/CGI.pm
+____________________________________________________________________________
+[  5501] By: gsar                                  on 2000/03/04  01:08:54
+        Log: adjust perldelta
+     Branch: perl
+          ! Todo-5.6 pod/perl.pod pod/perldelta.pod
+____________________________________________________________________________
+[  5500] By: gsar                                  on 2000/03/04  00:33:49
+        Log: integrate cfgperl contents into mainline
+     Branch: perl
+         !> hints/irix_6.sh hints/solaris_2.sh pod/perl.pod
+         !> pod/perlfunc.pod t/lib/ipc_sysv.t
+____________________________________________________________________________
+[  5499] By: jhi                                   on 2000/03/03  22:51:53
+        Log: solaris hints tweak
+     Branch: cfgperl
+          ! hints/solaris_2.sh
+____________________________________________________________________________
+[  5498] By: jhi                                   on 2000/03/03  22:35:46
+        Log: The SysV IPC test must use the native integers
+             (long or short), also noted this in the msgsnd/semctl
+             documentation.  Reported in
+             
+             From: schwern@athens.arena-i.com (Michael G Schwern)
+             To: perl5-porters@perl.org
+             Subject: [ID 20000302.006] [BUG 5.5.670 t/ipc_sysv.t] Fails 2,5,6 with 64bit on Linux
+             Date: Thu,  2 Mar 2000 17:15:03 -0500 (EST)
+             Message-Id: <20000302221503.EDF6E3830@athens.arena-i.com>
+     Branch: cfgperl
+          ! pod/perlfunc.pod t/lib/ipc_sysv.t
+____________________________________________________________________________
+[  5497] By: jhi                                   on 2000/03/03  21:08:53
+        Log: Update AVAILABILITY.
+     Branch: cfgperl
+          ! pod/perl.pod
+____________________________________________________________________________
+[  5496] By: gsar                                  on 2000/03/03  20:21:05
+        Log: perldebug tweak (from M J T Guy)
+     Branch: perl
+          ! pod/perldebug.pod
+____________________________________________________________________________
+[  5495] By: jhi                                   on 2000/03/03  19:32:58
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> (integrate 79 files)
+____________________________________________________________________________
+[  5494] By: jhi                                   on 2000/03/03  19:14:01
+        Log: the workaround is needed in all 7.2.* compilers,
+             not just on IRIX64.
+     Branch: cfgperl
+          ! hints/irix_6.sh
+____________________________________________________________________________
+[  5493] By: gsar                                  on 2000/03/03  18:58:45
+        Log: whitespace and readabiliti nits in the pods (from Michael G Schwern
+             and Robin Barker)
+     Branch: perl
+          ! Changes pod/perl.pod pod/perl5004delta.pod
+          ! pod/perl5005delta.pod pod/perlboot.pod pod/perldata.pod
+          ! pod/perldebug.pod pod/perldelta.pod pod/perldiag.pod
+          ! pod/perlembed.pod pod/perlfaq.pod pod/perlfaq2.pod
+          ! pod/perlfaq4.pod pod/perlfaq5.pod pod/perlfaq6.pod
+          ! pod/perlfaq7.pod pod/perlfaq8.pod pod/perlfaq9.pod
+          ! pod/perlfilter.pod pod/perlguts.pod pod/perlipc.pod
+          ! pod/perllexwarn.pod pod/perllocale.pod pod/perlmodinstall.pod
+          ! pod/perlmodlib.pod pod/perlobj.pod pod/perlopentut.pod
+          ! pod/perlpod.pod pod/perlport.pod pod/perlre.pod
+          ! pod/perlref.pod pod/perlreftut.pod pod/perlsub.pod
+          ! pod/perltie.pod pod/perltodo.pod pod/perltoot.pod
+          ! pod/perltootc.pod pod/perltrap.pod pod/perlvar.pod
+          ! pod/perlxstut.pod
+____________________________________________________________________________
+[  5492] By: gsar                                  on 2000/03/03  17:48:31
+        Log: support for list assignment to pseudohashes (from John Tobey
+             <jtobey@john-edwin-tobey.org>)
+     Branch: perl
+          ! av.c dump.c embed.h embed.pl global.sym objXSUB.h op.c op.h
+          ! perlapi.c pp_hot.c proto.h t/op/avhv.t t/op/hashwarn.t
+____________________________________________________________________________
+[  5491] By: gsar                                  on 2000/03/03  16:45:49
+        Log: add MakeMaker caveat to INSTALL (from Andy Dougherty)
+     Branch: perl
+          ! INSTALL
+____________________________________________________________________________
+[  5490] By: gsar                                  on 2000/03/03  16:44:42
+        Log: perldelta tweaks
+     Branch: perl
+          ! pod/perldelta.pod
+____________________________________________________________________________
+[  5489] By: gsar                                  on 2000/03/03  16:26:52
+        Log: /dev/console may not be writable in Syslog.pm (from Ask Bjoern Hansen
+             <ask@valueclick.com>)
+     Branch: perl
+          ! ext/Sys/Syslog/Syslog.pm
+____________________________________________________________________________
+[  5488] By: gsar                                  on 2000/03/03  16:21:34
+        Log: OS/2 patches for dlclose() support (from Yitzchak Scott-Thoennes
+             <sthoenna@efn.org>)
+     Branch: perl
+          ! makedef.pl os2/diff.configure os2/dl_os2.c os2/dlfcn.h
+          ! os2/os2.sym
+____________________________________________________________________________
+[  5487] By: gsar                                  on 2000/03/03  16:16:34
+        Log: skip test on AFS (from Hans Ranke <Hans.Ranke@ei.tum.de>)
+     Branch: perl
+          ! t/lib/glob-basic.t
+____________________________________________________________________________
+[  5486] By: gsar                                  on 2000/03/03  15:42:28
+        Log: integrate cfgperl and vmsperl contents into mainline
+     Branch: perl
+          ! pod/perl.pod
+         !> (integrate 38 files)
+____________________________________________________________________________
+[  5485] By: jhi                                   on 2000/03/03  15:21:40
+        Log: pull the sparcv9 workshop libraries in front of loclibpth
+     Branch: cfgperl
+          ! hints/solaris_2.sh
+____________________________________________________________________________
+[  5484] By: jhi                                   on 2000/03/03  15:09:03
+        Log: Introduce i_ieefp because FreeBSD on ix86 needs that
+             for ftpsetmask(0); regen Configure.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH epoc/config.sh perl.h vms/subconfigure.com
+          ! vos/config.def vos/config.h vos/config_h.SH_orig
+          ! win32/config.bc win32/config.gc win32/config.vc
+          ! win32/config_H.bc win32/config_H.gc win32/config_H.vc
+____________________________________________________________________________
+[  5483] By: jhi                                   on 2000/03/03  05:37:58
+        Log: The _cflags must be left-aligned.
+     Branch: cfgperl
+          ! hints/irix_6.sh
+____________________________________________________________________________
+[  5482] By: bailey                                on 2000/03/03  04:42:45
+        Log: Once more unto resync
+     Branch: vmsperl
+         !> (integrate 48 files)
+____________________________________________________________________________
+[  5481] By: bailey                                on 2000/03/03  04:36:46
+        Log: VMS-specific perldelta update
+     Branch: vmsperl
+          ! pod/perldelta.pod
+____________________________________________________________________________
+[  5480] By: bailey                                on 2000/03/03  04:05:28
+        Log: Set up Perl invocation method during configuration (Peter Prymmer)
+             Add missing bits to various utilities and install them (ditto)
+     Branch: vmsperl
+          ! configure.com pod/pod2usage.PL pod/podselect.PL
+          ! utils/dprofpp.PL vms/descrip_mms.template
+____________________________________________________________________________
+[  5479] By: bailey                                on 2000/03/03  04:01:48
+        Log: Fix test to match new behavior of vmsify() (Craig Berry)
+     Branch: vmsperl
+          ! vms/ext/filespec.t
+____________________________________________________________________________
+[  5478] By: bailey                                on 2000/03/03  03:54:10
+        Log: Try to intuit whether typeless file invoked in subprocess
+             is an executable image or DCL procedure.
+     Branch: vmsperl
+          ! vms/perlvms.pod vms/vms.c
+____________________________________________________________________________
+[  5477] By: bailey                                on 2000/03/03  03:37:18
+        Log: Remove leftover bits of VAXC support (Dan Sugalski)
+     Branch: vmsperl
+          ! vms/gen_shrfls.pl
+____________________________________________________________________________
+[  5476] By: bailey                                on 2000/03/03  03:34:51
+        Log: Add missing declaration (Dan Sugalski)
+     Branch: vmsperl
+          ! vms/vms.c
+____________________________________________________________________________
+[  5475] By: gsar                                  on 2000/03/03  03:27:52
+        Log: warn about /(?p{})/ (from Simon Cozens)
+     Branch: perl
+          ! regcomp.c toke.c
+____________________________________________________________________________
+[  5474] By: bailey                                on 2000/03/03  03:27:05
+        Log: Ad hoc patch for duping stdout into stderr
+     Branch: vmsperl
+          ! vms/vms.c
+____________________________________________________________________________
+[  5473] By: bailey                                on 2000/03/03  03:23:29
+        Log: Bypass PERL_INC_VERSION_LIST until we support in in Configure.Com
+     Branch: vmsperl
+          ! vms/subconfigure.com vms/vmsish.h
+____________________________________________________________________________
+[  5472] By: gsar                                  on 2000/03/03  02:58:49
+        Log: File::Spec bugs (spotted by Hack Kampbjorn <hack@hackdata.com>)
+     Branch: perl
+          ! lib/File/Spec/Mac.pm lib/File/Spec/Unix.pm
+          ! lib/File/Spec/VMS.pm lib/File/Spec/Win32.pm
+____________________________________________________________________________
+[  5471] By: jhi                                   on 2000/03/03  02:38:23
+        Log: more todo
+     Branch: cfgperl
+          ! Todo-5.6
+____________________________________________________________________________
+[  5470] By: gsar                                  on 2000/03/03  02:36:02
+        Log: skip test if db doesn't have null key support
+     Branch: perl
+          ! t/lib/anydbm.t
+____________________________________________________________________________
+[  5469] By: jhi                                   on 2000/03/03  02:26:53
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> INSTALL lib/AutoSplit.pm lib/ExtUtils/xsubpp lib/SelfLoader.pm
+         !> lib/Test/Harness.pm lib/constant.pm pod/perl.pod
+         !> pod/perldelta.pod pod/perlpod.pod pod/perlre.pod
+         !> pod/perltoc.pod regcomp.c t/op/misc.t t/op/pat.t toke.c
+         !> utils/h2xs.PL win32/Makefile win32/makefile.mk
+____________________________________________________________________________
+[  5468] By: jhi                                   on 2000/03/03  02:24:05
+        Log: irix hints tweak
+     Branch: cfgperl
+          ! hints/irix_6.sh
+____________________________________________________________________________
+[  5467] By: gsar                                  on 2000/03/03  02:19:50
+        Log: /(?p{})/ changed to /(??{})/, per Larry's suggestion (from
+             Simon Cozens <simon@othersideofthe.earth.li>)
+     Branch: perl
+          ! lib/AutoSplit.pm lib/ExtUtils/xsubpp lib/SelfLoader.pm
+          ! pod/perlre.pod pod/perltoc.pod regcomp.c t/op/misc.t
+          ! t/op/pat.t toke.c
+____________________________________________________________________________
+[  5466] By: jhi                                   on 2000/03/03  02:12:41
+        Log: in words order bad
+     Branch: cfgperl
+          ! pod/perlre.pod
+____________________________________________________________________________
+[  5465] By: jhi                                   on 2000/03/03  02:09:45
+        Log: /[[:alpha]/ now dies on unmatched [] instead of
+             "an unknown character class" (spotted by Tom Christiansen)
+     Branch: cfgperl
+          ! regcomp.c t/pragma/warn/regcomp
+____________________________________________________________________________
+[  5464] By: gsar                                  on 2000/03/03  02:04:48
+        Log: perldelta notes about IO::Socket changes (from Graham Barr)
+     Branch: perl
+          ! pod/perldelta.pod
+____________________________________________________________________________
+[  5463] By: gsar                                  on 2000/03/03  02:02:50
+        Log: relax restrictions on constant names a bit (from M J T Guy)
+     Branch: perl
+          ! lib/constant.pm
+____________________________________________________________________________
+[  5462] By: gsar                                  on 2000/03/03  01:59:49
+        Log: support for generation of accessor functions (from Hugo van der
+             Sanden)
+     Branch: perl
+          ! utils/h2xs.PL
+____________________________________________________________________________
+[  5461] By: jhi                                   on 2000/03/03  01:51:53
+        Log: cosmetics
+     Branch: cfgperl
+          ! t/op/pack.t
+____________________________________________________________________________
+[  5460] By: jhi                                   on 2000/03/03  01:50:07
+        Log: detypo
+     Branch: cfgperl
+          ! t/op/pack.t
+____________________________________________________________________________
+[  5459] By: gsar                                  on 2000/03/03  01:46:35
+        Log: pod tweaks
+     Branch: perl
+          ! pod/perl.pod pod/perlpod.pod
+____________________________________________________________________________
+[  5458] By: jhi                                   on 2000/03/03  01:25:21
+        Log: solaris hints tweak
+     Branch: cfgperl
+          ! hints/solaris_2.sh
+____________________________________________________________________________
+[  5457] By: jhi                                   on 2000/03/02  22:56:49
+        Log: detypo
+     Branch: cfgperl
+          ! hints/solaris_2.sh
+____________________________________________________________________________
+[  5456] By: gsar                                  on 2000/03/02  21:15:11
+        Log: Test::Harness uses $ENV{HARNESS_PERL_SWITCHES} when running perl;
+             add test targets for -C switch on windows
+     Branch: perl
+          ! lib/Test/Harness.pm win32/Makefile win32/makefile.mk
+____________________________________________________________________________
+[  5455] By: gsar                                  on 2000/03/02  21:06:49
+        Log: add note about failed tests on memory starved systems (from
+             Andy Dougherty)
+     Branch: perl
+          ! INSTALL
+____________________________________________________________________________
+[  5454] By: jhi                                   on 2000/03/02  21:03:35
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> Changes lib/Pod/Find.pm lib/Pod/Html.pm lib/Pod/Man.pm
+         !> lib/Term/Cap.pm lib/Test/Harness.pm lib/blib.pm
+         !> pod/perldata.pod pod/perldelta.pod pod/perlop.pod
+____________________________________________________________________________
+[  5453] By: jhi                                   on 2000/03/02  20:58:43
+        Log: Further long double patches from Spider Boardman.
+     Branch: cfgperl
+          ! t/comp/use.t t/lib/bigfltpm.t t/op/pack.t t/op/universal.t
+____________________________________________________________________________
+[  5452] By: gsar                                  on 2000/03/02  20:52:08
+        Log: move doc about v-strings from perlop to perldata (suggested by
+             David Dyck <dcd@tc.fluke.com>)
+     Branch: perl
+          ! pod/perldata.pod pod/perldelta.pod pod/perlop.pod
+____________________________________________________________________________
+[  5451] By: gsar                                  on 2000/03/02  20:30:29
+        Log: integrate cfgperl changes into mainline
+     Branch: perl
+         !> Configure hints/irix_6.sh pp.c
+____________________________________________________________________________
+[  5450] By: gsar                                  on 2000/03/02  20:08:10
+        Log: still other multiline match cleanups (from Greg Bacon)
+     Branch: perl
+          ! Changes lib/Pod/Find.pm lib/Pod/Html.pm lib/Pod/Man.pm
+          ! lib/Term/Cap.pm lib/Test/Harness.pm lib/blib.pm
+____________________________________________________________________________
+[  5449] By: jhi                                   on 2000/03/02  20:01:58
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> configure.com ext/File/Glob/Glob.pm ext/File/Glob/bsd_glob.c
+         !> lib/ExtUtils/MM_VMS.pm lib/Test/Harness.pm t/lib/glob-basic.t
+         !> t/pragma/warn/8signal t/pragma/warn/pp_ctl
+         !> vms/descrip_mms.template vms/gen_shrfls.pl
+         !> vms/subconfigure.com vms/vms.c win32/Makefile
+         !> win32/makefile.mk win32/perllib.c win32/win32.c win32/win32.h
+____________________________________________________________________________
+[  5448] By: jhi                                   on 2000/03/02  20:00:37
+        Log: workaround for Tru64 compiler bug (cleaner fix will have
+             to wait until 5.6.1), from Spider Boardman
+     Branch: cfgperl
+          ! pp.c
+____________________________________________________________________________
+[  5447] By: jhi                                   on 2000/03/02  19:52:34
+        Log: Workaround for an optimizer bug.
+     Branch: cfgperl
+          ! hints/irix_6.sh
+____________________________________________________________________________
+[  5446] By: jhi                                   on 2000/03/02  19:44:35
+        Log: installation directory fix from Andy Dougherty
+             (installstyle was being clobbered, spotted by Spider Boardman)
+     Branch: cfgperl
+          ! Configure
+     Branch: metaconfig
+          ! U/installdirs/installstyle.U
+____________________________________________________________________________
+[  5445] By: gsar                                  on 2000/03/02  19:40:44
+        Log: patch to fix mingw32 build under USE_IMP_SYS (from Benjamin Stuhl);
+             some parts not applied
+     Branch: perl
+          ! win32/Makefile win32/makefile.mk win32/perllib.c win32/win32.c
+          ! win32/win32.h
+____________________________________________________________________________
+[  5444] By: gsar                                  on 2000/03/02  19:26:08
+        Log: avoid buffering issue in warn/8signal
+     Branch: perl
+          ! t/pragma/warn/8signal
+____________________________________________________________________________
+[  5443] By: gsar                                  on 2000/03/02  18:13:28
+        Log: integrate cfgperl changes into mainline
+     Branch: perl
+         !> Configure config_h.SH hints/aix.sh hints/hpux.sh
+         !> hints/solaris_2.sh makedepend.SH sv.c t/lib/syslfs.t
+         !> t/op/lfs.t t/op/pack.t
+____________________________________________________________________________
+[  5442] By: gsar                                  on 2000/03/02  18:02:40
+        Log: integrate vmsperl changes into mainline (denied their changes to
+             Glob.pm, t/pragma/warn/{8signal,pp_ctl})
+     Branch: perl
+         !> configure.com ext/File/Glob/Glob.pm ext/File/Glob/bsd_glob.c
+         !> lib/ExtUtils/MM_VMS.pm lib/Test/Harness.pm t/lib/glob-basic.t
+         !> t/pragma/warn/8signal t/pragma/warn/pp_ctl
+         !> vms/descrip_mms.template vms/gen_shrfls.pl
+         !> vms/subconfigure.com vms/vms.c
+____________________________________________________________________________
+[  5441] By: jhi                                   on 2000/03/02  17:56:20
+        Log: nit from Spider Boardman
+     Branch: cfgperl
+          ! makedepend.SH
+____________________________________________________________________________
+[  5440] By: jhi                                   on 2000/03/02  17:48:15
+        Log: Confusion over uselargefiles.cbu and uselfs.cbu (the first one
+             is the correct one), spotted by Robin Parker.
+     Branch: cfgperl
+          ! Configure config_h.SH hints/aix.sh hints/hpux.sh
+     Branch: metaconfig/U/perl
+          ! uselfs.U
+____________________________________________________________________________
+[  5439] By: jhi                                   on 2000/03/02  15:32:04
+        Log: Remove the pack.t kludge introduced to fudge the test
+             to pass under long doubles: leave the similar kludge
+             to posix.t because POSIX::strtod() is still double,
+             not long double. 
+     Branch: cfgperl
+          ! t/op/pack.t
+____________________________________________________________________________
+[  5438] By: jhi                                   on 2000/03/02  04:58:48
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> lib/ExtUtils/Install.pm lib/ExtUtils/Installed.pm
+         !> lib/ExtUtils/Liblist.pm lib/ExtUtils/MM_Unix.pm lib/FindBin.pm
+         !> lib/Pod/Html.pm op.c
+____________________________________________________________________________
+[  5437] By: jhi                                   on 2000/03/02  04:51:46
+        Log: A patch on #5407.
+     Branch: cfgperl
+          ! sv.c
+____________________________________________________________________________
+[  5436] By: gsar                                  on 2000/03/02  04:45:37
+        Log: avoid useless comparison
+     Branch: perl
+          ! op.c
+____________________________________________________________________________
+[  5435] By: bailey                                on 2000/03/02  04:43:11
+        Log: YA sync with mainline
+     Branch: vmsperl
+         +> lib/open.pm pod/perlboot.pod pod/perlnumber.pod
+         +> t/lib/env-array.t
+         !> (integrate 150 files)
+____________________________________________________________________________
+[  5434] By: gsar                                  on 2000/03/02  04:28:48
+        Log: make the "back to top" links optional
+     Branch: perl
+          ! lib/Pod/Html.pm
+____________________________________________________________________________
+[  5433] By: bailey                                on 2000/03/02  04:26:58
+        Log: Protect manipulation of open pipe list from concurrent ASTs (Charles Lane)
+     Branch: vmsperl
+          ! vms/vms.c
+____________________________________________________________________________
+[  5432] By: bailey                                on 2000/03/02  04:20:51
+        Log: Update dependencies and remove obsolete VAXC support
+     Branch: vmsperl
+          ! vms/descrip_mms.template
+____________________________________________________________________________
+[  5431] By: bailey                                on 2000/03/02  04:19:42
+        Log: Rmeove obsolete VAXC support
+     Branch: vmsperl
+          ! vms/gen_shrfls.pl
+____________________________________________________________________________
+[  5430] By: bailey                                on 2000/03/02  04:18:57
+        Log: Minor updates to subconfigure.com:
+             - remove old VAXC support
+             - avoid echoing commands to tempfiles
+             - fix typos
+             - define 64bit symbols (as "undef") when not using 64 bit support
+     Branch: vmsperl
+          ! vms/subconfigure.com
+____________________________________________________________________________
+[  5429] By: bailey                                on 2000/03/02  04:16:11
+        Log: Minor changes to Configure.Com:
+             - permit operation in batch mode (splits output)
+             - remove old VAXC support
+             - default to enabling secure internal lnm translation
+     Branch: vmsperl
+          ! configure.com
+____________________________________________________________________________
+[  5428] By: bailey                                on 2000/03/02  04:06:53
+        Log: Optional warning for truncated logical name equivalence string (Dan Sugalski)
+     Branch: vmsperl
+          ! vms/vms.c
+____________________________________________________________________________
+[  5427] By: bailey                                on 2000/03/02  04:05:47
+        Log: FIx no-op in vms.c
+     Branch: vmsperl
+          ! vms/vms.c
+____________________________________________________________________________
+[  5426] By: bailey                                on 2000/03/02  04:04:52
+        Log: MIscellaneous tweaks to test and driver (Charles Lane)
+     Branch: vmsperl
+          ! t/pragma/warn/8signal t/pragma/warn/pp_sys t/pragma/warnings.t
+          ! vms/test.com
+____________________________________________________________________________
+[  5425] By: bailey                                on 2000/03/02  04:02:44
+        Log: Take advantage of new subprocess invocation (Charles Lane)
+     Branch: vmsperl
+          ! t/op/runlevel.t t/pragma/strict.t t/pragma/subs.t
+          ! t/pragma/warnings.t
+____________________________________________________________________________
+[  5424] By: bailey                                on 2000/03/02  04:00:20
+        Log: Increment counter for skipped tests (Charles Lane)
+     Branch: vmsperl
+          ! t/io/open.t
+____________________________________________________________________________
+[  5423] By: bailey                                on 2000/03/02  03:59:14
+        Log: Remove redundant elements of @INC to cope with VMS' 255-char limit
+             on PERL5LIB logical (Dan Sugalski)
+     Branch: vmsperl
+          ! lib/Test/Harness.pm
+____________________________________________________________________________
+[  5422] By: bailey                                on 2000/03/02  03:57:40
+        Log: Use temp to construct dirspec in File::Find (Charles Lane)
+     Branch: vmsperl
+          ! lib/File/Find.pm
+____________________________________________________________________________
+[  5421] By: bailey                                on 2000/03/02  03:56:13
+        Log: Satisfy various Pod::* needs for Unix syntax (Charles Lane)
+             (Should move to File::Spec in long term)
+     Branch: vmsperl
+          ! lib/Pod/Checker.pm lib/Pod/Parser.pm t/pod/testp2pt.pl
+____________________________________________________________________________
+[  5420] By: bailey                                on 2000/03/02  03:52:45
+        Log: Escape \n in commands written to Descrip.MMS (Charles Lane)
+     Branch: vmsperl
+          ! lib/ExtUtils/MM_VMS.pm
+____________________________________________________________________________
+[  5419] By: bailey                                on 2000/03/02  03:50:53
+        Log: Make File::Glob more VMS-friendly (Charles Lane)
+     Branch: vmsperl
+          ! ext/File/Glob/Glob.pm ext/File/Glob/bsd_glob.c
+          ! t/lib/glob-basic.t
+____________________________________________________________________________
+[  5418] By: bailey                                on 2000/03/02  03:47:21
+        Log: Miscellaneous fixes to build procedures (Peter Prymmer)
+     Branch: vmsperl
+          ! configure.com vms/subconfigure.com
+____________________________________________________________________________
+[  5417] By: bailey                                on 2000/03/02  03:42:49
+        Log: Temrinate statements in pp_ctl warning test (Charles Lane)
+     Branch: vmsperl
+          ! t/pragma/warn/pp_ctl
+____________________________________________________________________________
+[  5416] By: bailey                                on 2000/03/02  03:39:46
+        Log: Warn but continue installing when file missing (Dan Sugalski)
+     Branch: vmsperl
+          ! installperl
+____________________________________________________________________________
+[  5415] By: jhi                                   on 2000/03/01  23:31:23
+        Log: Make file sparseness detection more portable (Scott Henry)
+     Branch: cfgperl
+          ! t/lib/syslfs.t t/op/lfs.t
+____________________________________________________________________________
+[  5414] By: jhi                                   on 2000/03/01  22:53:48
+        Log: detypo #5411 continues: Sun grep doesn't have -e.
+     Branch: cfgperl
+          ! hints/solaris_2.sh
+____________________________________________________________________________
+[  5413] By: jhi                                   on 2000/03/01  22:49:44
+        Log: detypo #5411
+     Branch: cfgperl
+          ! hints/solaris_2.sh
+____________________________________________________________________________
+[  5412] By: gsar                                  on 2000/03/01  20:04:42
+        Log: typo in change#5408
+     Branch: perl
+          ! lib/ExtUtils/MM_Unix.pm
+____________________________________________________________________________
+[  5411] By: jhi                                   on 2000/03/01  18:48:52
+        Log: Better detection of the solaris workshop compiler.
+     Branch: cfgperl
+          ! hints/solaris_2.sh
+____________________________________________________________________________
+[  5410] By: jhi                                   on 2000/03/01  18:18:04
+        Log: From: Robin Barker <rmb1@cise.npl.co.uk>
+             To: perl5-porters@perl.org
+             Subject: solaris 64-bit and gcc
+             Date: Wed, 1 Mar 2000 17:59:36 GMT
+             Message-Id: <200003011759.RAA03938@tempest.npl.co.uk>
+     Branch: cfgperl
+          ! hints/solaris_2.sh
+____________________________________________________________________________
+[  5409] By: jhi                                   on 2000/03/01  18:16:43
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         +> t/lib/env-array.t
+         !> MANIFEST README.cygwin ext/DynaLoader/DynaLoader_pm.PL
+         !> ext/DynaLoader/dlutils.c lib/AutoLoader.pm lib/AutoSplit.pm
+         !> lib/CGI/Carp.pm lib/CPAN.pm lib/Cwd.pm lib/Env.pm
+         !> lib/File/Find.pm lib/File/Spec/Mac.pm lib/File/Spec/VMS.pm
+         !> pod/perldebug.pod pod/perldelta.pod t/lib/env.t
+         !> t/lib/filefind.t t/lib/glob-basic.t
+____________________________________________________________________________
+[  5408] By: gsar                                  on 2000/03/01  18:15:49
+        Log: still more multiline match cleanups (from Greg Bacon)
+     Branch: perl
+          ! lib/ExtUtils/Install.pm lib/ExtUtils/Installed.pm
+          ! lib/ExtUtils/Liblist.pm lib/ExtUtils/MM_Unix.pm lib/FindBin.pm
+____________________________________________________________________________
+[  5407] By: jhi                                   on 2000/03/01  18:11:09
+        Log: A further patch from Spider Boardman for long doubleness.
+     Branch: cfgperl
+          ! sv.c
+____________________________________________________________________________
+[  5406] By: gsar                                  on 2000/03/01  17:32:09
+        Log: yet more multiline match cleanups (from Greg Bacon)
+     Branch: perl
+          ! lib/CPAN.pm lib/Cwd.pm
+____________________________________________________________________________
+[  5405] By: gsar                                  on 2000/03/01  17:24:53
+        Log: add support for Env arrays (from Gregor N. Purdy
+             <gregor@focusresearch.com>)
+     Branch: perl
+          + t/lib/env-array.t
+          ! MANIFEST lib/Env.pm pod/perldelta.pod t/lib/env.t
+____________________________________________________________________________
+[  5404] By: gsar                                  on 2000/03/01  17:00:23
+        Log: cygwin update (from Eric Fifer)
+     Branch: perl
+          ! README.cygwin t/lib/glob-basic.t
+____________________________________________________________________________
+[  5403] By: gsar                                  on 2000/03/01  16:55:47
+        Log: more multiline match cleanups (from Greg Bacon)
+     Branch: perl
+          ! lib/AutoLoader.pm lib/AutoSplit.pm lib/CGI/Carp.pm
+          ! lib/File/Spec/Mac.pm lib/File/Spec/VMS.pm
+____________________________________________________________________________
+[  5402] By: gsar                                  on 2000/03/01  16:38:48
+        Log: avoid DProf entering dl_unload_file() (from Alan Burlison)
+     Branch: perl
+          ! ext/DynaLoader/DynaLoader_pm.PL ext/DynaLoader/dlutils.c
+____________________________________________________________________________
+[  5401] By: gsar                                  on 2000/03/01  16:35:28
+        Log: fix minor compatibility issues with finddepth() (from Helmut Jarausch)
+     Branch: perl
+          ! lib/File/Find.pm t/lib/filefind.t
+____________________________________________________________________________
+[  5400] By: gsar                                  on 2000/03/01  16:32:24
+        Log: mention "r" debugger command (from Ilya Zakharevich)
+     Branch: perl
+          ! pod/perldebug.pod
+____________________________________________________________________________
+[  5399] By: jhi                                   on 2000/03/01  14:58:33
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> Changes configure.com ext/File/Glob/Glob.pm
+         !> ext/File/Glob/bsd_glob.c installperl lib/ExtUtils/MM_VMS.pm
+         !> lib/File/Find.pm lib/Pod/Checker.pm lib/Pod/Parser.pm
+         !> t/io/open.t t/io/openpid.t t/lib/glob-basic.t t/op/goto.t
+         !> t/op/runlevel.t t/op/split.t t/pod/testp2pt.pl
+         !> t/pragma/strict.t t/pragma/subs.t t/pragma/warn/8signal
+         !> t/pragma/warn/pp_sys t/pragma/warnings.t
+         !> vms/descrip_mms.template vms/subconfigure.com vms/test.com
+         !> vms/vms.c
+____________________________________________________________________________
+[  5398] By: gsar                                  on 2000/03/01  07:03:13
+        Log: fix testsuite issues in change#5397
+     Branch: perl
+          ! Changes t/pragma/warn/8signal t/pragma/warn/pp_sys
+
+----------------
+Version v5.5.670
+----------------
+
+____________________________________________________________________________
+[  5397] By: gsar                                  on 2000/03/01  06:44:42
+        Log: consolidated VMS patches (from Craig A. Berry
+             <craig.berry@metamorgs.com>); Glob.pm patch modified to use
+             $DEFAULT_FLAGS, and iff no flags were supplied
+     Branch: perl
+          ! configure.com ext/File/Glob/Glob.pm ext/File/Glob/bsd_glob.c
+          ! installperl lib/ExtUtils/MM_VMS.pm lib/File/Find.pm
+          ! lib/Pod/Checker.pm lib/Pod/Parser.pm t/io/open.t
+          ! t/io/openpid.t t/lib/glob-basic.t t/op/goto.t t/op/runlevel.t
+          ! t/op/split.t t/pod/testp2pt.pl t/pragma/strict.t
+          ! t/pragma/subs.t t/pragma/warn/8signal t/pragma/warn/pp_sys
+          ! t/pragma/warnings.t vms/descrip_mms.template
+          ! vms/subconfigure.com vms/test.com vms/vms.c
+____________________________________________________________________________
+[  5396] By: gsar                                  on 2000/03/01  06:28:22
+        Log: integrate cfgperl changes into mainline
+     Branch: perl
+         !> ext/Fcntl/Fcntl.pm hints/solaris_2.sh pp.c sv.c
+____________________________________________________________________________
+[  5395] By: jhi                                   on 2000/03/01  06:12:10
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         +> lib/open.pm
+         !> MANIFEST Todo-5.6 mg.c
+____________________________________________________________________________
+[  5394] By: gsar                                  on 2000/03/01  06:07:00
+        Log: fix segfault on C<local ${^WARNING_BITS}>
+     Branch: perl
+          ! mg.c
+____________________________________________________________________________
+[  5393] By: jhi                                   on 2000/03/01  06:02:12
+        Log: Fcntl de-cut-and-pasto.
+             From: Doug MacEachern <dougm@pobox.com>
+             To: perl5-porters@perl.org
+             Subject: [PATCH v5.5.660] Fcntl.pm
+             Date: Tue, 29 Feb 2000 21:24:00 -0800 (PST)
+             Message-ID: <Pine.LNX.4.10.10002292120200.382-100000@mojo.itixs.com>
+     Branch: cfgperl
+          ! ext/Fcntl/Fcntl.pm
+____________________________________________________________________________
+[  5392] By: gsar                                  on 2000/03/01  05:55:20
+        Log: update Todo-5.6, add stub open.pm
+     Branch: perl
+          + lib/open.pm
+          ! MANIFEST Todo-5.6
+____________________________________________________________________________
+[  5391] By: jhi                                   on 2000/03/01  05:42:25
+        Log: The 64-bitallness does require the /usr/lib/sparcv9 in loclibpth.
+     Branch: cfgperl
+          ! hints/solaris_2.sh
+____________________________________________________________________________
+[  5390] By: jhi                                   on 2000/03/01  05:35:53
+        Log: Couple of math functions need to be Perl_ so that
+             they are correctly long double, especially the frexp()
+             in sv_vcatpvfn() (spotted by Spider Boardman).
+     Branch: cfgperl
+          ! pp.c sv.c
+____________________________________________________________________________
+[  5389] By: jhi                                   on 2000/03/01  05:33:54
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         +> pod/perlnumber.pod
+         !> Changes MANIFEST README.win32 ext/DynaLoader/DynaLoader_pm.PL
+         !> ext/DynaLoader/Makefile.PL ext/DynaLoader/dl_dlopen.xs
+         !> ext/DynaLoader/dlutils.c lib/File/Find.pm lib/Test/Harness.pm
+         !> pod/Makefile pod/buildtoc pod/perl.pod pod/perldelta.pod
+         !> pod/perlguts.pod pod/perlhack.pod pod/perlhist.pod
+         !> pod/perlport.pod pod/perltoc.pod pod/roffitall vms/vms.c
+         !> win32/perllib.c win32/win32.c win32/win32.h
+____________________________________________________________________________
+[  5388] By: gsar                                  on 2000/03/01  03:38:03
+        Log: Windows miscellany
+     Branch: perl
+          ! pod/perlguts.pod win32/perllib.c win32/win32.c win32/win32.h
+____________________________________________________________________________
+[  5387] By: gsar                                  on 2000/03/01  03:13:37
+        Log: mention ftp/rsync access to repository in perlhack
+     Branch: perl
+          ! Changes pod/perlhack.pod pod/perlhist.pod
+____________________________________________________________________________
+[  5386] By: gsar                                  on 2000/03/01  03:04:54
+        Log: support kill(0,$pid) on Windows to test if process exists
+     Branch: perl
+          ! README.win32 pod/perldelta.pod pod/perlport.pod win32/win32.c
+____________________________________________________________________________
+[  5385] By: gsar                                  on 2000/03/01  02:10:01
+        Log: integrate cfgperl changes into mainline
+     Branch: perl
+         !> Configure Porting/Glossary Porting/config.sh Porting/config_H
+         !> config_h.SH epoc/config.sh hints/dec_osf.sh hints/solaris_2.sh
+         !> perl.h vms/subconfigure.com vos/config.def win32/config.bc
+         !> win32/config.gc win32/config.vc
+____________________________________________________________________________
+[  5384] By: gsar                                  on 2000/03/01  01:47:55
+        Log: oops, change#5382 didn't really fix the typo
+     Branch: perl
+          ! ext/DynaLoader/dl_dlopen.xs
+____________________________________________________________________________
+[  5383] By: gsar                                  on 2000/03/01  01:38:25
+        Log: avoid warning on type-mismatch
+     Branch: perl
+          ! ext/DynaLoader/dlutils.c
+____________________________________________________________________________
+[  5382] By: gsar                                  on 2000/03/01  01:33:42
+        Log: fix bug in change#5381
+     Branch: perl
+          ! ext/DynaLoader/dl_dlopen.xs
+____________________________________________________________________________
+[  5381] By: gsar                                  on 2000/03/01  00:46:44
+        Log: unload extension shared objects when exiting, implemented
+             only for dl_dlopen.xs (from Alan Burlison)
+     Branch: perl
+          ! ext/DynaLoader/DynaLoader_pm.PL ext/DynaLoader/Makefile.PL
+          ! ext/DynaLoader/dl_dlopen.xs ext/DynaLoader/dlutils.c
+____________________________________________________________________________
+[  5380] By: gsar                                  on 2000/03/01  00:34:10
+        Log: add perlnumber.pod (from Ilya Zakharevich); substantially edited
+             prose
+     Branch: perl
+          + pod/perlnumber.pod
+          ! MANIFEST pod/Makefile pod/buildtoc pod/perl.pod
+          ! pod/perltoc.pod pod/roffitall
+____________________________________________________________________________
+[  5379] By: jhi                                   on 2000/02/29  23:37:01
+        Log: Be understanding.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig/U/perl
+          ! use64bits.U uselfs.U
+____________________________________________________________________________
+[  5378] By: gsar                                  on 2000/02/29  23:35:50
+        Log: VMS fixups (from Dan Sugalski); cosmetic tweaks
+     Branch: perl
+          ! lib/Test/Harness.pm vms/vms.c
+____________________________________________________________________________
+[  5377] By: jhi                                   on 2000/02/29  23:12:29
+        Log: Tru64 hints fix from Spider Boardman; Tru64 hint for
+             d_Gconvert on long doubles to use sprintf %Lg.
+     Branch: cfgperl
+          ! hints/dec_osf.sh
+____________________________________________________________________________
+[  5376] By: jhi                                   on 2000/02/29  23:02:45
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> gv.c lib/Pod/Html.pm malloc.c pod/perlapi.pod pod/perlcall.pod
+         !> pod/perldiag.pod pod/perlembed.pod pod/perlfunc.pod
+         !> pod/perlguts.pod pod/perlop.pod
+____________________________________________________________________________
+[  5375] By: gsar                                  on 2000/02/29  23:02:34
+        Log: fix File::Find::finddepth() bugs (from Helmut Jarausch)
+     Branch: perl
+          ! lib/File/Find.pm
+____________________________________________________________________________
+[  5374] By: jhi                                   on 2000/02/29  23:01:35
+        Log: Add libsunmath (long double math library for Solaris,
+             SUNWspro cc only) awareness; fix various Solaris nits.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH epoc/config.sh hints/solaris_2.sh perl.h
+          ! vms/subconfigure.com vos/config.def win32/config.bc
+          ! win32/config.gc win32/config.vc
+     Branch: metaconfig
+          ! U/modified/libs.U
+     Branch: metaconfig/U/perl
+          + i_sunmath.U
+____________________________________________________________________________
+[  5373] By: gsar                                  on 2000/02/29  22:56:10
+        Log: fix Pod::Html to recognize C<< > >> etc., and convert some pods
+             to the more readable form (from Robin Barker)
+     Branch: perl
+          ! lib/Pod/Html.pm pod/perlfunc.pod pod/perlop.pod
+____________________________________________________________________________
+[  5372] By: gsar                                  on 2000/02/29  22:52:27
+        Log: better fix for malloc bug in change#5346 (from Dominic Dunlop)
+     Branch: perl
+          ! malloc.c
+____________________________________________________________________________
+[  5371] By: gsar                                  on 2000/02/29  22:29:36
+        Log: fix pods to reflect newer canonical names for call_sv() etc.
+     Branch: perl
+          ! gv.c pod/perlapi.pod pod/perlcall.pod pod/perldiag.pod
+          ! pod/perlembed.pod pod/perlguts.pod
+____________________________________________________________________________
+[  5370] By: jhi                                   on 2000/02/29  22:08:26
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> perl.c perl.h win32/win32.c win32/win32.h
+____________________________________________________________________________
+[  5369] By: gsar                                  on 2000/02/29  21:37:10
+        Log: remove bogus code that caused test failures on HP-UX
+     Branch: perl
+          ! perl.h
+____________________________________________________________________________
+[  5368] By: gsar                                  on 2000/02/29  20:45:01
+        Log: change#5364 had a few problems
+     Branch: perl
+          ! perl.c win32/win32.c win32/win32.h
+____________________________________________________________________________
+[  5367] By: gsar                                  on 2000/02/29  18:19:04
+        Log: integrate cfgperl changes into mainline
+     Branch: perl
+         !> Configure config_h.SH epoc/config.sh hints/hpux.sh
+         !> hints/solaris_2.sh regcomp.c vms/subconfigure.com
+         !> vos/config.def win32/config.bc win32/config.gc win32/config.vc
+____________________________________________________________________________
+[  5366] By: jhi                                   on 2000/02/29  18:15:09
+        Log: Some compilers have problems with quad switch() controls.
+     Branch: cfgperl
+          ! regcomp.c
+____________________________________________________________________________
+[  5365] By: jhi                                   on 2000/02/29  18:14:30
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> perl.c win32/Makefile win32/makefile.mk win32/win32.c
+         !> win32/win32.h
+____________________________________________________________________________
+[  5364] By: gsar                                  on 2000/02/29  18:11:34
+        Log: utf8-ize @ARGV when -C switch is used on Windows
+     Branch: perl
+          ! perl.c win32/Makefile win32/makefile.mk win32/win32.c
+          ! win32/win32.h
+____________________________________________________________________________
+[  5363] By: jhi                                   on 2000/02/29  17:47:48
+        Log: HP-UX lddlflags were broken.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig/U/perl
+          ! dlsrc.U
+____________________________________________________________________________
+[  5362] By: jhi                                   on 2000/02/29  17:32:27
+        Log: Make the failsafe question about socket address structure
+             sizes hopefully a bit less confusing.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig
+          ! U/protos/socksizetype.U
+____________________________________________________________________________
+[  5361] By: jhi                                   on 2000/02/29  17:17:10
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> malloc.c
+____________________________________________________________________________
+[  5360] By: gsar                                  on 2000/02/29  17:16:09
+        Log: malloc "fix" in change#5346 coredumps on HP-UX, revert
+     Branch: perl
+          ! malloc.c
+____________________________________________________________________________
+[  5359] By: jhi                                   on 2000/02/29  17:06:12
+        Log: Make the warning about preferring HP's ar more visible.
+     Branch: cfgperl
+          ! hints/hpux.sh
+____________________________________________________________________________
+[  5358] By: jhi                                   on 2000/02/29  17:04:36
+        Log: The sprintf option was blithely printing long doubles as
+             doubles (spotted by Spider Boardman); dqgcvt() wasn't ever
+             being used; made the test more thorough.
+     Branch: cfgperl
+          ! Configure config_h.SH epoc/config.sh vms/subconfigure.com
+          ! vos/config.def win32/config.bc win32/config.gc win32/config.vc
+     Branch: metaconfig
+          ! U/compline/d_gconvert.U
+____________________________________________________________________________
+[  5357] By: jhi                                   on 2000/02/29  16:58:08
+        Log: Make the warning about abandoning long doubles more visible.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig/U/perl
+          ! uselongdbl.U
+____________________________________________________________________________
+[  5356] By: jhi                                   on 2000/02/29  16:51:33
+        Log: HP-UX gcc fix; detypo in use64bits.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig/U/perl
+          ! dlsrc.U use64bits.U
+____________________________________________________________________________
+[  5355] By: jhi                                   on 2000/02/29  16:31:17
+        Log: Solaris 64-bitness hints saga continues.
+     Branch: cfgperl
+          ! hints/solaris_2.sh
+____________________________________________________________________________
+[  5354] By: jhi                                   on 2000/02/29  16:04:42
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> ext/Thread/Thread.xs perl.c perl.h
+____________________________________________________________________________
+[  5353] By: jhi                                   on 2000/02/29  15:54:10
+        Log: Solaris hints tweak for 64-bitallness.
+     Branch: cfgperl
+          ! hints/solaris_2.sh
+____________________________________________________________________________
+[  5352] By: jhi                                   on 2000/02/29  15:35:13
+        Log: Too many 64-bitness option combinations.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig/U/perl
+          ! use64bits.U
+____________________________________________________________________________
+[  5351] By: gsar                                  on 2000/02/29  15:31:56
+        Log: more adjustments needed for change#5342 under use5005threads
+     Branch: perl
+          ! ext/Thread/Thread.xs perl.c perl.h
+____________________________________________________________________________
+[  5350] By: jhi                                   on 2000/02/29  15:24:59
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         +> pod/perlboot.pod
+         !> (integrate 40 files)
+____________________________________________________________________________
+[  5349] By: gsar                                  on 2000/02/29  08:13:56
+        Log: more m//s and $ vs \z fixups (from Greg Bacon)
+     Branch: perl
+          ! lib/File/CheckTree.pm lib/File/Copy.pm lib/File/DosGlob.pm
+          ! lib/File/Path.pm lib/File/Spec/Mac.pm lib/File/Spec/OS2.pm
+          ! lib/File/Spec/Unix.pm lib/File/Spec/VMS.pm
+          ! lib/File/Spec/Win32.pm
+____________________________________________________________________________
+[  5348] By: gsar                                  on 2000/02/29  08:00:48
+        Log: increase sleep to compensate for slow cpu (from Peter Haworth
+             <pmh@edison.ioppublishing.com>)
+     Branch: perl
+          ! t/io/pipe.t
+____________________________________________________________________________
+[  5347] By: gsar                                  on 2000/02/29  07:52:35
+        Log: add OO tutorial for beginners (from Randal L. Schwartz
+             <merlyn@stonehenge.com>)
+     Branch: perl
+          + pod/perlboot.pod
+          ! MANIFEST pod/Makefile pod/buildtoc pod/perl.pod
+          ! pod/perldelta.pod pod/perltoc.pod
+____________________________________________________________________________
+[  5346] By: gsar                                  on 2000/02/29  07:24:52
+        Log: malloc bug fix and machten hints (from Dominic Dunlop
+             <domo@computer.org>)
+     Branch: perl
+          ! hints/machten.sh malloc.c
+____________________________________________________________________________
+[  5345] By: gsar                                  on 2000/02/29  06:32:56
+        Log: integrate cfgperl contents into mainline
+     Branch: perl
+         !> Configure MANIFEST config_h.SH ext/DynaLoader/dl_aix.xs
+         !> ext/DynaLoader/hints/aix.pl ext/File/Glob/Makefile.PL
+         !> hints/aix.sh hints/hpux.sh hints/irix_6.sh hints/solaris_2.sh
+         !> mg.c perl.h pod/perldelta.pod pod/perlop.pod pp.c sv.c
+         !> t/lib/ipc_sysv.t t/op/64bit.t t/op/misc.t t/op/numconvert.t
+         !> win32/config.bc win32/config.gc win32/config.vc
+____________________________________________________________________________
+[  5344] By: gsar                                  on 2000/02/29  06:25:33
+        Log: export list tweak
+     Branch: perl
+          ! makedef.pl
+____________________________________________________________________________
+[  5343] By: gsar                                  on 2000/02/29  06:01:22
+        Log: various shenanigans in change#5342
+     Branch: perl
+          ! makedef.pl thread.h util.c win32/Makefile win32/makefile.mk
+          ! win32/win32.h win32/win32thread.h
+____________________________________________________________________________
+[  5342] By: gsar                                  on 2000/02/29  04:53:00
+        Log: support fetching current interpreter from TLS under useithreads
+     Branch: perl
+          ! embed.h embed.pl embedvar.h global.sym intrpvar.h makedef.pl
+          ! objXSUB.h perl.c perl.h perlapi.h perlvars.h pod/perldelta.pod
+          ! proto.h sv.c thread.h util.c win32/perlhost.h win32/perllib.c
+          ! win32/win32.h win32/win32thread.c win32/win32thread.h
+____________________________________________________________________________
+[  5341] By: jhi                                   on 2000/02/29  03:26:11
+        Log: Don't know how to do large files using gcc in HP-UX.
+     Branch: cfgperl
+          ! hints/hpux.sh
+____________________________________________________________________________
+[  5340] By: jhi                                   on 2000/02/29  03:07:16
+        Log: Added few more libs to scan.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig
+          ! U/modified/Myinit.U U/modified/libs.U
+____________________________________________________________________________
+[  5339] By: jhi                                   on 2000/02/29  01:37:43
+        Log: Bigger warning on the changed behaviour of the unary ~.
+     Branch: cfgperl
+          ! pod/perldelta.pod
+____________________________________________________________________________
+[  5338] By: jhi                                   on 2000/02/29  01:17:07
+        Log: IRIX 64-bitness fixes.
+     Branch: cfgperl
+          ! Configure config_h.SH hints/irix_6.sh
+     Branch: metaconfig
+          ! U/modified/Cppsym.U
+____________________________________________________________________________
+[  5337] By: jhi                                   on 2000/02/29  00:59:08
+        Log: Userfriendliness.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig/U/perl
+          ! use64bits.U
+____________________________________________________________________________
+[  5336] By: jhi                                   on 2000/02/29  00:53:51
+        Log: Undo the sv_2pv() change of #5329, caused numconvert.t
+             problems in IRIX 32-n32. 
+     Branch: cfgperl
+          ! sv.c
+____________________________________________________________________________
+[  5335] By: jhi                                   on 2000/02/29  00:22:37
+        Log: Fixes for building on HP-UX using gcc from Daniel S. Lewart.
+     Branch: cfgperl
+          ! Configure config_h.SH hints/hpux.sh
+     Branch: metaconfig/U/perl
+          ! dlsrc.U
+____________________________________________________________________________
+[  5334] By: jhi                                   on 2000/02/28  23:59:59
+        Log: Do not cast pointers into I32s.
+     Branch: cfgperl
+          ! mg.c
+____________________________________________________________________________
+[  5333] By: jhi                                   on 2000/02/28  23:39:26
+        Log: More AIX fixes from Steven Hirsch.
+     Branch: cfgperl
+          ! Configure config_h.SH ext/DynaLoader/dl_aix.xs
+          ! ext/DynaLoader/hints/aix.pl hints/aix.sh
+     Branch: metaconfig/U/perl
+          ! use64bits.U
+____________________________________________________________________________
+[  5332] By: jhi                                   on 2000/02/28  22:45:59
+        Log: Detypo.
+     Branch: cfgperl
+          ! hints/irix_6.sh
+____________________________________________________________________________
+[  5331] By: jhi                                   on 2000/02/28  22:23:36
+        Log: Regularize the call-back units (and fix a bug in #5330).
+     Branch: cfgperl
+          ! hints/aix.sh hints/hpux.sh hints/irix_6.sh hints/solaris_2.sh
+____________________________________________________________________________
+[  5330] By: jhi                                   on 2000/02/28  21:50:28
+        Log: Don't be overeager to turn on 64-bitallness.
+     Branch: cfgperl
+          ! hints/solaris_2.sh
+____________________________________________________________________________
+[  5329] By: jhi                                   on 2000/02/28  20:32:53
+        Log: Lift the 32-bit straightjacket from bit ops;
+             prefer IV/UV over NV in sv_2pv().
+     Branch: cfgperl
+          ! pod/perldelta.pod pod/perlop.pod pp.c sv.c t/op/64bit.t
+          ! t/op/misc.t t/op/numconvert.t
+____________________________________________________________________________
+[  5328] By: jhi                                   on 2000/02/28  20:11:59
+        Log: Do not add -Ae for gcc.
+     Branch: cfgperl
+          ! hints/hpux.sh
+____________________________________________________________________________
+[  5327] By: jhi                                   on 2000/02/28  17:35:39
+        Log: Use the vendor file(1).
+     Branch: cfgperl
+          ! hints/hpux.sh hints/irix_6.sh hints/solaris_2.sh
+____________________________________________________________________________
+[  5326] By: jhi                                   on 2000/02/28  17:31:19
+        Log: Put back madvise lost because of a typo.
+     Branch: cfgperl
+          ! Configure config_h.SH perl.h win32/config.bc win32/config.gc
+          ! win32/config.vc
+____________________________________________________________________________
+[  5325] By: jhi                                   on 2000/02/28  16:44:32
+        Log: Tweak HP-UX libraries.
+     Branch: cfgperl
+          ! hints/hpux.sh
+____________________________________________________________________________
+[  5324] By: jhi                                   on 2000/02/28  16:37:43
+        Log: Don't be overeager to turn on largefileness.
+     Branch: cfgperl
+          ! hints/solaris_2.sh
+____________________________________________________________________________
+[  5323] By: jhi                                   on 2000/02/28  16:23:15
+        Log: AIX 64-bit patches from Steven Hirsch <hirschs@btv.ibm.com>
+             The patch to File/Glob/Makefile.PL is inconvenient but at the
+             moment necessary: adding an ext/FIle/Glob/hints/aix.pl to turn
+             off the optimization ($self->{OPTIMIZE} = '') doesn't work,
+             the file is processed by MakeMaker but OPTIMIZE ends up as -O
+             in the resulting Makefile.  A MakeMaker bug?
+     Branch: cfgperl
+          ! MANIFEST ext/DynaLoader/dl_aix.xs ext/File/Glob/Makefile.PL
+          ! hints/aix.sh t/lib/ipc_sysv.t
+____________________________________________________________________________
+[  5322] By: jhi                                   on 2000/02/28  16:17:33
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> (integrate 45 files)
+____________________________________________________________________________
+[  5321] By: gsar                                  on 2000/02/28  10:13:03
+        Log: avoid warnings in legacy code (from David Dyck)
+     Branch: perl
+          ! lib/pwd.pl
+____________________________________________________________________________
+[  5320] By: gsar                                  on 2000/02/28  10:11:37
+        Log: find2perl doc tweak (from David Dyck <dcd@tc.fluke.com>)
+     Branch: perl
+          ! x2p/find2perl.PL
+____________________________________________________________________________
+[  5319] By: gsar                                  on 2000/02/28  10:07:00
+        Log: fix outdated URLs (from Michael G Schwern)
+     Branch: perl
+          ! pod/perldelta.pod pod/perlfaq1.pod pod/perlfaq2.pod
+          ! pod/perlfaq3.pod pod/perlfaq4.pod pod/perlfaq8.pod
+          ! pod/perlfaq9.pod pod/perlmodinstall.pod pod/perlmodlib.pod
+          ! pod/perlopentut.pod pod/perlport.pod pod/perltoc.pod
+          ! pod/perlvar.pod pod/perlxs.pod
+____________________________________________________________________________
+[  5318] By: gsar                                  on 2000/02/28  10:04:57
+        Log: update Changes, patchlevel etc.
+     Branch: perl
+          ! Changes patchlevel.h win32/Makefile win32/config.bc
+          ! win32/config.gc win32/config.vc win32/config_H.bc
+          ! win32/config_H.gc win32/config_H.vc win32/makefile.mk
+____________________________________________________________________________
+[  5317] By: gsar                                  on 2000/02/28  09:39:47
+        Log: make stringwise bitops work properly on utf8 strings
+     Branch: perl
+          ! doop.c t/op/bop.t
+____________________________________________________________________________
+[  5316] By: gsar                                  on 2000/02/28  07:04:22
+        Log: integrate cfgperl and vmsperl changes into mainline
+     Branch: perl
+          ! Porting/makerel
+         !> Configure Makefile.SH config_h.SH configure.com
+         !> ext/DynaLoader/DynaLoader_pm.PL ext/DynaLoader/dl_vms.xs
+         !> hints/hpux.sh lib/ExtUtils/MM_Unix.pm lib/ExtUtils/MM_VMS.pm
+         !> lib/ExtUtils/MakeMaker.pm lib/ExtUtils/Mksymlists.pm
+         !> lib/File/Spec/Unix.pm lib/File/Spec/VMS.pm t/comp/script.t
+         !> t/io/openpid.t t/lib/cgi-html.t t/op/goto.t t/op/split.t
+         !> vms/descrip_mms.template vms/gen_shrfls.pl
+         !> vms/subconfigure.com vms/vms.c
+____________________________________________________________________________
+[  5315] By: jhi                                   on 2000/02/28  06:31:08
+        Log: The search for static _s-suffixex libs was broken;
+             add -L/lib/pa20_64 only iff there.
+     Branch: cfgperl
+          ! Configure config_h.SH hints/hpux.sh
+     Branch: metaconfig
+          ! U/modified/libs.U
+____________________________________________________________________________
+[  5314] By: jhi                                   on 2000/02/28  06:08:40
+        Log: Even better use64bitall logic.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig/U/perl
+          ! use64bits.U uselfs.U
+____________________________________________________________________________
+[  5313] By: jhi                                   on 2000/02/28  05:47:27
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> lib/File/Basename.pm lib/File/Find.pm lib/fields.pm
+         !> pod/perldelta.pod pod/perlfunc.pod pod/perlref.pod
+         !> t/lib/fields.t x2p/find2perl.PL
+____________________________________________________________________________
+[  5312] By: jhi                                   on 2000/02/28  05:09:31
+        Log: Ask about use64bitall regardless of whether use64bitint is defined.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig/U/perl
+          ! use64bits.U
+____________________________________________________________________________
+[  5311] By: bailey                                on 2000/02/28  05:05:56
+        Log: Integrate mainline
+     Branch: vmsperl
+         !> README.dos djgpp/config.over djgpp/configure.bat djgpp/djgpp.c
+         !> ext/File/Glob/Glob.pm hints/dos_djgpp.sh lib/File/Basename.pm
+         !> lib/File/Find.pm lib/fields.pm op.c pod/perldelta.pod
+         !> pod/perlfaq5.pod pod/perlfunc.pod pod/perlop.pod
+         !> pod/perlref.pod pod/perlsec.pod pod/perltodo.pod pp_sys.c
+         !> regexec.c sv.c t/lib/fields.t t/pragma/locale.t
+         !> x2p/find2perl.PL
+____________________________________________________________________________
+[  5310] By: bailey                                on 2000/02/28  04:36:20
+        Log: Revert File::Spec::Unix functions and keep VMS versions VMS-specific
+     Branch: vmsperl
+          ! lib/File/Spec/Unix.pm lib/File/Spec/VMS.pm
+____________________________________________________________________________
+[  5309] By: jhi                                   on 2000/02/28  04:17:36
+        Log: The #5249 wasn't doing any good.
+     Branch: cfgperl
+          ! Makefile.SH lib/ExtUtils/MM_Unix.pm
+____________________________________________________________________________
+[  5308] By: bailey                                on 2000/02/28  03:56:51
+        Log: Repair typo -- conjunction of variable with text
+     Branch: vmsperl
+          ! t/lib/cgi-html.t
+____________________________________________________________________________
+[  5307] By: jhi                                   on 2000/02/28  03:46:14
+        Log: A less ambitious version of #5292.
+     Branch: cfgperl
+          ! Makefile.SH
+____________________________________________________________________________
+[  5306] By: bailey                                on 2000/02/28  03:42:38
+        Log: Defer inclusion of VMS-specific code to runtime
+     Branch: vmsperl
+          ! t/io/openpid.t
+____________________________________________________________________________
+[  5305] By: jhi                                   on 2000/02/28  03:41:48
+        Log: The #5292 was Not So Good Idea.
+     Branch: cfgperl
+          ! Makefile.SH
+____________________________________________________________________________
+[  5304] By: bailey                                on 2000/02/28  02:57:14
+        Log: Minor test updates to accomodate new subprocess invocation
+     Branch: vmsperl
+          ! t/comp/script.t t/op/goto.t t/op/split.t
+____________________________________________________________________________
+[  5303] By: bailey                                on 2000/02/28  02:52:47
+        Log: Missed bit of #5302 (case-sensitive symbols)
+     Branch: vmsperl
+          ! lib/ExtUtils/Mksymlists.pm
+____________________________________________________________________________
+[  5302] By: bailey                                on 2000/02/28  02:51:00
+        Log: Support case-sensitive symbols usage in linker
+     Branch: vmsperl
+          ! ext/DynaLoader/DynaLoader_pm.PL ext/DynaLoader/dl_vms.xs
+          ! lib/ExtUtils/MM_VMS.pm vms/gen_shrfls.pl
+____________________________________________________________________________
+[  5301] By: bailey                                on 2000/02/28  02:46:47
+        Log: Free $PARSE context after lookups
+     Branch: vmsperl
+          ! vms/vms.c
+____________________________________________________________________________
+[  5300] By: bailey                                on 2000/02/28  02:43:56
+        Log: Don't wait for subprocess to read final EOF
+     Branch: vmsperl
+          ! vms/vms.c
+____________________________________________________________________________
+[  5299] By: bailey                                on 2000/02/28  00:44:45
+        Log: Dan Sugalski's config/build changes to .660
+     Branch: vmsperl
+          ! configure.com vms/descrip_mms.template vms/subconfigure.com
+____________________________________________________________________________
+[  5298] By: bailey                                on 2000/02/28  00:07:13
+        Log: When testing CGI.pm, use its notion of CRLF
+     Branch: vmsperl
+          ! t/lib/cgi-html.t
+____________________________________________________________________________
+[  5297] By: bailey                                on 2000/02/28  00:00:08
+        Log: Quote command line args which need to be upper case
+             Tell subprocess we're finished before waiting for it
+     Branch: vmsperl
+          ! t/io/openpid.t
+____________________________________________________________________________
+[  5296] By: gsar                                  on 2000/02/28  00:00:05
+        Log: m/.*$/ etc should be m/.*\z/s in many file handling modules; fix
+             these insidious errors in File::Basename, File::Find and find2perl
+             (from Tom Christiansen)
+             
+             TODO: many other modules need to be fixed as well!
+     Branch: perl
+          ! lib/File/Basename.pm lib/File/Find.pm x2p/find2perl.PL
+____________________________________________________________________________
+[  5295] By: jhi                                   on 2000/02/27  23:18:40
+        Log: Version number update.
+     Branch: cfgperl
+          ! lib/ExtUtils/MM_Unix.pm lib/ExtUtils/MakeMaker.pm
+____________________________________________________________________________
+[  5294] By: gsar                                  on 2000/02/27  22:27:46
+        Log: typos in change#5293
+     Branch: perl
+          ! lib/fields.pm
+____________________________________________________________________________
+[  5293] By: gsar                                  on 2000/02/27  21:57:40
+        Log: support fields::new() and fields::phash() to create pseudo-hash
+             objects and plain pseudo-hashes respectively (this avoids users
+             from having to diddle %FIELDS directly); update documentation to
+             suit (from original fields::phash() implementation by Peter
+             Scott <Peter@PSDT.com>)
+     Branch: perl
+          ! lib/fields.pm pod/perldelta.pod pod/perlfunc.pod
+          ! pod/perlref.pod t/lib/fields.t
+____________________________________________________________________________
+[  5292] By: jhi                                   on 2000/02/27  21:49:25
+        Log: proto.h was mssing from the list of generated files;
+             added rules to generate any single wanted file
+             (a bunch of other files may also be generated
+             at the same time, as before)
+     Branch: cfgperl
+          ! Makefile.SH
+____________________________________________________________________________
+[  5291] By: jhi                                   on 2000/02/27  18:57:12
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> README.dos djgpp/config.over djgpp/configure.bat djgpp/djgpp.c
+         !> ext/File/Glob/Glob.pm hints/dos_djgpp.sh lib/File/Spec/OS2.pm
+         !> lib/File/Spec/Unix.pm lib/File/Spec/VMS.pm
+         !> lib/File/Spec/Win32.pm op.c pod/perldelta.pod pod/perlfaq5.pod
+         !> pod/perlfunc.pod pod/perlop.pod pod/perlsec.pod
+         !> pod/perltodo.pod pp_sys.c sv.c vms/perlvms.pod vms/vms.c
+____________________________________________________________________________
+[  5290] By: gsar                                  on 2000/02/27  18:47:00
+        Log: integrate cfgperl and vmsperl contents into mainline
+     Branch: perl
+         !> lib/File/Spec/OS2.pm lib/File/Spec/Unix.pm
+         !> lib/File/Spec/VMS.pm lib/File/Spec/Win32.pm regexec.c
+         !> t/pragma/locale.t vms/perlvms.pod vms/vms.c
+____________________________________________________________________________
+[  5289] By: gsar                                  on 2000/02/27  18:09:04
+        Log: tweak change#5286 (we don't ever get to pp_glob() if we're using
+             the internal glob())
+     Branch: perl
+          ! pp_sys.c
+____________________________________________________________________________
+[  5288] By: gsar                                  on 2000/02/27  17:12:41
+        Log: djgpp update (from Laszlo Molnar)
+     Branch: perl
+          ! README.dos djgpp/config.over djgpp/configure.bat djgpp/djgpp.c
+          ! hints/dos_djgpp.sh
+____________________________________________________________________________
+[  5287] By: gsar                                  on 2000/02/27  16:58:53
+        Log: tweak comment about core glob()
+     Branch: perl
+          ! ext/File/Glob/Glob.pm
+____________________________________________________________________________
+[  5286] By: gsar                                  on 2000/02/27  16:52:54
+        Log: remove outdated info about csh and glob(); glob() need not fail
+             when tainting anymore if using internal globbing
+     Branch: perl
+          ! pod/perldelta.pod pod/perlfaq5.pod pod/perlfunc.pod
+          ! pod/perlop.pod pod/perlsec.pod pod/perltodo.pod pp_sys.c
+____________________________________________________________________________
+[  5285] By: gsar                                  on 2000/02/27  16:20:31
+        Log: make readdir() respect IOf_UNTAINT flag (allows untainting of directory
+             handles with: C<use IO::Handle; opendir D, $dir or die; D->untaint;>
+     Branch: perl
+          ! pp_sys.c
+____________________________________________________________________________
+[  5284] By: gsar                                  on 2000/02/27  14:31:24
+        Log: avoid compiler warnings (from Dan Sugalski)
+     Branch: perl
+          ! op.c sv.c
+____________________________________________________________________________
+[  5283] By: gsar                                  on 2000/02/27  14:21:16
+        Log: propagate utf8ness in sv_setsv() (from Gisle Aas)
+     Branch: perl
+          ! sv.c
+____________________________________________________________________________
+[  5282] By: bailey                                on 2000/02/27  05:07:08
+        Log: Impose security constraints on lnm lookup only if tainting
+     Branch: vmsperl
+          ! vms/vms.c
+____________________________________________________________________________
+[  5281] By: bailey                                on 2000/02/27  05:05:35
+        Log: Add new File::Spec::VMS methods
+             Don't add implicit device in VMS <-> Unix filespec translation
+             Make File::Spec::Unix{rel2abs|abs2rel} OS-independent
+     Branch: vmsperl
+          ! lib/File/Spec/OS2.pm lib/File/Spec/Unix.pm
+          ! lib/File/Spec/VMS.pm lib/File/Spec/Win32.pm vms/vms.c
+____________________________________________________________________________
+[  5280] By: bailey                                on 2000/02/27  04:58:01
+        Log: Accept filespecs as command verbs for subprocesses
+     Branch: vmsperl
+          ! vms/perlvms.pod vms/vms.c
+____________________________________________________________________________
+[  5279] By: jhi                                   on 2000/02/27  04:01:53
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> pp_hot.c
+____________________________________________________________________________
+[  5278] By: bailey                                on 2000/02/27  02:43:01
+        Log: Resync with mainline again
+     Branch: vmsperl
+         !> Makefile.SH README.vms configure.com lib/ExtUtils/MM_Unix.pm
+         !> lib/Pod/Checker.pm lib/Pod/InputObjects.pm
+         !> lib/Pod/ParseUtils.pm lib/Pod/Parser.pm lib/Pod/Select.pm
+         !> lib/Pod/Usage.pm pod/perlfunc.pod pp_hot.c t/pod/poderrs.t
+         !> t/pod/poderrs.xr vms/descrip_mms.template vms/sockadapt.h
+         !> vms/subconfigure.com
+____________________________________________________________________________
+[  5277] By: jhi                                   on 2000/02/27  02:36:36
+        Log: Fix locale case-ignorant matching bug reported in
+             
+             From: gomar@md.media-web.de
+             To: perl5-porters@perl.org
+             Subject: [ID 20000223.005]
+             Date: 23 Feb 2000 16:03:08 -0000
+             Message-Id: <20000223160308.1830.qmail@md.media-web.de>
+     Branch: cfgperl
+          ! regexec.c t/pragma/locale.t
+____________________________________________________________________________
+[  5276] By: gsar                                  on 2000/02/26  18:18:16
+        Log: allow $fh->autoflush on globrefs, and thence autovivified filehandles
+             (from Tom Christiansen)
+     Branch: perl
+          ! pp_hot.c
+____________________________________________________________________________
+[  5275] By: jhi                                   on 2000/02/26  16:43:11
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> (integrate 34 files)
+____________________________________________________________________________
+[  5274] By: gsar                                  on 2000/02/26  15:23:45
+        Log: rework binmode() entry in perlfunc (from Martien Verbruggen
+             <mgjv@comdyn.com.au>)
+     Branch: perl
+          ! pod/perlfunc.pod
+____________________________________________________________________________
+[  5273] By: gsar                                  on 2000/02/26  15:04:54
+        Log: PodParser v1.11 update (from Brad Appleton)
+     Branch: perl
+          ! lib/Pod/Checker.pm lib/Pod/InputObjects.pm
+          ! lib/Pod/ParseUtils.pm lib/Pod/Parser.pm lib/Pod/Select.pm
+          ! lib/Pod/Usage.pm t/pod/poderrs.t t/pod/poderrs.xr
+____________________________________________________________________________
+[  5272] By: gsar                                  on 2000/02/26  14:48:24
+        Log: add missing perl headers to perldepend action
+     Branch: perl
+          ! lib/ExtUtils/MM_Unix.pm
+____________________________________________________________________________
+[  5271] By: gsar                                  on 2000/02/26  08:03:36
+        Log: VMS patch (from Peter Prymmer)
+     Branch: perl
+          ! Makefile.SH README.vms configure.com vms/descrip_mms.template
+          ! vms/sockadapt.h vms/subconfigure.com
+____________________________________________________________________________
+[  5270] By: gsar                                  on 2000/02/26  07:46:35
+        Log: integrate vmsperl changes into mainline
+     Branch: perl
+         !> av.c configure.com installperl lib/ExtUtils/MM_VMS.pm mg.h
+         !> pp_sys.c scope.c vms/vms.c vms/vmsish.h
+____________________________________________________________________________
+[  5269] By: bailey                                on 2000/02/26  07:04:55
+        Log: Resync with mainline
+     Branch: vmsperl
+         +> cygwin/cygwin.c ext/DynaLoader/dl_dyld.xs
+         +> ext/Sys/Hostname/Hostname.pm ext/Sys/Hostname/Hostname.xs
+         +> ext/Sys/Hostname/Makefile.PL hints/darwin.sh lib/bytes.pm
+         +> lib/bytes_heavy.pl t/pragma/warn/9enabled
+          - ext/DynaLoader/dl_rhapsody.xs lib/Sys/Hostname.pm lib/byte.pm
+          - lib/byte_heavy.pl lib/unicode/Eq/Latin1.pl
+          - lib/unicode/Eq/Unicode.pl
+         !> (integrate 323 files)
+____________________________________________________________________________
+[  5268] By: gsar                                  on 2000/02/26  06:50:04
+        Log: reintroduce useithreads (accidentally deleted in change#5261)
+     Branch: perl
+          ! win32/config.vc
+____________________________________________________________________________
+[  5266] By: gsar                                  on 2000/02/26  06:46:06
+        Log: integrate cfgperl changes into mainline
+     Branch: perl
+         +> cygwin/cygwin.c ext/DynaLoader/dl_dyld.xs hints/darwin.sh
+          - ext/DynaLoader/dl_rhapsody.xs
+         !> (integrate 62 files)
+____________________________________________________________________________
+[  5265] By: gsar                                  on 2000/02/26  06:31:10
+        Log: support for version vectors in UNIVERSAL::VERSION(), so that
+             C<use Foo v1.2.3> etc., work; tests for the same
+             
+             TODO: XS_VERSION_BOOTCHECK needs to be revisited in light of this
+     Branch: perl
+          ! embed.h embed.pl global.sym objXSUB.h perlapi.c proto.h
+          ! t/comp/use.t toke.c universal.c
+____________________________________________________________________________
+[  5264] By: jhi                                   on 2000/02/26  04:14:15
+        Log: Add libscheck for IRIX.
+     Branch: cfgperl
+          ! hints/irix_6.sh
+____________________________________________________________________________
+[  5263] By: jhi                                   on 2000/02/26  03:40:47
+        Log: Add libscheck for Solaris.
+     Branch: cfgperl
+          ! hints/solaris_2.sh
+____________________________________________________________________________
+[  5262] By: jhi                                   on 2000/02/26  03:10:47
+        Log: Rhapsody/Darwin patches from Wilfredo Sanchez.
+     Branch: cfgperl
+          + ext/DynaLoader/dl_dyld.xs hints/darwin.sh
+          - ext/DynaLoader/dl_rhapsody.xs
+          ! Configure INSTALL MANIFEST Makefile.SH README.threads
+          ! config_h.SH hints/rhapsody.sh installperl pp_sys.c
+     Branch: metaconfig
+          ! U/a_dvisory/multiarch.U
+____________________________________________________________________________
+[  5261] By: jhi                                   on 2000/02/26  02:48:23
+        Log: Rename use64bits to use64bitint;
+             rename usefull64bits to use64bitall.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH configure.com epoc/config.sh hints/aix.sh
+          ! hints/hpux.sh hints/irix_4.sh hints/irix_5.sh hints/irix_6.sh
+          ! hints/irix_6_0.sh hints/irix_6_1.sh hints/solaris_2.sh
+          ! myconfig.SH perl.c perl.h pod/perldelta.pod pod/perlfunc.pod
+          ! vms/subconfigure.com vos/config.def vos/config.h
+          ! vos/config_h.SH_orig win32/config.bc win32/config.gc
+          ! win32/config.vc win32/config_H.bc win32/config_H.gc
+          ! win32/config_H.vc
+     Branch: metaconfig
+          ! U/a_dvisory/quadtype.U U/mksample U/modified/libpth.U
+          ! U/protos/socksizetype.U U/threads/archname.U
+     Branch: metaconfig/U/perl
+          ! Extensions.U dbm64.U perlxv.U stdio64.U use64bits.U uselfs.U
+          ! usemorebits.U
+____________________________________________________________________________
+[  5260] By: jhi                                   on 2000/02/25  22:57:16
+        Log: From: "Fifer, Eric" <EFifer@sanwaint.com>
+             To: "'perl5-porters@perl.org'" <perl5-porters@perl.org>
+             Subject: [PATCH 5.5.660] cygwin port
+             Message-ID: <779F20BCCE5AD31186A50008C75D99791716E2@SILLDN_MAIL1>
+     Branch: cfgperl
+          ! README.cygwin cygwin/Makefile.SHs cygwin/cygwin.c
+____________________________________________________________________________
+[  5259] By: jhi                                   on 2000/02/25  22:53:51
+        Log: Configure nits; add socksizetype; add getfsstat for completeness;
+             add lseekproto, usefull64bits, socksizetype getfsstat to non-UNIX
+             lands; regen Configure.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH doio.c epoc/config.sh perl.c pp_sys.c
+          ! vms/subconfigure.com vos/config.def win32/config.bc
+          ! win32/config.gc win32/config.vc win32/config_H.bc
+          ! win32/config_H.gc win32/config_H.vc
+     Branch: metaconfig
+          + U/protos/socksizetype.U
+     Branch: metaconfig/U/perl
+          + d_getfsstat.U
+          ! d_fstatfs.U fpossize.U use64bits.U uselfs.U
+____________________________________________________________________________
+[  5258] By: jhi                                   on 2000/02/25  21:04:17
+        Log: Further fixes to malloc.c prototypes from Dominic Dunlop.
+     Branch: cfgperl
+          ! malloc.c
+____________________________________________________________________________
+[  5257] By: jhi                                   on 2000/02/25  20:48:13
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> embed.h embed.pl objXSUB.h op.c op.h perlapi.c pp_ctl.c
+         !> proto.h t/cmd/while.t
+____________________________________________________________________________
+[  5256] By: gsar                                  on 2000/02/25  20:04:37
+        Log: fix missing perl_alloc() declaration under PERL_IMPLICIT_SYS
+     Branch: perl
+          ! embed.h embed.pl objXSUB.h perlapi.c proto.h
+____________________________________________________________________________
+[  5255] By: gsar                                  on 2000/02/25  19:23:58
+        Log: change#4849 wasn't restoring savestack correctly; make loops that have
+             continue blocks recognizable at run time
+     Branch: perl
+          ! op.c op.h pp_ctl.c t/cmd/while.t
+____________________________________________________________________________
+[  5254] By: jhi                                   on 2000/02/25  06:00:01
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> ext/B/B.xs ext/B/B/C.pm lib/Pod/InputObjects.pm
+         !> lib/Pod/Parser.pm lib/Pod/Select.pm lib/Pod/Usage.pm
+         !> t/lib/filefind.t t/pod/poderrs.xr
+____________________________________________________________________________
+[  5253] By: jhi                                   on 2000/02/25  05:57:59
+        Log: Megalopatch for Configure: Andy's new installation schemes;
+             introduce usefull64bits, beautify and regularize the various
+             type probes; introduce d_lseekproto.
+     Branch: cfgperl
+          ! Configure INSTALL Policy_sh.SH config_h.SH perl.h
+          ! pod/perldelta.pod
+     Branch: metaconfig
+          + U/installdirs/perl5.U U/installdirs/sitehtml1.U
+          + U/installdirs/sitehtml3.U U/installdirs/siteman1.U
+          + U/installdirs/siteman3.U U/installdirs/sitescript.U
+          + U/installdirs/vendorhtml1.U U/installdirs/vendorhtml3.U
+          + U/installdirs/vendorman1.U U/installdirs/vendorman3.U
+          + U/installdirs/vendorscript.U U/protos/d_lseekproto.U
+          - U/installdirs/vendorhtml1dir.U U/installdirs/vendorhtml3dir.U
+          - U/installdirs/vendorman1dir.U U/installdirs/vendorman3dir.U
+          - U/installdirs/vendorscriptdir.U
+          ! U/compline/doublesize.U U/compline/ptrsize.U
+          ! U/installdirs/archlib.U U/installdirs/bin.U
+          ! U/installdirs/html1dir.U U/installdirs/html3dir.U
+          ! U/installdirs/inc_version_list.U U/installdirs/installprefix.U
+          ! U/installdirs/installstyle.U U/installdirs/instubperl.U
+          ! U/installdirs/localarch.U U/installdirs/locallib.U
+          ! U/installdirs/otherlibdirs.U U/installdirs/prefix.U
+          ! U/installdirs/privlib.U U/installdirs/scriptdir.U
+          ! U/installdirs/sitearch.U U/installdirs/sitebin.U
+          ! U/installdirs/sitelib.U U/installdirs/siteprefix.U
+          ! U/installdirs/vendorarch.U U/installdirs/vendorbin.U
+          ! U/installdirs/vendorlib.U U/installdirs/vendorprefix.U
+          ! U/modified/d_longdbl.U U/modified/d_longlong.U
+          ! U/typedefs/gidsize.U U/typedefs/lseektype.U
+          ! U/typedefs/uidsize.U
+     Branch: metaconfig/U/perl
+          ! d_fpos64_t.U d_int64_t.U d_off64_t.U d_socklen_t.U fpossize.U
+          ! patchlevel.U use64bits.U uselfs.U usemultiplicity.U
+____________________________________________________________________________
+[  5252] By: gsar                                  on 2000/02/25  03:15:03
+        Log: update PodParser to v1.10 (from Brad Appleton)
+     Branch: perl
+          ! lib/Pod/InputObjects.pm lib/Pod/Parser.pm lib/Pod/Select.pm
+          ! lib/Pod/Usage.pm t/pod/poderrs.xr
+____________________________________________________________________________
+[  5251] By: gsar                                  on 2000/02/25  03:10:51
+        Log: make File::Find tests tolerate case-insensitive systems (from
+             Laszlo Molnar)
+     Branch: perl
+          ! t/lib/filefind.t
+____________________________________________________________________________
+[  5250] By: gsar                                  on 2000/02/25  01:50:04
+        Log: more Compiler tweaks for useithreads
+     Branch: perl
+          ! ext/B/B.xs ext/B/B/C.pm
+____________________________________________________________________________
+[  5249] By: jhi                                   on 2000/02/25  00:17:53
+        Log: Remove NFS temp files and Configure temp C files.
+     Branch: cfgperl
+          ! Makefile.SH lib/ExtUtils/MM_Unix.pm
+____________________________________________________________________________
+[  5248] By: jhi                                   on 2000/02/24  23:57:49
+        Log: In FreeBSD disable floating point exception handlers.
+             As the comment says, this should be done in the hints.
+             
+             From: dive <dive@ender.com>
+             To: "M.J.T. Guy" <mjtg@cus.cam.ac.uk>
+             cc: perl5-porters@perl.org
+             Subject: Re: [ID 20000216.004] apparent bug on freebsd systems when calculating large numbers
+             Date: Thu, 24 Feb 2000 15:54:24 -0800 (PST)
+             Message-ID: <Pine.LNX.4.04.10002241552080.448-100000@dragon.ender.com>
+     Branch: cfgperl
+          ! unixish.h
+____________________________________________________________________________
+[  5247] By: jhi                                   on 2000/02/24  23:46:27
+        Log: From: Gisle Aas <gisle@aas.no>
+             To: perl5-porters@perl.org
+             Subject: [PATCH v5.5.660] More UTF8_MAXLEN fixes
+             Date: 25 Feb 2000 00:24:53 +0100
+             Message-ID: <m3ema2tc8q.fsf@eik.g.aas.no>
+     Branch: cfgperl
+          ! doop.c op.c perl.c pp.c regcomp.c regexec.c sv.c
+____________________________________________________________________________
+[  5246] By: jhi                                   on 2000/02/24  23:15:56
+        Log: The op/stat.t patch in #5341 wasn't robust enough,
+             it broke subtest 4 almost everywhere else.
+     Branch: cfgperl
+          ! t/op/stat.t
+____________________________________________________________________________
+[  5245] By: jhi                                   on 2000/02/24  19:28:53
+        Log: More VMS patches from Peter Prymmer.
+     Branch: cfgperl
+          ! configure.com vms/subconfigure.com
+____________________________________________________________________________
+[  5244] By: jhi                                   on 2000/02/24  19:26:33
+        Log: Largefileness in Solaris doesn't require long longs;
+             use64bits enhancements; introduce usefull64bits.
+     Branch: cfgperl
+          ! Configure config_h.SH hints/aix.sh hints/hpux.sh
+          ! hints/irix_6.sh hints/solaris_2.sh
+     Branch: metaconfig
+          ! U/threads/archname.U
+     Branch: metaconfig/U/perl
+          ! use64bits.U
+____________________________________________________________________________
+[  5243] By: jhi                                   on 2000/02/24  18:40:25
+        Log: Tidy up the 64-bit (and socklen_t) type probing.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig
+          ! U/modified/d_longdbl.U U/modified/d_longlong.U
+     Branch: metaconfig/U/perl
+          + d_fpos64_t.U d_off64_t.U
+          - io64.U
+          ! d_int64_t.U d_socklen_t.U
+____________________________________________________________________________
+[  5242] By: jhi                                   on 2000/02/24  18:09:49
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> pod/perlop.pod
+____________________________________________________________________________
+[  5241] By: jhi                                   on 2000/02/24  18:00:49
+        Log: From: "Fifer, Eric" <EFifer@sanwaint.com>
+             To: "'perl5-porters@perl.org'" <perl5-porters@perl.org>
+             Subject: [PATCH 5.5.660] cygwin port
+             Date: Thu, 24 Feb 2000 17:15:28 -0000
+             Message-ID: <779F20BCCE5AD31186A50008C75D99791716E1@SILLDN_MAIL1>
+     Branch: cfgperl
+          + cygwin/cygwin.c
+          ! MANIFEST Makefile.SH README.cygwin cygwin/Makefile.SHs
+          ! hints/cygwin.sh perl.c t/lib/glob-basic.t t/op/stat.t
+____________________________________________________________________________
+[  5240] By: jhi                                   on 2000/02/24  17:53:12
+        Log: VMS patch from Peter Prymmer; use full_ar.
+     Branch: cfgperl
+          ! vms/subconfigure.com
+____________________________________________________________________________
+[  5239] By: jhi                                   on 2000/02/24  17:46:45
+        Log: MPE/ix patches from Mark Bixby.
+     Branch: cfgperl
+          ! pp_sys.c t/io/pipe.t t/lib/glob-basic.t t/lib/io_poll.t
+          ! t/lib/io_sock.t t/op/die_exit.t t/op/exec.t t/op/fork.t
+          ! t/op/stat.t
+____________________________________________________________________________
+[  5238] By: jhi                                   on 2000/02/24  17:13:22
+        Log: Get -lbind if available.  Add pointer to perldelta.pod/64-bit
+             support to t/op/numconvert.t.
+             
+             From: Lupe Christoph <lupe@lupe-christoph.de>
+             To: perl5-porters@perl.org
+             Subject: [ID 20000224.003] Not OK: perl v5.5.660 on i86pc-solaris 2.7
+             Date: Thu, 24 Feb 2000 11:54:50 +0100 (MET)
+             Message-Id: <200002241054.LAA06808@lupe-christoph.de>
+     Branch: cfgperl
+          ! Configure config_h.SH t/op/numconvert.t
+     Branch: metaconfig
+          ! U/modified/libs.U
+____________________________________________________________________________
+[  5237] By: jhi                                   on 2000/02/24  15:47:11
+        Log: Remove more cruft from IO.
+     Branch: cfgperl
+          ! ext/IO/IO.xs
+____________________________________________________________________________
+[  5236] By: jhi                                   on 2000/02/24  15:14:48
+        Log: From: Hugo <hv@crypt.compulink.co.uk>
+             To: perl5-porters@perl.org
+             Subject: [PATCH 5.5.660] double EXPORT_OK in h2xs
+             Date: Thu, 24 Feb 2000 13:24:10 +0000
+             Message-Id: <200002241324.NAA05900@crypt.compulink.co.uk>
+     Branch: cfgperl
+          ! utils/h2xs.PL
+____________________________________________________________________________
+[  5235] By: jhi                                   on 2000/02/24  15:12:40
+        Log: Some Windows setups do not have S_IRGRP, S_IWGRP, S_IXGRP,
+             S_IROTH, S_IWOTH, S_IXOTH.
+             
+             From: js@ddre.dk
+             To: perl5-porters@perl.org
+             Subject: [ID 20000224.004] Not OK: perl v5.5.660 on MSWin32-x86 4.0
+             Date: Thu, 24 Feb 2000 15:11:33 +0100
+             Message-Id: <2991B60B9F72D011811C0000F821BB4C983B0C@freja.ddre.dk>
+     Branch: cfgperl
+          ! perl.h
+____________________________________________________________________________
+[  5234] By: gsar                                  on 2000/02/24  03:39:17
+        Log: integrate cfgperl changes into mainline
+     Branch: perl
+          - lib/unicode/Eq/Latin1.pl lib/unicode/Eq/Unicode.pl
+          ! pod/perlop.pod
+         !> Configure MANIFEST Porting/Glossary Porting/config.sh
+         !> Porting/config_H config_h.SH configpm configure.com doio.c
+         !> ext/Fcntl/Fcntl.pm ext/IO/IO.xs ext/IO/lib/IO/Socket.pm
+         !> ext/Sys/Hostname/Hostname.xs hints/dec_osf.sh hints/irix_6.sh
+         !> lib/unicode/mktables.PL malloc.c myconfig.SH pp_sys.c
+         !> t/op/64bit.t vms/descrip_mms.template vms/subconfigure.com
+____________________________________________________________________________
+[  5233] By: jhi                                   on 2000/02/24  01:31:38
+        Log: VMS patch from Peter Prymmer.
+     Branch: cfgperl
+          ! vms/subconfigure.com
+____________________________________________________________________________
+[  5232] By: jhi                                   on 2000/02/24  01:15:03
+        Log: Detypo fpos64_t test.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig/U/perl
+          ! io64.U
+____________________________________________________________________________
+[  5231] By: jhi                                   on 2000/02/24  01:11:17
+        Log: miscut'n'paste in #5230.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig/U/perl
+          ! d_int64_t.U
+____________________________________________________________________________
+[  5230] By: jhi                                   on 2000/02/24  01:02:05
+        Log: The #5228 wasn't quite right + fix typos.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig
+          ! U/modified/d_longdbl.U U/modified/d_longlong.U
+     Branch: metaconfig/U/perl
+          ! d_int64_t.U d_socklen_t.U io64.U
+____________________________________________________________________________
+[  5229] By: jhi                                   on 2000/02/24  00:40:01
+        Log: Depickify the compiler (about unused and set but not used variables)
+     Branch: cfgperl
+          ! hints/irix_6.sh
+____________________________________________________________________________
+[  5228] By: jhi                                   on 2000/02/24  00:34:35
+        Log: Cosmetics.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig
+          ! U/modified/d_longdbl.U U/modified/d_longlong.U
+     Branch: metaconfig/U/perl
+          ! d_int64_t.U d_socklen_t.U
+____________________________________________________________________________
+[  5227] By: jhi                                   on 2000/02/24  00:17:34
+        Log: In IRIX <sys/mode.h> is something completely different.
+             
+             From: jarausch@numa1.igpm.rwth-aachen.de (Helmut Jarausch)
+             To: perl5-porters@perl.org
+             Subject: [ID 20000223.003] Not OK: perl v5.5.660 on IP26-irix 6.5
+             Date: Wed, 23 Feb 2000 10:55:08 +0100 (CST)
+             Message-Id: <200002230955.KAA89136@numa1.igpm.rwth-aachen.de>
+     Branch: cfgperl
+          ! hints/irix_6.sh
+____________________________________________________________________________
+[  5226] By: jhi                                   on 2000/02/23  20:39:28
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> pod/perldelta.pod pod/perlfunc.pod pod/perlop.pod
+         !> t/comp/require.t t/op/ver.t toke.c
+____________________________________________________________________________
+[  5225] By: jhi                                   on 2000/02/23  20:35:58
+        Log: From: Dominic Dunlop <domo@computer.org>
+             To: perl5-porters@perl.org
+             Cc: Gurusamy Sarathy <gsar@activestate.com>
+             Subject: [ID 20000223.008] [PATCH 5.5.660] squash malloc.c compile warnings
+             Date: Wed, 23 Feb 2000 21:23:44 +0100
+             Message-Id: <v04220800b4d9f1bcee1a@[212.24.193.51]>
+     Branch: cfgperl
+          ! malloc.c
+____________________________________________________________________________
+[  5224] By: jhi                                   on 2000/02/23  20:22:43
+        Log: From: Dan Sugalski <dan@sidhe.org>
+             To: perl5-porters@perl.org, vmsperl@perl.org
+             Subject: [PATCH 5.5.660]VMS build patches
+             Date: Wed, 23 Feb 2000 15:14:27 -0500
+             Message-Id: <4.3.0.20000223151302.01efa560@24.8.96.48>
+             
+             (the patch was mangled, had to be manually applied)
+     Branch: cfgperl
+          ! configure.com vms/descrip_mms.template vms/subconfigure.com
+____________________________________________________________________________
+[  5223] By: jhi                                   on 2000/02/23  19:54:04
+        Log: From: Dominic Dunlop <domo@computer.org>
+             To: perl5-porters@perl.org
+             Cc: Andy Dougherty <doughera@lafayette.edu>,
+             Gurusamy Sarathy <gsar@activestate.com>
+             Subject: [ID 20000223.007] [PATCH 5.5.660] $@ unsafe in Configure sed arguments
+             Date: Wed, 23 Feb 2000 20:41:54 +0100
+             Message-Id: <v04220800b4d9e48c51bb@[212.24.193.51]>
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig
+          ! U/modified/Oldconfig.U U/modified/libs.U
+     Branch: metaconfig/U/perl
+          ! dlsrc.U
+____________________________________________________________________________
+[  5222] By: jhi                                   on 2000/02/23  18:02:39
+        Log: Remove &IO::EINPROGRESS now that IO uses Errno anyway
+             (suggested by Graham Barr).
+     Branch: cfgperl
+          ! ext/IO/IO.xs ext/IO/lib/IO/Socket.pm
+____________________________________________________________________________
+[  5221] By: jhi                                   on 2000/02/23  16:00:29
+        Log: Streamline #5218 even more.
+     Branch: cfgperl
+          ! ext/IO/lib/IO/Socket.pm
+____________________________________________________________________________
+[  5220] By: gsar                                  on 2000/02/23  09:10:43
+        Log: per Larry's idea, parse 1.2.3 as v1.2.3; C<require 5.6.0> and
+             C<use 5.6.0> work as well; underscores are now permitted in v-strings
+     Branch: perl
+          ! pod/perldelta.pod pod/perlfunc.pod pod/perlop.pod
+          ! t/comp/require.t t/op/ver.t toke.c
+____________________________________________________________________________
+[  5219] By: jhi                                   on 2000/02/23  04:24:54
+        Log: Streamline #5218.
+     Branch: cfgperl
+          ! ext/IO/lib/IO/Socket.pm
+____________________________________________________________________________
+[  5218] By: jhi                                   on 2000/02/23  02:08:19
+        Log: Trying to connect to an already open socket may give EISCONN.
+     Branch: cfgperl
+          ! ext/IO/lib/IO/Socket.pm
+____________________________________________________________________________
+[  5217] By: jhi                                   on 2000/02/22  23:54:51
+        Log: Fix prototype conflicts with POSIX.pm.
+     Branch: cfgperl
+          ! ext/Fcntl/Fcntl.pm
+____________________________________________________________________________
+[  5216] By: jhi                                   on 2000/02/22  22:27:19
+        Log: See http://www.unicode.org/unicode/reports/tr15/
+             for in-depth description of the problem.
+     Branch: cfgperl
+          - lib/unicode/Eq/Latin1.pl lib/unicode/Eq/Unicode.pl
+          ! MANIFEST lib/unicode/mktables.PL
+____________________________________________________________________________
+[  5215] By: jhi                                   on 2000/02/22  22:11:17
+        Log: Add uselongdouble, regroup the use* more logically.
+     Branch: cfgperl
+          ! myconfig.SH
+____________________________________________________________________________
+[  5214] By: jhi                                   on 2000/02/22  22:04:43
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> malloc.c perl.c pod/perldelta.pod pod/perldiag.pod
+         !> pod/perlpod.pod pod/perlrun.pod toke.c utils/perldoc.PL
+____________________________________________________________________________
+[  5213] By: jhi                                   on 2000/02/22  22:03:26
+        Log: Add socklen_t probe; Configure maintenance.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH doio.c ext/Sys/Hostname/Hostname.xs pp_sys.c
+     Branch: metaconfig
+          ! U/a_dvisory/quadtype.U U/compline/alignbytes.U U/modified/cc.U
+          ! U/modified/libs.U
+     Branch: metaconfig/U/perl
+          + d_int64_t.U d_socklen_t.U
+          - d_int64t.U
+          ! i_sysutsname.U
+____________________________________________________________________________
+[  5212] By: gsar                                  on 2000/02/22  21:46:45
+        Log: make Perl's malloc work for allocations over 2GB (from Ilya
+             Zakharevich)
+     Branch: perl
+          ! malloc.c
+____________________________________________________________________________
+[  5211] By: gsar                                  on 2000/02/22  19:51:47
+        Log: add -W and -X to -h output; fix other pod omissions
+     Branch: perl
+          ! perl.c pod/perlrun.pod
+____________________________________________________________________________
+[  5210] By: gsar                                  on 2000/02/22  19:51:13
+        Log: describe C<< ... >> in perlpod.pod (from Brad Appleton)
+     Branch: perl
+          ! pod/perlpod.pod
+____________________________________________________________________________
+[  5209] By: jhi                                   on 2000/02/22  19:40:43
+        Log: The subtests 28 and 31 were wrong.  Tightened also the similar
+             tests nearby.
+     Branch: cfgperl
+          ! t/op/64bit.t
+____________________________________________________________________________
+[  5208] By: gsar                                  on 2000/02/22  19:13:44
+        Log: s/Activeware/ActiveState/
+     Branch: perl
+          ! pod/perlrun.pod
+____________________________________________________________________________
+[  5207] By: jhi                                   on 2000/02/22  18:38:29
+        Log: Perl version nit spotted by Spider Boardman.
+     Branch: cfgperl
+          ! configpm
+____________________________________________________________________________
+[  5206] By: gsar                                  on 2000/02/22  17:50:44
+        Log: change#5205 wasn't quite right; SvCUR() should be SvLEN()
+     Branch: perl
+          ! toke.c
+____________________________________________________________________________
+[  5205] By: gsar                                  on 2000/02/22  17:36:26
+        Log: fix memory overrun due to off-by-one in change#5192
+     Branch: perl
+          ! toke.c
+____________________________________________________________________________
+[  5204] By: gsar                                  on 2000/02/22  17:10:39
+        Log: sundry typos and such
+     Branch: perl
+          ! pod/perldelta.pod pod/perldiag.pod utils/perldoc.PL
+____________________________________________________________________________
+[  5203] By: jhi                                   on 2000/02/22  17:10:22
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> (integrate 56 files)
+____________________________________________________________________________
+[  5202] By: gsar                                  on 2000/02/22  16:48:58
+        Log: remove vestiges of older attribute syntax
+     Branch: perl
+          ! ext/attrs/attrs.pm pod/Win32.pod pod/perldelta.pod
+          ! pod/perlop.pod pod/perlthrtut.pod pod/perlvar.pod
+____________________________________________________________________________
+[  5201] By: jhi                                   on 2000/02/22  14:39:56
+        Log: Configure nits spotted by Spider Boardman.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig
+          ! U/modified/libs.U
+     Branch: metaconfig/U/perl
+          ! fpossize.U
+____________________________________________________________________________
+[  5200] By: jhi                                   on 2000/02/22  14:31:21
+        Log: Tru64 V5.0 patches from Spider Boardman.
+     Branch: cfgperl
+          ! hints/dec_osf.sh
+
+----------------
+Version v5.5.660
+----------------
+
+____________________________________________________________________________
+[  5199] By: gsar                                  on 2000/02/22  11:29:28
+        Log: beta2
+     Branch: perl
+          ! Changes
+____________________________________________________________________________
+[  5198] By: gsar                                  on 2000/02/22  10:45:54
+        Log: PodParser-1.093 update (from Brad Appleton's site)
+     Branch: perl
+          ! lib/Pod/Checker.pm lib/Pod/Find.pm lib/Pod/InputObjects.pm
+          ! lib/Pod/ParseUtils.pm lib/Pod/Parser.pm lib/Pod/Select.pm
+          ! lib/Pod/Usage.pm t/pod/poderrs.t t/pod/poderrs.xr
+          ! t/pod/special_seqs.t t/pod/special_seqs.xr
+____________________________________________________________________________
+[  5197] By: gsar                                  on 2000/02/22  10:24:13
+        Log: integrate cfgperl contents into mainline, update Changes
+     Branch: perl
+          ! Changes pod/perlhist.pod
+         !> Configure Porting/Glossary Porting/config.sh Porting/config_H
+         !> config_h.SH hints/solaris_2.sh malloc.c perl.h
+         !> pod/perldelta.pod
+____________________________________________________________________________
+[  5196] By: gsar                                  on 2000/02/22  10:10:36
+        Log: dos-djgpp updates (from Laszlo Molnar <laszlo.molnar@eth.ericsson.se>)
+     Branch: perl
+          ! djgpp/config.over djgpp/configure.bat djgpp/djgppsed.sh
+          ! t/lib/glob-basic.t t/lib/glob-case.t t/lib/glob-global.t
+          ! t/lib/glob-taint.t t/lib/io_unix.t
+____________________________________________________________________________
+[  5195] By: gsar                                  on 2000/02/22  10:01:49
+        Log: s/undef/NO_INIT/g in change#5183
+     Branch: perl
+          ! lib/ExtUtils/xsubpp pod/perlxs.pod
+____________________________________________________________________________
+[  5194] By: gsar                                  on 2000/02/22  09:44:07
+        Log: perlipc bug (spotted by Ben Low)
+     Branch: perl
+          ! pod/perlipc.pod
+____________________________________________________________________________
+[  5193] By: gsar                                  on 2000/02/22  09:38:58
+        Log: EPOC port update (from Olaf Flebbe <O.Flebbe@science-computing.de>)
+     Branch: perl
+          ! README.epoc epoc/config.sh epoc/createpkg.pl perl.c
+____________________________________________________________________________
+[  5192] By: gsar                                  on 2000/02/22  09:26:06
+        Log: improvements for high-bit text literals (from Gisle Aas)
+     Branch: perl
+          ! t/pragma/warn/doop t/pragma/warn/pp t/pragma/warn/sv
+          ! t/pragma/warn/toke t/pragma/warn/utf8 toke.c
+____________________________________________________________________________
+[  5191] By: gsar                                  on 2000/02/22  07:35:47
+        Log: allow C<print v10>, $h{v13.10} etc.
+     Branch: perl
+          ! t/op/ver.t toke.c
+____________________________________________________________________________
+[  5190] By: gsar                                  on 2000/02/22  05:35:27
+        Log: adjust for lost fp precision in require version check
+     Branch: perl
+          ! pp_ctl.c t/comp/require.t
+____________________________________________________________________________
+[  5189] By: jhi                                   on 2000/02/22  05:14:35
+        Log: Check the alignment of long doubles if they are to be used;
+             regen Configure.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH
+     Branch: metaconfig
+          ! U/compline/alignbytes.U
+____________________________________________________________________________
+[  5188] By: gsar                                  on 2000/02/22  04:45:57
+        Log: use same treatment for EINVAL as for ETIMEDOUT
+     Branch: perl
+          ! ext/IO/lib/IO/Socket/INET.pm
+____________________________________________________________________________
+[  5187] By: gsar                                  on 2000/02/21  23:15:12
+        Log: type mismatch
+     Branch: perl
+          ! sv.c
+____________________________________________________________________________
+[  5186] By: gsar                                  on 2000/02/21  21:10:26
+        Log: remove dual-valueness of v-strings (i.e., they are pure strings
+             now); avoid the word "tuple" to describe strings represented as
+             character ordinals; usurp $PERL_VERSION for $^V as suggested by
+             Larry, deprecate $] ; adjust the documentation and testsuite
+             accordingly
+     Branch: perl
+          ! MANIFEST lib/English.pm op.c pod/perldelta.pod
+          ! pod/perlfunc.pod pod/perlop.pod pod/perlvar.pod
+          ! t/comp/require.t t/op/ver.t toke.c
+____________________________________________________________________________
+[  5185] By: jhi                                   on 2000/02/21  20:36:05
+        Log: detypo
+     Branch: cfgperl
+          ! perl.h
+____________________________________________________________________________
+[  5184] By: gsar                                  on 2000/02/21  18:37:38
+        Log: clarify "use Module VERSION LIST" (from Robin Barker)
+     Branch: perl
+          ! pod/perlfunc.pod
+____________________________________________________________________________
+[  5183] By: gsar                                  on 2000/02/21  18:31:42
+        Log: allow optional XSUB parameters without being forced to use a
+             default (from Hugo van der Sanden)
+     Branch: perl
+          ! lib/ExtUtils/xsubpp pod/perlfunc.pod pod/perlxs.pod
+____________________________________________________________________________
+[  5182] By: jhi                                   on 2000/02/21  18:22:47
+        Log: Add Solaris LP64 notes. 
+     Branch: cfgperl
+          ! hints/solaris_2.sh
+____________________________________________________________________________
+[  5181] By: gsar                                  on 2000/02/21  16:53:39
+        Log: generalize "%v" format into a flag for any integral format type:
+             "%vd", "%v#o", "%*vX", etc are allowed
+     Branch: perl
+          ! perl.c pod/perldelta.pod pod/perlfunc.pod sv.c t/op/ver.t
+          ! utils/perlbug.PL
+____________________________________________________________________________
+[  5180] By: gsar                                  on 2000/02/21  07:11:00
+        Log: detypo
+     Branch: perl
+          ! ext/B/B.xs
+____________________________________________________________________________
+[  5179] By: gsar                                  on 2000/02/21  07:08:38
+        Log: undo accidental delete
+     Branch: perl
+          ! ext/B/B.pm ext/B/B.xs
+____________________________________________________________________________
+[  5178] By: gsar                                  on 2000/02/21  07:02:16
+        Log: get Compiler "working" under useithreads
+     Branch: perl
+          ! ext/B/B.pm ext/B/B.xs ext/B/B/C.pm ext/B/B/CC.pm
+          ! ext/B/B/Deparse.pm ext/B/B/Xref.pm
+____________________________________________________________________________
+[  5177] By: jhi                                   on 2000/02/21  03:16:24
+        Log: Thou shalt not printf longs with %d.
+     Branch: cfgperl
+          ! malloc.c
+____________________________________________________________________________
+[  5176] By: jhi                                   on 2000/02/21  01:37:35
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         +> t/pragma/warn/9enabled
+         !> (integrate 63 files)
+____________________________________________________________________________
+[  5175] By: gsar                                  on 2000/02/21  00:25:00
+        Log: misplaced braces
+     Branch: perl
+          ! malloc.c
+____________________________________________________________________________
+[  5174] By: gsar                                  on 2000/02/21  00:09:16
+        Log: more malloc.c tweaks for change#5070
+     Branch: perl
+          ! malloc.c
+____________________________________________________________________________
+[  5173] By: gsar                                  on 2000/02/21  00:01:17
+        Log: malloc.c fixups in change#5170 need to fetch thx pointer
+     Branch: perl
+          ! malloc.c
+____________________________________________________________________________
+[  5172] By: gsar                                  on 2000/02/20  23:52:39
+        Log: missing file in change#5170
+     Branch: perl
+          + t/pragma/warn/9enabled
+____________________________________________________________________________
+[  5171] By: gsar                                  on 2000/02/20  23:49:17
+        Log: skip conditionally defined symbols in change#5162
+     Branch: perl
+          ! makedef.pl
+____________________________________________________________________________
+[  5170] By: gsar                                  on 2000/02/20  22:58:09
+        Log: lexical warnings update, ability to inspect bitmask in calling
+             scope, among other things (from Paul Marquess)
+     Branch: perl
+          ! MANIFEST lib/warnings.pm malloc.c mg.c op.c pod/perldiag.pod
+          ! pod/perlfunc.pod pod/perllexwarn.pod pp.c pp_ctl.c pp_hot.c
+          ! regcomp.c regexec.c sv.c t/op/substr.t t/pragma/warn/op
+          ! t/pragma/warn/pp t/pragma/warn/pp_ctl t/pragma/warn/pp_hot
+          ! t/pragma/warn/regcomp t/pragma/warn/regexec t/pragma/warn/sv
+          ! t/pragma/warn/toke toke.c warnings.h warnings.pl
+____________________________________________________________________________
+[  5169] By: gsar                                  on 2000/02/20  22:22:28
+        Log: windows fixes for virtualizing child std{in,out,err} handles,
+             attempts to lock uninitialized critical section in files that
+             were never explicitly opened (from Doug Lankshear)
+     Branch: perl
+          ! iperlsys.h win32/perlhost.h win32/win32.c win32/win32.h
+____________________________________________________________________________
+[  5168] By: gsar                                  on 2000/02/20  20:19:11
+        Log: update Changes, credits
+     Branch: perl
+          ! Changes
+____________________________________________________________________________
+[  5167] By: gsar                                  on 2000/02/20  18:54:27
+        Log: avoid reading out-of-bounds memory when matching against reference
+     Branch: perl
+          ! regexec.c
+____________________________________________________________________________
+[  5166] By: gsar                                  on 2000/02/20  17:59:41
+        Log: byte mode chop() should clear UTF8 (from Gisle Aas)
+     Branch: perl
+          ! doop.c
+____________________________________________________________________________
+[  5165] By: gsar                                  on 2000/02/20  17:57:08
+        Log: test fix needed by change#5164
+     Branch: perl
+          ! t/pragma/warn/toke
+____________________________________________________________________________
+[  5164] By: gsar                                  on 2000/02/20  17:50:38
+        Log: default mkdir() mode argument to 0777
+     Branch: perl
+          ! opcode.h opcode.pl pod/perldiag.pod pod/perlfunc.pod pp_sys.c
+          ! t/op/mkdir.t toke.c
+____________________________________________________________________________
+[  5163] By: gsar                                  on 2000/02/20  16:34:33
+        Log: glob() takes one or no user arguments and a non-user-visible second
+             hidden argument, fix its prototype-checking accordingly
+     Branch: perl
+          ! op.c opcode.h opcode.pl
+____________________________________________________________________________
+[  5162] By: gsar                                  on 2000/02/20  16:07:38
+        Log: make change#3386 a build-time option (avoids problems due to
+             perl_run() longjmping out)
+     Branch: perl
+          ! Todo-5.6 embed.h embed.pl embedvar.h intrpvar.h objXSUB.h
+          ! perl.c perl.h perlapi.c perlvars.h pp_ctl.c proto.h scope.c
+          ! scope.h sv.c thrdvar.h util.c
+____________________________________________________________________________
+[  5161] By: gsar                                  on 2000/02/20  12:13:37
+        Log: IO::Socket now sets $!, avoids eval/die (patch from Graham Barr
+             modified to use Errno more portably)
+     Branch: perl
+          ! ext/IO/lib/IO/Socket.pm ext/IO/lib/IO/Socket/INET.pm
+____________________________________________________________________________
+[  5160] By: gsar                                  on 2000/02/20  11:53:28
+        Log: mention portability caveat about C<use Errno 'EFOO'>
+     Branch: perl
+          ! ext/Errno/Errno_pm.PL
+____________________________________________________________________________
+[  5159] By: gsar                                  on 2000/02/20  11:14:36
+        Log: revise docs on @+ and @- (from Tom "Camel" Christiansen)
+     Branch: perl
+          ! pod/perlvar.pod
+____________________________________________________________________________
+[  5158] By: gsar                                  on 2000/02/20  10:53:49
+        Log: README.vms and related updates (from Peter Prymmer <pvhp@best.com>)
+     Branch: perl
+          ! MANIFEST Makefile.SH README.vms pod/perl5005delta.pod
+          ! pod/perldelta.pod pod/perlport.pod pod/podchecker.PL
+          ! vms/descrip_mms.template
+____________________________________________________________________________
+[  5157] By: jhi                                   on 2000/02/19  20:29:26
+        Log: Be explicit about what ops work with bt vectors.
+             (And implicit about which don't.)
+     Branch: cfgperl
+          ! pod/perldelta.pod
+____________________________________________________________________________
+[  5156] By: jhi                                   on 2000/02/19  18:38:14
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         +> lib/bytes.pm lib/bytes_heavy.pl
+          - lib/byte.pm lib/byte_heavy.pl
+         !> (integrate 61 files)
+____________________________________________________________________________
+[  5155] By: gsar                                  on 2000/02/19  17:57:39
+        Log: char vs U8 warnings
+     Branch: perl
+          ! sv.c
+____________________________________________________________________________
+[  5154] By: gsar                                  on 2000/02/19  17:44:56
+        Log: remove outdated caveat about C<while ($k = each %foo)> (from
+             Hugo van der Sanden)
+     Branch: perl
+          ! pod/perlfunc.pod
+____________________________________________________________________________
+[  5153] By: gsar                                  on 2000/02/19  17:41:41
+        Log: tests, doc tweak (from Gisle Aas)
+     Branch: perl
+          ! pod/perlfaq9.pod t/op/ord.t
+____________________________________________________________________________
+[  5152] By: gsar                                  on 2000/02/19  17:35:50
+        Log: document behavior of splice(@ary) (from Gisle Aas)
+     Branch: perl
+          ! pod/perlfunc.pod
+____________________________________________________________________________
+[  5151] By: gsar                                  on 2000/02/19  17:33:59
+        Log: fix bug in backtracking optimizer (from Makoto Ishisone
+             <ishisone@sra.co.jp>)
+     Branch: perl
+          ! regexec.c t/op/pat.t
+____________________________________________________________________________
+[  5150] By: gsar                                  on 2000/02/19  17:33:05
+        Log: more B fixups to cope with empty GVs (these can only happen in pads)
+     Branch: perl
+          ! ext/B/B.pm ext/B/B.xs ext/B/B/C.pm op.c
+____________________________________________________________________________
+[  5149] By: gsar                                  on 2000/02/19  17:32:03
+        Log: avoid compiler warnings
+     Branch: perl
+          ! malloc.c perl.h
+____________________________________________________________________________
+[  5148] By: gsar                                  on 2000/02/19  17:18:09
+        Log: document 'lvalue' attribute (from Simon Cozens <simon@brecon.co.uk>)
+     Branch: perl
+          ! lib/attributes.pm
+____________________________________________________________________________
+[  5147] By: gsar                                  on 2000/02/19  17:15:34
+        Log: avoid failing on $!{ENOTHERE} (they can always use C<exists $!{NOTHERE}>
+             for that)
+     Branch: perl
+          ! ext/Errno/Errno_pm.PL
+____________________________________________________________________________
+[  5146] By: gsar                                  on 2000/02/19  16:18:46
+        Log: integrate cfgperl contents into mainline
+     Branch: perl
+         !> Configure config_h.SH ext/Fcntl/Fcntl.pm ext/Fcntl/Fcntl.xs
+         !> ext/SDBM_File/sdbm/sdbm.c ext/Socket/Socket.pm
+         !> ext/Socket/Socket.xs hints/hpux.sh perl.h pod/perldelta.pod
+         !> pod/perlfunc.pod pod/perlopentut.pod t/lib/syslfs.t
+____________________________________________________________________________
+[  5145] By: gsar                                  on 2000/02/19  16:10:37
+        Log: POSIX::strftime gets the date wrong (from John Tobey
+             <jtobey@epsilondev.com>)
+     Branch: perl
+          ! ext/POSIX/POSIX.xs t/lib/posix.t
+____________________________________________________________________________
+[  5144] By: gsar                                  on 2000/02/19  16:02:40
+        Log: don't blindly set bool=char on linux (from Andy Dougherty)
+     Branch: perl
+          ! handy.h hints/linux.sh x2p/a2p.h
+____________________________________________________________________________
+[  5143] By: gsar                                  on 2000/02/19  15:54:04
+        Log: some rearrangement of the includes for easier "microperl" build;
+             add PERL_MICRO guards supplied by Simon Cozens <simon@brecon.co.uk>
+     Branch: perl
+          ! doio.c perl.c perl.h pp_hot.c pp_sys.c toke.c util.c
+____________________________________________________________________________
+[  5142] By: gsar                                  on 2000/02/19  15:22:17
+        Log: fixes for Pod::Html issues (from Wolfgang Laun
+             <wolfgang.laun@chello.at>)
+     Branch: perl
+          ! lib/Pod/Html.pm
+____________________________________________________________________________
+[  5141] By: gsar                                  on 2000/02/19  08:27:29
+        Log: grammos (spotted by Tom Christiansen)
+     Branch: perl
+          ! pod/perlfunc.pod
+____________________________________________________________________________
+[  5140] By: gsar                                  on 2000/02/19  08:17:04
+        Log: various xsubpp enhancements that make it easier to use with
+             C::Scan (from Ilya Zakharevich)
+             
+             TODO: still needs documentation
+     Branch: perl
+          ! lib/ExtUtils/xsubpp
+____________________________________________________________________________
+[  5139] By: gsar                                  on 2000/02/19  07:55:18
+        Log: s/croak/Perl_croak/
+     Branch: perl
+          ! sv.c
+____________________________________________________________________________
+[  5138] By: gsar                                  on 2000/02/19  07:51:39
+        Log: make comparisons promote to utf8 as necessary (from Gisle Aas)
+     Branch: perl
+          ! Todo-5.6 embed.h embed.pl global.sym objXSUB.h perlapi.c
+          ! pp_hot.c proto.h sv.c toke.c
+____________________________________________________________________________
+[  5137] By: gsar                                  on 2000/02/19  07:42:12
+        Log: set close-on-exec flag on sockets too, like we do for files
+             and pipes
+     Branch: perl
+          ! pod/perldelta.pod pod/perlfunc.pod pod/perlvar.pod pp_sys.c
+____________________________________________________________________________
+[  5136] By: gsar                                  on 2000/02/19  07:23:48
+        Log: allocate sufficient buffer sizes for 64-bit wide utf8 characters
+             permitted by change#5011 (from Gisle Aas)
+     Branch: perl
+          ! pp.c utf8.c utf8.h
+____________________________________________________________________________
+[  5135] By: gsar                                  on 2000/02/19  06:53:13
+        Log: s/WARN_PRECEDENCE/WARN_BAREWORD/, vide change#5131
+     Branch: perl
+          ! lib/warnings.pm op.c warnings.h warnings.pl
+____________________________________________________________________________
+[  5134] By: gsar                                  on 2000/02/19  06:36:46
+        Log: s/byte/bytes/g remnants
+     Branch: perl
+          ! lib/bytes.pm lib/bytes_heavy.pl
+____________________________________________________________________________
+[  5133] By: gsar                                  on 2000/02/19  06:33:49
+        Log: rename byte:: to bytes::
+     Branch: perl
+         +> lib/bytes.pm lib/bytes_heavy.pl
+          - lib/byte.pm lib/byte_heavy.pl
+          ! MANIFEST lib/charnames.pm lib/utf8.pm pod/perldelta.pod
+          ! pod/perltoc.pod pod/perlunicode.pod pod/perlvar.pod
+          ! t/lib/charnames.t t/op/ver.t
+____________________________________________________________________________
+[  5132] By: gsar                                  on 2000/02/19  05:58:42
+        Log: English names for $^R and $^S
+     Branch: perl
+          ! lib/English.pm pod/perlvar.pod
+____________________________________________________________________________
+[  5131] By: gsar                                  on 2000/02/19  05:44:20
+        Log: rename "Probable precendence problem" diagnostic to "Bareword found
+             in conditional" to better reflect the class of error (as suggested
+             by Larry)
+     Branch: perl
+          ! op.c pod/perldelta.pod pod/perldiag.pod t/pragma/warn/op
+____________________________________________________________________________
+[  5130] By: gsar                                  on 2000/02/19  05:43:10
+        Log: fix outdated info about PerlClinic and the bug-tracking system
+     Branch: perl
+          ! pod/perlfaq2.pod pod/perltodo.pod
+____________________________________________________________________________
+[  5129] By: gsar                                  on 2000/02/19  04:14:19
+        Log: some fixes for mingw32/GCC (SETERRNO() still appears to
+             trash memory)
+     Branch: perl
+          ! README.win32 t/lib/safe2.t t/op/mkdir.t win32/makefile.mk
+          ! win32/win32.h
+____________________________________________________________________________
+[  5128] By: gsar                                  on 2000/02/18  06:55:33
+        Log: avoid $@-clearing sideeffect of require in Carp
+     Branch: perl
+          ! lib/Carp.pm
+____________________________________________________________________________
+[  5127] By: gsar                                  on 2000/02/18  04:58:26
+        Log: stronger testcase for change#5126
+     Branch: perl
+          ! t/op/pat.t
+____________________________________________________________________________
+[  5126] By: gsar                                  on 2000/02/18  04:44:28
+        Log: make /\S/ match the same things /[\S]/ matches; likewise for
+             \D (from Rick Delaney <rick@consumercontact.com>)
+     Branch: perl
+          ! regexec.c t/op/pat.t
+____________________________________________________________________________
+[  5125] By: gsar                                  on 2000/02/18  03:57:43
+        Log: Compiler fixups from Jan Dubois
+     Branch: perl
+          ! ext/B/B.pm ext/B/B.xs ext/B/B/C.pm utils/perlcc.PL
+____________________________________________________________________________
+[  5124] By: jhi                                   on 2000/02/17  22:09:09
+        Log: Take out the -Wl,-z as we have survice so far without.
+     Branch: cfgperl
+          ! hints/hpux.sh
+____________________________________________________________________________
+[  5123] By: jhi                                   on 2000/02/17  18:40:17
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> dump.c ext/ODBM_File/ODBM_File.xs t/op/split.t
+____________________________________________________________________________
+[  5122] By: gsar                                  on 2000/02/17  18:01:14
+        Log: fix test that depends on op_dump() output
+     Branch: perl
+          ! t/op/split.t
+____________________________________________________________________________
+[  5121] By: gsar                                  on 2000/02/17  17:55:18
+        Log: op_dump() tweak
+     Branch: perl
+          ! dump.c
+____________________________________________________________________________
+[  5120] By: jhi                                   on 2000/02/16  23:11:04
+        Log: Regularize the use* questions, and replace
+             "Configure *must* be run with -Duse..." with.
+             "can be run".
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig
+          ! U/threads/usethreads.U
+     Branch: metaconfig/U/perl
+          ! use64bits.U uselfs.U uselongdbl.U uselonglong.U
+          ! usemultiplicity.U useperlio.U usesocks.U
+____________________________________________________________________________
+[  5119] By: jhi                                   on 2000/02/16  22:29:11
+        Log: HP-UX 64-bitness/largefile fixes.
+     Branch: cfgperl
+          ! Configure config_h.SH ext/SDBM_File/sdbm/sdbm.c hints/hpux.sh
+          ! perl.h
+     Branch: metaconfig
+          ! U/modified/cc.U U/modified/libpth.U U/modified/libs.U
+     Branch: metaconfig/U/perl
+          ! Extensions.U
+____________________________________________________________________________
+[  5118] By: jhi                                   on 2000/02/16  19:47:51
+        Log: Fcntl: more O_ constants, move SEEK_ to @EXPORT_OK
+             (tag :seek), add S_I constants (and functions) (tag :mode);
+             refer only to the SEEK_ of Fcntl, not the ones from
+             POSIX or IO::; add SHUT_ to Socket; get trigonometric
+             functions from Math::Trig instead of POSIX.
+     Branch: cfgperl
+          ! ext/Fcntl/Fcntl.pm ext/Fcntl/Fcntl.xs ext/Socket/Socket.pm
+          ! ext/Socket/Socket.xs perl.h pod/perldelta.pod pod/perlfunc.pod
+          ! pod/perlopentut.pod t/lib/syslfs.t
+     Branch: metaconfig/U/perl
+          + i_sysmode.U
+____________________________________________________________________________
+[  5117] By: gsar                                  on 2000/02/16  06:39:06
+        Log: avoid warnings due to redefined NULL
+     Branch: perl
+          ! ext/ODBM_File/ODBM_File.xs
+____________________________________________________________________________
+[  5116] By: gsar                                  on 2000/02/16  00:10:25
+        Log: integrate cfgperl changes into mainline
+     Branch: perl
+         !> Configure Makefile.SH Porting/Glossary Porting/config.sh
+         !> Porting/config_H config_h.SH ext/Sys/Hostname/Hostname.xs
+         !> ext/Sys/Syslog/Syslog.xs hints/aix.sh hints/hpux.sh
+         !> lib/ExtUtils/MM_Unix.pm lib/ExtUtils/MakeMaker.pm myconfig.SH
+____________________________________________________________________________
+[  5115] By: jhi                                   on 2000/02/15  23:11:55
+        Log: Probe for <sys/utsname.h>.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH ext/Sys/Hostname/Hostname.xs
+     Branch: metaconfig/U/perl
+          + i_sysutsname.U
+____________________________________________________________________________
+[  5114] By: jhi                                   on 2000/02/15  22:59:59
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         +> ext/Sys/Hostname/Hostname.pm ext/Sys/Hostname/Hostname.xs
+         +> ext/Sys/Hostname/Makefile.PL
+          - lib/Sys/Hostname.pm
+         !> (integrate 41 files)
+____________________________________________________________________________
+[  5113] By: gsar                                  on 2000/02/15  21:22:18
+        Log: update Changes, patchlevel
+     Branch: perl
+          ! Changes patchlevel.h win32/Makefile win32/config_H.bc
+          ! win32/config_H.gc win32/config_H.vc win32/makefile.mk
+____________________________________________________________________________
+[  5112] By: gsar                                  on 2000/02/15  20:57:12
+        Log: fix change#5104 under useithreads
+     Branch: perl
+          ! op.c
+____________________________________________________________________________
+[  5111] By: gsar                                  on 2000/02/15  20:45:10
+        Log: export list tweak needed by change#5103
+     Branch: perl
+          ! makedef.pl
+____________________________________________________________________________
+[  5110] By: gsar                                  on 2000/02/15  19:32:56
+        Log: add XS version of Sys::Hostname (from Greg Bacon
+             <gbacon@itsc.uah.edu>)
+     Branch: perl
+          + ext/Sys/Hostname/Hostname.pm ext/Sys/Hostname/Hostname.xs
+          + ext/Sys/Hostname/Makefile.PL
+          - lib/Sys/Hostname.pm
+          ! MANIFEST ext/DynaLoader/Makefile.PL ext/Sys/Syslog/Makefile.PL
+          ! pod/perldelta.pod t/lib/hostname.t win32/Makefile
+          ! win32/makefile.mk
+____________________________________________________________________________
+[  5109] By: gsar                                  on 2000/02/15  18:35:28
+        Log: UNIVERSAL::can and UNIVERSAL::isa should return undef when
+             given undefined values (from Graham Barr <gbarr@pobox.com>)
+     Branch: perl
+          ! universal.c
+____________________________________________________________________________
+[  5108] By: gsar                                  on 2000/02/15  18:25:05
+        Log: avoid accidental #line directives (from Rick Delaney
+             <rick@consumercontact.com>)
+     Branch: perl
+          ! pod/perlsyn.pod toke.c
+____________________________________________________________________________
+[  5107] By: gsar                                  on 2000/02/15  18:04:31
+        Log: locale guards needed (from Simon Cozens <simon@brecon.co.uk>)
+     Branch: perl
+          ! perl.c
+____________________________________________________________________________
+[  5106] By: gsar                                  on 2000/02/15  18:02:17
+        Log: incorrect docs about delete() (spotted by Martyn Pearce
+             <martyn@inpharmatica.co.uk>)
+     Branch: perl
+          ! pod/perldelta.pod pod/perlfunc.pod
+____________________________________________________________________________
+[  5105] By: gsar                                  on 2000/02/15  17:43:27
+        Log: s/use vars/our/ (from Gisle Aas)
+     Branch: perl
+          ! bytecode.pl
+____________________________________________________________________________
+[  5104] By: gsar                                  on 2000/02/15  17:42:06
+        Log: optimize pseudohash slice in array slice at compile time (from
+             John Tobey <jtobey@john-edwin-tobey.org>)
+     Branch: perl
+          ! op.c t/lib/fields.t
+____________________________________________________________________________
+[  5103] By: gsar                                  on 2000/02/15  17:18:12
+        Log: provide malloc stats via get_mstats() (from Ilya Zakharevich)
+     Branch: perl
+          ! embed.h embed.pl global.sym makedef.pl malloc.c objXSUB.h
+          ! perl.h perlapi.c proto.h vos/vos_dummies.c
+____________________________________________________________________________
+[  5102] By: gsar                                  on 2000/02/15  17:05:12
+        Log: doc patches from Rick Delaney and Chris Nandor; update Todo-5.6
+     Branch: perl
+          ! Todo-5.6 pod/perldata.pod pod/perlport.pod
+____________________________________________________________________________
+[  5101] By: gsar                                  on 2000/02/15  17:02:51
+        Log: fix regen_headers target to make all the autogenerated files
+             writable first
+     Branch: perl
+          ! Makefile.SH
+____________________________________________________________________________
+[  5100] By: gsar                                  on 2000/02/15  16:41:53
+        Log: fix misoptimization of C<my($x,$y); $x = $y = 1 + $z;> (from
+             Ilya Zakharevich)
+     Branch: perl
+          ! op.c t/op/lex_assign.t
+____________________________________________________________________________
+[  5099] By: gsar                                  on 2000/02/15  16:17:36
+        Log: more complete File::Spec support for Mac and VMS, tests (from
+             Barrie Slaymaker <barries@slaysys.com>)
+     Branch: perl
+          ! lib/File/Spec/Mac.pm lib/File/Spec/Unix.pm
+          ! lib/File/Spec/VMS.pm lib/File/Spec/Win32.pm t/lib/filespec.t
+____________________________________________________________________________
+[  5098] By: gsar                                  on 2000/02/15  16:10:46
+        Log: fix incompatibility with bison generated parser (from
+             Ignasi Roca <ignasi.roca@fujitsu.siemens.es>)
+     Branch: perl
+          ! toke.c
+____________________________________________________________________________
+[  5097] By: gsar                                  on 2000/02/15  16:07:17
+        Log: propagate st_mode bits to group/other for Borland build
+             (from Vadim Konovalov <vkonovalov@lucent.com>)
+     Branch: perl
+          ! win32/win32.c
+____________________________________________________________________________
+[  5096] By: jhi                                   on 2000/02/15  14:22:23
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> win32/Makefile win32/bin/exetype.pl win32/makefile.mk
+____________________________________________________________________________
+[  5095] By: jhi                                   on 2000/02/15  14:19:22
+        Log: cc_r can be in different places (/usr/ibmcxx/bin or /usr/bin),
+             easier just to drop the paranoid test.
+     Branch: cfgperl
+          ! hints/aix.sh
+____________________________________________________________________________
+[  5094] By: gsar                                  on 2000/02/15  05:42:17
+        Log: update exetype.pl tool
+     Branch: perl
+          ! win32/Makefile win32/bin/exetype.pl win32/makefile.mk
+____________________________________________________________________________
+[  5093] By: jhi                                   on 2000/02/15  05:24:02
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> Porting/pumpkin.pod embed.h embed.pl ext/DB_File/DB_File.xs
+         !> ext/GDBM_File/GDBM_File.xs ext/NDBM_File/NDBM_File.xs
+         !> ext/ODBM_File/ODBM_File.xs ext/SDBM_File/SDBM_File.xs hv.c
+         !> perl.c proto.h sv.c t/op/ord.t t/pragma/warnings.t
+____________________________________________________________________________
+[  5092] By: jhi                                   on 2000/02/15  05:22:09
+        Log: Unroll the libs scan thanks to HP-UX.
+     Branch: cfgperl
+          ! Configure config_h.SH hints/hpux.sh
+     Branch: metaconfig
+          ! U/modified/libpth.U U/modified/libs.U
+     Branch: metaconfig/U/perl
+          ! Extensions.U dlsrc.U
+____________________________________________________________________________
+[  5091] By: gsar                                  on 2000/02/15  05:17:56
+        Log: fix leaks in *DBM_File; safemalloc()ed things need to be freed with
+             safefree() rather than Safefree()
+     Branch: perl
+          ! ext/DB_File/DB_File.xs ext/GDBM_File/GDBM_File.xs
+          ! ext/NDBM_File/NDBM_File.xs ext/ODBM_File/ODBM_File.xs
+          ! ext/SDBM_File/SDBM_File.xs
+____________________________________________________________________________
+[  5090] By: gsar                                  on 2000/02/15  04:54:17
+        Log: fix memory leak in C<$x = *Y> provoked by change#4198, which
+             introduced XPVMG storage in arenas
+     Branch: perl
+          ! sv.c
+____________________________________________________________________________
+[  5089] By: jhi                                   on 2000/02/15  00:41:36
+        Log: AIX perl linkage tweakage.
+     Branch: cfgperl
+          ! Makefile.SH
+____________________________________________________________________________
+[  5088] By: jhi                                   on 2000/02/15  00:07:06
+        Log: abort instead of just promising.
+     Branch: cfgperl
+          ! hints/aix.sh
+____________________________________________________________________________
+[  5087] By: jhi                                   on 2000/02/14  23:51:05
+        Log: silly compilers don't know that croak() exits
+             and complain about unitialized RETVALs
+     Branch: cfgperl
+          ! ext/Sys/Syslog/Syslog.xs
+____________________________________________________________________________
+[  5086] By: jhi                                   on 2000/02/14  21:13:24
+        Log: Add lseektype and lseeksize to myconfig.
+     Branch: cfgperl
+          ! myconfig.SH
+____________________________________________________________________________
+[  5085] By: gsar                                  on 2000/02/14  18:51:11
+        Log: avoid warnings
+     Branch: perl
+          ! perl.c
+____________________________________________________________________________
+[  5084] By: gsar                                  on 2000/02/14  18:26:08
+        Log: fix small interpreter leaks identified by Purify
+     Branch: perl
+          ! Porting/pumpkin.pod embed.h embed.pl hv.c perl.c proto.h sv.c
+          ! t/op/ord.t t/pragma/warnings.t
+____________________________________________________________________________
+[  5083] By: jhi                                   on 2000/02/14  17:50:52
+        Log: Remove tagged core files.
+     Branch: cfgperl
+          ! lib/ExtUtils/MM_Unix.pm
+____________________________________________________________________________
+[  5082] By: jhi                                   on 2000/02/14  17:41:07
+        Log: Prefer full_ar.
+     Branch: cfgperl
+          ! lib/ExtUtils/MM_Unix.pm lib/ExtUtils/MakeMaker.pm
+____________________________________________________________________________
+[  5081] By: jhi                                   on 2000/02/14  17:20:32
+        Log: Add ivtype, ivsize, nvtype, nvsize to myconfig.
+     Branch: cfgperl
+          ! myconfig.SH
+____________________________________________________________________________
+[  5080] By: jhi                                   on 2000/02/14  15:33:03
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> Porting/pumpkin.pod av.c malloc.c sv.c
+____________________________________________________________________________
+[  5079] By: gsar                                  on 2000/02/14  08:50:06
+        Log: notes about running Purify
+     Branch: perl
+          ! Porting/pumpkin.pod av.c sv.c
+____________________________________________________________________________
+[  5078] By: gsar                                  on 2000/02/14  07:27:21
+        Log: use system malloc() instead of sbrk() in Perl_malloc() under -DPURIFY
+     Branch: perl
+          ! malloc.c
+____________________________________________________________________________
+[  5077] By: gsar                                  on 2000/02/14  07:25:44
+        Log: integrate cfgperl contents into mainline
+     Branch: perl
+         !> Configure Porting/Glossary Porting/config.sh Porting/config_H
+         !> config_h.SH epoc/config.sh hints/aix.sh hints/hpux.sh
+         !> hints/irix_6.sh hints/solaris_2.sh perl.h pod/perldelta.pod
+         !> vms/subconfigure.com vos/config.def vos/config.h
+         !> vos/config_h.SH_orig win32/config.bc win32/config.gc
+         !> win32/config.vc win32/config_H.bc win32/config_H.gc
+         !> win32/config_H.vc
+____________________________________________________________________________
+[  5076] By: jhi                                   on 2000/02/14  05:01:56
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> embed.h embed.pl objXSUB.h perl.c perlapi.c proto.h sv.c
+____________________________________________________________________________
+[  5075] By: jhi                                   on 2000/02/14  04:56:52
+        Log: Configure -A stopped processing of any further options.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig
+          ! U/modified/Options.U
+____________________________________________________________________________
+[  5074] By: gsar                                  on 2000/02/14  04:45:01
+        Log: remove outdated -DPURIFY code--it reports bogus errors during global
+             destruction since we actually depend on SVs being in arenas there
+     Branch: perl
+          ! embed.h embed.pl objXSUB.h perl.c perlapi.c proto.h sv.c
+____________________________________________________________________________
+[  5073] By: jhi                                   on 2000/02/13  19:28:17
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+          - Todo-5.005
+         !> cop.h op.c perl.c pp_ctl.c regcomp.c regexec.c scope.c sv.c
+         !> util.c
+____________________________________________________________________________
+[  5072] By: gsar                                  on 2000/02/13  19:02:07
+        Log: more purification (pp_require() could access free memory; vdie()
+             could think message was random length when passed a null argument;
+             utilize() didn't set up the hash for the method name leading to
+             pp_method_named() accessing random state; PL_curpm wasn't zeroed
+             properly)
+     Branch: perl
+          ! cop.h op.c perl.c pp_ctl.c regcomp.c regexec.c scope.c sv.c
+          ! util.c
+____________________________________________________________________________
+[  5071] By: jhi                                   on 2000/02/12  19:59:35
+        Log: uselonglong sits deep.
+     Branch: cfgperl
+          ! Configure config_h.SH hints/solaris_2.sh
+     Branch: metaconfig/U/perl
+          ! use64bits.U
+____________________________________________________________________________
+[  5070] By: jhi                                   on 2000/02/12  01:25:41
+        Log: megalomaniac 64-bit update: most importantly,
+             uselonglong is eradicated, only backward
+             compatibility hooks in use64bits remain.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH epoc/config.sh hints/aix.sh hints/hpux.sh
+          ! hints/irix_6.sh hints/solaris_2.sh perl.h vms/subconfigure.com
+          ! vos/config.def vos/config.h vos/config_h.SH_orig
+          ! win32/config.bc win32/config.gc win32/config.vc
+          ! win32/config_H.bc win32/config_H.gc win32/config_H.vc
+     Branch: metaconfig
+          ! U/a_dvisory/quadtype.U U/modified/libpth.U U/modified/libs.U
+     Branch: metaconfig/U/perl
+          ! use64bits.U
+____________________________________________________________________________
+[  5069] By: jhi                                   on 2000/02/11  21:13:41
+        Log: undo #5064 for now; there seems to be no good selection
+             of flags to add the new option.
+     Branch: cfgperl
+          ! hints/hpux.sh
+____________________________________________________________________________
+[  5068] By: jhi                                   on 2000/02/11  21:01:21
+        Log: Guard against accidental long long use.
+     Branch: cfgperl
+          ! perl.h
+____________________________________________________________________________
+[  5067] By: jhi                                   on 2000/02/11  19:50:32
+        Log: logic fixes
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig/U/perl
+          ! uselonglong.U
+____________________________________________________________________________
+[  5066] By: jhi                                   on 2000/02/11  19:32:30
+        Log: Clarify 64-bit issues.
+     Branch: cfgperl
+          ! pod/perldelta.pod
+____________________________________________________________________________
+[  5065] By: jhi                                   on 2000/02/11  18:13:29
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> ext/Devel/Peek/Peek.xs regcomp.c t/comp/require.t t/comp/use.t
+         !> toke.c
+____________________________________________________________________________
+[  5064] By: jhi                                   on 2000/02/11  18:11:47
+        Log: Silence linker warnings about binary backward incompatibilities.
+     Branch: cfgperl
+          ! hints/hpux.sh
+____________________________________________________________________________
+[  5063] By: gsar                                  on 2000/02/11  16:36:14
+        Log: fix uninitialized memory reads found by purify
+     Branch: perl
+          ! ext/Devel/Peek/Peek.xs regcomp.c
+____________________________________________________________________________
+[  5062] By: jhi                                   on 2000/02/11  00:11:39
+        Log: de-fancify the largefiles hints
+     Branch: cfgperl
+          ! hints/hpux.sh
+____________________________________________________________________________
+[  5061] By: gsar                                  on 2000/02/10  19:17:09
+        Log: longstanding bug in parsing "require VERSION", could reallocate
+             current line and not know it; exposed by change#5004; manifested
+             as parse failure of C<{require 5.003}>
+     Branch: perl
+          ! t/comp/require.t t/comp/use.t toke.c
+____________________________________________________________________________
+[  5060] By: jhi                                   on 2000/02/10  13:29:25
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> makedef.pl pp_ctl.c t/op/write.t win32/vdir.h
+____________________________________________________________________________
+[  5059] By: gsar                                  on 2000/02/10  06:21:21
+        Log: make global symbol exports AIX-specific
+     Branch: perl
+          ! makedef.pl
+____________________________________________________________________________
+[  5058] By: gsar                                  on 2000/02/10  06:16:57
+        Log: integrate cfgperl contents into mainline
+     Branch: perl
+         !> Configure Makefile.SH Porting/Glossary Porting/config.sh
+         !> Porting/config_H config_h.SH makedef.pl perl.h
+         !> vms/subconfigure.com vos/config.def win32/config.bc
+         !> win32/config.gc win32/config.vc win32/config_H.bc
+         !> win32/config_H.gc win32/config_H.vc win32/config_h.PL
+         !> win32/config_sh.PL
+____________________________________________________________________________
+[  5057] By: gsar                                  on 2000/02/10  01:08:01
+        Log: windows bugfixes for virtual directories under USE_ITHREADS:
+             allows path mapping to unknown devices to work properly;
+             special file names like CONOUT$ can be opened with sysopen()
+             again
+     Branch: perl
+          ! win32/vdir.h
+____________________________________________________________________________
+[  5056] By: gsar                                  on 2000/02/10  00:56:27
+        Log: formline() could wipe out readonly-ness, freeing constants
+             prematurely, or affect cloning of pad constants
+     Branch: perl
+          ! pp_ctl.c t/op/write.t
+____________________________________________________________________________
+[  5055] By: jhi                                   on 2000/02/09  19:48:58
+        Log: Regenerate Configure for I_SYSLOG.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH
+____________________________________________________________________________
+[  5054] By: jhi                                   on 2000/02/09  19:38:04
+        Log: fix AIX and multiplicity problems
+     Branch: cfgperl
+          ! Makefile.SH makedef.pl
+____________________________________________________________________________
+[  5053] By: bailey                                on 2000/02/09  10:58:11
+        Log: remove redundant archcore directory prefix in installperl
+     Branch: vmsperl
+          ! installperl
+____________________________________________________________________________
+[  5052] By: bailey                                on 2000/02/09  10:44:22
+        Log: Work around prefixing bug in older DECC preprocessors
+     Branch: vmsperl
+          ! vms/vms.c vms/vmsish.h
+____________________________________________________________________________
+[  5051] By: bailey                                on 2000/02/09  09:52:06
+        Log: Eliminate unnecessary (and sometimes confounding) test for
+             word boundary
+     Branch: vmsperl
+          ! lib/ExtUtils/MM_VMS.pm
+____________________________________________________________________________
+[  5050] By: bailey                                on 2000/02/09  09:29:06
+        Log: Minor fixes to assuage picky compilers (unsigned comparisons and
+             alias rules lead to compilation warnings)
+     Branch: vmsperl
+          ! av.c mg.h pp_sys.c scope.c sv.c vms/vms.c
+____________________________________________________________________________
+[  5049] By: bailey                                on 2000/02/09  09:09:45
+        Log: Resync with mainline
+     Branch: vmsperl
+         +> Todo-5.6 ext/Sys/Syslog/Makefile.PL ext/Sys/Syslog/Syslog.pm
+         +> ext/Sys/Syslog/Syslog.xs lib/Pod/Find.pm lib/Pod/ParseUtils.pm
+         +> pod/perlapi.pod pod/perlintern.pod pod/perlunicode.pod
+         +> t/op/exists_sub.t t/op/ver.t t/pragma/diagnostics.t
+         +> vos/config.def vos/config.pl win32/bin/exetype.pl
+          - Todo-5.005 lib/Sys/Syslog.pm lib/caller.pm
+          ! vms/subconfigure.com
+         !> (integrate 358 files)
+____________________________________________________________________________
+[  5048] By: jhi                                   on 2000/02/09  03:54:05
+        Log: OS/2 gcc doesn't like -o foo.exe and -Zexe simultaneously
+             (reported by Yitzchak Scott-Thoennes in p5p)
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig
+          ! U/modified/Cppsym.U
+____________________________________________________________________________
+[  5047] By: jhi                                   on 2000/02/09  02:56:43
+        Log: (fake) use of getcwd.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH perl.h
+____________________________________________________________________________
+[  5046] By: jhi                                   on 2000/02/09  02:22:50
+        Log: lib scan fix
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig
+          ! U/modified/libs.U
+____________________________________________________________________________
+[  5045] By: jhi                                   on 2000/02/09  02:17:34
+        Log: Reintroduce #5019 via metaconfig.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig
+          ! U/installdirs/inc_version_list.U
+____________________________________________________________________________
+[  5044] By: jhi                                   on 2000/02/09  02:07:08
+        Log: Add/restore probes for getcwd/mk*temp*/mmap.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH perl.h vms/subconfigure.com vos/config.def
+          ! win32/config.bc win32/config.gc win32/config.vc
+          ! win32/config_H.bc win32/config_H.gc win32/config_H.vc
+          ! win32/config_h.PL win32/config_sh.PL
+     Branch: metaconfig
+          ! U/modified/d_mkstemp.U U/modified/libs.U
+     Branch: metaconfig/U/perl
+          + d_mkdtemp.U d_mkstemps.U
+____________________________________________________________________________
+[  5043] By: jhi                                   on 2000/02/08  20:58:02
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         +> Todo-5.6 t/op/ver.t win32/bin/exetype.pl
+         !> (integrate 110 files)
+____________________________________________________________________________
+[  5042] By: gsar                                  on 2000/02/08  20:32:12
+        Log: avoid exiting just because we didn't scan for libm ('libs' may still
+             have it, but we avoided scan for things in 'libs')
+     Branch: perl
+          ! Configure
+
+----------------
+Version v5.5.650
+----------------
+
+____________________________________________________________________________
+[  5041] By: gsar                                  on 2000/02/08  07:57:11
+        Log: update Changes
+     Branch: perl
+          ! Changes
+____________________________________________________________________________
+[  5040] By: gsar                                  on 2000/02/08  07:51:20
+        Log: documentation patches (from Michael Schwern and Yitzchak
+             Scott-Thoennes)
+     Branch: perl
+          ! av.c hv.c lib/UNIVERSAL.pm pod/perlapi.pod
+____________________________________________________________________________
+[  5039] By: gsar                                  on 2000/02/08  07:22:46
+        Log: alias to $^V to $PERL_VERSION_TUPLE
+     Branch: perl
+          ! lib/English.pm pod/perlvar.pod
+____________________________________________________________________________
+[  5038] By: gsar                                  on 2000/02/08  07:03:34
+        Log: update Changes
+     Branch: perl
+          ! Changes pod/perlhist.pod
+____________________________________________________________________________
+[  5037] By: gsar                                  on 2000/02/08  06:59:55
+        Log: Windows has a somewhat different sitelib layout, and needs
+             $sitelib/archname added as well
+     Branch: perl
+          ! perl.c
+____________________________________________________________________________
+[  5036] By: gsar                                  on 2000/02/08  06:59:03
+        Log: change#4987 appears to have broken libs scan for platforms that
+             don't set ignore_versioned_solibs (Solaris is one of them); add
+             derivative fix from the older logic for skipping versioned .so
+             libs
+     Branch: perl
+          ! Configure
+____________________________________________________________________________
+[  5035] By: gsar                                  on 2000/02/07  21:21:44
+        Log: sprintf("%v"...) buffer resizing busted
+     Branch: perl
+          ! sv.c
+____________________________________________________________________________
+[  5034] By: gsar                                  on 2000/02/07  19:16:21
+        Log: update Changes
+     Branch: perl
+          ! Changes pod/perlhist.pod
+____________________________________________________________________________
+[  5033] By: gsar                                  on 2000/02/07  19:01:08
+        Log: stringify "\x{FFF}" to utf8 correctly; set SvUTF8 on "\x{XX}"
+             only when XX > 127
+     Branch: perl
+          ! pp_hot.c toke.c
+____________________________________________________________________________
+[  5032] By: gsar                                  on 2000/02/07  18:25:31
+        Log: add note about printf("%v",...)
+     Branch: perl
+          ! pod/perldelta.pod
+____________________________________________________________________________
+[  5031] By: gsar                                  on 2000/02/07  18:18:43
+        Log: update Changes
+     Branch: perl
+          ! Changes Todo-5.6
+____________________________________________________________________________
+[  5030] By: gsar                                  on 2000/02/07  18:17:49
+        Log: thinko in change#5029
+     Branch: perl
+          ! gv.c
+____________________________________________________________________________
+[  5029] By: gsar                                  on 2000/02/07  17:49:58
+        Log: change $^U to $^WIDE_SYSTEM_CALLS; s/PL_bigchar/PL_widesyscalls/;
+             introduce -C switch (sets $^WIDE_SYSTEM_CALLS)
+     Branch: perl
+          ! embedvar.h gv.c intrpvar.h mg.c perl.c perlapi.h
+          ! pod/perlrun.pod pod/perlunicode.pod pod/perlvar.pod
+          ! win32/win32.h
+____________________________________________________________________________
+[  5028] By: gsar                                  on 2000/02/07  17:10:03
+        Log: perlport updates (from Peter Prymmer)
+     Branch: perl
+          ! pod/perlport.pod
+____________________________________________________________________________
+[  5027] By: gsar                                  on 2000/02/07  16:53:47
+        Log: fix up Todo-5.6
+     Branch: perl
+          ! Todo-5.6
+____________________________________________________________________________
+[  5026] By: gsar                                  on 2000/02/07  16:32:31
+        Log: rename Todo-5.005 to Todo-5.6
+     Branch: perl
+         +> Todo-5.6
+          - Todo-5.005
+          ! MANIFEST
+____________________________________________________________________________
+[  5025] By: gsar                                  on 2000/02/07  16:09:54
+        Log: ${^Warnings} renamed to ${^WARNING_BITS}
+     Branch: perl
+          ! gv.c lib/warnings.pm mg.c pod/perltoc.pod pod/perlvar.pod
+          ! toke.c warnings.pl
+____________________________________________________________________________
+[  5024] By: gsar                                  on 2000/02/07  11:47:06
+        Log: various Windows tweaks: make $^E a little less buggy by saving
+             and restoring system error across TLS fetch; avoid needless
+             copying of buffers
+     Branch: perl
+          ! win32/Makefile win32/makefile.mk win32/perllib.c win32/win32.c
+          ! win32/win32.h
+____________________________________________________________________________
+[  5023] By: gsar                                  on 2000/02/07  11:44:19
+        Log: avoid MakeMaker setting $^W=1
+     Branch: perl
+          ! lib/ExtUtils/MakeMaker.pm
+____________________________________________________________________________
+[  5022] By: gsar                                  on 2000/02/07  10:38:56
+        Log: up to v5.5.650
+     Branch: perl
+          ! Changes patchlevel.h win32/Makefile win32/config_H.bc
+          ! win32/config_H.gc win32/config_H.vc win32/makefile.mk
+____________________________________________________________________________
+[  5021] By: gsar                                  on 2000/02/07  10:10:31
+        Log: mention threads status in pod
+     Branch: perl
+          ! ext/Thread/Thread.pm
+____________________________________________________________________________
+[  5020] By: gsar                                  on 2000/02/07  09:57:46
+        Log: tolerate NULL SITELIB_EXP
+     Branch: perl
+          ! perl.c
+____________________________________________________________________________
+[  5019] By: gsar                                  on 2000/02/07  09:46:11
+        Log: NULL-terminate PERL_INC_VERSION_LIST
+     Branch: perl
+          ! Configure perl.c win32/config.bc win32/config.gc
+          ! win32/config.vc win32/config_H.bc win32/config_H.gc
+          ! win32/config_H.vc
+____________________________________________________________________________
+[  5018] By: gsar                                  on 2000/02/07  09:13:10
+        Log: add compatible versions from $Config{inc_ver_list} to search
+             paths automatically (from Tom Hughes <tom@compton.nu>)
+     Branch: perl
+          ! lib/lib.pm perl.c
+____________________________________________________________________________
+[  5017] By: gsar                                  on 2000/02/07  08:58:56
+        Log: makefiles now use exetype.pl to make wperl.exe
+     Branch: perl
+          ! sv.c win32/Makefile win32/makefile.mk
+____________________________________________________________________________
+[  5016] By: gsar                                  on 2000/02/07  08:38:25
+        Log: add exetype.pl (from Jan Dubois)
+     Branch: perl
+          + win32/bin/exetype.pl
+          ! MANIFEST
+____________________________________________________________________________
+[  5015] By: gsar                                  on 2000/02/07  08:29:28
+        Log: pod fixes (from Abigail and M J T Guy)
+     Branch: perl
+          ! Changes README.os2 gv.c pod/perlapi.pod pod/perldebug.pod
+          ! pod/perldelta.pod pod/perldiag.pod pod/perlopentut.pod
+          ! pod/perlport.pod pod/perlvar.pod
+____________________________________________________________________________
+[  5014] By: gsar                                  on 2000/02/07  07:09:08
+        Log: clarify behavior of vec() when arguments are off the end of the
+             string (from M J T Guy)
+     Branch: perl
+          ! pod/perlfunc.pod
+____________________________________________________________________________
+[  5013] By: gsar                                  on 2000/02/07  07:08:15
+        Log: remove $^U dependent behaviors in runtime; chr() and sprintf('%c',...)
+             now return bytes all the way to 255, they will be transparently
+             coerced (in future) to UTF-8 when they are used in operations
+             involving other UTF-8 strings; C<use utf8> doesn't set $^U anymore
+     Branch: perl
+          ! lib/byte.pm lib/utf8.pm pod/perlunicode.pod pod/perlvar.pod
+          ! pp.c sv.c
+____________________________________________________________________________
+[  5012] By: gsar                                  on 2000/02/07  06:36:33
+        Log: partly revert change#4851, apparently POSIX::uname() may not be correct
+             per strict reading of standard (says Tom Christiansen)
+     Branch: perl
+          ! lib/Sys/Hostname.pm
+____________________________________________________________________________
+[  5011] By: gsar                                  on 2000/02/07  06:26:30
+        Log: allow 64-bit utf8-encoded integers (from Ilya Zakharevich)
+     Branch: perl
+          ! utf8.c utf8.h
+____________________________________________________________________________
+[  5010] By: gsar                                  on 2000/02/06  21:27:03
+        Log: fix debug code in Perl_malloc() (from Ilya Zakharevich)
+     Branch: perl
+          ! malloc.c
+____________________________________________________________________________
+[  5009] By: gsar                                  on 2000/02/06  20:45:30
+        Log: set SvUTF8 on vectors only if there are chars > 127; update copyright
+             years (from Gisle Aas)
+     Branch: perl
+          ! EXTERN.h INTERN.h README av.c av.h cop.h cv.h deb.c doio.c
+          ! doop.c dump.c form.h gv.c gv.h handy.h hv.c hv.h mg.c mg.h
+          ! op.c op.h perl.c perl.h perlio.c perly.y pp.c pp.h pp_ctl.c
+          ! pp_hot.c pp_sys.c regcomp.c regexec.c run.c scope.c sv.c sv.h
+          ! toke.c utf8.c utf8.h util.c util.h
+____________________________________________________________________________
+[  5008] By: gsar                                  on 2000/02/06  19:28:31
+        Log: use builtin __CYGWIN__ rather than -DCYGWIN (from Eric Fifer
+             <EFifer@sanwaint.com>)
+     Branch: perl
+          ! EXTERN.h XSUB.h doio.c ext/POSIX/POSIX.xs
+          ! ext/SDBM_File/sdbm/pair.c ext/SDBM_File/sdbm/sdbm.c
+          ! hints/cygwin.sh lib/ExtUtils/MM_Cygwin.pm mg.c perl.h
+          ! unixish.h util.c
+____________________________________________________________________________
+[  5007] By: gsar                                  on 2000/02/06  17:47:01
+        Log: reduce memory consumption of POSIX.pm (from Ilya Zakharevich)
+     Branch: perl
+          ! ext/POSIX/POSIX.pm
+____________________________________________________________________________
+[  5006] By: gsar                                  on 2000/02/06  17:28:35
+        Log: integrate cfgperl contents into mainline
+     Branch: perl
+         !> Configure config_h.SH ext/Sys/Syslog/Syslog.xs hints/hpux.sh
+         !> perl.h pp_sys.c
+____________________________________________________________________________
+[  5005] By: gsar                                  on 2000/02/06  17:18:39
+        Log: VOS port updates (from Paul Green <Paul_Green@stratus.com>)
+     Branch: perl
+          ! README.vos pod/perlport.pod vos/Changes vos/build.cm
+          ! vos/compile_perl.cm vos/config.def vos/config.h vos/config.pl
+          ! vos/config_h.SH_orig vos/perl.bind vos/test_vos_dummies.c
+          ! vos/vos_dummies.c vos/vosish.h
+____________________________________________________________________________
+[  5004] By: gsar                                  on 2000/02/06  17:00:49
+        Log: fix parse error on C<{ use strict }> and other constructs that
+             make the parser reenter while LEX_KNOWNEXT is active
+     Branch: perl
+          ! t/comp/use.t toke.c
+____________________________________________________________________________
+[  5003] By: gsar                                  on 2000/02/06  14:57:30
+        Log: avoid -Bforcearchive on netbsd too
+     Branch: perl
+          ! Changes hints/netbsd.sh
+____________________________________________________________________________
+[  5002] By: gsar                                  on 2000/02/06  14:45:17
+        Log: revised notes about Pod::Parser & Co.
+     Branch: perl
+          ! lib/Pod/Usage.pm pod/perldelta.pod
+____________________________________________________________________________
+[  5001] By: gsar                                  on 2000/02/06  14:02:43
+        Log: fix description of obsolete diagnostic
+     Branch: perl
+          ! pod/perldiag.pod
+____________________________________________________________________________
+[  5000] By: gsar                                  on 2000/02/06  13:59:58
+        Log: allow "\x{12ab}" even without C<use utf8>
+     Branch: perl
+          ! t/pragma/warn/toke toke.c
+____________________________________________________________________________
+[  4999] By: gsar                                  on 2000/02/06  13:58:31
+        Log: make perlbug use new-style version numbers; improve compatibility
+             (runs with perl 5.005); fix swapped old vs new version reporting
+     Branch: perl
+          ! utils/perlbug.PL
+____________________________________________________________________________
+[  4998] By: gsar                                  on 2000/02/06  13:56:45
+        Log: support sprintf("v%v", v1.2.3) (works on any string argument, in
+             fact); add tests for version tuples
+     Branch: perl
+          + t/op/ver.t
+          ! MANIFEST perl.c pod/perldiag.pod pod/perlfunc.pod
+          ! pod/perlop.pod sv.c toke.c
+____________________________________________________________________________
+[  4997] By: gsar                                  on 2000/02/04  21:40:08
+        Log: change#4970 fallout for useithreads
+     Branch: perl
+          ! sv.c
+____________________________________________________________________________
+[  4996] By: jhi                                   on 2000/02/04  20:09:00
+        Log: Largefilify offsets of tied handles.
+     Branch: cfgperl
+          ! pp_sys.c
+____________________________________________________________________________
+[  4995] By: jhi                                   on 2000/02/04  19:54:25
+        Log: Sanity check for libraries scan.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig
+          ! U/modified/libs.U
+____________________________________________________________________________
+[  4994] By: jhi                                   on 2000/02/04  19:48:42
+        Log: HP-UX largefileness doesn't like lseek being redeclared;
+             no more USE_LONG_LONG.
+     Branch: cfgperl
+          ! perl.h
+____________________________________________________________________________
+[  4993] By: jhi                                   on 2000/02/04  19:18:59
+        Log: fix the description as much as possible; the whole
+             separation into three different symbols lists is
+             pretty broken now.
+     Branch: metaconfig
+          ! U/modified/Cppsym.U
+____________________________________________________________________________
+[  4992] By: jhi                                   on 2000/02/04  19:13:10
+        Log: Use <syslog.h>, not <sys/syslog.h>.
+     Branch: cfgperl
+          ! Configure config_h.SH ext/Sys/Syslog/Syslog.xs
+____________________________________________________________________________
+[  4991] By: gsar                                  on 2000/02/04  19:11:07
+        Log: dmake is on CPAN now
+     Branch: perl
+          ! README.win32
+____________________________________________________________________________
+[  4990] By: jhi                                   on 2000/02/04  19:04:01
+        Log: Re-introduce #4817 and #4964 wiped out by #4987.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig
+          ! U/threads/usethreads.U
+     Branch: metaconfig/U/perl
+          ! patchlevel.U
+____________________________________________________________________________
+[  4989] By: jhi                                   on 2000/02/04  18:54:00
+        Log: typo fix
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig
+          ! U/modified/libs.U
+____________________________________________________________________________
+[  4988] By: jhi                                   on 2000/02/04  18:34:06
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         +> ext/Sys/Syslog/Makefile.PL ext/Sys/Syslog/Syslog.pm
+         +> ext/Sys/Syslog/Syslog.xs
+          - lib/Sys/Syslog.pm
+         !> (integrate 37 files)
+____________________________________________________________________________
+[  4987] By: jhi                                   on 2000/02/04  18:31:05
+        Log: Configure megamaintenance.  Cppsym (hopefully) final spasms;
+             default is to use long long if available; various nits
+             here and there; fixed to hpux 64-bitnes and largefileness.
+     Branch: cfgperl
+          ! Configure config_h.SH hints/hpux.sh perl.h
+     Branch: metaconfig
+          ! U/a_dvisory/quadtype.U U/modified/Cppsym.U
+          ! U/modified/d_gethname.U U/modified/libpth.U U/modified/libs.U
+     Branch: metaconfig/U/perl
+          ! d_fseeko.U d_ftello.U dlsrc.U uselongdbl.U uselonglong.U
+          ! usemultiplicity.U xs_apiversion.U
+____________________________________________________________________________
+[  4986] By: gsar                                  on 2000/02/04  17:26:37
+        Log: avoid bad cast warnings (from Robin Barker <rmb1@cise.npl.co.uk>)
+     Branch: perl
+          ! sv.c
+____________________________________________________________________________
+[  4985] By: gsar                                  on 2000/02/04  16:43:49
+        Log: avoid 'na' (spotted by Yitzchak Scott-Thoennes <sthoenna@efn.org>)
+     Branch: perl
+          ! ext/Devel/DProf/DProf.xs
+____________________________________________________________________________
+[  4984] By: gsar                                  on 2000/02/04  08:20:05
+        Log: CPAN.pm updated to v1.52 (from Andreas Koenig)
+     Branch: perl
+          ! lib/CPAN.pm lib/CPAN/FirstTime.pm lib/CPAN/Nox.pm
+____________________________________________________________________________
+[  4983] By: gsar                                  on 2000/02/04  08:00:38
+        Log: updated OpenBSD hints (From Todd C. Miller <Todd.Miller@courtesan.com>)
+     Branch: perl
+          ! hints/openbsd.sh
+____________________________________________________________________________
+[  4982] By: gsar                                  on 2000/02/04  07:54:04
+        Log: pod typos (from Gregor N. Purdy <gregor@focusresearch.com>)
+     Branch: perl
+          ! lib/Pod/Parser.pm
+____________________________________________________________________________
+[  4981] By: gsar                                  on 2000/02/04  07:34:38
+        Log: avoid assuming cc accepts -o switch (from Tom Hughes)
+     Branch: perl
+          ! Makefile.SH
+____________________________________________________________________________
+[  4980] By: gsar                                  on 2000/02/04  07:29:59
+        Log: Sys::Syslog goes the XS way (from Tom Hughes <tom@compton.nu>)
+     Branch: perl
+          + ext/Sys/Syslog/Makefile.PL ext/Sys/Syslog/Syslog.pm
+          + ext/Sys/Syslog/Syslog.xs
+          - lib/Sys/Syslog.pm
+          ! MANIFEST pod/perldelta.pod
+____________________________________________________________________________
+[  4979] By: gsar                                  on 2000/02/04  07:13:19
+        Log: pod updates (from David Adler, M J T Guy)
+     Branch: perl
+          ! pod/perlfaq2.pod pod/perlop.pod pod/perlsyn.pod
+____________________________________________________________________________
+[  4978] By: gsar                                  on 2000/02/04  07:08:14
+        Log: typos in config_h.SH (from Paul_Green@vos.stratus.com)
+     Branch: perl
+          ! config_h.SH
+____________________________________________________________________________
+[  4977] By: gsar                                  on 2000/02/04  07:06:10
+        Log: avoid adding null components to LD_LIBRARY_PATH, OpenBSD has trouble
+             with them (from Todd C. Miller <Todd.Miller@courtesan.com>)
+     Branch: perl
+          ! Makefile.SH
+____________________________________________________________________________
+[  4976] By: gsar                                  on 2000/02/04  06:33:43
+        Log: VMS update (from Dan Sugalski and Peter Prymmer)
+     Branch: perl
+          ! configure.com vms/descrip_mms.template vms/subconfigure.com
+____________________________________________________________________________
+[  4975] By: gsar                                  on 2000/02/04  05:51:14
+        Log: patch to provide more informative names for evals and anonymous
+             subroutines (from Ilya Zakharevich)
+     Branch: perl
+          ! ext/Devel/Peek/Peek.pm ext/Devel/Peek/Peek.xs lib/Dumpvalue.pm
+          ! lib/dumpvar.pl lib/perl5db.pl op.c perl.h pod/perldebug.pod
+          ! pod/perlvar.pod pp_ctl.c
+____________________________________________________________________________
+[  4974] By: gsar                                  on 2000/02/04  05:05:57
+        Log: off-by-one in malloc.c (from Ilya Zakharevich)
+     Branch: perl
+          ! malloc.c
+____________________________________________________________________________
+[  4973] By: gsar                                  on 2000/02/04  05:03:00
+        Log: OS/2 build fixups from Ilya Zakharevich
+     Branch: perl
+          ! ext/Devel/DProf/DProf.xs os2/Makefile.SHs t/op/fork.t
+____________________________________________________________________________
+[  4972] By: gsar                                  on 2000/02/04  04:58:57
+        Log: avoid /* within comment
+     Branch: perl
+          ! xsutils.c
+____________________________________________________________________________
+[  4971] By: gsar                                  on 2000/02/04  04:56:09
+        Log: another HINT_BYTE victim
+     Branch: perl
+          ! lib/charnames.pm
+____________________________________________________________________________
+[  4970] By: gsar                                  on 2000/02/04  04:45:13
+        Log: fix pad_alloc panic from C<my $w; sub { my($i) = @_; sub { $w } }>
+     Branch: perl
+          ! op.c scope.c scope.h t/op/closure.t toke.c
+____________________________________________________________________________
+[  4969] By: gsar                                  on 2000/02/04  01:09:37
+        Log: byte.pm and HINT_BYTE don't match (0x8, not 0x10!)
+     Branch: perl
+          ! lib/byte.pm
+____________________________________________________________________________
+[  4968] By: jhi                                   on 2000/02/02  13:17:25
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         +> lib/Pod/Find.pm lib/Pod/ParseUtils.pm
+          ! Configure
+         !> (integrate 29 files)
+
+----------------
+Version v5.5.640
+----------------
+
+____________________________________________________________________________
+[  4967] By: gsar                                  on 2000/02/02  12:22:29
+        Log: update makerel for new version format
+     Branch: perl
+          ! Changes Porting/makerel
+____________________________________________________________________________
+[  4966] By: gsar                                  on 2000/02/02  11:42:03
+        Log: workaround for undefined symbol
+     Branch: perl
+          ! win32/win32.h
+____________________________________________________________________________
+[  4965] By: gsar                                  on 2000/02/02  11:19:19
+        Log: on cygwin, h_errno is now "__declspec(dllimport) int h_errno"
+             (from Eric Fifer <EFifer@sanwaint.com>)
+     Branch: perl
+          ! pp_sys.c
+____________________________________________________________________________
+[  4964] By: gsar                                  on 2000/02/02  11:11:15
+        Log: adjust notes on use5005threads
+     Branch: perl
+          ! Configure INSTALL README.threads
+____________________________________________________________________________
+[  4963] By: gsar                                  on 2000/02/02  10:14:30
+        Log: fix typo
+     Branch: perl
+          ! Configure
+____________________________________________________________________________
+[  4962] By: gsar                                  on 2000/02/02  10:13:10
+        Log: integrate selected changes from cfgperl (#4899,4900,4904,4918)
+     Branch: perl
+         !> Configure Porting/Glossary Porting/config.sh Porting/config_H
+         !> config_h.SH ext/IO/IO.xs lib/Benchmark.pm
+____________________________________________________________________________
+[  4961] By: gsar                                  on 2000/02/02  09:55:45
+        Log: PodParser-1.092 update via CPAN (from Brad Appleton)
+     Branch: perl
+          + lib/Pod/Find.pm lib/Pod/ParseUtils.pm
+          ! MANIFEST lib/Pod/Checker.pm t/pod/poderrs.t t/pod/poderrs.xr
+____________________________________________________________________________
+[  4960] By: gsar                                  on 2000/02/02  08:22:31
+        Log: replace misleading docs with a BUGS section
+     Branch: perl
+          ! lib/English.pm
+____________________________________________________________________________
+[  4959] By: gsar                                  on 2000/02/02  08:16:17
+        Log: remove FUD from perlfunc/use (from M J T Guy)
+     Branch: perl
+          ! pod/perlfunc.pod
+____________________________________________________________________________
+[  4958] By: gsar                                  on 2000/02/02  08:13:04
+        Log: Benchmark displays bogus CPU stats (suggested by Cedric Auzanne
+             <cedric.auzanne@nist.gov>)
+     Branch: perl
+          ! Changes lib/Benchmark.pm
+____________________________________________________________________________
+[  4957] By: gsar                                  on 2000/02/02  08:04:52
+        Log: fix coredump on C<"x" =~ /x/; print @-> (from Ilya Zakharevich)
+     Branch: perl
+          ! pp_hot.c
+____________________________________________________________________________
+[  4956] By: gsar                                  on 2000/02/02  08:02:57
+        Log: flock() pod talks about "adding" in the sense of "or-ing"
+     Branch: perl
+          ! pod/perlfunc.pod
+____________________________________________________________________________
+[  4955] By: gsar                                  on 2000/02/02  07:58:35
+        Log: fixes for switching files in the debugger (from Ilya Zakharevich)
+     Branch: perl
+          ! lib/perl5db.pl pod/perldebug.pod
+____________________________________________________________________________
+[  4954] By: gsar                                  on 2000/02/02  07:53:51
+        Log: use warnings rather than fiddling with $^W (from Paul Marquess)
+     Branch: perl
+          ! lib/Cwd.pm lib/English.pm lib/ExtUtils/MM_Unix.pm
+          ! lib/ExtUtils/MM_Win32.pm lib/ExtUtils/Manifest.pm lib/Fatal.pm
+          ! lib/File/Spec/Win32.pm lib/Math/BigFloat.pm
+          ! lib/Text/ParseWords.pm lib/utf8_heavy.pl
+____________________________________________________________________________
+[  4953] By: gsar                                  on 2000/02/02  07:40:33
+        Log: dynixptx hints tweak (from Martin J. Bligh <mbligh@sequent.com>)
+     Branch: perl
+          ! hints/dynixptx.sh
+____________________________________________________________________________
+[  4952] By: gsar                                  on 2000/02/02  07:36:39
+        Log: deltanotes on weakrefs and Pod::Parser (from Tuomas Lukka and
+             Brad Appleton)
+     Branch: perl
+          ! pod/perldelta.pod
+____________________________________________________________________________
+[  4951] By: gsar                                  on 2000/02/02  06:54:22
+        Log: avoid mismatched type warnings
+     Branch: perl
+          ! embed.pl perlapi.h
+____________________________________________________________________________
+[  4950] By: jhi                                   on 2000/02/02  06:49:10
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         +> pod/perlunicode.pod
+         !> MANIFEST Makefile.SH lib/File/Spec/Win32.pm lib/Text/Tabs.pm
+         !> lib/byte.pm lib/byte_heavy.pl lib/utf8.pm lib/warnings.pm
+         !> makedef.pl op.c perl.h pod/perldelta.pod pp_ctl.c regcomp.c
+         !> regexec.c t/pragma/warn/2use utf8.h utils/perldoc.PL
+         !> vms/descrip_mms.template warnings.pl
+____________________________________________________________________________
+[  4949] By: gsar                                  on 2000/02/02  06:41:17
+        Log: fix broken abs2rel() (from François Allard <franka@host.ott.igs.net>)
+     Branch: perl
+          ! lib/File/Spec/Win32.pm
+____________________________________________________________________________
+[  4948] By: gsar                                  on 2000/02/02  06:30:41
+        Log: makefile tweak
+     Branch: perl
+          ! Makefile.SH
+____________________________________________________________________________
+[  4947] By: gsar                                  on 2000/02/02  06:27:43
+        Log: future-proof unknown warning categories (from Greg Bacon
+             <gbacon@cs.uah.edu>)
+     Branch: perl
+          ! lib/warnings.pm t/pragma/warn/2use warnings.pl
+____________________________________________________________________________
+[  4946] By: gsar                                  on 2000/02/02  06:21:34
+        Log: doc tweak (from Michael G Schwern <schwern@pobox.com>)
+     Branch: perl
+          ! lib/Text/Tabs.pm
+____________________________________________________________________________
+[  4945] By: gsar                                  on 2000/02/02  06:03:04
+        Log: more meaningful message on invalid pattern argument (from
+             Kevin Meltzer <KMeltzer@USCO.com>)
+     Branch: perl
+          ! utils/perldoc.PL
+____________________________________________________________________________
+[  4944] By: gsar                                  on 2000/02/02  05:43:49
+        Log: XSLoader build patch for VMS (from Craig A. Berry
+             <craig.berry@metamorgs.com>)
+     Branch: perl
+          ! vms/descrip_mms.template
+____________________________________________________________________________
+[  4943] By: gsar                                  on 2000/02/02  03:40:49
+        Log: reword some sections of perlunicode.pod
+     Branch: perl
+          ! pod/perlunicode.pod
+____________________________________________________________________________
+[  4942] By: gsar                                  on 2000/02/01  21:02:01
+        Log: AIX warning on undefined symbol
+     Branch: perl
+          ! makedef.pl
+____________________________________________________________________________
+[  4941] By: gsar                                  on 2000/02/01  20:29:30
+        Log: HINT_UTF8 is not propagated to the op tree anymore; add a
+             perlunicode.pod that reflects changes to unicode support so far
+     Branch: perl
+          + pod/perlunicode.pod
+          ! MANIFEST lib/byte.pm lib/byte_heavy.pl lib/utf8.pm op.c perl.h
+          ! pod/perldelta.pod pp_ctl.c regcomp.c regexec.c utf8.h
+____________________________________________________________________________
+[  4940] By: jhi                                   on 2000/02/01  12:22:30
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> embed.pl embedvar.h global.sym gv.c intrpvar.h
+         !> lib/charnames.pm lib/utf8.pm mg.c objXSUB.h op.c op.h
+         !> perlapi.c perlapi.h pod/perlvar.pod pp.c sv.c sv.h
+         !> t/lib/charnames.t toke.c win32/win32.c win32/win32.h
+____________________________________________________________________________
+[  4939] By: gsar                                  on 2000/02/01  08:52:16
+        Log: export pregexec(), Tk uses it
+     Branch: perl
+          ! embed.pl global.sym objXSUB.h perlapi.c
+____________________________________________________________________________
+[  4938] By: gsar                                  on 2000/02/01  04:00:09
+        Log: mark literal utf8 in string literals properly
+     Branch: perl
+          ! toke.c
+____________________________________________________________________________
+[  4937] By: gsar                                  on 2000/01/31  20:19:34
+        Log: introduce $^U, a global bit to indicate whether system
+             calls should using widechar APIs; chr and sprintf "%c" also
+             follow this flag in the absense of "use byte"; "use utf8"
+             sets $^U=1 (this appears kludgey)
+     Branch: perl
+          ! embedvar.h gv.c intrpvar.h lib/charnames.pm lib/utf8.pm mg.c
+          ! op.c op.h perlapi.h pod/perlvar.pod pp.c sv.c sv.h
+          ! t/lib/charnames.t win32/win32.h
+____________________________________________________________________________
+[  4936] By: jhi                                   on 2000/01/31  20:17:44
+        Log: HP-UX (induced) fixes.
+     Branch: cfgperl
+          ! Configure config_h.SH hints/hpux.sh
+     Branch: metaconfig
+          ! U/modified/Oldconfig.U U/modified/libs.U
+     Branch: metaconfig/U/perl
+          ! quadfio.U
+____________________________________________________________________________
+[  4935] By: jhi                                   on 2000/01/31  19:15:43
+        Log: Cosmetics.
+     Branch: metaconfig
+          ! U/compline/d_gconvert.U
+____________________________________________________________________________
+[  4934] By: jhi                                   on 2000/01/31  19:15:22
+        Log: Cppsym saga continues.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig
+          ! U/modified/Cppsym.U
+____________________________________________________________________________
+[  4933] By: gsar                                  on 2000/01/31  18:45:07
+        Log: !USING_WIDE() branch is busted in win32_stat()
+     Branch: perl
+          ! win32/win32.c
+____________________________________________________________________________
+[  4932] By: jhi                                   on 2000/01/31  06:41:47
+        Log: Reveal even more symbols.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig
+          ! U/modified/Cppsym.U
+____________________________________________________________________________
+[  4931] By: jhi                                   on 2000/01/31  06:21:41
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+          - lib/caller.pm
+         !> (integrate 29 files)
+____________________________________________________________________________
+[  4930] By: gsar                                  on 2000/01/31  04:57:42
+        Log: runtime now looks at the SVf_UTF8 bit on the SV to decide
+             whether to use widechar semantics; lexer and RE engine continue
+             to need "use utf8" to enable unicode awareness in literals
+             and patterns (TODO: this needs to be fixed); $1 et al are marked
+             SvUTF8 if the pattern was compiled for utf8 (TODO: propagating
+             it from the data is probably better)
+     Branch: perl
+          ! doop.c gv.c mg.c op.c op.h pp.c pp_ctl.c pp_hot.c regcomp.c
+          ! sv.c t/pragma/warn/doop t/pragma/warn/pp t/pragma/warn/sv
+          ! t/pragma/warn/toke t/pragma/warn/utf8 toke.c utf8.h
+____________________________________________________________________________
+[  4929] By: gsar                                  on 2000/01/31  04:17:09
+        Log: remove caller.pm from change#3534 (flawed idea)
+     Branch: perl
+          - lib/caller.pm
+          ! MANIFEST pod/perldelta.pod pod/perlfunc.pod
+____________________________________________________________________________
+[  4928] By: gsar                                  on 2000/01/31  04:16:01
+        Log: fix factual regression (-e doesn't create temporary files anymore)
+     Branch: perl
+          ! pod/perlfilter.pod
+____________________________________________________________________________
+[  4927] By: gsar                                  on 2000/01/30  21:27:12
+        Log: introduce $^V (eq chr($revision) . chr($version) . chr($subversion));
+             document version tuples
+     Branch: perl
+          ! gv.c pod/perldelta.pod pod/perlfunc.pod pod/perlop.pod
+          ! pod/perlvar.pod
+____________________________________________________________________________
+[  4926] By: gsar                                  on 2000/01/28  18:10:12
+        Log: implement -follow option in find2perl (from Helmut Jarausch
+             <jarausch@igpm.rwth-aachen.de>)
+     Branch: perl
+          ! lib/File/Find.pm x2p/find2perl.PL
+____________________________________________________________________________
+[  4925] By: gsar                                  on 2000/01/28  18:03:28
+        Log: document what chdir() without an argument does (from Mark-Jason
+             Dominus <mjd@plover.com>)
+     Branch: perl
+          ! pod/perlfunc.pod
+____________________________________________________________________________
+[  4924] By: gsar                                  on 2000/01/28  17:49:34
+        Log: README.cygwin update (from Eric Fifer <EFifer@sanwaint.com>)
+     Branch: perl
+          ! README.cygwin
+____________________________________________________________________________
+[  4923] By: gsar                                  on 2000/01/28  17:10:08
+        Log: avoid leaking lexicals into program being debugged (from Ilya
+             Zakharevich)
+     Branch: perl
+          ! lib/perl5db.pl
+____________________________________________________________________________
+[  4922] By: gsar                                  on 2000/01/28  16:36:13
+        Log: perldelta note about export list changes
+     Branch: perl
+          ! Changes pod/perldelta.pod
+____________________________________________________________________________
+[  4921] By: gsar                                  on 2000/01/28  15:49:04
+        Log: alias realpath() to abs_path() (from Tom Christiansen)
+     Branch: perl
+          ! lib/Cwd.pm
+____________________________________________________________________________
+[  4920] By: jhi                                   on 2000/01/28  09:52:47
+        Log: Cppsym fixup from Andy.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig
+          ! U/modified/Cppsym.U
+____________________________________________________________________________
+[  4919] By: jhi                                   on 2000/01/28  09:52:22
+        Log: In HP-UX no largefiles if no 64 bits.
+     Branch: cfgperl
+          ! hints/hpux.sh
+____________________________________________________________________________
+[  4918] By: jhi                                   on 2000/01/28  09:03:37
+        Log: The #4880 was too eager, the $n test is useful too.
+     Branch: cfgperl
+          ! lib/Benchmark.pm
+____________________________________________________________________________
+[  4917] By: jhi                                   on 2000/01/28  06:27:50
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         +> pod/perlapi.pod pod/perlintern.pod
+         !> (integrate 39 files)
+____________________________________________________________________________
+[  4916] By: gsar                                  on 2000/01/28  05:29:37
+        Log: more exported symbols needed for build on windows
+     Branch: perl
+          ! embed.pl global.sym objXSUB.h perlapi.c pod/perlapi.pod
+          ! pod/perlintern.pod t/lib/thread.t win32/win32.c
+____________________________________________________________________________
+[  4915] By: gsar                                  on 2000/01/28  03:43:52
+        Log: autogenerate API listing from comments in the source (from Benjamin
+             Stuhl <sho_pi@hotmail.com>); fix the markup format to be more
+             flexible for better readability; add missing docs in sv.c; regenerate
+             perltoc
+     Branch: perl
+          + pod/perlapi.pod pod/perlintern.pod
+          ! MANIFEST XSUB.h av.c av.h cop.h cv.h embed.pl global.sym gv.c
+          ! gv.h handy.h hv.c hv.h intrpvar.h makedef.pl mg.c objXSUB.h
+          ! op.c op.h perl.c perlapi.c pod/Makefile pod/buildtoc
+          ! pod/perl.pod pod/perldelta.pod pod/perlguts.pod
+          ! pod/perltoc.pod pod/roffitall pp.h scope.h sv.c sv.h thrdvar.h
+          ! universal.c util.c
+____________________________________________________________________________
+[  4914] By: gsar                                  on 2000/01/27  19:43:35
+        Log: document unimplemented status of forking pipe open() on windows
+     Branch: perl
+          ! pod/perlfork.pod t/op/fork.t
+____________________________________________________________________________
+[  4913] By: jhi                                   on 2000/01/27  11:18:51
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> (integrate 51 files)
+____________________________________________________________________________
+[  4912] By: jhi                                   on 2000/01/27  10:35:48
+        Log: Cppsym update continues.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig
+          ! U/modified/Cppsym.U
+____________________________________________________________________________
+[  4911] By: gsar                                  on 2000/01/27  08:04:17
+        Log: add missing flag in change#4892
+     Branch: perl
+          ! win32/win32.c
+____________________________________________________________________________
+[  4910] By: gsar                                  on 2000/01/27  03:56:48
+        Log: various pod nits identified by installhtml (all fixed except
+             unresolved links)
+     Branch: perl
+          ! ext/B/B/C.pm ext/Devel/Peek/Peek.pm ext/File/Glob/Glob.pm
+          ! ext/IO/lib/IO/Socket/INET.pm ext/IPC/SysV/SysV.pm
+          ! ext/Thread/Thread.pm lib/Class/Struct.pm lib/File/Find.pm
+          ! lib/File/Spec/VMS.pm lib/Pod/Html.pm lib/UNIVERSAL.pm
+          ! pod/buildtoc pod/perlcompile.pod pod/perlfork.pod
+          ! pod/perlre.pod pod/perltoc.pod pod/perltodo.pod
+____________________________________________________________________________
+[  4909] By: gsar                                  on 2000/01/26  22:45:28
+        Log: typo
+     Branch: perl
+          ! Porting/p4desc
+____________________________________________________________________________
+[  4908] By: gsar                                  on 2000/01/26  22:41:18
+        Log: update p4 tool
+     Branch: perl
+          ! Porting/p4desc
+____________________________________________________________________________
+[  4907] By: gsar                                  on 2000/01/26  21:45:41
+        Log: revised attribute syntax: C<my $foo :a :b :c>, C<my $foo : a b c>
+             and C<my $foo : a : b : c> are all valid (from Spider Boardman)
+     Branch: perl
+          ! lib/AutoSplit.pm lib/SelfLoader.pm lib/attributes.pm
+          ! pod/perldelta.pod pod/perldiag.pod pod/perlsub.pod
+          ! t/op/attrs.t toke.c
+____________________________________________________________________________
+[  4906] By: gsar                                  on 2000/01/26  20:16:39
+        Log: pod typos and warnings (from Abigail <abigail@delanet.com>)
+     Branch: perl
+          ! README.win32 ext/B/B/Deparse.pm lib/Class/Struct.pm
+____________________________________________________________________________
+[  4905] By: gsar                                  on 2000/01/26  19:10:26
+        Log: s/STOP/CHECK/ blocks
+     Branch: perl
+          ! embedvar.h ext/B/B/Stash.pm ext/B/NOTES ext/B/O.pm intrpvar.h
+          ! keywords.h keywords.pl lib/constant.pm op.c perl.c perlapi.h
+          ! perly.c perly.y pod/perldelta.pod pod/perldiag.pod
+          ! pod/perlfunc.pod pod/perlmod.pod pod/perlrun.pod
+          ! pod/perlsub.pod pod/perltodo.pod sv.c t/op/misc.t toke.c
+          ! vms/perly_c.vms
+____________________________________________________________________________
+[  4904] By: jhi                                   on 2000/01/26  13:58:18
+        Log: In UNICOS and UNICOS/mk after a successful fcntl F_SETFL
+             of O_NONBLOCK a subsequent fcntl F_GETFL will return O_NDELAY.
+     Branch: cfgperl
+          ! ext/IO/IO.xs
+____________________________________________________________________________
+[  4903] By: jhi                                   on 2000/01/26  11:16:34
+        Log: Continue cpp symbol update.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig
+          ! U/modified/Cppsym.U
+____________________________________________________________________________
+[  4902] By: gsar                                  on 2000/01/26  09:28:37
+        Log: tweak exports list on Windows
+     Branch: perl
+          ! makedef.pl t/op/fork.t win32/win32.h
+____________________________________________________________________________
+[  4901] By: jhi                                   on 2000/01/26  08:05:57
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> Changes README.win32 lib/File/Path.pm lib/Getopt/Std.pm op.c
+         !> pod/perldelta.pod pod/perldiag.pod t/op/grep.t
+         !> t/pragma/strict-vars toke.c win32/Makefile win32/makefile.mk
+         !> win32/win32.c win32/win32.h
+____________________________________________________________________________
+[  4900] By: jhi                                   on 2000/01/26  07:59:05
+        Log: s/d_nvpresuv/d_nv_preserves_uv/;
+             plus cosmetic change for #4899.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH
+     Branch: metaconfig
+          ! U/modified/Cppsym.U
+     Branch: metaconfig/U/perl
+          ! perlxv.U
+____________________________________________________________________________
+[  4899] By: jhi                                   on 2000/01/26  07:46:56
+        Log: Update the scan of the cpp symbols.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig
+          ! U/modified/Cppsym.U
+____________________________________________________________________________
+[  4898] By: gsar                                  on 2000/01/26  04:49:45
+        Log: allow '--' to terminate argument processing (suggested by
+             Marc Espie <espie@schutzenberger.liafa.jussieu.fr>)
+     Branch: perl
+          ! lib/Getopt/Std.pm
+____________________________________________________________________________
+[  4897] By: gsar                                  on 2000/01/26  02:42:38
+        Log: change#3744 should have made grep more like map instead of the
+             other way around
+     Branch: perl
+          ! t/op/grep.t toke.c
+____________________________________________________________________________
+[  4896] By: gsar                                  on 2000/01/26  00:56:14
+        Log: integrate cfgperl contents into mainline
+     Branch: perl
+         +> vos/config.def vos/config.pl
+          ! Changes
+         !> Configure MANIFEST config_h.SH hints/unicosmk.sh
+         !> lib/Benchmark.pm pod/perldelta.pod pod/perlhist.pod pp.c
+         !> vos/config.h vos/config_h.SH_orig
+____________________________________________________________________________
+[  4895] By: gsar                                  on 2000/01/26  00:45:45
+        Log: fix parse failure of (my $foo : bar) and similar (from Spider
+             Boardman)
+     Branch: perl
+          ! toke.c
+____________________________________________________________________________
+[  4894] By: gsar                                  on 2000/01/26  00:33:53
+        Log: avoid failure if directories already read by rmtree() are
+             deleted by another process
+     Branch: perl
+          ! lib/File/Path.pm
+____________________________________________________________________________
+[  4893] By: gsar                                  on 2000/01/25  23:19:18
+        Log: typo in change#4892
+     Branch: perl
+          ! win32/win32.c
+____________________________________________________________________________
+[  4892] By: gsar                                  on 2000/01/25  22:16:19
+        Log: eliminate need for perl95.exe on Windows 9x by working around CRT
+             bug internally (from Benjamin Stuhl <sho_pi@hotmail.com>); modified
+             to call the fixed version of open_osfhandle() only on Windows 9x;
+             updated the makefiles and README.win32 to suit
+     Branch: perl
+          ! README.win32 win32/Makefile win32/makefile.mk win32/win32.c
+          ! win32/win32.h
+____________________________________________________________________________
+[  4891] By: gsar                                  on 2000/01/25  20:22:01
+        Log: produce redeclaration warning on C<our $foo; { our $foo; ... }>
+     Branch: perl
+          ! op.c pod/perldelta.pod pod/perldiag.pod t/pragma/strict-vars
+____________________________________________________________________________
+[  4890] By: gsar                                  on 2000/01/25  19:21:17
+        Log: update Makefile notes on the now deprecated USE_5005THREADS and
+             USE_OBJECT
+     Branch: perl
+          ! win32/Makefile win32/makefile.mk
+____________________________________________________________________________
+[  4889] By: jhi                                   on 2000/01/25  14:44:55
+        Log: Misedit in #4888.
+     Branch: cfgperl
+          ! pp.c
+____________________________________________________________________________
+[  4888] By: jhi                                   on 2000/01/25  14:38:59
+        Log: UNICOS/mk patches.  Removing the _CRAYMPP test may be
+             rash but it's the best move I can think of right now.
+             UNICOS/mk doesn't anymore (2.0.4.82) define _CRAYMPP,
+             but I think it did in the past.
+             Removing the _CRAYMPP test fixes a legion of pack/unpack
+             failures (hint: SHORTSIZE=4,INTSIZE=8,LONGSIZE=8).
+             One subtest, t/lib/io_sock.t #14, is still failing.
+     Branch: cfgperl
+          ! Configure config_h.SH hints/unicosmk.sh pp.c
+     Branch: metaconfig
+          ! U/modified/Oldconfig.U
+____________________________________________________________________________
+[  4887] By: jhi                                   on 2000/01/25  06:13:14
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> Changes Makefile.SH XSUB.h cflags.SH embed.pl globals.c
+         !> installperl lib/Pod/Html.pm makedef.pl mg.c objXSUB.h perl.h
+         !> perlapi.c perlapi.h pod/perldelta.pod pod/perldiag.pod
+         !> t/io/fs.t win32/Makefile win32/makefile.mk win32/perlhost.h
+         !> win32/perllib.c win32/win32.c win32/win32.h
+____________________________________________________________________________
+[  4886] By: gsar                                  on 2000/01/25  02:54:00
+        Log: consistently use MAX_PATH+1 buffer sizes
+     Branch: perl
+          ! win32/win32.c
+____________________________________________________________________________
+[  4885] By: gsar                                  on 2000/01/25  02:51:35
+        Log: workaround for rename('x','X') bug in Windows NT
+     Branch: perl
+          ! t/io/fs.t win32/win32.c
+____________________________________________________________________________
+[  4884] By: gsar                                  on 2000/01/25  01:32:57
+        Log: windows build fixups from uniform DLL name change to perl56.dll
+     Branch: perl
+          ! installperl makedef.pl win32/perllib.c
+____________________________________________________________________________
+[  4883] By: gsar                                  on 2000/01/25  01:31:27
+        Log: more fixes for warnings from change#4840
+     Branch: perl
+          ! lib/Pod/Html.pm
+____________________________________________________________________________
+[  4882] By: gsar                                  on 2000/01/24  15:35:12
+        Log: assorted little nits
+     Branch: perl
+          ! mg.c win32/Makefile win32/makefile.mk win32/perlhost.h
+          ! win32/win32.c
+____________________________________________________________________________
+[  4881] By: gsar                                  on 2000/01/24  14:32:31
+        Log: add new warnings to perldelta
+     Branch: perl
+          ! Changes pod/perldelta.pod pod/perldiag.pod
+____________________________________________________________________________
+[  4880] By: jhi                                   on 2000/01/24  14:14:23
+        Log: From: Stephane Payrard <properler@freesurf.fr>
+             To: Gurusamy Sarathy <gsar@ActiveState.com>
+             Cc: perl5-porters@perl.org
+             Subject: <patch> avoid division by 0 in Benchmark.pm
+             Date: Mon, 24 Jan 2000 16:15:38 +0100
+             Message-ID: <20000124161538.A995@freesurf.fr>
+     Branch: cfgperl
+          ! lib/Benchmark.pm
+____________________________________________________________________________
+[  4879] By: gsar                                  on 2000/01/24  14:14:20
+        Log: force linkage of the function wrappers for globals in change#4878
+     Branch: perl
+          ! embed.pl globals.c perlapi.h win32/win32.h
+____________________________________________________________________________
+[  4878] By: gsar                                  on 2000/01/24  13:04:45
+        Log: enable function wrappers for access to globals under MULTIPLICITY
+             (provides binary compatibility in the face of changes in interpreter
+             structure)
+     Branch: perl
+          ! Makefile.SH XSUB.h cflags.SH embed.pl makedef.pl objXSUB.h
+          ! perl.h perlapi.c perlapi.h win32/Makefile win32/makefile.mk
+____________________________________________________________________________
+[  4877] By: jhi                                   on 2000/01/24  11:41:57
+        Log: perlhist update.
+     Branch: cfgperl
+          ! pod/perlhist.pod
+____________________________________________________________________________
+[  4876] By: jhi                                   on 2000/01/24  11:32:07
+        Log: Updates on the large file support status.
+     Branch: cfgperl
+          ! pod/perldelta.pod
+____________________________________________________________________________
+[  4875] By: jhi                                   on 2000/01/24  11:23:16
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> ext/DB_File/Makefile.PL ext/NDBM_File/NDBM_File.pm
+         !> ext/ODBM_File/ODBM_File.pm lib/AutoSplit.pm
+         !> lib/Math/Complex.pm lib/Math/Trig.pm lib/Shell.pm
+____________________________________________________________________________
+[  4874] By: gsar                                  on 2000/01/24  10:43:03
+        Log: fix typos; avoid use constant for lowercase constants (produces
+             warnings now)
+     Branch: perl
+          ! ext/DB_File/Makefile.PL lib/Math/Complex.pm lib/Math/Trig.pm
+          ! lib/Shell.pm
+____________________________________________________________________________
+[  4873] By: gsar                                  on 2000/01/24  09:40:24
+        Log: avoid warnings when there's no subs to autosplit
+     Branch: perl
+          ! lib/AutoSplit.pm
+____________________________________________________________________________
+[  4872] By: jhi                                   on 2000/01/24  09:39:01
+        Log: Create a tool for converting a config_h.SH into a VOS config.h.
+     Branch: cfgperl
+          + vos/config.def vos/config.pl
+          ! MANIFEST vos/config.h vos/config_h.SH_orig
+____________________________________________________________________________
+[  4871] By: gsar                                  on 2000/01/24  09:15:20
+        Log: typos in change#4623
+     Branch: perl
+          ! ext/NDBM_File/NDBM_File.pm ext/ODBM_File/ODBM_File.pm
+____________________________________________________________________________
+[  4870] By: jhi                                   on 2000/01/24  06:43:19
+        Log: Sync metaconfig units to comply with the typo fixes of #4869. 
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig
+          + U/modified/cf_email.U U/modified/so.U
+     Branch: metaconfig/U/perl
+          ! dlsrc.U
+____________________________________________________________________________
+[  4869] By: jhi                                   on 2000/01/24  06:04:31
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         +> t/pragma/diagnostics.t
+         !> (integrate 120 files)
+____________________________________________________________________________
+[  4868] By: gsar                                  on 2000/01/23  21:49:28
+        Log: on windows, set seek position to end for files opened in append mode
+             (improves compatibility with Unix, avoids buffering issues)
+     Branch: perl
+          ! win32/win32.c
+____________________________________________________________________________
+[  4867] By: gsar                                  on 2000/01/23  21:19:31
+        Log: change#4866 was flawed; revert and add better fix for warning
+     Branch: perl
+          ! op.c op.h
+____________________________________________________________________________
+[  4866] By: gsar                                  on 2000/01/23  20:43:56
+        Log: optimize away runtime code for our($foo) (also avoid warnings)
+     Branch: perl
+          ! op.c
+____________________________________________________________________________
+[  4865] By: gsar                                  on 2000/01/23  13:17:18
+        Log: DB_File 1.72 update from Paul Marquess <paul.marquess@bt.com>
+     Branch: perl
+          ! ext/DB_File/Changes ext/DB_File/DB_File.pm
+          ! ext/DB_File/DB_File.xs ext/DB_File/version.c
+____________________________________________________________________________
+[  4864] By: gsar                                  on 2000/01/23  13:12:31
+        Log: system('VAR123=foo cmd') wasn't invoking shell (de-locale-ized patch
+             suggested by Dominic Dunlop <domo@computer.org>)
+     Branch: perl
+          ! doio.c
+____________________________________________________________________________
+[  4863] By: gsar                                  on 2000/01/23  13:01:35
+        Log: fix misclassified warnings
+     Branch: perl
+          ! pod/perldiag.pod
+____________________________________________________________________________
+[  4862] By: gsar                                  on 2000/01/23  12:52:12
+        Log: document bareword prototype incompatibility
+     Branch: perl
+          ! pod/perldelta.pod pod/perlsub.pod
+____________________________________________________________________________
+[  4861] By: gsar                                  on 2000/01/23  12:32:25
+        Log: faulty edit
+     Branch: perl
+          ! lib/File/stat.pm
+____________________________________________________________________________
+[  4860] By: gsar                                  on 2000/01/23  12:23:48
+        Log: s/use vars/our/g modules that aren't independently maintained on CPAN
+     Branch: perl
+          ! ext/B/B/Asmdata.pm ext/Data/Dumper/Dumper.pm
+          ! ext/Devel/DProf/DProf.pm ext/Fcntl/Fcntl.pm
+          ! ext/File/Glob/Glob.pm ext/GDBM_File/GDBM_File.pm
+          ! ext/IO/lib/IO/Dir.pm ext/IO/lib/IO/File.pm
+          ! ext/IO/lib/IO/Handle.pm ext/IO/lib/IO/Pipe.pm
+          ! ext/IO/lib/IO/Poll.pm ext/IO/lib/IO/Seekable.pm
+          ! ext/IO/lib/IO/Socket.pm ext/IO/lib/IO/Socket/INET.pm
+          ! ext/IO/lib/IO/Socket/UNIX.pm ext/NDBM_File/NDBM_File.pm
+          ! ext/ODBM_File/ODBM_File.pm ext/Opcode/Opcode.pm
+          ! ext/Opcode/Safe.pm ext/POSIX/POSIX.pm
+          ! ext/SDBM_File/SDBM_File.pm ext/Socket/Socket.pm
+          ! ext/Thread/Thread.pm lib/AnyDBM_File.pm lib/AutoLoader.pm
+          ! lib/AutoSplit.pm lib/Class/Struct.pm lib/Dumpvalue.pm
+          ! lib/ExtUtils/Command.pm lib/ExtUtils/Install.pm
+          ! lib/ExtUtils/Installed.pm lib/ExtUtils/Liblist.pm
+          ! lib/ExtUtils/MM_VMS.pm lib/ExtUtils/Mksymlists.pm
+          ! lib/ExtUtils/Packlist.pm lib/Fatal.pm lib/File/Basename.pm
+          ! lib/File/Compare.pm lib/File/Copy.pm lib/File/Find.pm
+          ! lib/File/Path.pm lib/File/stat.pm lib/FileHandle.pm
+          ! lib/Math/Complex.pm lib/Math/Trig.pm lib/Net/Ping.pm
+          ! lib/Net/hostent.pm lib/Net/netent.pm lib/Net/protoent.pm
+          ! lib/Net/servent.pm lib/Shell.pm lib/Test.pm
+          ! lib/Test/Harness.pm lib/Tie/Array.pm lib/Tie/Handle.pm
+          ! lib/Time/gmtime.pm lib/Time/localtime.pm lib/User/grent.pm
+          ! lib/User/pwent.pm lib/base.pm lib/caller.pm lib/constant.pm
+          ! lib/diagnostics.pm lib/fields.pm lib/lib.pm lib/strict.pm
+____________________________________________________________________________
+[  4859] By: gsar                                  on 2000/01/23  11:29:22
+        Log: fix diagnostics to report "our" vs "my" correctly
+     Branch: perl
+          ! op.c pod/perldiag.pod
+____________________________________________________________________________
+[  4858] By: gsar                                  on 2000/01/23  10:14:46
+        Log: set api_version to 5.5.0 (binary compatibility needs to get tested
+             more widely)
+     Branch: perl
+          ! patchlevel.h
+____________________________________________________________________________
+[  4857] By: gsar                                  on 2000/01/23  10:04:03
+        Log: disallow our($foo::bar)
+     Branch: perl
+          ! pod/perldiag.pod toke.c
+____________________________________________________________________________
+[  4856] By: gsar                                  on 2000/01/23  09:50:54
+        Log: dprofpp can't find Devel::DProf::VERSION due to change#4852
+     Branch: perl
+          ! utils/dprofpp.PL
+____________________________________________________________________________
+[  4855] By: gsar                                  on 2000/01/23  09:36:51
+        Log: new test (from Michael G Schwern <schwern@pobox.com>)
+     Branch: perl
+          + t/pragma/diagnostics.t
+          ! MANIFEST
+____________________________________________________________________________
+[  4854] By: gsar                                  on 2000/01/23  09:24:40
+        Log: add PREREQ_PM to default template (suggested by Michael G Schwern
+             <schwern@pobox.com>)
+     Branch: perl
+          ! utils/h2xs.PL
+____________________________________________________________________________
+[  4853] By: gsar                                  on 2000/01/23  09:08:30
+        Log: cygwin update (from Eric Fifer <EFifer@sanwaint.com>)
+     Branch: perl
+          ! cygwin/Makefile.SHs hints/cygwin.sh t/io/tell.t
+____________________________________________________________________________
+[  4852] By: gsar                                  on 2000/01/23  08:52:44
+        Log: mark some extensions as "special versions" to avoid CPAN indexer
+             confusion (from Ilya Zakharevich)
+     Branch: perl
+          ! ext/Devel/DProf/DProf.pm ext/Devel/Peek/Peek.pm
+____________________________________________________________________________
+[  4851] By: gsar                                  on 2000/01/23  08:48:46
+        Log: prefer POSIX::uname() rather than syscalls, which require attempting
+             to load syscall.ph (from David Huggins-Daines <dhd@eradicator.org>)
+     Branch: perl
+          ! lib/Sys/Hostname.pm
+____________________________________________________________________________
+[  4850] By: gsar                                  on 2000/01/23  08:36:43
+        Log: integrate cfgperl contents into mainline
+     Branch: perl
+         !> Configure Policy_sh.SH Porting/Glossary Porting/config.sh
+         !> Porting/config_H config_h.SH perl.h
+____________________________________________________________________________
+[  4849] By: gsar                                  on 2000/01/23  08:17:30
+        Log: fix localization in while BLOCK when there is a continue BLOCK
+             by introducing an explicit scope (c.f. change#4848)
+     Branch: perl
+          ! op.c pp_ctl.c t/cmd/while.t
+____________________________________________________________________________
+[  4848] By: gsar                                  on 2000/01/23  06:43:51
+        Log: fix scope cleanup when next jumps to a continue block; this is rather
+             in the nature of a kludge; it doesn't fix the longstanding bug that
+             makes C<while (!$x++) { local $x = 7 } continue { print $x }> print "7"
+             instead of "1")
+     Branch: perl
+          ! pp_ctl.c t/cmd/while.t
+____________________________________________________________________________
+[  4847] By: gsar                                  on 2000/01/23  04:47:25
+        Log: don't warn about masked lexical in C<if (my $x = 1) { my $x; }>,
+             C<while (my $x = foo()) { my $x = bar(); }> etc.
+     Branch: perl
+          ! op.c
+____________________________________________________________________________
+[  4846] By: gsar                                  on 2000/01/23  04:44:17
+        Log: avoid warnings in change#4839
+     Branch: perl
+          ! lib/Carp/Heavy.pm
+____________________________________________________________________________
+[  4845] By: gsar                                  on 2000/01/22  13:12:38
+        Log: Configure typos (from Ray Phillips <r.phillips@mailbox.uq.edu.au>)
+     Branch: perl
+          ! Changes Configure
+____________________________________________________________________________
+[  4844] By: gsar                                  on 2000/01/22  12:46:26
+        Log: wrong category for exec() warning
+     Branch: perl
+          ! op.c pod/perlop.pod
+____________________________________________________________________________
+[  4843] By: gsar                                  on 2000/01/22  12:42:40
+        Log: fix line continuations in argument lists (from Helmut Jarausch)
+     Branch: perl
+          ! lib/ExtUtils/xsubpp
+____________________________________________________________________________
+[  4842] By: gsar                                  on 2000/01/22  12:34:39
+        Log: CGI.pm upgraded to v2.56 from CPAN
+     Branch: perl
+          ! eg/cgi/index.html lib/CGI.pm lib/CGI/Apache.pm
+          ! lib/CGI/Cookie.pm lib/CGI/Pretty.pm lib/CGI/Switch.pm
+          ! t/lib/cgi-html.t
+____________________________________________________________________________
+[  4841] By: gsar                                  on 2000/01/22  12:07:23
+        Log: avoid warnings due to lack of forward declarations
+     Branch: perl
+          ! lib/Pod/Html.pm
+____________________________________________________________________________
+[  4840] By: gsar                                  on 2000/01/22  12:04:30
+        Log: heavy cleanup of Pod::Html bug fixes (from Wolfgang Laun
+             <wolfgang.laun@alcatel.at>)
+     Branch: perl
+          ! lib/Pod/Html.pm
+____________________________________________________________________________
+[  4839] By: gsar                                  on 2000/01/22  11:57:24
+        Log: better Carp reporting within subclassed modules (from Wolfgang Laun
+             <wolfgang.laun@alcatel.at>)
+     Branch: perl
+          ! lib/Carp/Heavy.pm pod/perldelta.pod
+____________________________________________________________________________
+[  4838] By: gsar                                  on 2000/01/22  10:53:06
+        Log: truncate(FH) flushes FH before truncating it
+     Branch: perl
+          ! pp_sys.c t/io/fs.t
+____________________________________________________________________________
+[  4837] By: gsar                                  on 2000/01/22  10:37:16
+        Log: #line directives without a filename leave the file name as it was
+             instead of setting it to the script name (from Andrew Pimlott
+             <andrew@pimlott.ne.mediaone.net>)
+     Branch: perl
+          ! toke.c
+____________________________________________________________________________
+[  4836] By: gsar                                  on 2000/01/22  10:06:53
+        Log: add patch for printf-style format typechecks (from Robin Barker
+             <rmb1@cise.npl.co.uk>); fixes for problems so identified
+     Branch: perl
+          ! XSUB.h doio.c dump.c embed.pl gv.c op.c perl.c perl.h pp_ctl.c
+          ! pp_hot.c pp_sys.c proto.h regcomp.c sv.c toke.c
+____________________________________________________________________________
+[  4835] By: gsar                                  on 2000/01/22  08:42:52
+        Log: From: John Tobey <jtobey@isay.com>
+             Date: Thu, 16 Dec 1999 20:20:38 -0500
+             Message-Id: <E11ym4U-0000c7-00@einstein.localnet>
+             Subject: [ID 19991216.006] [PATCH 5.005_63] Reloading modules that use 'fields'
+     Branch: perl
+          ! lib/base.pm lib/fields.pm t/lib/fields.t
+____________________________________________________________________________
+[  4834] By: gsar                                  on 2000/01/22  08:08:08
+        Log: fix deeply nested closures that have no references to lexical in
+             intervening subs
+     Branch: perl
+          ! embed.h embed.pl op.c proto.h t/op/closure.t
+____________________________________________________________________________
+[  4833] By: gsar                                  on 2000/01/21  17:04:21
+        Log: add $VERSION
+     Branch: perl
+          ! lib/Text/Soundex.pm lib/Tie/Handle.pm
+____________________________________________________________________________
+[  4832] By: gsar                                  on 2000/01/21  16:49:09
+        Log: fix bug in dumping self-referential scalars
+     Branch: perl
+          ! ext/Data/Dumper/Dumper.pm ext/Data/Dumper/Dumper.xs
+          ! t/lib/dumper.t
+____________________________________________________________________________
+[  4831] By: jhi                                   on 2000/01/21  09:16:07
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         +> t/op/exists_sub.t
+         !> INSTALL MANIFEST embed.h embed.pl global.sym objXSUB.h op.c
+         !> op.h perlapi.c pod/perldelta.pod pod/perldiag.pod
+         !> pod/perlfunc.pod pod/perlop.pod pod/perlvar.pod pp.c pp_hot.c
+         !> pp_sys.c proto.h sv.c sv.h t/pragma/warn/pp_hot
+         !> t/pragma/warn/pp_sys util.c utils/h2xs.PL
+____________________________________________________________________________
+[  4830] By: gsar                                  on 2000/01/21  04:28:08
+        Log: patch to report warnings on bogus filehandles passed to flock(),
+             more consistent warnings, from Greg Bacon <gbacon@itsc.uah.edu>
+             (slightly modified)
+     Branch: perl
+          ! embed.h embed.pl global.sym objXSUB.h perlapi.c
+          ! pod/perldiag.pod pp_hot.c pp_sys.c proto.h
+          ! t/pragma/warn/pp_hot t/pragma/warn/pp_sys util.c
+____________________________________________________________________________
+[  4829] By: gsar                                  on 2000/01/21  03:43:46
+        Log: typo fix
+     Branch: perl
+          ! pod/perlop.pod
+____________________________________________________________________________
+[  4828] By: gsar                                  on 2000/01/21  03:32:31
+        Log: notes about $^H and %^H from Ilya Zakharevich; substantial
+             fixups of faulty facts and prose
+     Branch: perl
+          ! pod/perlvar.pod
+____________________________________________________________________________
+[  4827] By: gsar                                  on 2000/01/21  01:45:51
+        Log: support for C<exists &func> (from Spider Boardman)
+     Branch: perl
+          + t/op/exists_sub.t
+          ! MANIFEST op.c op.h pod/perldelta.pod pod/perldiag.pod
+          ! pod/perlfunc.pod pp.c
+____________________________________________________________________________
+[  4826] By: gsar                                  on 2000/01/21  01:35:46
+        Log: mention the fact that open(my $foo, ...) covers all handle
+             constructors
+     Branch: perl
+          ! pod/perldelta.pod
+____________________________________________________________________________
+[  4825] By: gsar                                  on 2000/01/21  01:03:34
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Wed, 19 Jan 2000 15:05:11 -0500
+             Message-ID: <20000119150511.A22859@monk.mps.ohio-state.edu>
+             Subject: [PATCH 5.005_63] h2xs goof and a depessimization
+     Branch: perl
+          ! utils/h2xs.PL
+____________________________________________________________________________
+[  4824] By: gsar                                  on 2000/01/20  19:14:26
+        Log: INSTALL updates from Andy Dougherty
+     Branch: perl
+          ! INSTALL
+____________________________________________________________________________
+[  4823] By: gsar                                  on 2000/01/20  08:40:13
+        Log: sv_true() has a superfluous test
+     Branch: perl
+          ! sv.c sv.h
+____________________________________________________________________________
+[  4822] By: bailey                                on 2000/01/20  02:03:35
+        Log: Minor cosmetic updates
+     Branch: vmsperl
+          ! configure.com
+____________________________________________________________________________
+[  4821] By: bailey                                on 2000/01/20  00:25:30
+        Log: Quick integration of mainline changes to date
+     Branch: vmsperl
+         +> (branch 74 files)
+          - eg/cgi/dna.small.gif.uu eg/cgi/wilogo.gif.uu epoc/config.h
+          - epoc/perl.mmp epoc/perl.pkg ext/DynaLoader/dl_cygwin.xs
+          - lib/Pod/PlainText.pm lib/unicode/Eq/Latin1
+          - lib/unicode/Eq/Unicode lib/unicode/Jamo-2.txt
+          - lib/unicode/Unicode.html lib/unicode/UnicodeData-Latest.txt
+          - lib/warning.pm os2/POSIX.mkfifo warning.h
+         !> (integrate 462 files)
+____________________________________________________________________________
+[  4820] By: jhi                                   on 2000/01/19  22:46:42
+        Log: More robust inc_version_list from Andy.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH
+     Branch: metaconfig
+          ! U/installdirs/inc_version_list.U
+____________________________________________________________________________
+[  4819] By: jhi                                   on 2000/01/19  17:36:56
+        Log: Add NV_PRESERVES_UV.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH perl.h
+     Branch: metaconfig
+          ! U/protos/selecttype.U
+     Branch: metaconfig/U/perl
+          - nvpresuv.U
+          ! perlxv.U
+____________________________________________________________________________
+[  4818] By: jhi                                   on 2000/01/19  08:13:05
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> Changes Configure win32/config.bc win32/config.gc
+         !> win32/config.vc win32/config_H.bc win32/config_H.gc
+         !> win32/config_H.vc
+____________________________________________________________________________
+[  4817] By: gsar                                  on 2000/01/19  05:25:43
+        Log: regen win32/config*
+     Branch: perl
+          ! Configure win32/config.bc win32/config.gc win32/config.vc
+          ! win32/config_H.bc win32/config_H.gc win32/config_H.vc
+____________________________________________________________________________
+[  4816] By: jhi                                   on 2000/01/18  21:19:10
+        Log: Policy patch from Andy for installation directories,
+             removing the $apiversion.
+     Branch: cfgperl
+          ! Policy_sh.SH
+____________________________________________________________________________
+[  4815] By: jhi                                   on 2000/01/18  21:11:03
+        Log: Move _GNU_SOURCE into config_h.SH awaay from Configure
+             as suggested by Andy.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig
+          ! U/compline/d_gnulibc.U U/modified/cc.U
+____________________________________________________________________________
+[  4814] By: gsar                                  on 2000/01/18  20:48:10
+        Log: integrate cfgperl changes into mainline
+     Branch: perl
+          ! Changes
+         !> Configure Porting/Glossary Porting/config.sh Porting/config_H
+         !> Porting/pumpkin.pod config_h.SH doop.c patchlevel.h perl.c
+         !> perl.h t/lib/posix.t t/op/pack.t utf8.c
+____________________________________________________________________________
+[  4813] By: jhi                                   on 2000/01/18  19:41:33
+        Log: metaconfig todo note from Andy.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig
+          ! U/installdirs/inc_version_list.U
+____________________________________________________________________________
+[  4812] By: jhi                                   on 2000/01/18  15:02:55
+        Log: More -V.
+     Branch: cfgperl
+          ! perl.c
+____________________________________________________________________________
+[  4811] By: jhi                                   on 2000/01/18  10:35:30
+        Log: More compile-time options shown with -V.
+     Branch: cfgperl
+          ! perl.c
+____________________________________________________________________________
+[  4810] By: jhi                                   on 2000/01/17  08:35:49
+        Log: Add -D_GNU_SOURCE into ccflags for gcc (for now to expose
+             the strtold() and qgcvt() prototypes for long doubles, but
+             it should be okay in any case); fix bad assumptions in the
+             test suite about string->float conversions; though the out
+             parameter of strtold() (and strtoll()) is unused, it is nicer
+             to have it in correct type.
+     Branch: cfgperl
+          ! Configure config_h.SH perl.h t/lib/posix.t t/op/pack.t
+     Branch: metaconfig
+          ! U/modified/cc.U
+____________________________________________________________________________
+[  4809] By: jhi                                   on 2000/01/16  19:21:18
+        Log: strtoll works better ternary.
+     Branch: cfgperl
+          ! perl.h
+____________________________________________________________________________
+[  4808] By: jhi                                   on 2000/01/16  19:12:58
+        Log: Know strtoll.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH perl.h
+____________________________________________________________________________
+[  4807] By: jhi                                   on 2000/01/16  17:57:03
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> dump.c gv.c gv.h lib/vars.pm op.c op.h perl.h pod/perlfunc.pod
+         !> sv.c sv.h t/pragma/strict-vars toke.c util.c
+____________________________________________________________________________
+[  4806] By: jhi                                   on 2000/01/16  16:37:47
+        Log: Continue qgcvt work; closer now but not yet there.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH doop.c utf8.c
+     Branch: metaconfig
+          ! U/compline/d_gconvert.U
+     Branch: metaconfig/U/perl
+          ! d_qgcvt.U
+____________________________________________________________________________
+[  4805] By: jhi                                   on 2000/01/15  22:26:16
+        Log: Metaconfig and Porting patches from Andy; start using the new
+             long long and long double thingies from #4804; regen Configure.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! Porting/pumpkin.pod config_h.SH patchlevel.h perl.h util.c
+     Branch: metaconfig
+          + U/dist_patches/dist-p70a U/dist_patches/dist-p70b
+          + U/dist_patches/dist-p70c U/installdirs/inc_version_list.U
+          + U/modified/myhostname.U U/modified/nis.U U/nullified/fpu.U
+          + U/nullified/lib.U
+          ! U/README U/compline/d_gconvert.U U/installdirs/sitearch.U
+          ! U/installdirs/sitelib.U U/installdirs/vendorarch.U
+          ! U/installdirs/vendorlib.U U/modified/Cppsym.U U/modified/Loc.U
+          ! U/modified/Oldconfig.U U/modified/Signal.U
+          ! U/modified/sig_name.U U/threads/usethreads.U
+     Branch: metaconfig/U/perl
+          ! d_qgcvt.U d_strtold.U d_strtoll.U d_strtoq.U d_strtoull.U
+          ! d_strtouq.U dlsrc.U i_db.U libperl.U patchlevel.U
+          ! usemultiplicity.U
+     Branch: perl
+          ! perl.h util.c
+____________________________________________________________________________
+[  4804] By: jhi                                   on 2000/01/14  14:22:24
+        Log: Add more quad/long long/long double sciency.
+     Branch: metaconfig/U/perl
+          + d_qgcvt.U d_strtold.U d_strtoll.U d_strtoq.U d_strtoull.U
+          + d_strtouq.U
+____________________________________________________________________________
+[  4803] By: gsar                                  on 2000/01/14  04:40:49
+        Log: minor optimization (avoid double sv_upgrade() for "our Foo $bar;")
+     Branch: perl
+          ! op.c
+____________________________________________________________________________
+[  4802] By: gsar                                  on 2000/01/14  04:35:55
+        Log: add note about "our"
+     Branch: perl
+          ! lib/vars.pm
+____________________________________________________________________________
+[  4801] By: gsar                                  on 2000/01/14  04:16:51
+        Log: nailed "our" declarations, and better warnings on duplicate
+             "our" declarations
+     Branch: perl
+          ! dump.c gv.c gv.h op.c pod/perlfunc.pod sv.c sv.h
+          ! t/pragma/strict-vars toke.c
+____________________________________________________________________________
+[  4800] By: gsar                                  on 2000/01/14  01:27:13
+        Log: avoid spurious "Useless use of variable" warning on C<our $foo;>
+     Branch: perl
+          ! dump.c op.c op.h
+____________________________________________________________________________
+[  4799] By: gsar                                  on 2000/01/14  01:17:15
+        Log: doc typo
+     Branch: perl
+          ! pod/perlfunc.pod
+____________________________________________________________________________
+[  4798] By: jhi                                   on 2000/01/13  16:31:34
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         +> epoc/config.sh epoc/epocish.c epoc/link.pl
+         +> ext/DynaLoader/XSLoader_pm.PL ext/DynaLoader/hints/openbsd.pl
+         +> ext/IPC/SysV/hints/cygwin.pl ext/NDBM_File/hints/cygwin.pl
+         +> ext/ODBM_File/hints/cygwin.pl lib/byte.pm lib/byte_heavy.pl
+         +> lib/unicode/Unicode.300 pod/perlfork.pod t/lib/glob-case.t
+         +> win32/perlhost.h win32/vdir.h win32/vmem.h
+          - epoc/Config.pm epoc/autosplit.pl epoc/config.h epoc/perl.mmp
+          - epoc/perl.pkg ext/DynaLoader/dl_cygwin.xs
+          - lib/unicode/UnicodeData-Latest.txt os2/POSIX.mkfifo
+         !> (integrate 282 files)
+____________________________________________________________________________
+[  4797] By: gsar                                  on 2000/01/13  08:12:56
+        Log: clearer docs for change#4796; faster av_exists()
+     Branch: perl
+          ! av.c pod/perldelta.pod pod/perldiag.pod pod/perlfunc.pod
+____________________________________________________________________________
+[  4796] By: gsar                                  on 2000/01/13  06:49:03
+        Log: support delete() and exists() on array, tied array, and pseudo-hash
+             elements or slices
+     Branch: perl
+          ! av.c embed.h embed.pl global.sym lib/Tie/Array.pm
+          ! lib/Tie/Hash.pm objXSUB.h op.c perlapi.c pod/perldelta.pod
+          ! pod/perlfunc.pod pod/perlref.pod pod/perltie.pod pp.c proto.h
+          ! t/op/avhv.t t/op/delete.t
+____________________________________________________________________________
+[  4795] By: gsar                                  on 2000/01/11  20:52:30
+        Log: extend site_perl changes change#4773 to vendor_perl as well
+     Branch: perl
+          ! Configure
+____________________________________________________________________________
+[  4794] By: gsar                                  on 2000/01/11  19:18:50
+        Log: rework INSTALL to reflect new logic for versioning sitelibs
+     Branch: perl
+          ! INSTALL
+____________________________________________________________________________
+[  4793] By: gsar                                  on 2000/01/11  01:44:00
+        Log: test for change#4792
+     Branch: perl
+          ! t/op/fork.t
+____________________________________________________________________________
+[  4792] By: gsar                                  on 2000/01/11  01:22:36
+        Log: pseudo forked children inherit environment correctly
+     Branch: perl
+          ! win32/perlhost.h
+____________________________________________________________________________
+[  4791] By: gsar                                  on 2000/01/10  19:14:03
+        Log: test tweak
+     Branch: perl
+          ! t/op/fork.t
+____________________________________________________________________________
+[  4790] By: gsar                                  on 2000/01/10  18:56:16
+        Log: check for USE_ITHREADS sanity was too restrictive
+     Branch: perl
+          ! perl.h
+____________________________________________________________________________
+[  4789] By: gsar                                  on 2000/01/10  18:30:24
+        Log: add workaround for textmode read() bug in MSVCRT; make chdir() do
+             a real SetCurrentDirectory() in toplevel host
+     Branch: perl
+          ! README.win32 win32/Makefile win32/makefile.mk win32/perlhost.h
+          ! win32/vdir.h win32/win32.c
+____________________________________________________________________________
+[  4782] By: gsar                                  on 2000/01/10  05:27:03
+        Log: EPOC port update (from Olaf Flebbe <O.Flebbe@science-computing.de>)
+     Branch: perl
+          + epoc/config.sh epoc/epocish.c epoc/link.pl
+          - epoc/Config.pm epoc/autosplit.pl epoc/config.h epoc/perl.mmp
+          - epoc/perl.pkg
+          ! MANIFEST README.epoc epoc/createpkg.pl epoc/epoc.c
+          ! epoc/epoc_stubs.c epoc/epocish.h ext/IO/lib/IO/Socket.pm
+          ! lib/Sys/Hostname.pm
+____________________________________________________________________________
+[  4781] By: gsar                                  on 2000/01/10  05:11:03
+        Log: pod typos (from Abigail <abigail@delanet.com>)
+     Branch: perl
+          ! pod/perl.pod pod/perllexwarn.pod pod/perlxstut.pod
+____________________________________________________________________________
+[  4780] By: gsar                                  on 2000/01/10  05:07:35
+        Log: failing RE test added (from Robert Cunningham <rkc@ll.mit.edu>)
+     Branch: perl
+          ! t/lib/thread.t
+____________________________________________________________________________
+[  4779] By: gsar                                  on 2000/01/10  05:06:16
+        Log: terminate -s switch processing only on C<-->, not on C<--foo>
+     Branch: perl
+          ! perl.c
+____________________________________________________________________________
+[  4778] By: gsar                                  on 2000/01/10  04:38:45
+        Log: useithreads needs usemultiplicity
+     Branch: perl
+          ! Configure perl.h
+____________________________________________________________________________
+[  4777] By: gsar                                  on 2000/01/10  01:18:04
+        Log: use $Config{version} rather than $] where appropriate
+     Branch: perl
+          ! lib/CPAN.pm lib/ExtUtils/Installed.pm lib/ExtUtils/MM_Unix.pm
+          ! lib/ExtUtils/Mksymlists.pm lib/Pod/Man.pm lib/diagnostics.pm
+          ! lib/lib.pm
+____________________________________________________________________________
+[  4776] By: gsar                                  on 2000/01/10  00:11:34
+        Log: enable fork.t on windows
+     Branch: perl
+          ! t/op/fork.t
+____________________________________________________________________________
+[  4775] By: gsar                                  on 2000/01/10  00:07:29
+        Log: broken test for use5005threads
+     Branch: perl
+          ! t/lib/safe2.t
+____________________________________________________________________________
+[  4774] By: gsar                                  on 2000/01/09  23:56:37
+        Log: more windows build tweaks
+     Branch: perl
+          ! installperl makedef.pl win32/Makefile win32/config_H.bc
+          ! win32/config_H.gc win32/config_H.vc win32/config_sh.PL
+          ! win32/makefile.mk
+____________________________________________________________________________
+[  4773] By: gsar                                  on 2000/01/09  22:27:19
+        Log: more changes for new-style version numbers (versions numbers on
+             the filesystem look like 5.5.640, except on DOS-DJGPP and VMS where
+             they look like 5_5_640; delete @Config{pm_apiversion,xs_apiversion};
+             split $Config{apiversion} into three, @Config{apirevision,apiversion,
+             apisubversion} for CPP friendliness; $Config{sitelib} now defaults
+             to .../site_perl/$version, just like $Config{privlib}, making sitelib
+             completely independent across versions and substantially eliminating
+             chances of breaking older installations by overwriting newly built
+             extensions; all this means compatibility inclusions for @INC will need
+             to take into account older sitelib versions (this still TODO)
+             
+             windows, vms, dos tweaks for the above
+     Branch: perl
+          ! Changes Configure INSTALL Porting/config.sh Porting/config_H
+          ! config_h.SH configure.com dosish.h installman installperl
+          ! patchlevel.h perl.c perl.h vms/vmsish.h win32/Makefile
+          ! win32/config.bc win32/config.gc win32/config.vc
+          ! win32/config_H.bc win32/config_H.gc win32/config_H.vc
+          ! win32/config_h.PL win32/config_sh.PL win32/makefile.mk
+          ! win32/win32.c
+____________________________________________________________________________
+[  4772] By: gsar                                  on 2000/01/09  19:05:33
+        Log: s/usethreads/use5005threads/g
+     Branch: perl
+          ! myconfig.SH t/lib/english.t t/lib/thread.t t/op/nothread.t
+____________________________________________________________________________
+[  4771] By: gsar                                  on 2000/01/09  18:51:50
+        Log: Configure changes for new-style version numbers (from Andy Dougherty,
+             slightly altered)
+     Branch: perl
+          ! Configure INSTALL Porting/Glossary Porting/config.sh
+          ! Porting/config_H config_h.SH perl.h win32/Makefile
+          ! win32/config.bc win32/config.gc win32/config.vc
+          ! win32/makefile.mk
+____________________________________________________________________________
+[  4770] By: gsar                                  on 2000/01/07  22:18:54
+        Log: fix for 'make utest' failures (from Ilya Zakharevich)
+     Branch: perl
+          ! regexec.c
+____________________________________________________________________________
+[  4769] By: gsar                                  on 2000/01/07  18:23:16
+        Log: cygwin update (from Eric Fifer <EFifer@sanwaint.com>)
+     Branch: perl
+          + ext/IPC/SysV/hints/cygwin.pl ext/NDBM_File/hints/cygwin.pl
+          + ext/ODBM_File/hints/cygwin.pl
+          ! Configure INSTALL MANIFEST ext/POSIX/Makefile.PL
+          ! hints/cygwin.sh installman installperl lib/Cwd.pm
+          ! lib/ExtUtils/MakeMaker.pm lib/File/Spec/Unix.pm lib/perl5db.pl
+          ! perlsdio.h t/op/magic.t t/op/stat.t utils/perlcc.PL
+____________________________________________________________________________
+[  4768] By: gsar                                  on 2000/01/07  18:12:15
+        Log: typo on h2xs.PL (from Helmut Jarausch)
+     Branch: perl
+          ! utils/h2xs.PL
+____________________________________________________________________________
+[  4767] By: gsar                                  on 2000/01/07  17:58:45
+        Log: VMS update (from Peter Prymmer <pvhp@forte.com>)
+     Branch: perl
+          ! README.vms configure.com vms/subconfigure.com
+____________________________________________________________________________
+[  4766] By: gsar                                  on 2000/01/07  17:54:05
+        Log: os2/POSIX.mkfifo not needed (from Yitzchak Scott-Thoennes
+             <sthoenna@efn.org>)
+     Branch: perl
+          - os2/POSIX.mkfifo
+          ! MANIFEST README.os2
+____________________________________________________________________________
+[  4765] By: gsar                                  on 2000/01/06  20:11:46
+        Log: add workaround for dlopen() bug on OpenBSD (relative paths that
+             match /^lib/ won't load properly)
+     Branch: perl
+          + ext/DynaLoader/hints/openbsd.pl
+          ! Changes MANIFEST ext/DynaLoader/dl_dlopen.xs
+____________________________________________________________________________
+[  4764] By: gsar                                  on 2000/01/06  19:51:08
+        Log: add undocumented globals for compatibility--find.pl, and find2perl
+             generated code need them (from Helmut Jarausch <jarausch@igpm.rwth-aachen.de>)
+     Branch: perl
+          ! lib/File/Find.pm
+____________________________________________________________________________
+[  4763] By: gsar                                  on 2000/01/06  10:51:07
+        Log: fix various C-backend shenanigans
+     Branch: perl
+          ! ext/B/B/C.pm
+____________________________________________________________________________
+[  4762] By: gsar                                  on 2000/01/06  04:09:00
+        Log: tweak test in change#4757 for Windows
+     Branch: perl
+          ! t/io/open.t
+____________________________________________________________________________
+[  4761] By: gsar                                  on 2000/01/06  02:55:30
+        Log: USE_ITHREADS tweak (reused pad values could be SvREADONLY if
+             they belonged to freed OP_CONSTs)
+     Branch: perl
+          ! op.c
+____________________________________________________________________________
+[  4760] By: gsar                                  on 2000/01/06  00:22:40
+        Log: constant ranges could escape bareword check in list context
+     Branch: perl
+          ! op.c t/pragma/strict-subs
+____________________________________________________________________________
+[  4759] By: gsar                                  on 2000/01/05  20:52:50
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Wed, 05 Jan 2000 15:23:18 EST
+             Message-Id: <20000105152318.A7400@monk.mps.ohio-state.edu>
+             Subject: Re: minimal m//g matches appear busted
+     Branch: perl
+          ! regexec.c t/op/pat.t
+____________________________________________________________________________
+[  4758] By: gsar                                  on 2000/01/05  12:49:40
+        Log: various nits identified by warnings unmasked by recent changes
+     Branch: perl
+          ! ext/B/Makefile.PL lib/ExtUtils/Install.pm pod/perlfunc.pod
+____________________________________________________________________________
+[  4757] By: gsar                                  on 2000/01/05  12:48:10
+        Log: severe bugs in change#3786 fixed
+     Branch: perl
+          ! doio.c t/io/open.t
+____________________________________________________________________________
+[  4756] By: gsar                                  on 2000/01/05  11:25:10
+        Log: tweak change#4745 to make ebcdic output match for chars <= 037
+     Branch: perl
+          ! ext/Data/Dumper/Dumper.pm
+____________________________________________________________________________
+[  4755] By: gsar                                  on 2000/01/05  06:56:05
+        Log: cygwin support tweaks (from Eric Fifer <EFifer@sanwaint.com>)
+     Branch: perl
+          ! Configure util.c utils/perlcc.PL
+____________________________________________________________________________
+[  4754] By: gsar                                  on 2000/01/05  06:52:25
+        Log: avoid expensive Version_check (from Andreas Koenig)
+     Branch: perl
+          ! Changes lib/ExtUtils/MM_Unix.pm lib/ExtUtils/MM_VMS.pm
+          ! lib/ExtUtils/MM_Win32.pm lib/ExtUtils/MakeMaker.pm
+____________________________________________________________________________
+[  4753] By: gsar                                  on 2000/01/05  06:48:22
+        Log: From: andreas.koenig@anima.de (Andreas J. Koenig)
+             Date: 03 Jan 2000 21:56:02 +0100
+             Message-ID: <sfcvh5azxgd.fsf@hohenstaufen.in-berlin.de>
+             Subject: Reloading File::Copy
+     Branch: perl
+          ! Changes lib/File/Copy.pm t/lib/filecopy.t
+____________________________________________________________________________
+[  4752] By: gsar                                  on 2000/01/04  01:19:20
+        Log: s/USE_TEXTMODE_SCRIPTS/PERL_TEXTMODE_SCRIPTS/g
+     Branch: perl
+          ! win32/Makefile win32/makefile.mk win32/win32.h
+____________________________________________________________________________
+[  4751] By: gsar                                  on 2000/01/03  18:26:08
+        Log: avoid using (custom) autoloader in MakeMaker (from Andreas Koenig)
+     Branch: perl
+          ! lib/ExtUtils/MakeMaker.pm
+____________________________________________________________________________
+[  4750] By: gsar                                  on 2000/01/02  21:58:02
+        Log: make DProf look at $ENV{PERL_DPROF_OUT_FILE_NAME} to make it possible
+             to write to a file other than tmon.out (suggested by Haakon Alstadheim
+             <Haakon.Alstadheim@sds.no>)
+     Branch: perl
+          ! ext/Devel/DProf/DProf.pm ext/Devel/DProf/DProf.xs
+____________________________________________________________________________
+[  4749] By: gsar                                  on 2000/01/02  21:37:29
+        Log: disable optimization in change#3612 for join() and quotemeta()--this
+             removes all the gross hacks for the special cases in that change; fix
+             pp_concat() for when TARG == arg (modified version of patch suggested
+             by Ilya Zakharevich)
+     Branch: perl
+          ! op.c opcode.h opcode.pl pp_hot.c sv.c t/op/lex_assign.t
+____________________________________________________________________________
+[  4748] By: gsar                                  on 2000/01/02  20:26:06
+        Log: MakeMaker should attempt to "require" rather than "use" prerequisites
+             to avoid imports (from Michael G Schwern <schwern@pobox.com>)
+     Branch: perl
+          ! lib/ExtUtils/MakeMaker.pm
+____________________________________________________________________________
+[  4747] By: gsar                                  on 2000/01/02  20:17:36
+        Log: fix 4-arg substr() when used as argument to subroutine
+     Branch: perl
+          ! pp.c t/op/substr.t
+____________________________________________________________________________
+[  4746] By: gsar                                  on 2000/01/02  18:45:58
+        Log: usethreads build fixups for NeXTstep (as suggested by Hans Mulder)
+     Branch: perl
+          ! embed.h embed.pl ext/DynaLoader/dl_beos.xs
+          ! ext/DynaLoader/dl_dlopen.xs ext/DynaLoader/dl_hpux.xs
+          ! ext/DynaLoader/dl_next.xs ext/DynaLoader/dl_rhapsody.xs
+          ! perlapi.c proto.h thread.h util.c
+____________________________________________________________________________
+[  4745] By: gsar                                  on 2000/01/02  18:15:44
+        Log: ebcdic fix for Data::Dumper from Peter Prymmer
+     Branch: perl
+          ! ext/Data/Dumper/Dumper.pm regcomp.c
+____________________________________________________________________________
+[  4744] By: gsar                                  on 1999/12/31  22:42:23
+        Log: missing files in previous submit
+     Branch: perl
+          ! embed.h embed.pl ext/Devel/DProf/DProf.xs globals.c
+          ! lib/ExtUtils/MM_Unix.pm objXSUB.h perlapi.c proto.h
+____________________________________________________________________________
+[  4743] By: gsar                                  on 1999/12/31  06:47:18
+        Log: various Windows build tweaks
+     Branch: perl
+          ! win32/win32.h
+____________________________________________________________________________
+[  4742] By: gsar                                  on 1999/12/30  21:32:36
+        Log: change#4705 breaks code that interpolates $], so leave string value
+             of $] as it was for compatibility (and perhaps introduce $^V or similar
+             for the utf8 representation, maybe?)
+     Branch: perl
+          ! configpm gv.c
+____________________________________________________________________________
+[  4741] By: gsar                                  on 1999/12/30  19:36:21
+        Log: avoid CRLF in byteloadable files created by perlcc
+     Branch: perl
+          ! utils/perlcc.PL
+____________________________________________________________________________
+[  4740] By: gsar                                  on 1999/12/30  19:35:07
+        Log: leave DATA open in binmode if __END__ line doesn't have CRLF
+     Branch: perl
+          ! pod/perldelta.pod toke.c
+____________________________________________________________________________
+[  4739] By: gsar                                  on 1999/12/30  05:44:21
+        Log: enable the PERL_BINMODE_SCRIPTS behavior by default on Windows
+             to allow ByteLoader to work; the DATA filehandles continue to
+             be left open in text mode for compatibility
+     Branch: perl
+          ! embed.h embed.pl objXSUB.h pod/perldelta.pod proto.h sv.c
+          ! toke.c win32/Makefile win32/makefile.mk win32/win32.c
+          ! win32/win32.h
+____________________________________________________________________________
+[  4738] By: gsar                                  on 1999/12/30  04:36:12
+        Log: CR-LF support broken for formats
+     Branch: perl
+          ! toke.c
+____________________________________________________________________________
+[  4737] By: gsar                                  on 1999/12/29  22:30:52
+        Log: make DProf functional under pseudo-fork()
+     Branch: perl
+          ! ext/Devel/DProf/DProf.xs
+____________________________________________________________________________
+[  4736] By: gsar                                  on 1999/12/29  21:04:59
+        Log: slurp mode fix in change#2910 wasn't quite right (spotted by Hans
+             Mulder)
+     Branch: perl
+          ! doio.c pp_hot.c t/io/argv.t
+____________________________________________________________________________
+[  4735] By: gsar                                  on 1999/12/29  18:12:40
+        Log: re.pm is needed earlier, xsubpp now uses it (spotted by Andreas
+             Koenig)
+     Branch: perl
+          ! Makefile.SH
+____________________________________________________________________________
+[  4734] By: gsar                                  on 1999/12/28  21:10:37
+        Log: Windows build tweaks
+     Branch: perl
+          ! INTERN.h sv.c
+____________________________________________________________________________
+[  4733] By: gsar                                  on 1999/12/28  20:45:15
+        Log: remove never-taken branch for making getc() operate on ARGV (spotted 
+             by Ralph Corderoy <ralph@inputplus.demon.co.uk>)
+     Branch: perl
+          ! pp_sys.c
+____________________________________________________________________________
+[  4732] By: gsar                                  on 1999/12/28  20:42:13
+        Log: tests for change#4642 and pod fixups suggested by Ralph Corderoy
+             <ralph@inputplus.demon.co.uk>
+     Branch: perl
+          ! pod/perldelta.pod pod/perlfunc.pod pod/perlre.pod t/io/argv.t
+____________________________________________________________________________
+[  4731] By: gsar                                  on 1999/12/28  20:23:17
+        Log: optimize XSUBs to use targets if the -nooptimize xsubpp option is
+             not supplied (variant of patch suggested by Ilya Zakharevich)
+     Branch: perl
+          ! XSUB.h lib/ExtUtils/xsubpp
+____________________________________________________________________________
+[  4730] By: gsar                                  on 1999/12/28  19:55:56
+        Log: range operator does magical string increment iff both operands
+             are non-numbers, from Tom Phoenix <rootbeer@redcat.com>; fixed
+             the "foreach (RANGE)" case as well
+     Branch: perl
+          ! pp_ctl.c t/op/range.t
+____________________________________________________________________________
+[  4729] By: gsar                                  on 1999/12/28  18:40:19
+        Log: Win9x + GCC update from Benjamin Stuhl <sho_pi@hotmail.com>
+     Branch: perl
+          - win32/PerlCRT.def win32/gstartup.c win32/oldnames.def
+          ! EXTERN.h INTERN.h MANIFEST README.win32 iperlsys.h
+          ! lib/ExtUtils/MM_Win32.pm makedef.pl win32/Makefile
+          ! win32/config.gc win32/genmk95.pl win32/makefile.mk
+          ! win32/perlhost.h win32/perllib.c win32/runperl.c win32/win32.c
+          ! win32/win32.h
+____________________________________________________________________________
+[  4728] By: gsar                                  on 1999/12/28  07:44:19
+        Log: typecasts needed
+     Branch: perl
+          ! toke.c
+____________________________________________________________________________
+[  4727] By: gsar                                  on 1999/12/28  06:23:08
+        Log: change#4721 needed line number adjustments
+     Branch: perl
+          ! MANIFEST global.sym proto.h t/pragma/warn/doop
+          ! t/pragma/warn/pp t/pragma/warn/regcomp t/pragma/warn/sv
+          ! t/pragma/warn/toke t/pragma/warn/utf8
+____________________________________________________________________________
+[  4726] By: gsar                                  on 1999/12/28  04:18:15
+        Log: integrate utfperl contents into mainline
+     Branch: perl
+         +> lib/byte.pm lib/byte_heavy.pl
+         !> configpm embed.h embed.pl embedvar.h gv.c intrpvar.h objXSUB.h
+         !> patchlevel.h perl.c perl.h perlapi.c pp_ctl.c pp_hot.c proto.h
+         !> regnodes.h sv.c sv.h t/comp/require.t toke.c utf8.h
+____________________________________________________________________________
+[  4725] By: gsar                                  on 1999/12/28  04:08:09
+        Log: integrate mainline contents
+     Branch: utfperl
+          - ext/DynaLoader/dl_cygwin.xs lib/unicode/Eq/Latin1
+          - lib/unicode/Eq/Unicode
+         !> (integrate 60 files)
+____________________________________________________________________________
+[  4724] By: gsar                                  on 1999/12/28  03:44:10
+        Log: fix for /(^|a)b/ breakage from Ilya Zakharevich
+     Branch: perl
+          ! regcomp.c t/op/re_tests
+____________________________________________________________________________
+[  4723] By: gsar                                  on 1999/12/28  03:28:39
+        Log: more ebcdic testsuite fixups (from Peter Prymmer)
+     Branch: perl
+          ! Changes lib/bigfloat.pl t/lib/charnames.t t/lib/dumper.t
+          ! t/pragma/overload.t t/pragma/utf8.t
+____________________________________________________________________________
+[  4722] By: gsar                                  on 1999/12/28  03:14:48
+        Log: avoid "used once" warning
+     Branch: perl
+          ! lib/diagnostics.pm
+____________________________________________________________________________
+[  4721] By: gsar                                  on 1999/12/28  03:10:32
+        Log: ebcdic tweaks for tests from Peter Prymmer
+     Branch: perl
+          ! t/pragma/warn/doop t/pragma/warn/pp t/pragma/warn/regcomp
+          ! t/pragma/warn/sv t/pragma/warn/toke t/pragma/warn/utf8
+____________________________________________________________________________
+[  4720] By: gsar                                  on 1999/12/28  03:08:39
+        Log: pod nits from Simon Cozens <simon@brecon.co.uk> and others
+     Branch: perl
+          ! README.os2 lib/ExtUtils/Embed.pm lib/ExtUtils/Install.pm
+          ! lib/ExtUtils/Liblist.pm lib/ExtUtils/MakeMaker.pm
+          ! lib/ExtUtils/Mkbootstrap.pm pod/perlop.pod
+____________________________________________________________________________
+[  4719] By: gsar                                  on 1999/12/28  03:01:04
+        Log: perlport v1.45 from Chris Nandor
+     Branch: perl
+          ! pod/perlport.pod
+____________________________________________________________________________
+[  4718] By: gsar                                  on 1999/12/28  02:59:16
+        Log: newer version of constant.pm from Tom Phoenix; added Tom's notes to
+             perldelta; added STOP, DESTROY and AUTOLOAD to specials list
+     Branch: perl
+          ! lib/constant.pm pod/perldelta.pod pod/perlvar.pod
+          ! t/pragma/constant.t
+____________________________________________________________________________
+[  4717] By: gsar                                  on 1999/12/28  02:47:04
+        Log: cygwin update from Eric Fifer <EFifer@sanwaint.com>
+     Branch: perl
+          - ext/DynaLoader/dl_cygwin.xs
+          ! MAINTAIN MANIFEST ext/POSIX/POSIX.xs ext/SDBM_File/sdbm/pair.c
+          ! hints/cygwin.sh installperl mg.c pod/perlfaq3.pod t/op/stat.t
+          ! util.c
+____________________________________________________________________________
+[  4716] By: gsar                                  on 1999/12/28  02:40:51
+        Log: tweak to show up db-linked-with-libpthread-but-not-perl problem
+             (from Andy Dougherty)
+     Branch: perl
+          ! Configure
+____________________________________________________________________________
+[  4715] By: gsar                                  on 1999/12/28  02:38:44
+        Log: better variant of change#4644 (from Andy Dougherty)
+     Branch: perl
+          ! Configure
+____________________________________________________________________________
+[  4714] By: gsar                                  on 1999/12/28  02:36:40
+        Log: be defensive about setting {host,group,pass}cat (from Andy Dougherty)
+     Branch: perl
+          ! Configure
+____________________________________________________________________________
+[  4713] By: gsar                                  on 1999/12/28  02:35:15
+        Log: $sitelib should be $prefix/lib/perl5/site_perl, as documented in
+             INSTALL (from Andy Dougherty)
+     Branch: perl
+          ! Configure
+____________________________________________________________________________
+[  4712] By: gsar                                  on 1999/12/28  02:30:55
+        Log: avoid creating new files during make install
+     Branch: perl
+          ! Makefile.SH
+____________________________________________________________________________
+[  4711] By: gsar                                  on 1999/12/28  02:24:44
+        Log: pod edits from Paul Marquess and Mark-Jason Dominus
+     Branch: perl
+          ! AUTHORS Changes ext/DynaLoader/dl_aix.xs
+          ! ext/DynaLoader/dl_dlopen.xs lib/Net/Ping.pm pod/perlcall.pod
+          ! pod/perldelta.pod
+____________________________________________________________________________
+[  4710] By: gsar                                  on 1999/12/28  02:05:23
+        Log: miniperl build fixes for os2 (from Yitzchak Scott-Thoennes
+             <sthoenna@efn.org>); add explicit target for opmini.o
+     Branch: perl
+          ! Makefile.SH cygwin/Makefile.SHs os2/Makefile.SHs
+____________________________________________________________________________
+[  4709] By: gsar                                  on 1999/12/28  01:20:39
+        Log: partly fix perldiag regressions identified by Tom Christiansen
+     Branch: perl
+          ! doio.c lib/diagnostics.pm pod/perldiag.pod pp_hot.c pp_sys.c
+          ! t/pragma/warn/4lint t/pragma/warn/doio t/pragma/warn/pp_hot
+          ! t/pragma/warn/pp_sys
+____________________________________________________________________________
+[  4708] By: gsar                                  on 1999/12/27  23:33:24
+        Log: update perldiag for change#4707
+     Branch: perl
+          ! perl.c pod/perldiag.pod
+____________________________________________________________________________
+[  4707] By: gsar                                  on 1999/12/27  23:23:39
+        Log: allow spaces in -I switch argument
+     Branch: perl
+          ! perl.c
+____________________________________________________________________________
+[  4706] By: gsar                                  on 1999/12/26  23:44:53
+        Log: fix typos
+     Branch: utfperl
+          ! sv.h toke.c
+____________________________________________________________________________
+[  4705] By: gsar                                  on 1999/12/24  04:02:35
+        Log: support for v5.5.640 style version numbers
+     Branch: utfperl
+          ! configpm embedvar.h gv.c intrpvar.h objXSUB.h patchlevel.h
+          ! perl.c perl.h pp_ctl.c sv.c sv.h t/comp/require.t toke.c
+____________________________________________________________________________
+[  4704] By: gsar                                  on 1999/12/23  08:54:27
+        Log: bring in basic threads stuff under USE_ITHREADS
+     Branch: perl
+          ! makedef.pl op.c perl.c perl.h perlvars.h pp_sys.c thread.h
+          ! util.c
+____________________________________________________________________________
+[  4703] By: gsar                                  on 1999/12/23  00:10:06
+        Log: integrate mainline contents into utfperl
+     Branch: utfperl
+         !> (integrate 33 files)
+____________________________________________________________________________
+[  4702] By: gsar                                  on 1999/12/20  17:18:23
+        Log: virtual directory handling broken on paths with trailing slash
+     Branch: perl
+          ! win32/Makefile win32/makefile.mk win32/vdir.h
+____________________________________________________________________________
+[  4701] By: gsar                                  on 1999/12/20  17:09:55
+        Log: revert optimization in change#4700 (it appears OPpRUNTIME flag
+             isn't set for all m/$foo/o)
+     Branch: perl
+          ! pp_ctl.c
+____________________________________________________________________________
+[  4700] By: gsar                                  on 1999/12/20  16:28:51
+        Log: avoid pp_regcomp() changing optree at run time under USE_*THREADS (or
+             we have a race on our hands)
+     Branch: perl
+          ! pp_ctl.c
+____________________________________________________________________________
+[  4699] By: gsar                                  on 1999/12/20  16:19:00
+        Log: pod tweaks
+     Branch: perl
+          ! pod/perldelta.pod pod/perlfilter.pod pod/perlopentut.pod
+____________________________________________________________________________
+[  4698] By: gsar                                  on 1999/12/20  07:55:07
+        Log: uv_to_utf8() could lose 37th bit on HAS_QUAD platforms
+     Branch: perl
+          ! utf8.c
+____________________________________________________________________________
+[  4697] By: gsar                                  on 1999/12/18  01:35:50
+        Log: fix from Larry for parsing C<{ 0x1 => 'foo'}> as an
+             anon hash rather than a block; test case for the same
+     Branch: perl
+          ! t/comp/term.t toke.c
+____________________________________________________________________________
+[  4696] By: gsar                                  on 1999/12/17  19:55:03
+        Log: leak in change#4694 spotted by Larry
+     Branch: perl
+          ! hv.c
+____________________________________________________________________________
+[  4695] By: gsar                                  on 1999/12/17  18:14:11
+        Log: test case for change#4694
+     Branch: perl
+          ! t/op/delete.t
+____________________________________________________________________________
+[  4694] By: gsar                                  on 1999/12/17  18:09:08
+        Log: delete() should return the value as is, not a copy thereof
+     Branch: perl
+          ! hv.c pod/perldelta.pod
+____________________________________________________________________________
+[  4693] By: gsar                                  on 1999/12/17  17:45:58
+        Log: fix for C<"\nx\taa\n" =~ /^\S\s+aa$/m> (from Ilya Zakharevich)
+     Branch: perl
+          ! regexec.c t/op/re_tests
+____________________________________________________________________________
+[  4692] By: gsar                                  on 1999/12/17  17:41:10
+        Log: credits tweak
+     Branch: perl
+          ! lib/File/Spec.pm
+____________________________________________________________________________
+[  4691] By: gsar                                  on 1999/12/17  07:12:53
+        Log: DynaLoader doesn't build properly when $(DLSRC) changes
+             (fix suggested by Hans Mulder)
+     Branch: perl
+          ! ext/DynaLoader/Makefile.PL
+____________________________________________________________________________
+[  4690] By: gsar                                  on 1999/12/17  06:26:34
+        Log: add missing new ops
+     Branch: perl
+          ! ext/B/ramblings/runtime.porting
+____________________________________________________________________________
+[  4689] By: gsar                                  on 1999/12/17  06:16:49
+        Log: test harness tweak from Hans Mulder
+     Branch: perl
+          ! t/TEST
+____________________________________________________________________________
+[  4688] By: gsar                                  on 1999/12/17  06:14:23
+        Log: miniperl build fixes for NeXTstep and cygwin (from Hans Mulder
+             and Lucian CIONCA <Lucian.Cionca@algoritma.ro>)
+     Branch: perl
+          ! Makefile.SH cygwin/Makefile.SHs
+____________________________________________________________________________
+[  4687] By: gsar                                  on 1999/12/17  06:06:46
+        Log: applied suggested patch with whitespace adjustments
+             From: Helmut Jarausch <jarausch@numa1.igpm.rwth-aachen.de>
+             Date: Thu, 16 Dec 1999 08:57:55 +0100
+             Message-id: <38589B82.C4668E10@numa1.igpm.rwth-aachen.de>
+             Subject: Re: [ID 19991215.001] patch 5.005_63: Find::Fill cannot handle /
+     Branch: perl
+          ! lib/File/Find.pm
+____________________________________________________________________________
+[  4686] By: gsar                                  on 1999/12/17  05:48:53
+        Log: avoid warnings due to symbols unintroduced by XSLoader (spotted
+             by Hans Mulder)
+     Branch: perl
+          ! ext/DynaLoader/dl_dld.xs ext/DynaLoader/dl_hpux.xs
+          ! ext/DynaLoader/dl_mpeix.xs ext/DynaLoader/dl_next.xs
+          ! ext/DynaLoader/dl_rhapsody.xs
+____________________________________________________________________________
+[  4685] By: gsar                                  on 1999/12/17  05:37:51
+        Log: fix bug when one of the operands is +0E+0 (from Ronald J Kimball
+             <rjk@linguist.dartmouth.edu>)
+     Branch: perl
+          ! lib/Math/BigFloat.pm t/lib/bigfltpm.t
+____________________________________________________________________________
+[  4684] By: gsar                                  on 1999/12/16  09:32:48
+        Log: spell out how to get 4-digit year (from Micheal G Schwern
+             <schwern@pobox.com>)
+     Branch: perl
+          ! pod/perlfunc.pod
+____________________________________________________________________________
+[  4683] By: gsar                                  on 1999/12/16  09:26:53
+        Log: type mismatch for %c format argument (spotted by Robin Barker
+             <rmb1@cise.npl.co.uk>)
+     Branch: perl
+          ! regcomp.c
+____________________________________________________________________________
+[  4682] By: gsar                                  on 1999/12/16  08:33:28
+        Log: mingw32 doesn't have anonymous union (from Benjamin Stuhl
+             <sho_pi@hotmail.com>)
+     Branch: perl
+          ! win32/win32.c
+____________________________________________________________________________
+[  4681] By: gsar                                  on 1999/12/16  08:31:15
+        Log: missing backslash (spotted by Johan Vromans)
+     Branch: perl
+          ! perl.c
+____________________________________________________________________________
+[  4680] By: gsar                                  on 1999/12/16  08:26:00
+        Log: avoid coredump on diagnostics when STDERR is closed
+     Branch: perl
+          ! perl.h
+____________________________________________________________________________
+[  4679] By: gsar                                  on 1999/12/12  18:09:41
+        Log: integrate mainline changes
+     Branch: utfperl
+         +> (branch 39 files)
+          - lib/unicode/Jamo-2.txt lib/unicode/Unicode.html
+          - lib/unicode/UnicodeData-Latest.txt
+         !> (integrate 447 files)
+____________________________________________________________________________
+[  4678] By: gsar                                  on 1999/12/10  01:39:13
+        Log: interpreter structure should be nulled under -DMULTIPLICITY
+     Branch: perl
+          ! perl.c
+____________________________________________________________________________
+[  4677] By: gsar                                  on 1999/12/09  11:10:27
+        Log: update Changes
+     Branch: perl
+          ! Changes
+
+----------------
+Version 5.005_63
+----------------
+
+____________________________________________________________________________
+[  4676] By: gsar                                  on 1999/12/09  10:51:43
+        Log: fix File::Find testsuite bugs in symlink-less places
+     Branch: perl
+          ! t/lib/filefind.t
+____________________________________________________________________________
+[  4675] By: gsar                                  on 1999/12/09  10:22:31
+        Log: USE_ITHREADS tweaks and notes
+     Branch: perl
+          ! op.c pod/perldelta.pod sv.c
+____________________________________________________________________________
+[  4674] By: gsar                                  on 1999/12/09  10:21:53
+        Log: allow new style sort subs to work under usethreads
+     Branch: perl
+          ! pp_ctl.c
+____________________________________________________________________________
+[  4673] By: gsar                                  on 1999/12/09  04:00:23
+        Log: document compatibility issue with literal list slices and NOTOP
+             (C<not (1,2,3)[0]> is now a syntax error)
+     Branch: perl
+          ! pod/perldelta.pod
+____________________________________________________________________________
+[  4672] By: gsar                                  on 1999/12/09  01:14:46
+        Log: avoid mismatched expectation <-> int types for C++ builds
+     Branch: perl
+          ! embed.pl intrpvar.h proto.h toke.c
+____________________________________________________________________________
+[  4671] By: gsar                                  on 1999/12/09  00:36:24
+        Log: newer version of File::Find with support for following symlinks and
+             other features, from Helmut Jarausch <jarausch@igpm.rwth-aachen.de>
+     Branch: perl
+          ! lib/File/Find.pm pod/perldelta.pod t/lib/filefind.t
+____________________________________________________________________________
+[  4670] By: gsar                                  on 1999/12/09  00:13:06
+        Log: avoid initializing GvCV slot for autovivified filehandles
+     Branch: perl
+          ! pp.c
+____________________________________________________________________________
+[  4669] By: gsar                                  on 1999/12/08  19:09:27
+        Log: apply change#4618 again along with Ilya's patch to fix bugs
+             in it (see change#4622)
+     Branch: perl
+          ! embed.h embed.pl perl.h proto.h regcomp.c regcomp.h regexec.c
+          ! t/op/re_tests t/op/subst.t
+____________________________________________________________________________
+[  4668] By: gsar                                  on 1999/12/08  18:56:53
+        Log: patch to fix parser bug in C<${h{${a[0]}}} = 13>
+             From: Larry Wall <larry@wall.org>
+             Date: Tue, 7 Dec 1999 12:39:30 -0800 (PST)
+             Message-Id: <199912072039.MAA13257@kiev.wall.org>
+             Subject: Re: [ID 19991204.002] Inconsistency of ${hash{key}}
+     Branch: perl
+          ! embedvar.h intrpvar.h objXSUB.h sv.c toke.c
+____________________________________________________________________________
+[  4667] By: gsar                                  on 1999/12/08  18:47:37
+        Log: patch to fix aix hints from ortmann@vnet.ibm.com
+     Branch: perl
+          ! hints/aix.sh
+____________________________________________________________________________
+[  4666] By: gsar                                  on 1999/12/08  18:29:02
+        Log: documentation tweaks from M. J. T. Guy, Micheal Schwern, and
+             Tim Meadowcroft
+     Branch: perl
+          ! Changes lib/Benchmark.pm pod/perlipc.pod pod/perlre.pod
+____________________________________________________________________________
+[  4665] By: gsar                                  on 1999/12/08  02:22:31
+        Log: introduce save_I8() for saving byte values
+     Branch: perl
+          ! embed.h embed.pl global.sym objXSUB.h perlapi.c proto.h
+          ! regcomp.c regexec.c scope.c scope.h sv.c
+____________________________________________________________________________
+[  4664] By: gsar                                  on 1999/12/08  02:02:33
+        Log: use SAVEINT() rather than SAVEDESTRUCTOR() for saving PL_expect etc.
+     Branch: perl
+          ! toke.c
+____________________________________________________________________________
+[  4663] By: gsar                                  on 1999/12/08  01:11:44
+        Log: longstanding typo in lexer: PL_lex_expect was not properly
+             saved on reentry
+     Branch: perl
+          ! toke.c
+____________________________________________________________________________
+[  4662] By: gsar                                  on 1999/12/07  23:16:21
+        Log: typos in change#4546
+     Branch: perl
+          ! ext/B/B.xs ext/B/B/Bytecode.pm ext/B/B/C.pm sv.c
+____________________________________________________________________________
+[  4661] By: gsar                                  on 1999/12/07  09:33:50
+        Log: typos in change#4660
+     Branch: perl
+          ! embed.h embed.pl objXSUB.h perl.h perlapi.c pp_sys.c proto.h
+____________________________________________________________________________
+[  4660] By: gsar                                  on 1999/12/06  23:42:55
+        Log: tweaks for building with -DUSE_ITHREADS on !WIN32 platforms;
+             fix bug where lc($readonly) could result in bogus errors
+     Branch: perl
+          ! embed.h embed.pl iperlsys.h makedef.pl objXSUB.h perlapi.c
+          ! pp.c pp_sys.c proto.h sv.c
+____________________________________________________________________________
+[  4659] By: gsar                                  on 1999/12/06  15:24:31
+        Log: allow IRIX 6.5 to build perl (from Helmut Jarausch
+             <jarausch@igpm.rwth-aachen.de>)
+     Branch: perl
+          ! perl.h
+____________________________________________________________________________
+[  4658] By: gsar                                  on 1999/12/06  15:18:30
+        Log: fix for -Dp via $^D (suggested by Stephane Payrard
+             <stef@adnaccess.com>)
+     Branch: perl
+          ! mg.c
+____________________________________________________________________________
+[  4657] By: gsar                                  on 1999/12/06  06:50:01
+        Log: change#4641 needs perldiag.pod edit
+     Branch: perl
+          - lib/unicode/UnicodeData-Latest.txt
+          ! pod/perldiag.pod
+____________________________________________________________________________
+[  4656] By: gsar                                  on 1999/12/06  01:36:56
+        Log: Makefile tweak for change#4649
+     Branch: perl
+          ! Makefile.SH
+____________________________________________________________________________
+[  4655] By: gsar                                  on 1999/12/05  17:23:57
+        Log: change#4653 was missing a patch reject
+     Branch: perl
+          ! win32/makefile.mk
+____________________________________________________________________________
+[  4654] By: gsar                                  on 1999/12/05  11:41:04
+        Log: windows build tweaks for Borland compiler
+     Branch: perl
+          ! win32/makefile.mk win32/perlhost.h win32/win32.c win32/win32.h
+____________________________________________________________________________
+[  4653] By: gsar                                  on 1999/12/05  11:07:37
+        Log: applied somewhat modified version of suggested patch
+             From: "Benjamin Stuhl" <sho_pi@hotmail.com>
+             Date: Thu, 18 Nov 1999 18:45:27 PST
+             Message-ID: <19991119024527.72749.qmail@hotmail.com>
+             Subject: [PATCH 5.005_62] Perl on Win95, Mark IIB
+     Branch: perl
+          + win32/PerlCRT.def win32/gstartup.c win32/oldnames.def
+          ! MANIFEST ext/SDBM_File/Makefile.PL lib/ExtUtils/MM_Unix.pm
+          ! lib/ExtUtils/MM_Win32.pm win32/config_sh.PL win32/genmk95.pl
+          ! win32/makefile.mk win32/win32.h
+____________________________________________________________________________
+[  4652] By: gsar                                  on 1999/12/05  09:24:45
+        Log: From: Mike Hopkirk (hops) <hops@scoot.pdev.sco.com>
+             Date: Thu, 4 Nov 1999 16:34:23 -0800 (PST)
+             Message-Id: <199911050034.QAA06499@scoot.pdev.sco.com>
+             Subject: [ID 19991104.005] modified hints file for UnixWare7 ( svr5)
+     Branch: perl
+          ! Changes hints/svr5.sh
+____________________________________________________________________________
+[  4651] By: gsar                                  on 1999/12/05  09:01:19
+        Log: on dosish platforms, avoid infinite recursion in File::Path::mkpath()
+             when given non-existent drive names
+     Branch: perl
+          ! lib/File/Path.pm
+____________________________________________________________________________
+[  4650] By: gsar                                  on 1999/12/05  08:47:11
+        Log: windows build tweaks for change#4649
+     Branch: perl
+          ! win32/Makefile win32/makefile.mk
+____________________________________________________________________________
+[  4649] By: gsar                                  on 1999/12/05  07:49:28
+        Log: make File::Glob::glob() the default for CORE::glob()
+             (old csh glob can still be had with -DPERL_EXTERNAL_GLOB)
+     Branch: perl
+          ! Makefile.SH op.c pod/perldelta.pod win32/Makefile
+          ! win32/makefile.mk
+____________________________________________________________________________
+[  4648] By: gsar                                  on 1999/12/05  00:33:34
+        Log: fix bug in processing L<> tags (from j.vavruska@post.cz)
+     Branch: perl
+          ! lib/Pod/Html.pm
+____________________________________________________________________________
+[  4647] By: gsar                                  on 1999/12/05  00:14:01
+        Log: remove outdated entry
+     Branch: perl
+          ! pod/perltrap.pod
+____________________________________________________________________________
+[  4646] By: gsar                                  on 1999/12/04  22:48:51
+        Log: s/block/loop block/ in diagnostics about next, last, redo
+     Branch: perl
+          ! pod/perldiag.pod pp_ctl.c t/op/runlevel.t t/pragma/warn/pp_ctl
+____________________________________________________________________________
+[  4645] By: gsar                                  on 1999/12/04  22:25:32
+        Log: readability tweak suggested by GRommel@sears.com
+     Branch: perl
+          ! pp.c
+____________________________________________________________________________
+[  4644] By: gsar                                  on 1999/12/04  22:05:00
+        Log: Configure tweak from Peter Prymmer
+     Branch: perl
+          ! Configure
+____________________________________________________________________________
+[  4643] By: gsar                                  on 1999/12/04  21:55:27
+        Log: make weak keyword check look for defined(&lock), not
+             merely defined(*lock)
+     Branch: perl
+          ! toke.c
+____________________________________________________________________________
+[  4642] By: gsar                                  on 1999/12/04  21:11:51
+        Log: make eof() open ARGV if it isn't open already; also fixes bug
+             where eof() would operate on any last-read filehandle, not
+             just ARGV
+     Branch: perl
+          ! pp_sys.c
+____________________________________________________________________________
+[  4641] By: gsar                                  on 1999/12/04  04:42:25
+        Log: make uninitialized value warnings report opcode
+     Branch: perl
+          ! doio.c embed.h embed.pl global.sym objXSUB.h opcode.h
+          ! opcode.pl perl.h perlapi.c pp.c pp_hot.c proto.h sv.c
+          ! t/op/misc.t t/pragma/warn/1global t/pragma/warn/2use
+          ! t/pragma/warn/3both t/pragma/warn/4lint t/pragma/warn/7fatal
+          ! t/pragma/warn/doio t/pragma/warn/pp t/pragma/warn/pp_hot
+          ! t/pragma/warn/sv
+____________________________________________________________________________
+[  4640] By: gsar                                  on 1999/12/04  02:40:44
+        Log: provide explicit functions timegm_nocheck() and timelocal_nocheck()
+             that don't do range checking
+     Branch: perl
+          ! lib/Time/Local.pm
+____________________________________________________________________________
+[  4639] By: gsar                                  on 1999/12/04  01:00:49
+        Log: better implementation of change#3326; open(local $foo,...) now
+             allowed in addition to any uninitialized variable, for consistency
+             with how autovivification works elsewhere; add code to use the
+             variable name as the name of the handle for simple variables, so
+             that diagnostics report the handle: "... at - line 1, <$foo> line 10."
+     Branch: perl
+          ! op.c pod/perldelta.pod pp.c t/io/open.t
+____________________________________________________________________________
+[  4638] By: gsar                                  on 1999/12/03  21:20:00
+        Log: pod nits
+     Branch: perl
+          ! pod/perlfunc.pod pod/perlrun.pod
+____________________________________________________________________________
+[  4637] By: gsar                                  on 1999/12/03  08:59:04
+        Log: change#4431 was flawed
+     Branch: perl
+          ! Makefile.SH
+____________________________________________________________________________
+[  4636] By: gsar                                  on 1999/12/03  07:59:52
+        Log: pod embellishments from Nathan Torkington
+     Branch: perl
+          ! pod/perlfaq2.pod pod/perlhack.pod
+____________________________________________________________________________
+[  4635] By: gsar                                  on 1999/12/03  07:56:04
+        Log: perlfaq4 typo (from Jeff Pinyan <jeffp@crusoe.net>)
+     Branch: perl
+          ! pod/perlfaq4.pod
+____________________________________________________________________________
+[  4634] By: gsar                                  on 1999/12/03  07:47:47
+        Log: test tweak for VMS (from Craig A. Berry)
+     Branch: perl
+          ! t/io/nargv.t
+____________________________________________________________________________
+[  4633] By: gsar                                  on 1999/12/03  07:44:52
+        Log: patchls tweak from Andreas Koenig
+     Branch: perl
+          ! Porting/patchls
+____________________________________________________________________________
+[  4632] By: gsar                                  on 1999/12/03  07:42:23
+        Log: don't mess with the umask()
+     Branch: perl
+          ! installhtml installman installperl lib/ExtUtils/Install.pm
+          ! lib/ExtUtils/Manifest.pm
+____________________________________________________________________________
+[  4631] By: gsar                                  on 1999/12/03  06:52:50
+        Log: support -a switch to append bytecode to an existing file and make
+             perlcc use it (from Tom Hughes <tom@compton.nu>)
+     Branch: perl
+          ! ext/B/B/Bytecode.pm utils/perlcc.PL
+____________________________________________________________________________
+[  4630] By: gsar                                  on 1999/12/03  06:46:16
+        Log: document incompatible perl4 vec() vs bitwise ops interaction trap
+             (from Tom Phoenix)
+     Branch: perl
+          ! pod/perltrap.pod
+____________________________________________________________________________
+[  4629] By: gsar                                  on 1999/12/03  06:40:15
+        Log: use PerlIO abstraction rather than straight stdio (from
+             Chip Salzenberg)
+     Branch: perl
+          ! ext/ByteLoader/ByteLoader.xs
+____________________________________________________________________________
+[  4628] By: gsar                                  on 1999/12/03  06:15:54
+        Log: avoid warning in IO::Select::exists() if socket doesn't exist
+     Branch: perl
+          ! ext/IO/lib/IO/Select.pm
+____________________________________________________________________________
+[  4627] By: gsar                                  on 1999/12/03  06:05:19
+        Log: two small patches from Peter Prymmer <pvhp@forte.com>
+     Branch: perl
+          ! makedepend.SH win32/Makefile win32/makefile.mk
+____________________________________________________________________________
+[  4626] By: gsar                                  on 1999/12/03  05:36:38
+        Log: From: Peter Prymmer <pvhp@forte.com>
+             Date: Thu, 25 Nov 1999 21:06:19 -0800 (PST)
+             Message-Id: <199911260506.VAA17230@brio.forte.com>
+             Subject: [PATCH: 5.005_62] implement /[:ascii:]/ on ebcdic machines
+     Branch: perl
+          ! regcomp.c
+____________________________________________________________________________
+[  4625] By: gsar                                  on 1999/12/03  05:20:21
+        Log: Windows build tweaks due to change#4623
+     Branch: perl
+          ! win32/Makefile win32/makefile.mk win32/perlhost.h
+____________________________________________________________________________
+[  4624] By: gsar                                  on 1999/12/03  04:58:30
+        Log: add missing file
+     Branch: perl
+          + ext/DynaLoader/XSLoader_pm.PL
+____________________________________________________________________________
+[  4623] By: gsar                                  on 1999/12/03  04:47:03
+        Log: applied suggested patch; removed $VERSION = $VERSION hack
+             (change#4043 fixed the need for that)
+             From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Tue, 16 Nov 1999 01:50:31 EST
+             Message-Id: <199911160650.BAA18874@monk.mps.ohio-state.edu>
+             Subject: [PATCH 5.005_62] XSLoader.pm
+     Branch: perl
+          ! MANIFEST ext/B/B.pm ext/ByteLoader/ByteLoader.pm
+          ! ext/DB_File/DB_File.pm ext/Data/Dumper/Dumper.pm
+          ! ext/Devel/DProf/DProf.pm ext/Devel/Peek/Peek.pm
+          ! ext/DynaLoader/DynaLoader_pm.PL ext/DynaLoader/Makefile.PL
+          ! ext/DynaLoader/dlutils.c ext/Fcntl/Fcntl.pm
+          ! ext/File/Glob/Glob.pm ext/GDBM_File/GDBM_File.pm ext/IO/IO.pm
+          ! ext/NDBM_File/NDBM_File.pm ext/ODBM_File/ODBM_File.pm
+          ! ext/Opcode/Opcode.pm ext/POSIX/POSIX.pm
+          ! ext/SDBM_File/SDBM_File.pm ext/Socket/Socket.pm
+          ! ext/Thread/Thread.pm ext/attrs/attrs.pm ext/re/re.pm
+          ! lib/AutoLoader.pm lib/FindBin.pm lib/Getopt/Std.pm
+____________________________________________________________________________
+[  4622] By: gsar                                  on 1999/12/03  04:02:39
+        Log: revert change#4618 (breaks C<$_ = 'A:B'; s/^[a-z]:/x/>)
+     Branch: perl
+          ! Changes embed.h embed.pl perl.h proto.h regcomp.c regcomp.h
+____________________________________________________________________________
+[  4621] By: gsar                                  on 1999/12/02  22:24:53
+        Log: caveat about thread-safety of extensions
+     Branch: perl
+          ! pod/perlfork.pod
+____________________________________________________________________________
+[  4620] By: gsar                                  on 1999/12/02  20:31:02
+        Log: XS documentation patches suggested by Ilya, severally adjusted
+     Branch: perl
+          ! pod/perlxs.pod pod/perlxstut.pod
+____________________________________________________________________________
+[  4619] By: gsar                                  on 1999/12/02  17:52:50
+        Log: re-add missing Unicode database master
+     Branch: perl
+          + lib/unicode/Unicode.300
+____________________________________________________________________________
+[  4618] By: gsar                                  on 1999/12/02  06:56:18
+        Log: applied suggested patch with prototype changes
+             From:    Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date:    Tue, 23 Nov 1999 22:55:55 EST
+             Message-Id: <199911240355.WAA23033@monk.mps.ohio-state.edu>
+             Subject: [PATCH 5.005_62] First char cognizance
+     Branch: perl
+          ! embed.h embed.pl perl.h proto.h regcomp.c regcomp.h
+____________________________________________________________________________
+[  4617] By: gsar                                  on 1999/12/02  06:04:57
+        Log: fixes for bugs in change#4586 and OS/2 pod tweak, from Ilya
+     Branch: perl
+          ! os2/OS2/REXX/REXX.pm regexec.c t/op/re_tests
+____________________________________________________________________________
+[  4616] By: gsar                                  on 1999/12/02  04:30:22
+        Log: various documentation tweaks suggested by M. J. T. Guy
+     Branch: perl
+          ! INSTALL lib/strict.pm pod/perlfunc.pod pod/perlsyn.pod
+____________________________________________________________________________
+[  4615] By: gsar                                  on 1999/12/02  04:17:43
+        Log: various File::Glob fixes for DOSISH platforms
+             From: "Moore, Paul" <Paul.Moore@uk.origin-it.com>
+             Date: Tue, 02 Nov 1999 11:11:25 GMT
+             Message-Id: <714DFA46B9BBD0119CD000805FC1F53BDC38E3@UKRUX002.rundc.uk.origin-it.com>
+             Subject: File::Glob again. Final patch, honest!
+     Branch: perl
+          + t/lib/glob-case.t
+          ! MANIFEST ext/File/Glob/Changes ext/File/Glob/Glob.pm
+          ! ext/File/Glob/Glob.xs ext/File/Glob/bsd_glob.c
+          ! ext/File/Glob/bsd_glob.h op.c t/lib/glob-global.t
+____________________________________________________________________________
+[  4614] By: gsar                                  on 1999/12/02  03:42:55
+        Log: allow XSUBs and prototyped subroutines to be used with sort() (tweaked
+             variant of patch suggested by Peter Haworth <pmh@edison.ioppublishing.com>)
+     Branch: perl
+          ! pod/perldelta.pod pod/perlfunc.pod pp_ctl.c t/op/sort.t
+____________________________________________________________________________
+[  4613] By: gsar                                  on 1999/12/02  01:59:19
+        Log: ignore yet another known scalar leak
+     Branch: perl
+          ! t/pragma/warn/regcomp
+____________________________________________________________________________
+[  4612] By: gsar                                  on 1999/12/02  01:15:02
+        Log: avoid potential stack extension bug in pp_unpack() (spotted by Ilya)
+     Branch: perl
+          ! pp.c
+____________________________________________________________________________
+[  4611] By: gsar                                  on 1999/12/02  00:31:43
+        Log: a somewhat tweaked version of suggested patch
+             From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Wed, 27 Oct 1999 18:57:41 -0400 (EDT)
+             Message-Id: <199910272257.SAA29928@monk.mps.ohio-state.edu>
+             Subject: [PATCH 5.005_62] Another round of pack/vec docs patches
+     Branch: perl
+          ! pod/perlfunc.pod
+____________________________________________________________________________
+[  4610] By: gsar                                  on 1999/12/01  19:09:31
+        Log: more accurate require() pseudocode (from James P. Williams
+             <James.P.Williams@USAHQ.UnitedSpaceAlliance.com>)
+     Branch: perl
+          ! pod/perlfunc.pod
+____________________________________________________________________________
+[  4609] By: gsar                                  on 1999/12/01  18:43:49
+        Log: avoid "Callback called exit" error on intentional exit()
+     Branch: perl
+          ! embedvar.h intrpvar.h objXSUB.h perl.c perl.h pp_ctl.c
+____________________________________________________________________________
+[  4608] By: gsar                                  on 1999/12/01  18:42:38
+        Log: find_byclass() prototype was incoherent
+     Branch: perl
+          ! regexec.c
+____________________________________________________________________________
+[  4607] By: gsar                                  on 1999/12/01  05:45:10
+        Log: better documentation for goto &NAME (from M. J. T. Guy)
+     Branch: perl
+          ! pod/perlfunc.pod
+____________________________________________________________________________
+[  4606] By: gsar                                  on 1999/12/01  05:33:14
+        Log: integrate cfgperl contents into mainline
+     Branch: perl
+         +> lib/unicode/Jamo.txt lib/unicode/NamesList.html
+         +> lib/unicode/UCD300.html lib/unicode/Unicode3.html
+          - lib/unicode/Jamo-2.txt lib/unicode/Unicode.html
+          ! Changes
+         !> (integrate 210 files)
+____________________________________________________________________________
+[  4605] By: gsar                                  on 1999/12/01  05:15:27
+        Log: avoid PTR->IV cast warnings
+     Branch: perl
+          ! mg.c op.c scope.h
+____________________________________________________________________________
+[  4604] By: gsar                                  on 1999/12/01  03:59:56
+        Log: email address changes
+     Branch: perl
+          ! AUTHORS Changes Porting/genlog Porting/p4d2p Porting/p4desc
+          ! README.win32 ext/Data/Dumper/Dumper.pm lib/DB.pm
+          ! lib/File/DosGlob.pm lib/Math/Complex.pm lib/Math/Trig.pm
+          ! pod/perl5005delta.pod pod/perlport.pod t/op/runlevel.t
+          ! utils/perlbug.PL utils/perldoc.PL win32/bin/perlglob.pl
+____________________________________________________________________________
+[  4603] By: gsar                                  on 1999/12/01  03:45:13
+        Log: minor USE_ITHREADS tweaks
+     Branch: perl
+          ! doio.c op.c op.h pp_hot.c pp_sys.c run.c win32/Makefile
+          ! win32/perllib.c win32/win32.h
+____________________________________________________________________________
+[  4602] By: gsar                                  on 1999/12/01  01:00:09
+        Log: more complete pseudo-fork() support for Windows
+     Branch: perl
+          + pod/perlfork.pod win32/perlhost.h win32/vdir.h win32/vmem.h
+          ! MANIFEST XSUB.h cop.h dump.c embed.h embed.pl embedvar.h
+          ! ext/B/B/CC.pm ext/Opcode/Opcode.xs global.sym globals.c
+          ! globvar.sym gv.c hv.c intrpvar.h iperlsys.h makedef.pl mg.c
+          ! mpeix/mpeixish.h objXSUB.h op.c op.h os2/os2ish.h perl.c
+          ! perl.h perlapi.c plan9/plan9ish.h pod/Makefile pod/buildtoc
+          ! pod/perl.pod pod/roffitall pp.c pp_ctl.c pp_hot.c pp_sys.c
+          ! proto.h regcomp.c run.c scope.c scope.h sv.c t/op/fork.t
+          ! toke.c unixish.h util.c vos/vosish.h win32/Makefile
+          ! win32/makefile.mk win32/perllib.c win32/win32.c win32/win32.h
+          ! win32/win32iop.h win32/win32thread.h
+____________________________________________________________________________
+[  4601] By: gsar                                  on 1999/12/01  00:45:38
+        Log: rudimentary support for remote debugging, from aeons ago (somewhat
+             modified)
+             From: Graham TerMarsch <grahamt@ActiveState.com>
+             Date: Sat, 12 Sep 1998 10:46:55 -0700
+             Message-ID: <35FAB38F.EA9AAC50@activestate.com>
+             Subject: Re: Patches to perl5db.pl to allow for remote debugging
+     Branch: perl
+          ! lib/perl5db.pl
+____________________________________________________________________________
+[  4600] By: chip                                  on 1999/11/19  21:16:00
+        Log: Document known limitations of fdopen() on some systems,
+             as they apply to open() and sysopen().
+     Branch: perl
+          ! pod/perlfunc.pod
+____________________________________________________________________________
+[  4599] By: chip                                  on 1999/11/19  17:20:19
+        Log: Undef printf before redirecting it to PerlIO_stdoutf.
+             (Avoids an irritating warning when compiling with PerlIO.)
+     Branch: perl
+          ! perl.h
+____________________________________________________________________________
+[  4598] By: jhi                                   on 1999/11/22  21:30:17
+        Log: Small VMS nits from Craig A. Berry, <craig.berry@metamor.com>.
+     Branch: cfgperl
+          ! README.vms t/io/open.t
+____________________________________________________________________________
+[  4597] By: jhi                                   on 1999/11/21  16:21:21
+        Log: Replace #4596 with the change done in 5.005_03.
+     Branch: cfgperl
+          ! ext/Errno/Errno_pm.PL
+____________________________________________________________________________
+[  4596] By: jhi                                   on 1999/11/21  16:07:20
+        Log: Skip processing a file if the file to be opened is '-'
+             (can happen in UNICOS)
+     Branch: cfgperl
+          ! ext/Errno/Errno_pm.PL
+____________________________________________________________________________
+[  4595] By: jhi                                   on 1999/11/21  14:05:10
+        Log: VMS patches from Peter Prymmer.
+     Branch: cfgperl
+          ! doio.c mg.c taint.c vms/subconfigure.com vms/vms.c
+____________________________________________________________________________
+[  4594] By: jhi                                   on 1999/11/18  17:07:14
+        Log: The find_byclass prototype is already in proto.h. 
+     Branch: cfgperl
+          ! regexec.c
+____________________________________________________________________________
+[  4593] By: gsar                                  on 1999/11/16  21:25:21
+        Log: typo in flag checks
+     Branch: utfperl
+          ! sv.h
+____________________________________________________________________________
+[  4592] By: jhi                                   on 1999/11/16  21:17:25
+        Log: Regen Configure.
+     Branch: cfgperl
+          ! Configure config_h.SH pp.c pp.h vms/subconfigure.com
+     Branch: metaconfig
+          ! U/a_dvisory/quadtype.U
+____________________________________________________________________________
+[  4591] By: jhi                                   on 1999/11/16  14:53:19
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> cop.h deb.c embed.h embed.pl global.sym lib/Pod/Checker.pm
+         !> lib/Pod/InputObjects.pm lib/Pod/Parser.pm lib/Pod/Select.pm
+         !> lib/Pod/Usage.pm makedef.pl objXSUB.h perl.c perlapi.c
+         !> pod/podchecker.PL pp_sys.c proto.h sv.c t/pod/poderrs.t
+         !> t/pod/poderrs.xr
+____________________________________________________________________________
+[  4590] By: gsar                                  on 1999/11/16  05:57:56
+        Log: Pod::Parser updates (v1.091) from Brad Appleton <bradapp@enteract.com>
+     Branch: perl
+          ! lib/Pod/Checker.pm lib/Pod/InputObjects.pm lib/Pod/Parser.pm
+          ! lib/Pod/Select.pm lib/Pod/Usage.pm pod/podchecker.PL
+          ! t/pod/poderrs.t t/pod/poderrs.xr
+____________________________________________________________________________
+[  4589] By: gsar                                  on 1999/11/15  18:47:34
+        Log: add a synchronous stub fork() for USE_ITHREADS to prove that a simple
+             C<if (fork()) { print "parent" } else { print "child" }> works on
+             Windows (incidentally running a cloned^2 interpreter :)
+     Branch: perl
+          ! embed.h embed.pl global.sym makedef.pl objXSUB.h perlapi.c
+          ! pp_sys.c proto.h sv.c
+____________________________________________________________________________
+[  4588] By: gsar                                  on 1999/11/15  14:34:36
+        Log: cloning the stack (part 1)
+     Branch: perl
+          ! cop.h deb.c perl.c sv.c
+____________________________________________________________________________
+[  4587] By: jhi                                   on 1999/11/15  00:22:20
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> Changes embed.h embed.pl embedvar.h global.sym intrpvar.h
+         !> makedef.pl objXSUB.h op.c perl.h perlapi.c proto.h run.c sv.c
+         !> win32/perllib.c
+____________________________________________________________________________
+[  4586] By: jhi                                   on 1999/11/14  21:17:26
+        Log: Ilya's "hopscotch" patch, reworked by Ilya to fit.
+     Branch: cfgperl
+          ! embed.h embed.pl embedvar.h proto.h regexec.c t/op/re_tests
+____________________________________________________________________________
+[  4585] By: gsar                                  on 1999/11/14  20:01:45
+        Log: tweak for win32 build
+     Branch: perl
+          ! embed.h embed.pl op.c proto.h
+____________________________________________________________________________
+[  4584] By: gsar                                  on 1999/11/14  19:46:25
+        Log: cosmetic tweaks
+     Branch: perl
+          ! embed.h embed.pl embedvar.h global.sym intrpvar.h makedef.pl
+          ! objXSUB.h perl.h perlapi.c proto.h sv.c win32/perllib.c
+____________________________________________________________________________
+[  4583] By: gsar                                  on 1999/11/14  17:38:32
+        Log: fix problem pointer casts
+     Branch: perl
+          ! Changes run.c sv.c
+____________________________________________________________________________
+[  4582] By: jhi                                   on 1999/11/14  17:10:01
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> cop.h dump.c ext/Opcode/Opcode.xs gv.c op.c perl.c perly.c
+         !> perly.y pp_ctl.c pp_sys.c sv.c t/op/misc.t toke.c util.c
+         !> vms/perly_c.vms win32/perllib.c
+____________________________________________________________________________
+[  4581] By: jhi                                   on 1999/11/14  17:08:23
+        Log: The separation of 64-bitness and largefileness continues
+             (with a setback, see hpux.sh).
+     Branch: cfgperl
+          ! Configure MANIFEST config_h.SH hints/aix.sh hints/hpux.sh
+          ! hints/solaris_2.sh
+     Branch: metaconfig
+          ! U/threads/archname.U U/typedefs/lseektype.U
+     Branch: metaconfig/U/perl
+          ! fpossize.U use64bits.U uselfs.U
+____________________________________________________________________________
+[  4580] By: jhi                                   on 1999/11/14  13:26:41
+        Log: Another Unicode update.
+     Branch: cfgperl
+          + lib/unicode/Jamo.txt lib/unicode/NamesList.html
+          + lib/unicode/UCD300.html lib/unicode/Unicode3.html
+          - lib/unicode/Jamo-2.txt lib/unicode/Unicode.html
+          ! (edit 189 files)
+____________________________________________________________________________
+[  4579] By: gsar                                  on 1999/11/14  10:21:49
+        Log: sundry cleanups for cloned interpreters (only known failure mode
+             is due to regexps keeping non-constant data in their compiled
+             structures)
+     Branch: perl
+          ! cop.h dump.c ext/Opcode/Opcode.xs gv.c op.c perl.c pp_ctl.c
+          ! pp_sys.c sv.c toke.c util.c win32/perllib.c
+____________________________________________________________________________
+[  4578] By: gsar                                  on 1999/11/14  03:37:37
+        Log: fix bug in change#4515 (STOP blocks now see @ARGV like the rest)
+     Branch: perl
+          ! perly.c perly.y t/op/misc.t vms/perly_c.vms
+____________________________________________________________________________
+[  4577] By: jhi                                   on 1999/11/13  19:50:24
+        Log: Change #4576 accidentally leaked also parts of
+             Ilya's patch that won't apply cleanly anymore.
+     Branch: cfgperl
+          ! regexec.c t/op/re_tests
+____________________________________________________________________________
+[  4576] By: jhi                                   on 1999/11/13  19:43:37
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+          ! embed.h embed.pl embedvar.h proto.h regexec.c t/op/re_tests
+         !> ext/Errno/Errno_pm.PL ext/IO/lib/IO/Socket.pm t/lib/dumper.t
+         !> t/op/regexp.t t/pragma/overload.t
+____________________________________________________________________________
+[  4575] By: gsar                                  on 1999/11/13  19:41:46
+        Log: typos in change#4561 and change#4565
+     Branch: perl
+          ! ext/Errno/Errno_pm.PL ext/IO/lib/IO/Socket.pm
+____________________________________________________________________________
+[  4574] By: gsar                                  on 1999/11/13  19:31:19
+        Log: revert non-kosher parts of change#4562 (sort order problems
+             should be ignored (on ebcdic) by fixing dumper.t/T() to sort
+             result and expected lines; /[:ascii:]/ not working should be
+             fixed, not ignored in regexp.t; result from sort should be
+             fixed to be ascii portable on ebcdic, not ebcdic-specific)
+     Branch: perl
+          ! t/lib/dumper.t t/op/regexp.t t/pragma/overload.t
+____________________________________________________________________________
+[  4573] By: gsar                                  on 1999/11/13  19:13:04
+        Log: integrate cfgperl changes into mainline
+     Branch: perl
+         +> lib/unicode/Eq/Latin1.pl lib/unicode/Eq/Unicode.pl
+         +> lib/unicode/In/BopomofoExtended.pl
+         +> lib/unicode/In/BraillePatterns.pl
+         +> lib/unicode/In/CJKRadicalsSupplement.pl
+         +> lib/unicode/In/CJKUnifiedIdeographsExtensionA.pl
+         +> lib/unicode/In/Cherokee.pl
+         +> lib/unicode/In/IdeographicDescriptionCharacters.pl
+         +> lib/unicode/In/KangxiRadicals.pl lib/unicode/In/Khmer.pl
+         +> lib/unicode/In/Mongolian.pl lib/unicode/In/Myanmar.pl
+         +> lib/unicode/In/Ogham.pl lib/unicode/In/Runic.pl
+         +> lib/unicode/In/Sinhala.pl lib/unicode/In/Syriac.pl
+         +> lib/unicode/In/Thaana.pl
+         +> lib/unicode/In/UnifiedCanadianAboriginalSyllabics.pl
+         +> lib/unicode/In/YiRadicals.pl lib/unicode/In/YiSyllables.pl
+          - lib/unicode/Eq/Latin1 lib/unicode/Eq/Unicode
+         !> (integrate 213 files)
+____________________________________________________________________________
+[  4572] By: jhi                                   on 1999/11/13  18:44:50
+        Log: From: "Craig A. Berry" <craig.berry@metamor.com>
+             To: perl5-porters@perl.org, VMSPERL@perl.org
+             Subject: [PATCH 5.005_03 and 5.005_62] updates to README.vms
+             Date: Wed, 27 Oct 1999 11:02:54 -0500
+             Message-Id: <4.2.0.58.19991027105257.00addc10@mmtnt11.metamor.com>
+     Branch: cfgperl
+          ! README.vms
+____________________________________________________________________________
+[  4571] By: jhi                                   on 1999/11/13  18:33:39
+        Log: From: jand@activestate.com (Jan Dubois)
+             To: perl5-porters@perl.org, Perl-Win32-Porters@activestate.com
+             Cc: Douglas Lankshear <dougl@activestate.com>,
+             Gurusamy Sarathy <gsar@activestate.com>
+             Subject: [5.005_62 PATCH] support link() on WinNT and NTFS
+             Date: Tue, 09 Nov 1999 00:38:33 +0100
+             Message-ID: <382b5d24.10899522@smtprelay.t-online.de>
+     Branch: cfgperl
+          ! XSUB.h iperlsys.h pp_sys.c t/io/fs.t win32/config.bc
+          ! win32/config.gc win32/config.vc win32/config_H.bc
+          ! win32/config_H.gc win32/config_H.vc win32/perllib.c
+          ! win32/win32.c win32/win32iop.h
+____________________________________________________________________________
+[  4570] By: jhi                                   on 1999/11/13  18:30:37
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             To: perl5-porters@perl.org (Mailing list Perl5)
+             Subject: [PATCH 5.005_62] makedef.pl goof
+             Date: Mon, 8 Nov 1999 23:55:21 -0500 (EST)
+             Message-Id: <199911090455.XAA25627@monk.mps.ohio-state.edu>
+     Branch: cfgperl
+          ! makedef.pl
+____________________________________________________________________________
+[  4569] By: jhi                                   on 1999/11/13  18:06:54
+        Log: From: Michael G Schwern <schwern@pobox.com>
+             To: perl5-porters@perl.org, pod-people@perl.org
+             Cc: tchrist@mox.perl.com, gnat@frii.com
+             Subject: [DOCPATCH 5.005_62 perlfaq9.pod] Mention HTML::FormatText
+             Date: Wed, 10 Nov 1999 17:21:46 -0500
+             Message-ID: <19991110172146.A23527@athens.aocn.com>
+     Branch: cfgperl
+          ! pod/perlfaq9.pod
+____________________________________________________________________________
+[  4568] By: jhi                                   on 1999/11/13  18:05:33
+        Log: From: "Paul Moore" <gustav@morpheus.demon.co.uk>
+             To: <perl5-porters@perl.org>
+             Subject: DynaLoader_pm.PL patch (backslashes in strings)
+             Date: Wed, 10 Nov 1999 22:52:02 -0000
+             Message-ID: <LPBBIIMJKJMPNOGHGLLCMEBFCAAA.gustav@morpheus.demon.co.uk>
+     Branch: cfgperl
+          ! ext/DynaLoader/DynaLoader_pm.PL
+____________________________________________________________________________
+[  4567] By: jhi                                   on 1999/11/13  18:03:52
+        Log: From: JD Laub <jdl@access-health.com>
+             To: perl5-porters@perl.org
+             Subject: [ID 19991112.002] patch: Exporter.pm not reporting path
+             Date: Fri, 12 Nov 1999 08:58:28 -0700 (MST)
+             Message-Id: <199911121558.IAA08915@mocha.iasi.com>
+     Branch: cfgperl
+          ! lib/Exporter/Heavy.pm
+____________________________________________________________________________
+[  4566] By: jhi                                   on 1999/11/13  18:01:24
+        Log: From: Bernard Quatermass <bernard@quatermass.co.uk>
+             To: perl5-porters@perl.org
+             Subject: small patch for perldoc
+             Date: Fri, 12 Nov 1999 23:11:43 GMT
+             Message-Id: <VA.0000001c.00d1e05a@quatermass.co.uk>
+     Branch: cfgperl
+          ! utils/perldoc.PL
+____________________________________________________________________________
+[  4565] By: jhi                                   on 1999/11/13  17:58:54
+        Log: From: Scott Gifford <sgifford@tir.com>
+             To: perl5-porters@perl.org
+             Cc: gbarr@pobox.com
+             Subject: [ID 19991112.004] Bug in IO::Socket (patch included)
+             Date: 12 Nov 1999 18:55:30 -0500
+             Message-Id: <m3emdvw9hp.fsf@sgifford.tir.com>
+     Branch: cfgperl
+          ! ext/IO/lib/IO/Socket.pm
+____________________________________________________________________________
+[  4564] By: jhi                                   on 1999/11/13  17:45:39
+        Log: Applied manually:
+             From: "Craig A. Berry" <craig.berry@metamor.com>
+             To: perl5-porters@perl.org, VMSPERL@perl.org
+             Subject: [PATCH 5.005_62] patches required to build on VMS
+             Date: Tue, 09 Nov 1999 18:16:14 -0600
+             Message-Id: <4.2.2.19991109173839.00d12630@mmtnt11.metamor.com>
+     Branch: cfgperl
+          ! configure.com vms/descrip_mms.template vms/subconfigure.com
+          ! vms/vms.c vms/vmsish.h
+____________________________________________________________________________
+[  4563] By: jhi                                   on 1999/11/13  17:18:41
+        Log: Regen Unicode tables to include a warning:
+             Thou Shalt Not Edit Them By Hand; add missing
+             (Unicode 2.0 -introduced) tables to MANIFEST;
+             convert the equivalence tables to be valid Perl code.
+     Branch: cfgperl
+          + lib/unicode/Eq/Latin1.pl lib/unicode/Eq/Unicode.pl
+          + lib/unicode/In/BopomofoExtended.pl
+          + lib/unicode/In/BraillePatterns.pl
+          + lib/unicode/In/CJKRadicalsSupplement.pl
+          + lib/unicode/In/CJKUnifiedIdeographsExtensionA.pl
+          + lib/unicode/In/Cherokee.pl
+          + lib/unicode/In/IdeographicDescriptionCharacters.pl
+          + lib/unicode/In/KangxiRadicals.pl lib/unicode/In/Khmer.pl
+          + lib/unicode/In/Mongolian.pl lib/unicode/In/Myanmar.pl
+          + lib/unicode/In/Ogham.pl lib/unicode/In/Runic.pl
+          + lib/unicode/In/Sinhala.pl lib/unicode/In/Syriac.pl
+          + lib/unicode/In/Thaana.pl
+          + lib/unicode/In/UnifiedCanadianAboriginalSyllabics.pl
+          + lib/unicode/In/YiRadicals.pl lib/unicode/In/YiSyllables.pl
+          - lib/unicode/Eq/Latin1 lib/unicode/Eq/Unicode
+          ! (edit 169 files)
+____________________________________________________________________________
+[  4562] By: jhi                                   on 1999/11/13  16:53:00
+        Log: From: Peter Prymmer <pvhp@forte.com>
+             To: gsar@activestate.com, perl-mvs@perl.org, perlbug@perl.com
+             Subject: [PATCH: 5.005_62]was Re: [ID 19991102.003] perl on os390
+             Date: Wed, 10 Nov 1999 14:34:36 -0800 (PST)
+             Message-Id: <199911102234.OAA01018@brio.forte.com>
+     Branch: cfgperl
+          ! t/lib/dumper.t t/op/pack.t t/op/regexp.t t/pragma/locale.t
+          ! t/pragma/overload.t
+____________________________________________________________________________
+[  4561] By: jhi                                   on 1999/11/13  16:29:37
+        Log: $Config{myarchname} is not a good architecture identifier
+             because it may contain host/node identification like
+             CPU serial numbers.
+     Branch: cfgperl
+          ! ext/Errno/Errno_pm.PL
+____________________________________________________________________________
+[  4560] By: jhi                                   on 1999/11/13  16:26:13
+        Log: Continue largefileness separation from quadness;
+             move nv-preserving test out of perl.h into Configure;
+             use HAS_SETVBUF in IO.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH ext/IO/IO.xs hints/solaris_2.sh perl.h pp_sys.c
+     Branch: metaconfig
+          ! U/a_dvisory/quadtype.U
+     Branch: metaconfig/U/perl
+          + nvpresuv.U
+          ! d_fseeko.U d_ftello.U io64.U perlxv.U
+____________________________________________________________________________
+[  4559] By: jhi                                   on 1999/11/13  13:46:38
+        Log: Try to fix largefileness so that it "works" without a quad IV.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH perl.h pp_sys.c t/lib/syslfs.t t/op/lfs.t
+     Branch: metaconfig
+          ! U/a_dvisory/quadtype.U U/typedefs/lseektype.U
+     Branch: metaconfig/U/perl
+          ! io64.U
+____________________________________________________________________________
+[  4558] By: jhi                                   on 1999/11/13  11:36:19
+        Log: Undo drift from mainline.
+     Branch: cfgperl
+          ! regcomp.c util.c utils/h2xs.PL
+____________________________________________________________________________
+[  4557] By: gsar                                  on 1999/11/13  10:54:46
+        Log: typo
+     Branch: perl
+          ! util.c
+____________________________________________________________________________
+[  4556] By: gsar                                  on 1999/11/13  10:53:41
+        Log: integrate cfgperl contents (op.[ch] needed manual resolve)
+     Branch: perl
+         +> epoc/Config.pm epoc/autosplit.pl epoc/createpkg.pl
+         +> epoc/epoc_stubs.c
+         !> (integrate 48 files)
+____________________________________________________________________________
+[  4555] By: jhi                                   on 1999/11/13  10:05:54
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> dump.c ext/Devel/DProf/DProf.xs gv.c mg.c op.c perl.c pp.c
+         !> sv.c warnings.h warnings.pl win32/Makefile win32/perllib.c
+____________________________________________________________________________
+[  4554] By: jhi                                   on 1999/11/13  10:03:07
+        Log: s/_SIGN$/_sign/g;
+     Branch: metaconfig
+          ! U/typedefs/gidsign.U U/typedefs/pidsign.U U/typedefs/uidsign.U
+____________________________________________________________________________
+[  4553] By: gsar                                  on 1999/11/13  02:17:53
+        Log: cloned interpreters now actually run and pass all but 55/10386
+             subtests; various subtle bugs, new and old, observed when running
+             cloned interpreters have been fixed
+             
+             still to do:
+             |  * dup psig_ptr table
+             |  * merge PADOP GVs support with "our" SVs (existing PADOPs are too
+             |    simple-minded and grab one pad entry each, heavily bloating
+             |    the pad by not avoiding dups)
+             |  * overloaded constants are not really immutable--they need to
+             |    be PADOPs
+             |  * allocator for constants and OPs need to be spelled differently
+             |    (shared vs interpreter-local allocations)
+             |  * optree refcounting is still missing locking (macros are in place)
+             |  * curstackinfo, {mark,scope,save,ret}stack need to be cloned so
+             |    perl_clone() can be called from within runops*()
+     Branch: perl
+          ! dump.c ext/Devel/DProf/DProf.xs gv.c mg.c op.c perl.c pp.c
+          ! sv.c warnings.h warnings.pl win32/Makefile win32/perllib.c
+____________________________________________________________________________
+[  4552] By: jhi                                   on 1999/11/11  23:17:43
+        Log: Turn on largefileness always if available and
+             continue 64-bit fixes.
+     Branch: cfgperl
+          ! Configure config_h.SH handy.h hints/aix.sh hints/dec_osf.sh
+          ! hints/hpux.sh hints/irix_6.sh hints/solaris_2.sh perl.h pp.c
+          ! sv.c t/lib/syslfs.t t/op/lfs.t utf8.c
+____________________________________________________________________________
+[  4551] By: jhi                                   on 1999/11/11  23:16:15
+        Log: Split int64type from i_inttypes, rename quadcase into quadkind.
+     Branch: metaconfig
+          ! U/a_dvisory/quadtype.U
+     Branch: metaconfig/U/perl
+          + d_int64t.U
+          ! i_inttypes.U io64.U
+____________________________________________________________________________
+[  4550] By: jhi                                   on 1999/11/11  20:24:55
+        Log: Fix a thinko in 4548.
+     Branch: cfgperl
+          ! pp_sys.c
+____________________________________________________________________________
+[  4549] By: jhi                                   on 1999/11/11  19:48:21
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> (integrate 56 files)
+____________________________________________________________________________
+[  4548] By: jhi                                   on 1999/11/11  19:41:56
+        Log: Try to do something if st_size, st_uid, st_gid are too big for an IV;
+             regen Configure.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH pp_sys.c
+____________________________________________________________________________
+[  4547] By: jhi                                   on 1999/11/11  19:40:38
+        Log: s/_SIZE$/_size/g; add sizesize and ssizesize.
+     Branch: metaconfig
+          + U/typedefs/sizesize.U U/typedefs/ssizesize.U
+          ! U/typedefs/gidsize.U U/typedefs/pidsize.U U/typedefs/uidsize.U
+____________________________________________________________________________
+[  4546] By: gsar                                  on 1999/11/11  10:32:54
+        Log: avoid stash pointers in optree under USE_ITHREADS
+     Branch: perl
+          ! bytecode.pl cop.h ext/B/B.xs ext/B/B/Asmdata.pm
+          ! ext/B/B/Bytecode.pm ext/B/B/C.pm ext/B/B/Debug.pm
+          ! ext/B/B/Deparse.pm ext/ByteLoader/bytecode.h
+          ! ext/ByteLoader/byterun.c ext/ByteLoader/byterun.h
+          ! ext/Opcode/Opcode.xs gv.c op.c perl.c pp.c pp_ctl.c pp_hot.c
+          ! scope.h sv.c
+____________________________________________________________________________
+[  4545] By: gsar                                  on 1999/11/11  06:04:20
+        Log: another change towards a shareable optree: avoid pointer to filegv
+             in COP; revert parts of change#4485 and s/xcv_filegv/xcv_file/
+             (CvFILE() may yet come in handy somewhere); adjust compiler doodads
+             to suit
+     Branch: perl
+          ! bytecode.pl cop.h cv.h dump.c ext/B/B.pm ext/B/B.xs
+          ! ext/B/B/Asmdata.pm ext/B/B/Bytecode.pm ext/B/B/C.pm
+          ! ext/B/B/CC.pm ext/B/B/Debug.pm ext/B/B/Deparse.pm
+          ! ext/B/B/Lint.pm ext/B/B/Xref.pm ext/ByteLoader/bytecode.h
+          ! ext/ByteLoader/byterun.c ext/ByteLoader/byterun.h
+          ! ext/Devel/Peek/Peek.pm gv.c gv.h op.c perl.c pp.c pp_ctl.c
+          ! pp_sys.c scope.c scope.h sv.c sv.h toke.c util.c util.h
+          ! win32/perllib.c
+____________________________________________________________________________
+[  4544] By: gsar                                  on 1999/11/10  18:19:12
+        Log: more cleanups for change#4539
+     Branch: perl
+          ! gv.h op.c op.h pp_ctl.c pp_hot.c
+____________________________________________________________________________
+[  4543] By: gsar                                  on 1999/11/10  01:52:22
+        Log: remove dead branch/infinite looper in change#3612
+     Branch: perl
+          ! op.c
+____________________________________________________________________________
+[  4542] By: gsar                                  on 1999/11/09  20:05:47
+        Log: IoDIRP may be fake when used in source filters, mark as such
+     Branch: perl
+          ! sv.c sv.h toke.c
+____________________________________________________________________________
+[  4541] By: gsar                                  on 1999/11/09  05:47:53
+        Log: small nits in changes#4538,4539
+     Branch: perl
+          ! op.c sv.c
+____________________________________________________________________________
+[  4540] By: gsar                                  on 1999/11/08  20:30:58
+        Log: win32 symbol export tweak
+     Branch: perl
+          ! makedef.pl win32/win32.c win32/win32iop.h
+____________________________________________________________________________
+[  4539] By: gsar                                  on 1999/11/08  18:50:40
+        Log: preliminary support for GVOP indirection via pad
+     Branch: perl
+          ! doio.c dump.c embed.h embed.pl global.sym objXSUB.h op.c op.h
+          ! opcode.pl perlapi.c pp_hot.c pp_sys.c proto.h run.c
+____________________________________________________________________________
+[  4538] By: gsar                                  on 1999/11/08  11:25:49
+        Log: preliminary support for perl_clone() (still needs work in
+             the following areas: SVOPs must indirect via pad; context
+             stack, scope stack, and runlevels must be cloned; must
+             hook up the virtualized pseudo-process support provided by
+             "host"; ...)
+     Branch: perl
+          ! av.h embed.h embed.pl embedvar.h global.sym hv.c hv.h
+          ! intrpvar.h makedef.pl objXSUB.h perl.h perlapi.c proto.h sv.c
+          ! win32/perllib.c win32/win32.c
+____________________________________________________________________________
+[  4537] By: gsar                                  on 1999/11/08  11:19:18
+        Log: more thorough cleanup in perl_destroy()
+     Branch: perl
+          ! perl.c util.c
+____________________________________________________________________________
+[  4536] By: gsar                                  on 1999/11/08  07:16:10
+        Log: win32 internal data must be interpreter-local
+     Branch: perl
+          ! win32/win32.c win32/win32.h win32/win32sck.c
+____________________________________________________________________________
+[  4535] By: gsar                                  on 1999/11/08  04:17:28
+        Log: tweak change#4502
+     Branch: perl
+          ! doio.c perl.c
+____________________________________________________________________________
+[  4534] By: jhi                                   on 1999/11/07  13:17:03
+        Log: Four special class subs, not three.
+     Branch: cfgperl
+          ! pod/perlmod.pod
+____________________________________________________________________________
+[  4533] By: jhi                                   on 1999/11/07  13:13:15
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> mg.c t/io/print.t
+____________________________________________________________________________
+[  4532] By: jhi                                   on 1999/11/07  12:36:10
+        Log: More test program maintenance.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig
+          ! U/a_dvisory/intsize.U U/compline/alignbytes.U
+          ! U/compline/charsize.U U/compline/d_sigaction.U
+          ! U/compline/doublesize.U U/compline/floatsize.U
+          ! U/compline/nblock_io.U U/compline/ptrsize.U
+          ! U/modified/Signal.U U/typedefs/gidsize.U U/typedefs/pidsize.U
+          ! U/typedefs/uidsize.U
+     Branch: metaconfig/U/perl
+          ! fpossize.U
+____________________________________________________________________________
+[  4531] By: jhi                                   on 1999/11/07  00:34:09
+        Log: Tidy up the metaconfig test programs.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig
+          ! U/a_dvisory/intsize.U U/compline/alignbytes.U
+          ! U/compline/charsize.U U/compline/doublesize.U
+          ! U/compline/nblock_io.U U/compline/ptrsize.U
+          ! U/modified/d_longlong.U U/typedefs/gidsize.U
+          ! U/typedefs/lseektype.U U/typedefs/pidsize.U
+          ! U/typedefs/uidsize.U
+     Branch: metaconfig/U/perl
+          ! fpossize.U
+____________________________________________________________________________
+[  4530] By: jhi                                   on 1999/11/06  23:51:34
+        Log: So many printfs, so little time.
+     Branch: cfgperl
+          ! op.c perl.c regcomp.c scope.c util.c
+____________________________________________________________________________
+[  4529] By: jhi                                   on 1999/11/06  23:27:35
+        Log: Replace the explicit zeros with NOOPs.
+     Branch: cfgperl
+          ! perl.h
+____________________________________________________________________________
+[  4528] By: jhi                                   on 1999/11/06  23:10:54
+        Log: From: jand@activestate.com (Jan Dubois)
+             To: perl5-porters@perl.org
+             Cc: Mike Blazer <blazer@mail.nevalink.ru>,
+             Mark Borgerding <mborgerding@acm.org>
+             Subject: [5.005_62 PATCH] binmode and locale support for -T and -B filetest operators
+             Date: Sat, 06 Nov 1999 22:16:43 +0100
+             Message-ID: <38279207.46448719@smtprelay.t-online.de>
+     Branch: cfgperl
+          ! op.c op.h
+____________________________________________________________________________
+[  4527] By: jhi                                   on 1999/11/06  20:22:14
+        Log: ...and fewer.
+     Branch: cfgperl
+          ! dump.c
+____________________________________________________________________________
+[  4526] By: jhi                                   on 1999/11/06  20:19:04
+        Log: ...and they are getting fewer.
+     Branch: cfgperl
+          ! dump.c op.c util.c
+____________________________________________________________________________
+[  4525] By: jhi                                   on 1999/11/06  19:59:59
+        Log: More printf miscasts flushed out.
+     Branch: cfgperl
+          ! dump.c ext/B/B.xs ext/Data/Dumper/Dumper.xs regcomp.c
+          ! regexec.c
+____________________________________________________________________________
+[  4524] By: jhi                                   on 1999/11/06  15:39:05
+        Log: Crushing the remaining %ld guerillas.
+     Branch: cfgperl
+          ! ext/Devel/DProf/DProf.xs
+____________________________________________________________________________
+[  4523] By: jhi                                   on 1999/11/06  15:11:38
+        Log: Update CPAN sites list.
+     Branch: cfgperl
+          ! pod/perlmodlib.pod
+____________________________________________________________________________
+[  4522] By: jhi                                   on 1999/11/05  19:50:46
+        Log: The -n32 is normally part of $cc, not $ccflags.
+     Branch: cfgperl
+          ! hints/irix_6.sh
+____________________________________________________________________________
+[  4521] By: gsar                                  on 1999/11/05  04:35:30
+        Log: allow $\ to work right when set to a string with embedded nulls
+     Branch: perl
+          ! mg.c t/io/print.t
+____________________________________________________________________________
+[  4520] By: jhi                                   on 1999/11/04  23:30:09
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> embedvar.h ext/B/B/Bytecode.pm ext/B/B/Lint.pm
+         !> ext/B/B/Stash.pm ext/B/NOTES ext/B/O.pm ext/File/Glob/Glob.pm
+         !> ext/File/Glob/bsd_glob.c ext/File/Glob/bsd_glob.h intrpvar.h
+         !> keywords.h keywords.pl objXSUB.h op.c perl.c pod/perldelta.pod
+         !> pod/perldiag.pod pod/perlfunc.pod pod/perlmod.pod
+         !> pod/perlrun.pod pod/perlsub.pod pod/perltodo.pod toke.c
+____________________________________________________________________________
+[  4519] By: jhi                                   on 1999/11/04  23:09:25
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             To: perl5-porters@perl.org (Mailing list Perl5)
+             Subject: [PATCH 5.005_62] ref to non-lvalue method
+             Date: Wed, 3 Nov 1999 03:52:48 -0500 (EST)
+             Message-Id: <199911030852.DAA06563@monk.mps.ohio-state.edu>
+     Branch: cfgperl
+          ! op.c
+____________________________________________________________________________
+[  4518] By: jhi                                   on 1999/11/04  23:07:27
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             To: perl5-porters@perl.org (Mailing list Perl5)
+             Subject: [PATCH 5.005_62] xsubpp dependency
+             Date: Wed, 3 Nov 1999 02:57:23 -0500 (EST)
+             Message-Id: <199911030757.CAA06325@monk.mps.ohio-state.edu>
+     Branch: cfgperl
+          ! lib/ExtUtils/MM_Unix.pm
+____________________________________________________________________________
+[  4517] By: jhi                                   on 1999/11/04  23:05:59
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             To: perl5-porters@perl.org (Mailing list Perl5)
+             Subject: [PATCH 5.005_62] regexp.h
+             Date: Wed, 3 Nov 1999 02:55:21 -0500 (EST)
+             Message-Id: <199911030755.CAA06311@monk.mps.ohio-state.edu>
+     Branch: cfgperl
+          ! regexp.h
+____________________________________________________________________________
+[  4516] By: gsar                                  on 1999/11/04  18:25:45
+        Log: change#4485 didn't do the right thing for B::Bytecode
+     Branch: perl
+          ! ext/B/B/Bytecode.pm
+____________________________________________________________________________
+[  4515] By: gsar                                  on 1999/11/04  17:28:29
+        Log: implement STOP blocks and fix compiler to use them (minimally
+             tested)
+     Branch: perl
+          ! embedvar.h ext/B/B/Lint.pm ext/B/B/Stash.pm ext/B/NOTES
+          ! ext/B/O.pm intrpvar.h keywords.h keywords.pl objXSUB.h op.c
+          ! perl.c pod/perldelta.pod pod/perldiag.pod pod/perlfunc.pod
+          ! pod/perlmod.pod pod/perlrun.pod pod/perlsub.pod
+          ! pod/perltodo.pod toke.c
+____________________________________________________________________________
+[  4514] By: gsar                                  on 1999/11/04  15:59:46
+        Log: display BSD license in Glob.pm (for clause #2 conformity)
+     Branch: perl
+          ! ext/File/Glob/Glob.pm ext/File/Glob/bsd_glob.c
+          ! ext/File/Glob/bsd_glob.h
+____________________________________________________________________________
+[  4513] By: jhi                                   on 1999/11/04  08:26:19
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         +> t/io/nargv.t
+         !> (integrate 34 files)
+____________________________________________________________________________
+[  4512] By: jhi                                   on 1999/11/04  08:01:25
+        Log: Incremental Mac integration from Matthias.
+     Branch: cfgperl
+          ! perl.c perl.h pp_ctl.c pp_hot.c run.c sv.c t/pod/testpchk.pl
+          ! toke.c util.c
+____________________________________________________________________________
+[  4511] By: gsar                                  on 1999/11/04  02:53:37
+        Log: remove VIRTUAL tag, PERL_OBJECT doesn't need it anymore
+     Branch: perl
+          ! dosish.h embed.pl mg.c os2/os2ish.h perl.c perl.h perly.c
+          ! perly_c.diff pp_ctl.c proto.h regcomp.c regexec.c sv.c toke.c
+          ! universal.c vms/perly_c.vms vms/vmsish.h win32/win32.h
+          ! xsutils.c
+____________________________________________________________________________
+[  4510] By: jhi                                   on 1999/11/02  22:12:29
+        Log: S_init_interp is a better place to diddle with PL_opargs
+             than perl_construct.
+     Branch: cfgperl
+          ! perl.c
+____________________________________________________________________________
+[  4509] By: jhi                                   on 1999/11/02  21:30:02
+        Log: From: "M.J.T. Guy" <mjtg@cus.cam.ac.uk>
+             To: ben@mucus.advanced.org, perl5-porters@perl.org
+             Subject: Re: [ID 19991102.002] unpack('N', pack('N', -1)) not idempotent
+             Date: Tue, 02 Nov 1999 21:36:00 +0000
+             Message-Id: <E11ilay-00020o-00@taurus.cus.cam.ac.uk>
+     Branch: cfgperl
+          ! pod/perlfunc.pod
+____________________________________________________________________________
+[  4508] By: jhi                                   on 1999/11/02  20:46:27
+        Log: Initial integration of the MacPerl changes form Matthias.
+     Branch: cfgperl
+          ! doio.c ext/DynaLoader/DynaLoader_pm.PL ext/Fcntl/Fcntl.pm
+          ! ext/Fcntl/Fcntl.xs gv.c mg.c opcode.pl perl.c perl.h pp_ctl.c
+          ! pp_hot.c pp_sys.c run.c sv.c toke.c util.c
+____________________________________________________________________________
+[  4507] By: jhi                                   on 1999/11/01  23:05:07
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             To: lvirden@cas.org (Larry W. Virden)
+             Cc: perl5-porters@perl.org, lvirden@cas.org
+             Subject: Re: [ID 19991026.001] perl segmentation fault report
+             Date: Mon, 1 Nov 1999 18:14:16 -0500 (EST)
+             Message-Id: <199911012314.SAA22664@monk.mps.ohio-state.edu>
+     Branch: cfgperl
+          ! regexec.c t/op/pat.t
+____________________________________________________________________________
+[  4506] By: jhi                                   on 1999/11/01  19:56:28
+        Log: From: Olaf Flebbe <olaf@science-computing.de>
+             To: perl5-porters@perl.org
+             Subject: [PATCH: 5.005_62] Patch for EPOC Support
+             Date: Mon, 1 Nov 1999 20:46:54 +0100 (MET)
+             Message-ID: <Pine.LNX.4.10.9911012045190.411-100000@dragon.science-computing.de>
+     Branch: cfgperl
+          + epoc/Config.pm epoc/autosplit.pl epoc/createpkg.pl
+          + epoc/epoc_stubs.c
+          ! MANIFEST README.epoc epoc/epocish.h epoc/perl.mmp
+          ! epoc/perl.pkg
+____________________________________________________________________________
+[  4505] By: gsar                                  on 1999/11/01  17:09:44
+        Log: macros for COP.cop_filegv access
+     Branch: perl
+          ! cop.h deb.c gv.c op.c perl.c pp_ctl.c pp_sys.c scope.c toke.c
+          ! util.c
+____________________________________________________________________________
+[  4504] By: gsar                                  on 1999/11/01  17:08:28
+        Log: enable better Win32::DomainName() by demand loading netapi32.dll
+             (from Jan Dubois)
+     Branch: perl
+          ! pod/Win32.pod win32/win32.c
+____________________________________________________________________________
+[  4503] By: gsar                                  on 1999/10/31  20:56:06
+        Log: change#4502 was missing a file
+     Branch: perl
+          + t/io/nargv.t
+____________________________________________________________________________
+[  4502] By: gsar                                  on 1999/10/31  20:46:02
+        Log: make nested ARGV/$^I loops work correctly; fixes several bugs
+             in the way ARGV state was handled in readline(); writing a
+             subroutine to do inplace edits is now possible, provided *ARGV,
+             *ARGVOUT, $^I and $_ are localized where needed
+     Branch: perl
+          ! MANIFEST doio.c embedvar.h intrpvar.h objXSUB.h perl.c
+          ! pp_hot.c scope.c
+____________________________________________________________________________
+[  4501] By: jhi                                   on 1999/10/31  12:43:54
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> perl.h win32/config.bc win32/config.gc win32/config.vc
+         !> win32/config_H.bc win32/config_H.gc win32/config_H.vc
+____________________________________________________________________________
+[  4500] By: gsar                                  on 1999/10/31  10:01:17
+        Log: updated windows config* files
+     Branch: perl
+          ! win32/config.bc win32/config.gc win32/config.vc
+          ! win32/config_H.bc win32/config_H.gc win32/config_H.vc
+____________________________________________________________________________
+[  4499] By: gsar                                  on 1999/10/31  09:15:17
+        Log: integrate cfgperl contents into mainline
+     Branch: perl
+         !> Configure Porting/Glossary Porting/config.sh Porting/config_H
+         !> config_h.SH perl.h
+____________________________________________________________________________
+[  4498] By: gsar                                  on 1999/10/31  09:13:41
+        Log: remove unused struct Outrec
+     Branch: perl
+          ! perl.h
+____________________________________________________________________________
+[  4497] By: jhi                                   on 1999/10/30  12:41:50
+        Log: Add HAS_QUAD ($Config{d_quad}); use it.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH perl.h
+     Branch: metaconfig
+          ! U/a_dvisory/quadtype.U U/compline/charsize.U U/typedefs/gidf.U
+          ! U/typedefs/uidf.U
+     Branch: metaconfig/U/perl
+          ! perlxv.U
+____________________________________________________________________________
+[  4496] By: gsar                                  on 1999/10/30  00:28:32
+        Log: integrate cfgperl contents into mainline
+     Branch: perl
+         !> Configure Policy_sh.SH Porting/Glossary Porting/config.sh
+         !> Porting/config_H README.hurd config_h.SH doop.c handy.h
+         !> hints/aix.sh hints/irix_6.sh hints/solaris_2.sh mg.c perl.c
+         !> perl.h pp.c pp.h regexec.c sv.c taint.c
+____________________________________________________________________________
+[  4495] By: jhi                                   on 1999/10/29  23:36:19
+        Log: Continue what #4494 started; introduce uid and gid formats.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH handy.h perl.h
+     Branch: metaconfig
+          + U/a_dvisory/quadtype.U U/typedefs/gidf.U U/typedefs/uidf.U
+          - U/typedefs/quadtype.U
+     Branch: metaconfig/U/perl
+          ! perlxv.U
+____________________________________________________________________________
+[  4494] By: jhi                                   on 1999/10/29  22:09:01
+        Log: Move the IV, UV, I8, U8, ..., and NV to metaconfig
+             from perl.h and handy.h.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH handy.h perl.h
+     Branch: metaconfig/U/perl
+          + perlxv.U perlxvf.U
+____________________________________________________________________________
+[  4493] By: jhi                                   on 1999/10/29  22:08:06
+        Log: Finetuning the output continues along the lines of #4490 and #4491.
+     Branch: metaconfig
+          ! U/modified/i_sysuio.U U/threads/d_pthreadj.U
+          ! U/typedefs/fpostype.U
+     Branch: metaconfig/U/perl
+          + fpossize.U
+          ! d_cmsghdr_s.U d_fs_data_s.U d_msghdr_s.U d_statfs3.U
+          ! d_statfs4.U d_statfs_f_flags.U d_statfs_s.U io64.U
+____________________________________________________________________________
+[  4492] By: jhi                                   on 1999/10/29  21:14:53
+        Log: Hurd update from Mark Kettenis.
+     Branch: cfgperl
+          ! README.hurd
+____________________________________________________________________________
+[  4491] By: jhi                                   on 1999/10/29  20:37:02
+        Log: A new try at what #4490 tried to accomplish.
+     Branch: metaconfig
+          ! U/modified/i_sysuio.U U/threads/d_pthreadj.U
+     Branch: metaconfig/U/perl
+          ! d_cmsghdr_s.U d_fs_data_s.U d_msghdr_s.U d_statfs3.U
+          ! d_statfs4.U d_statfs_f_flags.U d_statfs_s.U io64.U
+____________________________________________________________________________
+[  4490] By: jhi                                   on 1999/10/29  20:19:41
+        Log: metaconfig nits.
+     Branch: metaconfig
+          ! U/modified/i_sysuio.U U/threads/d_pthreadj.U
+     Branch: metaconfig/U/perl
+          + d_iovec_s.U
+          ! d_cmsghdr_s.U d_fs_data_s.U d_msghdr_s.U d_statfs3.U
+          ! d_statfs4.U d_statfs_f_flags.U d_statfs_s.U io64.U
+____________________________________________________________________________
+[  4489] By: jhi                                   on 1999/10/29  16:08:43
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> (integrate 31 files)
+____________________________________________________________________________
+[  4488] By: jhi                                   on 1999/10/29  15:30:30
+        Log: Regen Configure and Glossary.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH
+____________________________________________________________________________
+[  4487] By: jhi                                   on 1999/10/29  15:24:13
+        Log: Remove quad logic from perl.h; regen Configure;
+             add -DUSE_LONG_LONG to ccflags if not already there.
+     Branch: cfgperl
+          ! Configure config_h.SH doop.c hints/aix.sh hints/irix_6.sh
+          ! hints/solaris_2.sh perl.h pp.c pp.h regexec.c sv.c
+____________________________________________________________________________
+[  4486] By: jhi                                   on 1999/10/29  15:22:38
+        Log: metaconfig: moved quad logic from perl.h to Configure (quadtype.U);
+             fixed the use*.U to define their stuff only iff not already defined
+             (so that ccflags can have any -DUSE_* it wants);
+             uselonglong.U added; various small nits fixed.
+     Branch: metaconfig
+          + U/typedefs/quadtype.U
+          ! U/modified/d_longdbl.U U/modified/d_longlong.U
+          ! U/modified/d_statblks.U U/modified/usenm.U
+          ! U/threads/usethreads.U
+     Branch: metaconfig/U/perl
+          + uselonglong.U
+          ! d_cmsghdr_s.U d_fs_data_s.U d_msghdr_s.U d_statfs3.U
+          ! d_statfs4.U d_statfs_f_flags.U d_statfs_s.U i_inttypes.U
+          ! quadfio.U use64bits.U uselfs.U uselongdbl.U usemorebits.U
+          ! usemultiplicity.U useperlio.U usesocks.U
+____________________________________________________________________________
+[  4485] By: gsar                                  on 1999/10/29  06:08:50
+        Log: more cleanup: avoid unused knowledge of "file GV" notion in CV and GV
+     Branch: perl
+          ! bytecode.pl cv.h dump.c ext/B/B.pm ext/B/B.xs
+          ! ext/B/B/Asmdata.pm ext/B/B/Bytecode.pm ext/B/B/C.pm
+          ! ext/B/B/Debug.pm ext/B/B/Xref.pm ext/ByteLoader/byterun.c
+          ! ext/ByteLoader/byterun.h ext/Devel/Peek/Peek.pm gv.c gv.h op.c
+          ! sv.h
+____________________________________________________________________________
+[  4484] By: gsar                                  on 1999/10/29  03:00:21
+        Log: usurp GVOP slot for new PADOP (one small step to making optree
+             shareable across interpreters)
+     Branch: perl
+          ! bytecode.pl doio.c dump.c ext/B/B.pm ext/B/B.xs
+          ! ext/B/B/Asmdata.pm ext/B/B/Bytecode.pm ext/B/B/C.pm
+          ! ext/B/B/Debug.pm ext/B/B/Deparse.pm ext/B/B/Lint.pm
+          ! ext/B/B/Terse.pm ext/B/typemap ext/ByteLoader/byterun.c
+          ! ext/ByteLoader/byterun.h op.c op.h opcode.h opcode.pl perl.h
+          ! pp_hot.c pp_sys.c regexec.c run.c
+____________________________________________________________________________
+[  4483] By: jhi                                   on 1999/10/28  22:01:12
+        Log: Regen Configure.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH
+____________________________________________________________________________
+[  4482] By: jhi                                   on 1999/10/28  21:45:26
+        Log: Installdirs patches from Andy.
+     Branch: metaconfig
+          ! U/installdirs/sitearch.U U/installdirs/sitebin.U
+          ! U/installdirs/sitehtml1dir.U U/installdirs/sitehtml3dir.U
+          ! U/installdirs/sitelib.U U/installdirs/siteman1dir.U
+          ! U/installdirs/siteman3dir.U U/installdirs/siteprefix.U
+          ! U/installdirs/sitescriptdir.U U/installdirs/vendorarch.U
+          ! U/installdirs/vendorbin.U U/installdirs/vendorhtml1dir.U
+          ! U/installdirs/vendorhtml3dir.U U/installdirs/vendorlib.U
+          ! U/installdirs/vendorman1dir.U U/installdirs/vendorman3dir.U
+          ! U/installdirs/vendorprefix.U U/installdirs/vendorscriptdir.U
+____________________________________________________________________________
+[  4481] By: gsar                                  on 1999/10/28  17:33:49
+        Log: remove C<use Time::Local 'no_range_check'> misfeature (global
+             can still be directly set)
+     Branch: perl
+          ! lib/Time/Local.pm
+____________________________________________________________________________
+[  4480] By: jhi                                   on 1999/10/28  13:49:26
+        Log: Fix printing of uids and gids; regen Configure.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH mg.c perl.c perl.h taint.c
+____________________________________________________________________________
+[  4479] By: jhi                                   on 1999/10/28  11:53:57
+        Log: Fix typo.
+     Branch: metaconfig
+          ! U/typedefs/gidsize.U
+____________________________________________________________________________
+[  4478] By: jhi                                   on 1999/10/28  06:50:02
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> Changes iperlsys.h makedef.pl patchlevel.h perl.h
+         !> win32/Makefile win32/config.bc win32/config.gc win32/config.vc
+         !> win32/config_H.bc win32/config_H.gc win32/config_H.vc
+         !> win32/config_sh.PL win32/makefile.mk win32/win32.h
+____________________________________________________________________________
+[  4477] By: jhi                                   on 1999/10/28  06:40:54
+        Log: (Slightly) better comments for Policy_sh.SH from Andy.
+     Branch: cfgperl
+          ! Policy_sh.SH
+____________________________________________________________________________
+[  4476] By: gsar                                  on 1999/10/27  23:54:36
+        Log: regen config* stuff for windows
+     Branch: perl
+          ! Changes patchlevel.h win32/Makefile win32/config.bc
+          ! win32/config.gc win32/config.vc win32/config_H.bc
+          ! win32/config_H.gc win32/config_H.vc win32/config_sh.PL
+          ! win32/makefile.mk
+____________________________________________________________________________
+[  4475] By: gsar                                  on 1999/10/27  21:32:30
+        Log: integrate cfgperl contents into mainline; merge conflicts
+     Branch: perl
+         !> (integrate 46 files)
+____________________________________________________________________________
+[  4474] By: gsar                                  on 1999/10/27  21:15:07
+        Log: patch up egcs-1.1.2-mingw32 build (builds a working miniperl, but not
+             perl; stdout/stderr redirects seem broken as well)
+     Branch: perl
+          ! iperlsys.h makedef.pl perl.h win32/makefile.mk win32/win32.h
+____________________________________________________________________________
+[  4473] By: jhi                                   on 1999/10/27  21:11:11
+        Log: Do not block if no message queues available.
+     Branch: cfgperl
+          ! t/lib/ipc_sysv.t
+____________________________________________________________________________
+[  4472] By: jhi                                   on 1999/10/27  18:27:40
+        Log: Remove unused "squatter" symbols; regen Configure.
+     Branch: cfgperl
+          ! Configure Makefile.SH Porting/Glossary Porting/config.sh
+          ! Porting/config_H config_h.SH epoc/config.h iperlsys.h perl.h
+          ! win32/config_H.bc win32/config_H.gc win32/config_H.vc
+____________________________________________________________________________
+[  4471] By: jhi                                   on 1999/10/27  18:26:55
+        Log: metaconfig; split socket; fix output.
+     Branch: metaconfig
+          ! U/modified/d_socket.U U/modified/d_statblks.U
+     Branch: metaconfig/U/perl
+          + d_cmsghdr_s.U d_msghdr_s.U d_recvmsg.U d_sendmsg.U
+          ! i_sysstatfs.U i_sysvfs.U
+____________________________________________________________________________
+[  4470] By: jhi                                   on 1999/10/27  17:19:06
+        Log: Regen Configure.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH perl.c perl.h
+____________________________________________________________________________
+[  4469] By: jhi                                   on 1999/10/27  17:18:41
+        Log: metaconfig; split statfs.
+     Branch: metaconfig/U/perl
+          + d_fs_data_s.U d_statfs_f_flags.U d_statfs_s.U
+          ! d_statfs.U
+____________________________________________________________________________
+[  4468] By: jhi                                   on 1999/10/27  14:06:44
+        Log: Integrate with Sarathy; manual resolve on regcomp.c conflicts
+             (Ilya's changes won).
+     Branch: cfgperl
+         +> os2/OS2/REXX/DLL/Changes os2/OS2/REXX/DLL/DLL.pm
+         +> os2/OS2/REXX/DLL/DLL.xs os2/OS2/REXX/DLL/MANIFEST
+         +> os2/OS2/REXX/DLL/Makefile.PL os2/OS2/REXX/t/rx_emxrv.t
+         !> (integrate 65 files)
+____________________________________________________________________________
+[  4467] By: jhi                                   on 1999/10/27  13:38:41
+        Log: Regen Configure.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH
+____________________________________________________________________________
+[  4466] By: jhi                                   on 1999/10/27  13:18:06
+        Log: metaconfig fixes from Andy.
+     Branch: metaconfig
+          + U/modified/libnlist.U U/modified/usrinc.U
+          ! U/Glossary.patch U/mkglossary U/modified/libpth.U
+____________________________________________________________________________
+[  4465] By: jhi                                   on 1999/10/27  13:06:27
+        Log: Nosuid checking for statfs() people.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH perl.c perl.h pod/perldiag.pod
+____________________________________________________________________________
+[  4464] By: jhi                                   on 1999/10/27  13:04:20
+        Log: metaconfig maintenance; fix Hasfield, statfs;
+             add Hasstruct, statfs3, statfs4, ustat, sysvfs;
+             split fstatfs away from statfs.
+     Branch: metaconfig
+          + U/protos/Hasstruct.U
+          ! U/protos/Hasfield.U
+     Branch: metaconfig/U/perl
+          + d_fstatfs.U d_statfs3.U d_statfs4.U d_ustat.U i_sysvfs.U
+          + i_ustat.U
+          ! d_statfs.U
+____________________________________________________________________________
+[  4463] By: jhi                                   on 1999/10/27  07:55:53
+        Log: We need cc to be able to test for cc -v.
+     Branch: cfgperl
+          ! hints/dec_osf.sh
+____________________________________________________________________________
+[  4462] By: gsar                                  on 1999/10/27  01:31:41
+        Log: more GCC v2.95 induced adjustments
+     Branch: perl
+          ! globals.c mg.c opcode.h opcode.pl perl.h sv.c
+          ! win32/makefile.mk win32/win32.c x2p/walk.c
+____________________________________________________________________________
+[  4461] By: gsar                                  on 1999/10/26  21:42:59
+        Log: warnings and const violations identified by compiling in C++ mode
+             with GCC v2.95
+     Branch: perl
+          ! doio.c embed.pl mg.c op.c perl.c perlapi.c proto.h regcomp.c
+          ! sv.c taint.c toke.c win32/win32.c
+____________________________________________________________________________
+[  4459] By: jhi                                   on 1999/10/26  10:15:58
+        Log: Regen Configure.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH
+____________________________________________________________________________
+[  4458] By: jhi                                   on 1999/10/26  09:48:37
+        Log: Minor rewordings.
+     Branch: metaconfig/U/perl
+          ! d_getmnt.U d_getmntent.U d_statfs.U d_statvfs.U
+____________________________________________________________________________
+[  4456] By: jhi                                   on 1999/10/26  09:11:49
+        Log: Fix d_statfsflags; add d_getmnt.
+     Branch: metaconfig/U/perl
+          + d_getmnt.U
+          ! d_statfs.U
+____________________________________________________________________________
+[  4455] By: jhi                                   on 1999/10/26  08:12:27
+        Log: Massive multitypo in #4446.
+     Branch: cfgperl
+          ! hints/dec_osf.sh
+____________________________________________________________________________
+[  4454] By: jhi                                   on 1999/10/25  08:28:45
+        Log: From: Laszlo Molnar <laszlo.molnar@eth.ericsson.se>
+             To: Perl 5 Porters <perl5-porters@perl.org>
+             Subject: [PATCH 5.005_62] dos-djgpp update
+             Date: Mon, 25 Oct 1999 10:11:30 +0200
+             Message-ID: <19991025101130.K459@crater.eth.ericsson.se>
+     Branch: cfgperl
+          ! djgpp/config.over djgpp/configure.bat djgpp/djgppsed.sh
+          ! pod/perldelta.pod t/lib/io_unix.t
+____________________________________________________________________________
+[  4453] By: jhi                                   on 1999/10/25  08:25:50
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             To: perl5-porters@perl.org (Mailing list Perl5)
+             Subject: [PATCH 5.005_62] Remove the last regnode<==>char*
+             Date: Mon, 25 Oct 1999 03:06:21 -0400 (EDT)
+             Message-Id: <199910250706.DAA16825@monk.mps.ohio-state.edu>
+     Branch: cfgperl
+          ! embed.h embed.pl proto.h regcomp.c regcomp.h regexec.c
+____________________________________________________________________________
+[  4452] By: jhi                                   on 1999/10/25  08:16:55
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             To: perl5-porters@perl.org (Mailing list Perl5)
+             Subject: [PATCH 5.005_62] Missing REx engine patch
+             Date: Sun, 24 Oct 1999 23:47:45 -0400 (EDT)
+             Message-Id: <199910250347.XAA16094@monk.mps.ohio-state.edu>
+     Branch: cfgperl
+          ! pod/perldiag.pod regcomp.c regexec.c
+____________________________________________________________________________
+[  4451] By: jhi                                   on 1999/10/25  08:13:06
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             To: perl5-porters@perl.org (Mailing list Perl5)
+             Subject: [PATCH 5.005_62] charnames and UTEST
+             Date: Sun, 24 Oct 1999 23:39:49 -0400 (EDT)
+             Message-Id: <199910250339.XAA16058@monk.mps.ohio-state.edu>
+     Branch: cfgperl
+          ! t/lib/charnames.t
+____________________________________________________________________________
+[  4450] By: gsar                                  on 1999/10/25  07:38:15
+        Log: win32 tweak
+     Branch: perl
+          ! win32/perllib.c
+____________________________________________________________________________
+[  4449] By: gsar                                  on 1999/10/24  23:20:10
+        Log: remove inconsistent tainting behavior of sprintf("%e",...)
+             (all bets are off is "C" locale is compromised)
+     Branch: perl
+          ! pod/perlfunc.pod pod/perllocale.pod sv.c
+____________________________________________________________________________
+[  4448] By: gsar                                  on 1999/10/24  22:20:42
+        Log: remove unused interpreter globals
+     Branch: perl
+          ! deb.c dump.c embed.h embed.pl embedvar.h ext/POSIX/POSIX.xs
+          ! global.sym gv.c gv.h intrpvar.h objXSUB.h perl.c perlapi.c
+          ! proto.h toke.c
+____________________________________________________________________________
+[  4447] By: jhi                                   on 1999/10/24  21:49:52
+        Log: Another hints tweak.
+     Branch: cfgperl
+          ! hints/aix.sh
+____________________________________________________________________________
+[  4446] By: jhi                                   on 1999/10/24  21:48:02
+        Log: Hints tweak.
+     Branch: cfgperl
+          ! hints/dec_osf.sh
+____________________________________________________________________________
+[  4445] By: nick                                  on 1999/10/24  21:03:28
+        Log: Integrate own changes to mainline.
+     Branch: utfperl
+         !> installperl pp.c
+____________________________________________________________________________
+[  4444] By: nick                                  on 1999/10/24  20:54:06
+        Log: Avoid creating GV with NULL name when vivifying nameless scalars.
+             (Fix/workround for [ID19991024.001])
+     Branch: perl
+          ! pp.c
+____________________________________________________________________________
+[  4443] By: nick                                  on 1999/10/24  15:09:51
+        Log: Follow that camel ... another sync.
+     Branch: utfperl
+         +> os2/OS2/REXX/DLL/Changes os2/OS2/REXX/DLL/DLL.pm
+         +> os2/OS2/REXX/DLL/DLL.xs os2/OS2/REXX/DLL/MANIFEST
+         +> os2/OS2/REXX/DLL/Makefile.PL os2/OS2/REXX/t/rx_emxrv.t
+         !> (integrate 36 files)
+____________________________________________________________________________
+[  4442] By: gsar                                  on 1999/10/24  14:40:01
+        Log: typo in installperl (from Paul Moore <gustav@morpheus.demon.co.uk>)
+     Branch: perl
+          ! installperl
+____________________________________________________________________________
+[  4441] By: gsar                                  on 1999/10/24  14:33:11
+        Log: test in change#4428 needs strict interpretation of C modulus
+     Branch: perl
+          ! t/op/int.t
+____________________________________________________________________________
+[  4440] By: gsar                                  on 1999/10/24  13:47:17
+        Log: don't allow SIGCHLD to be ignored at startup, or wait*() and
+             $? break
+     Branch: perl
+          ! perl.c pod/perldelta.pod pod/perldiag.pod
+____________________________________________________________________________
+[  4439] By: jhi                                   on 1999/10/24  13:19:17
+        Log: test for #2835 (yeah, better later than never)
+     Branch: cfgperl
+          ! t/op/array.t
+____________________________________________________________________________
+[  4438] By: gsar                                  on 1999/10/24  12:59:12
+        Log: typo, doc tweak
+     Branch: perl
+          ! lib/attributes.pm pod/perlop.pod
+____________________________________________________________________________
+[  4437] By: gsar                                  on 1999/10/24  11:59:55
+        Log: allow get() and reftype() functions to be imported (from
+             Spider Boardman)
+     Branch: perl
+          ! lib/attributes.pm
+____________________________________________________________________________
+[  4436] By: gsar                                  on 1999/10/24  11:52:53
+        Log: suppress scalar leak messages for known leaks (from
+             Robin Barker <rmb1@cise.npl.co.uk>)
+     Branch: perl
+          ! Changes t/op/lex_assign.t t/pragma/warn/op
+____________________________________________________________________________
+[  4435] By: gsar                                  on 1999/10/24  11:39:42
+        Log: VMS tweak (suggested by Craig A. Berry <craig.berry@metamor.com>)
+     Branch: perl
+          ! ext/B/defsubs_h.PL
+____________________________________________________________________________
+[  4434] By: gsar                                  on 1999/10/24  11:36:08
+        Log: relax range checking if they ask for it (from John L. Allen
+             <allen@grumman.com>)
+     Branch: perl
+          ! lib/Time/Local.pm
+____________________________________________________________________________
+[  4433] By: gsar                                  on 1999/10/24  11:25:51
+        Log: README nits pointed out by Chris Nandor <pudge@pobox.com>
+     Branch: perl
+          ! README lib/File/Path.pm
+____________________________________________________________________________
+[  4432] By: gsar                                  on 1999/10/24  11:11:02
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Sun, 24 Oct 1999 03:24:28 -0400 (EDT)
+             Message-Id: <199910240724.DAA12230@monk.mps.ohio-state.edu>
+             Subject: Re: [PATCH 5.005_62] OS/2 improvements
+     Branch: perl
+          + os2/OS2/REXX/DLL/Changes os2/OS2/REXX/DLL/DLL.pm
+          + os2/OS2/REXX/DLL/DLL.xs os2/OS2/REXX/DLL/MANIFEST
+          + os2/OS2/REXX/DLL/Makefile.PL os2/OS2/REXX/t/rx_emxrv.t
+          ! MANIFEST hints/os2.sh mg.c miniperlmain.c os2/Changes
+          ! os2/OS2/REXX/Changes os2/OS2/REXX/Makefile.PL
+          ! os2/OS2/REXX/REXX.pm os2/OS2/REXX/REXX.xs
+          ! os2/OS2/REXX/t/rx_dllld.t os2/OS2/REXX/t/rx_objcall.t
+          ! os2/OS2/REXX/t/rx_tievar.t os2/OS2/REXX/t/rx_tieydb.t
+          ! os2/OS2/REXX/t/rx_vrexx.t os2/dl_os2.c os2/os2.c os2/os2ish.h
+          ! perl.c perl.h t/io/fs.t t/op/magic.t
+____________________________________________________________________________
+[  4431] By: gsar                                  on 1999/10/24  10:50:14
+        Log: install all README.foo with pod content as podfoo.pod
+     Branch: perl
+          ! Makefile.SH installman
+____________________________________________________________________________
+[  4430] By: gsar                                  on 1999/10/24  09:28:24
+        Log: @INC needs ../lib
+     Branch: perl
+          ! t/op/int.t
+____________________________________________________________________________
+[  4429] By: jhi                                   on 1999/10/23  21:47:49
+        Log: More printf-fixes (see also #4426).
+     Branch: cfgperl
+          ! deb.c dump.c ext/Data/Dumper/Dumper.xs
+          ! ext/Devel/DProf/DProf.xs malloc.c mg.c op.c perl.c pp.c
+          ! pp_ctl.c regcomp.c regexec.c run.c scope.c sv.c util.c
+____________________________________________________________________________
+[  4428] By: gsar                                  on 1999/10/23  20:28:56
+        Log: fix accidental C modulo semantics on integer-valued operations
+             (e.g. caused C<length("abc") % -10> to return 3 rather than -7)
+     Branch: perl
+          ! op.c t/op/int.t
+____________________________________________________________________________
+[  4427] By: jhi                                   on 1999/10/23  16:10:10
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> sv.c win32/win32.c
+____________________________________________________________________________
+[  4426] By: jhi                                   on 1999/10/23  16:04:02
+        Log: Fix the printfing nits pointed out by using gcc -Wall and
+             Configure -Duse64bits -Dccflags=-DDEBUGGING in Solaris,
+             plus few other warnings in Dumper.xs.
+     Branch: cfgperl
+          ! ext/Data/Dumper/Dumper.xs ext/Devel/DProf/DProf.xs
+          ! ext/Devel/Peek/Peek.xs regcomp.c regexec.c sv.c util.c
+____________________________________________________________________________
+[  4425] By: jhi                                   on 1999/10/23  15:16:41
+        Log: Configure regen to pick up the new installation directories
+             from Policy_sh.SH.  The explanations of "public add-ons" and
+             "vendor-supplied" could do with more work.
+     Branch: cfgperl
+          ! Configure config_h.SH
+____________________________________________________________________________
+[  4424] By: nick                                  on 1999/10/23  00:46:22
+        Log: Resolve mainline before possible hacking operertunity this weekend
+     Branch: utfperl
+         +> pod/perlfilter.pod
+         !> (integrate 32 files)
+____________________________________________________________________________
+[  4423] By: jhi                                   on 1999/10/22  22:53:17
+        Log: Update Policy_sh.SH to handle the newer installation directives.
+             From: Andy Dougherty <doughera@lafayette.edu>
+             To: Perl Porters <perl5-porters@perl.org>
+             Subject: [PATCH 5.005_62] Policy_sh.SH update
+             Date: Fri, 22 Oct 1999 16:47:34 -0400 (EDT)
+             Message-ID: <Pine.SOL.4.10.9910221645470.15232-100000@maxwell.phys.lafayette.edu>
+     Branch: cfgperl
+          ! Policy_sh.SH
+____________________________________________________________________________
+[  4422] By: jhi                                   on 1999/10/22  22:44:44
+        Log: so back to 'so', from Stephanie Beals <bealzy@us.ibm.com>
+     Branch: cfgperl
+          ! hints/aix.sh
+____________________________________________________________________________
+[  4421] By: gsar                                  on 1999/10/22  21:16:44
+        Log: sv_vcatpvfn() bug: fell through to assuming intsize of 'q' for
+             C<"%ld", long_val>
+     Branch: perl
+          ! sv.c
+____________________________________________________________________________
+[  4420] By: gsar                                  on 1999/10/22  16:36:46
+        Log: win32_utime() on directories should use localtime() rather
+             than gmtime() (from Jan Dubois)
+     Branch: perl
+          ! win32/win32.c
+____________________________________________________________________________
+[  4419] By: jhi                                   on 1999/10/21  10:31:41
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> Makefile.SH lib/CPAN/FirstTime.pm op.c opcode.h opcode.pl
+         !> t/lib/glob-basic.t t/op/sort.t
+____________________________________________________________________________
+[  4418] By: gsar                                  on 1999/10/20  23:49:47
+        Log: add test for change#4417
+     Branch: perl
+          ! t/op/sort.t
+____________________________________________________________________________
+[  4417] By: gsar                                  on 1999/10/20  23:45:03
+        Log: avoid coredump on C<sort { my $c; return $a cmp $b } ...>
+     Branch: perl
+          ! op.c
+____________________________________________________________________________
+[  4416] By: gsar                                  on 1999/10/20  01:00:50
+        Log: fix prototype mismatch (from Hans Mulder <hansm@xs4all.nl>)
+     Branch: perl
+          ! lib/CPAN/FirstTime.pm
+____________________________________________________________________________
+[  4415] By: gsar                                  on 1999/10/20  00:52:34
+        Log: disable optimizing troublesome ops in change#3612
+             (from Ilya Zakharevich)
+     Branch: perl
+          ! Makefile.SH opcode.h opcode.pl
+____________________________________________________________________________
+[  4414] By: gsar                                  on 1999/10/20  00:37:46
+        Log: skip unreadable directory test when running as root
+     Branch: perl
+          ! t/lib/glob-basic.t
+____________________________________________________________________________
+[  4413] By: jhi                                   on 1999/10/19  09:26:52
+        Log: Avoid GNU ar if HP cc is being used.
+     Branch: cfgperl
+          ! hints/hpux.sh
+____________________________________________________________________________
+[  4412] By: jhi                                   on 1999/10/19  07:24:29
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> perlvars.h
+____________________________________________________________________________
+[  4411] By: jhi                                   on 1999/10/19  07:22:34
+        Log: Long double support: sqrtl et al are not available everywhere,
+             e.g. not in Solaris, even when long doubles are.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH perl.h
+____________________________________________________________________________
+[  4410] By: jhi                                   on 1999/10/19  07:21:42
+        Log: Add sqrtl probe, add echo dependencies.
+     Branch: metaconfig
+          ! U/threads/d_pthreadj.U
+     Branch: metaconfig/U/perl
+          + d_sqrtl.U
+          ! i_inttypes.U io64.U
+____________________________________________________________________________
+[  4409] By: gsar                                  on 1999/10/19  02:18:54
+        Log: perl_mutex n/a if !USE_THREADS
+     Branch: perl
+          ! perlvars.h
+____________________________________________________________________________
+[  4408] By: jhi                                   on 1999/10/18  20:13:02
+        Log: Forgotten s/warning/warnings/.
+     Branch: cfgperl
+          ! Makefile.SH
+____________________________________________________________________________
+[  4407] By: jhi                                   on 1999/10/18  20:02:12
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         +> pod/perlfilter.pod
+         !> (integrate 30 files)
+____________________________________________________________________________
+[  4406] By: gsar                                  on 1999/10/18  16:32:10
+        Log: added intro to source filters from Paul Marquess
+     Branch: perl
+          + pod/perlfilter.pod
+          ! MANIFEST pod/perldelta.pod
+____________________________________________________________________________
+[  4405] By: gsar                                  on 1999/10/18  05:53:06
+        Log: missing manpages
+     Branch: perl
+          ! installman
+____________________________________________________________________________
+[  4404] By: gsar                                  on 1999/10/18  05:09:22
+        Log: pod updates from Tom Christiansen
+     Branch: perl
+          ! lib/Pod/Man.pm pod/perldelta.pod pod/perlmodlib.pod
+____________________________________________________________________________
+[  4403] By: gsar                                  on 1999/10/17  23:43:59
+        Log: PL_malloc_mutex needs to be global, not per-interpreter
+             (malloc.c has static data)
+     Branch: perl
+          ! embedvar.h intrpvar.h objXSUB.h perl.c perlvars.h
+____________________________________________________________________________
+[  4402] By: gsar                                  on 1999/10/17  22:30:30
+        Log: support PERL_IMPLICIT_SYS with MULTIPLICITY/USE_THREADS on
+             windows
+     Branch: perl
+          ! XSUB.h ext/POSIX/POSIX.xs intrpvar.h makedef.pl malloc.c
+          ! perl.c perl.h perlio.c win32/perllib.c win32/win32.c
+          ! win32/win32.h
+____________________________________________________________________________
+[  4401] By: gsar                                  on 1999/10/17  20:33:42
+        Log: serious bug introduced by G_VOID changes in 5.003_96: scalar
+             eval"" did not pop stack correctly; C<$a = eval "(1,2)x1">
+             is one symptom of the problem
+     Branch: perl
+          ! pp_ctl.c t/op/eval.t
+____________________________________________________________________________
+[  4400] By: gsar                                  on 1999/10/17  18:36:46
+        Log: remove FileHandle from list of PodParser dependencies (the
+             difference is 20 files vs 6 files loaded!)
+     Branch: perl
+          ! lib/Pod/Parser.pm lib/Pod/Select.pm pod/perldelta.pod
+          ! t/pod/testcmp.pl
+____________________________________________________________________________
+[  4399] By: nick                                  on 1999/10/17  14:51:35
+        Log: Pre-trip resolve
+     Branch: utfperl
+         !> installperl lib/Text/Tabs.pm perl.c pp_hot.c
+____________________________________________________________________________
+[  4398] By: gsar                                  on 1999/10/17  09:19:24
+        Log: make installperl ignore RCS files (from Michael G Schwern
+             <schwern@pobox.com>)
+     Branch: perl
+          ! installperl lib/Text/Tabs.pm
+____________________________________________________________________________
+[  4397] By: gsar                                  on 1999/10/16  18:30:14
+        Log: another bug in change#3386 (CATCH_SET wasn't reverted correctly)
+     Branch: perl
+          ! perl.c
+____________________________________________________________________________
+[  4396] By: jhi                                   on 1999/10/16  17:44:39
+        Log: Missing comma.
+     Branch: cfgperl
+          ! lib/diagnostics.pm
+____________________________________________________________________________
+[  4395] By: gsar                                  on 1999/10/16  17:18:36
+        Log: assumption about @_ always being non-REAL doesn't hold when
+             debugger is running; DB::sub() can call arbitrary stuff
+             that modifies @_ at will
+     Branch: perl
+          ! pp_hot.c
+____________________________________________________________________________
+[  4394] By: nick                                  on 1999/10/16  09:35:20
+        Log: Resolve utfperl branch against mainline as of _62
+     Branch: utfperl
+         +> eg/cgi/dna_small_gif.uu eg/cgi/wilogo_gif.uu
+         +> ext/DB_File/hints/sco.pl ext/DynaLoader/hints/aix.pl
+         +> ext/File/Glob/Changes ext/File/Glob/Glob.pm
+         +> ext/File/Glob/Glob.xs ext/File/Glob/Makefile.PL
+         +> ext/File/Glob/TODO ext/File/Glob/bsd_glob.c
+         +> ext/File/Glob/bsd_glob.h ext/NDBM_File/hints/sco.pl
+         +> pod/perlhack.pod t/lib/glob-basic.t t/lib/glob-global.t
+         +> t/lib/glob-taint.t win32/genmk95.pl
+          - eg/cgi/dna.small.gif.uu eg/cgi/wilogo.gif.uu
+         !> (integrate 144 files)
+____________________________________________________________________________
+[  4393] By: gsar                                  on 1999/10/16  04:07:02
+        Log: OS/2 support bits (from Ilya Zakharevich)
+     Branch: perl
+          ! hints/os2.sh makedef.pl os2/Makefile.SHs t/lib/glob-basic.t
+____________________________________________________________________________
+[  4392] By: jhi                                   on 1999/10/15  10:28:09
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> Changes MANIFEST Makefile.SH Porting/makerel lib/Pod/Man.pm
+         !> lib/Pod/Parser.pm op.c pod/perldelta.pod pod/perlopentut.pod
+         !> win32/Makefile win32/makefile.mk
+
+----------------
+Version 5.005_62
+----------------
+
+____________________________________________________________________________
+[  4391] By: gsar                                  on 1999/10/15  10:12:42
+        Log: here be 5.005_62
+     Branch: perl
+          ! Changes MANIFEST Porting/makerel
+____________________________________________________________________________
+[  4390] By: gsar                                  on 1999/10/15  09:45:51
+        Log: lvalue subs patch (change#4081) breaks C<\(Foo->Bar())>;
+             avoid tickling it in Pod::Man for now; other nits in
+             Pod::*
+     Branch: perl
+          ! lib/Pod/Man.pm lib/Pod/Parser.pm pod/perldelta.pod
+          ! pod/perlopentut.pod
+____________________________________________________________________________
+[  4389] By: gsar                                  on 1999/10/15  08:55:01
+        Log: disable internal globbing for miniperl (or build breaks out
+             in a rash of failed dependencies)
+     Branch: perl
+          ! Makefile.SH op.c win32/Makefile win32/makefile.mk
+____________________________________________________________________________
+[  4388] By: jhi                                   on 1999/10/15  08:07:49
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> Changes ext/POSIX/POSIX.xs lib/Benchmark.pm pod/perldelta.pod
+         !> pod/perlfaq2.pod win32/include/dirent.h win32/win32.c
+____________________________________________________________________________
+[  4387] By: gsar                                  on 1999/10/15  07:46:24
+        Log: integrate cfgperl contents into mainline
+     Branch: perl
+          ! Changes
+         !> pod/perldelta.pod pod/perldiag.pod regcomp.c
+         !> t/pragma/warn/regcomp
+____________________________________________________________________________
+[  4386] By: gsar                                  on 1999/10/15  05:45:36
+        Log: various little goofs in change#4385
+     Branch: perl
+          ! win32/include/dirent.h win32/win32.c
+____________________________________________________________________________
+[  4385] By: gsar                                  on 1999/10/15  04:49:09
+        Log: win32_*dir() cleanup; win32_readdir() iterates as necessary
+             rather than win32_opendir() reading all files up front (untested)
+     Branch: perl
+          ! win32/include/dirent.h win32/win32.c
+____________________________________________________________________________
+[  4384] By: gsar                                  on 1999/10/15  01:34:09
+        Log: Benchmark notes (from Barrie Slaymaker <barries@slaysys.com>)
+     Branch: perl
+          ! lib/Benchmark.pm pod/perldelta.pod
+____________________________________________________________________________
+[  4383] By: gsar                                  on 1999/10/15  01:22:32
+        Log: include info about Perl Mongers in perlfaq2 (from David H. Adler
+             <dha@panix.com>)
+     Branch: perl
+          ! pod/perlfaq2.pod
+____________________________________________________________________________
+[  4382] By: gsar                                  on 1999/10/15  01:14:22
+        Log: From: jand@ActiveState.com (Jan Dubois)
+             Date: Fri, 15 Oct 1999 01:14:23 +0200
+             Message-ID: <380f61ae.18202914@smtprelay.t-online.de>
+             Subject: [PATCH 5.005_61] Prevent "Out of memory" error in POSIX's strftime()
+     Branch: perl
+          ! ext/POSIX/POSIX.xs
+____________________________________________________________________________
+[  4381] By: jhi                                   on 1999/10/14  22:11:36
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> XSUB.h cop.h embed.h embed.pl ext/File/Glob/bsd_glob.c
+         !> lib/Time/Local.pm perl.c perlapi.c pod/perlop.pod pp_ctl.c
+         !> proto.h scope.c scope.h t/op/runlevel.t util.c win32/Makefile
+         !> win32/makefile.mk
+____________________________________________________________________________
+[  4380] By: jhi                                   on 1999/10/14  22:08:22
+        Log: Warn inside character classes about unknown backslash escapes
+             (that are not caught earlier because of being completely unknown,
+             such as \m), such as \z (because they make do sense inside regexen,
+             but not inside character classes).
+     Branch: cfgperl
+          ! pod/perldelta.pod pod/perldiag.pod regcomp.c
+          ! t/pragma/warn/regcomp
+____________________________________________________________________________
+[  4379] By: gsar                                  on 1999/10/14  18:26:56
+        Log: clarify significance of parens for "x" (from M.J.T. Guy
+             <mjtg@cus.cam.ac.uk>)
+     Branch: perl
+          ! pod/perlop.pod
+____________________________________________________________________________
+[  4378] By: gsar                                  on 1999/10/14  18:25:20
+        Log: make timelocal work better when time is close to the epoch
+             east of GMT (from Keiki SATOH <kki@wakusei.ne.jp>)
+     Branch: perl
+          ! lib/Time/Local.pm
+____________________________________________________________________________
+[  4377] By: gsar                                  on 1999/10/14  18:15:11
+        Log: integrate cfgperl contents into mainline
+     Branch: perl
+         +> ext/DB_File/hints/sco.pl
+         !> MANIFEST hints/aix.sh hints/linux.sh hints/svr5.sh
+         !> pod/perldelta.pod pod/perldiag.pod pod/perlop.pod
+         !> pod/perlre.pod regcomp.c t/op/re_tests t/pragma/warn/regcomp
+____________________________________________________________________________
+[  4376] By: gsar                                  on 1999/10/14  17:47:35
+        Log: fix POPSTACK panics that ensued from bad interaction between
+             runlevels and stack of stacks (change#3988 done right);
+             basically, we pop the runlevel if the stacklevel is not the
+             same one we started the runlevel with
+     Branch: perl
+          ! cop.h perl.c pp_ctl.c t/op/runlevel.t util.c
+____________________________________________________________________________
+[  4375] By: gsar                                  on 1999/10/14  15:54:48
+        Log: avoid warnings
+     Branch: perl
+          ! ext/File/Glob/bsd_glob.c
+____________________________________________________________________________
+[  4374] By: jhi                                   on 1999/10/14  10:08:44
+        Log: Warn about false ranges like \d-\w (see the change #4355).
+             The invalid ranges (b-a) warning message also enhanced.
+     Branch: cfgperl
+          ! pod/perldelta.pod pod/perldiag.pod regcomp.c t/op/re_tests
+          ! t/pragma/warn/regcomp
+____________________________________________________________________________
+[  4373] By: gsar                                  on 1999/10/14  03:49:54
+        Log: File::Glob fixes for Windows
+     Branch: perl
+          ! XSUB.h ext/File/Glob/bsd_glob.c win32/Makefile
+          ! win32/makefile.mk
+____________________________________________________________________________
+[  4372] By: gsar                                  on 1999/10/14  02:21:31
+        Log: avoid inefficiency in change#3386 (every longjmp() was followed
+             by an avoidable call to setjmp())
+     Branch: perl
+          ! embed.h embed.pl perl.c perlapi.c pod/perldelta.pod pp_ctl.c
+          ! proto.h scope.c scope.h
+____________________________________________________________________________
+[  4371] By: jhi                                   on 1999/10/13  21:17:17
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> op.c pod/perldelta.pod
+____________________________________________________________________________
+[  4370] By: gsar                                  on 1999/10/13  18:08:45
+        Log: misc tweaks
+     Branch: perl
+          ! op.c pod/perldelta.pod
+____________________________________________________________________________
+[  4369] By: jhi                                   on 1999/10/13  16:18:58
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> pod/perldelta.pod pod/perldiag.pod pod/perlfunc.pod
+____________________________________________________________________________
+[  4368] By: gsar                                  on 1999/10/13  16:14:16
+        Log: pod nits from various perl porters
+     Branch: perl
+          ! pod/perldelta.pod pod/perldiag.pod pod/perlfunc.pod
+____________________________________________________________________________
+[  4367] By: jhi                                   on 1999/10/13  12:10:30
+        Log: From: Vlad Harchev <hvv@hippo.ru>
+             To: perl5-porters@perl.org
+             Subject: [ID 19991013.002] fix for 'perlop.pod' shipped with perl5.00503
+             Date: Wed, 13 Oct 1999 15:48:59 +0500 (SAMST)
+             Message-Id: <Pine.LNX.4.10.9910131546580.3542-100000@localhost.localdomain>
+     Branch: cfgperl
+          ! pod/perlop.pod
+____________________________________________________________________________
+[  4366] By: gsar                                  on 1999/10/13  08:11:11
+        Log: typos and language goofs pointed out by Hugo van der Sanden
+             <hv@crypt.compulink.co.uk>
+     Branch: perl
+          ! pod/perldelta.pod pod/perldiag.pod
+____________________________________________________________________________
+[  4365] By: jhi                                   on 1999/10/13  07:27:44
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         +> ext/File/Glob/Changes ext/File/Glob/Glob.pm
+         +> ext/File/Glob/Glob.xs ext/File/Glob/Makefile.PL
+         +> ext/File/Glob/TODO ext/File/Glob/bsd_glob.c
+         +> ext/File/Glob/bsd_glob.h ext/NDBM_File/hints/sco.pl
+         +> t/lib/glob-basic.t t/lib/glob-global.t t/lib/glob-taint.t
+         !> Changes MANIFEST README.win32 ext/ODBM_File/hints/sco.pl
+         !> lib/perl5db.pl op.c pod/perldelta.pod pod/perlfaq8.pod
+         !> pod/perlfunc.pod pod/perlop.pod pod/perlport.pod t/op/glob.t
+         !> t/op/readdir.t t/op/taint.t t/pragma/overload.t util.c
+____________________________________________________________________________
+[  4364] By: gsar                                  on 1999/10/13  07:06:04
+        Log: debugger tweak (from M.J.T. Guy <mjtg@cus.cam.ac.uk>)
+     Branch: perl
+          ! lib/perl5db.pl
+____________________________________________________________________________
+[  4363] By: jhi                                   on 1999/10/13  07:03:43
+        Log: From: Mike Hopkirk (hops) <hops@scoot.pdev.sco.com>
+             To: perl5-porters@perl.org
+             Subject: [ID 19991012.002] Latest UnixWare7 (svr5.sh) hints file
+             Date: Tue, 12 Oct 1999 19:48:11 -0700 (PDT)
+             Message-Id: <199910130248.TAA14636@scoot.pdev.sco.com>
+     Branch: cfgperl
+          ! hints/svr5.sh
+____________________________________________________________________________
+[  4362] By: jhi                                   on 1999/10/13  06:57:16
+        Log: Add DB_File hint for SCO ODT.
+             From: hops@sco.com
+             To: perl5-porters@perl.org
+             Subject: [ID 19991012.004] Build patch for perl5.005_03 on ODT3 ( 3.2v4.2)
+             Date: Tue, 12 Oct 1999 20:16:04 PDT
+             Message-Id: <199910122016.aa18415@charmstr.pdev.sco.com>
+     Branch: cfgperl
+          + ext/DB_File/hints/sco.pl
+          ! MANIFEST
+____________________________________________________________________________
+[  4361] By: gsar                                  on 1999/10/13  06:56:08
+        Log: PL_numeric_radix used without being defined (from Ilya
+             Zakharevich)
+     Branch: perl
+          ! util.c
+____________________________________________________________________________
+[  4360] By: gsar                                  on 1999/10/13  06:43:03
+        Log: use libdbm.nfs.a if available (libdbm.a is missing dbmclose())
+             From: hops@sco.com
+             Date: Tue, 12 Oct 1999 20:16:04 PDT
+             Message-Id: <199910122016.aa18415@charmstr.pdev.sco.com>
+             Subject: [ID 19991012.004] Build patch for perl5.005_03 on ODT3 ( 3.2v4.2)
+     Branch: perl
+          + ext/NDBM_File/hints/sco.pl
+          ! MANIFEST ext/ODBM_File/hints/sco.pl
+____________________________________________________________________________
+[  4359] By: gsar                                  on 1999/10/13  06:34:53
+        Log: various pod tweaks (from M.J.T. Guy <mjtg@cus.cam.ac.uk>)
+     Branch: perl
+          ! README.win32 pod/perlfaq8.pod pod/perlfunc.pod pod/perlop.pod
+          ! pod/perlport.pod
+____________________________________________________________________________
+[  4358] By: gsar                                  on 1999/10/12  19:10:27
+        Log: perldelta updates
+     Branch: perl
+          ! pod/perldelta.pod
+____________________________________________________________________________
+[  4357] By: gsar                                  on 1999/10/12  17:11:18
+        Log: update perldelta for change#4356
+     Branch: perl
+          ! Changes pod/perldelta.pod
+____________________________________________________________________________
+[  4356] By: gsar                                  on 1999/10/12  16:53:31
+        Log: add File::BSDGlob as File::Glob and load it at compile-time
+             if perl was built with -DPERL_INTERNAL_GLOB
+             
+             TODO: we currently get a compile-time failure if File/Glob.pm
+             can't be found; such failure needs to be made to emit a warning
+             and use the csh implementation instead
+     Branch: perl
+          + ext/File/Glob/Changes ext/File/Glob/Glob.pm
+          + ext/File/Glob/Glob.xs ext/File/Glob/Makefile.PL
+          + ext/File/Glob/TODO ext/File/Glob/bsd_glob.c
+          + ext/File/Glob/bsd_glob.h t/lib/glob-basic.t
+          + t/lib/glob-global.t t/lib/glob-taint.t
+          ! MANIFEST op.c t/op/glob.t t/op/readdir.t t/op/taint.t
+          ! t/pragma/overload.t
+____________________________________________________________________________
+[  4355] By: jhi                                   on 1999/10/12  15:30:05
+        Log: Revert the parts of #3926 that outlawed character ranges
+             that have character classes such as \w as either endpoint.
+             This change re-establishes the old behavior which meant that
+             such ranges weren't really ranges, the "-" was literal.
+             Moreover, this change also fixes the old behavior to be
+             more consistent: [\w-.] and [\s-\w] worked, but [.-\w] didn't.
+             Now they all do work as described above.  The #3926 outlawed
+             all of those.
+     Branch: cfgperl
+          ! pod/perldiag.pod pod/perlre.pod regcomp.c t/op/re_tests
+____________________________________________________________________________
+[  4354] By: jhi                                   on 1999/10/12  09:58:59
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> (integrate 33 files)
+____________________________________________________________________________
+[  4353] By: gsar                                  on 1999/10/12  05:53:40
+        Log: apply parts of LynxOS patches from Alan Johnson
+             <johnson@alonn.gemse.fr>
+     Branch: perl
+          ! Changes hints/lynxos.sh pod/perldelta.pod t/lib/safe2.t
+          ! t/op/groups.t
+____________________________________________________________________________
+[  4352] By: gsar                                  on 1999/10/12  05:24:39
+        Log: allow any unpack specifier to take a count via '/'
+             (from Ilya Zakharevich)
+     Branch: perl
+          ! pp.c t/op/pack.t
+____________________________________________________________________________
+[  4351] By: gsar                                  on 1999/10/12  05:02:35
+        Log: avoid warnings
+     Branch: perl
+          ! malloc.c
+____________________________________________________________________________
+[  4350] By: gsar                                  on 1999/10/12  04:50:52
+        Log: various cleanups
+     Branch: perl
+          ! ext/Devel/DProf/DProf.xs op.c perl.c perly.c perly.y
+          ! perly_c.diff pp_hot.c toke.c vms/perly_c.vms win32/config.bc
+          ! win32/config.gc win32/config.vc win32/config_H.bc
+          ! win32/config_H.gc win32/config_H.vc win32/config_sh.PL
+____________________________________________________________________________
+[  4349] By: gsar                                  on 1999/10/12  00:23:11
+        Log: update Changes, patchlevel etc.
+     Branch: perl
+          ! Changes Porting/findvars patchlevel.h win32/Makefile
+          ! win32/config_H.bc win32/config_H.gc win32/config_H.vc
+          ! win32/makefile.mk
+____________________________________________________________________________
+[  4348] By: gsar                                  on 1999/10/11  23:11:57
+        Log: add vec() example from Chaim Frenkel <chaimf@pobox.com>
+     Branch: perl
+          ! pod/perlfunc.pod
+____________________________________________________________________________
+[  4347] By: jhi                                   on 1999/10/11  21:25:03
+        Log: Sparc Linux -Duseshrplib fix.
+             
+             From: Brian Jepson <bjepson@home.com>
+             To: Nick Ing-Simmons <nick@ing-simmons.net>
+             cc: perl5-porters@perl.org
+             Subject: Re: [ID 19990813.002] Can't build Perl 5.005_60 on SPARC/Linux with -Duseshrplib
+             Date: Fri, 20 Aug 1999 11:25:17 -0500 (EST)
+             Message-ID: <Pine.LNX.4.10.9908201123570.5116-100000@cx384756-a.sking1.ri.home.com>
+     Branch: cfgperl
+          ! hints/linux.sh
+____________________________________________________________________________
+[  4346] By: gsar                                  on 1999/10/11  20:28:32
+        Log: more pack/unpack documentation (from Ilya Zakharevich); changed
+             the behavior of 'Z*' and 'Z3' to always pack a trailing
+             null byte; changed documentation to suit; added test
+     Branch: perl
+          ! pod/perlfunc.pod pp.c t/op/pack.t
+____________________________________________________________________________
+[  4345] By: gsar                                  on 1999/10/11  19:15:46
+        Log: writing to perllocal.pod fails if it was never created;
+             tweak pseudo-hash example (both suggested by Michael G Schwern
+             <schwern@pobox.com>)
+     Branch: perl
+          ! lib/ExtUtils/MM_Unix.pm pod/perlref.pod
+____________________________________________________________________________
+[  4344] By: gsar                                  on 1999/10/11  17:57:31
+        Log: slightly edited variant of suggested patch
+             From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Thu, 9 Sep 1999 18:35:37 -0400
+             Message-ID: <19990909183537.A28682@monk.mps.ohio-state.edu>
+             Subject: [PATCH 5.005_58] How RExen match?
+     Branch: perl
+          ! pod/perlre.pod
+____________________________________________________________________________
+[  4343] By: gsar                                  on 1999/10/11  16:55:48
+        Log: change#4327 was inefficient
+     Branch: perl
+          ! lib/lib.pm
+____________________________________________________________________________
+[  4342] By: jhi                                   on 1999/10/11  07:01:46
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         +> pod/perlhack.pod
+         !> (integrate 28 files)
+____________________________________________________________________________
+[  4341] By: jhi                                   on 1999/10/11  06:37:47
+        Log: The 2.5th cut at the AIX C++ extension problems.
+     Branch: cfgperl
+          ! hints/aix.sh
+____________________________________________________________________________
+[  4340] By: gsar                                  on 1999/10/10  23:48:07
+        Log: add perlhack.pod from Nathan Torkington <gnat@frii.com>
+     Branch: perl
+          + pod/perlhack.pod
+          ! MANIFEST pod/Makefile pod/perl.pod pod/roffitall
+____________________________________________________________________________
+[  4339] By: gsar                                  on 1999/10/10  20:42:40
+        Log: revert SAVEDESTRUCTOR() to accepting void(*)(void*) for source
+             compatibility; introduce SAVEDESTRUCTOR_X() that accepts
+             void(*)(pTHX_ void*)
+     Branch: perl
+          ! embed.h embed.pl ext/Devel/DProf/DProf.xs global.sym mg.c
+          ! objXSUB.h perl.h perlapi.c perly.c perly.y perly_c.diff
+          ! pod/perlguts.pod pod/perltoc.pod pp.c pp_hot.c proto.h
+          ! regcomp.h regexec.c scope.c scope.h toke.c vms/perly_c.vms
+____________________________________________________________________________
+[  4338] By: gsar                                  on 1999/10/10  20:38:59
+        Log: add missing new diagnostics to perldelta
+     Branch: perl
+          ! pod/perldelta.pod
+____________________________________________________________________________
+[  4337] By: gsar                                  on 1999/10/10  17:40:13
+        Log: update perldelta for change#3406
+     Branch: perl
+          ! embed.pl pod/perldata.pod pod/perldelta.pod
+____________________________________________________________________________
+[  4336] By: gsar                                  on 1999/10/10  16:33:14
+        Log: integrate cfgperl contents into mainline
+     Branch: perl
+         +> ext/DynaLoader/hints/aix.pl
+         !> MANIFEST ext/DynaLoader/dl_aix.xs hints/aix.sh hints/irix_6.sh
+         !> makedef.pl perl.h pod/perldelta.pod
+____________________________________________________________________________
+[  4335] By: jhi                                   on 1999/10/10  11:09:48
+        Log: Update perldelta.
+     Branch: cfgperl
+          ! pod/perldelta.pod
+____________________________________________________________________________
+[  4334] By: jhi                                   on 1999/10/10  10:31:46
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         +> win32/genmk95.pl
+         !> Changes MANIFEST README.win32 cop.h ext/Thread/Thread.pm
+         !> ext/Thread/Thread.xs ext/Thread/Thread/Queue.pm
+         !> ext/Thread/Thread/Semaphore.pm ext/Thread/Thread/Specific.pm
+         !> ext/Thread/sync.t ext/Thread/sync2.t installperl
+         !> lib/Exporter.pm lib/ExtUtils/MM_Unix.pm
+         !> lib/ExtUtils/MM_Win32.pm lib/diagnostics.pm lib/lib.pm perl.c
+         !> pod/perldelta.pod pod/perlfunc.pod pp_ctl.c pp_hot.c pp_sys.c
+         !> utils/perldoc.PL win32/makefile.mk
+____________________________________________________________________________
+[  4333] By: gsar                                  on 1999/10/10  06:33:15
+        Log: install pods to 'pods' rather than 'pod' on cygwin (modified
+             a patch suggested by cwilson@cc865179-c.chmbl1.ga.home.com)
+     Branch: perl
+          ! installperl lib/diagnostics.pm utils/perldoc.PL
+____________________________________________________________________________
+[  4332] By: gsar                                  on 1999/10/10  05:15:26
+        Log: add $VERSION
+     Branch: perl
+          ! lib/Exporter.pm
+____________________________________________________________________________
+[  4331] By: gsar                                  on 1999/10/10  05:10:22
+        Log: describe what can go in an export list (from Anno Siegel
+             <anno4000@lublin.zrz.tu-berlin.de>)
+     Branch: perl
+          ! lib/Exporter.pm
+____________________________________________________________________________
+[  4330] By: gsar                                  on 1999/10/10  04:50:43
+        Log: more basic support for building modules under Windows 95/98
+             (applied relevant parts from a patch suggested by
+             Jochen Wiedmann <joe@ispsoft.de>)
+     Branch: perl
+          ! lib/ExtUtils/MM_Unix.pm
+____________________________________________________________________________
+[  4329] By: gsar                                  on 1999/10/10  04:28:38
+        Log: rudimentary support for building under Windows 95/98 (from
+             Benjamin Stuhl <sho_pi@hotmail.com>)
+     Branch: perl
+          + win32/genmk95.pl
+          ! MANIFEST README.win32 lib/ExtUtils/MM_Win32.pm
+          ! win32/makefile.mk
+____________________________________________________________________________
+[  4328] By: gsar                                  on 1999/10/10  03:37:21
+        Log: fix two leaks in Thread.xs (from Eugene Alterman
+             <Eugene.Alterman@bremer-inc.com>); convert places with
+             'use attrs' to new attributes syntax
+     Branch: perl
+          ! ext/Thread/Thread.pm ext/Thread/Thread.xs
+          ! ext/Thread/Thread/Queue.pm ext/Thread/Thread/Semaphore.pm
+          ! ext/Thread/Thread/Specific.pm ext/Thread/sync.t
+          ! ext/Thread/sync2.t
+____________________________________________________________________________
+[  4327] By: gsar                                  on 1999/10/10  02:23:52
+        Log: avoid duplicates in @INC, they cause leaks in mod_perl etc
+             (suggested by Tod Irwin <irwin@stockmaster.com>)
+     Branch: perl
+          ! lib/lib.pm
+____________________________________________________________________________
+[  4326] By: gsar                                  on 1999/10/10  00:51:48
+        Log: better documentation for recv() (from Anton Berezin
+             <tobez@plab.ku.dk>)
+     Branch: perl
+          ! pod/perlfunc.pod
+____________________________________________________________________________
+[  4325] By: gsar                                  on 1999/10/09  22:46:23
+        Log: perldelta updates (see TODO markers)
+     Branch: perl
+          ! Changes pod/perldelta.pod pp_sys.c
+____________________________________________________________________________
+[  4324] By: gsar                                  on 1999/10/09  19:43:10
+        Log: fix Exporter::export_to_level() documentation
+     Branch: perl
+          ! lib/Exporter.pm
+____________________________________________________________________________
+[  4323] By: gsar                                  on 1999/10/09  18:48:31
+        Log: don't run END blocks when running under -c switch (older,
+             rarely useful behavior may still be obtained by putting
+             BEGIN { $^C = 0; exit; } at the end of the script)
+     Branch: perl
+          ! perl.c
+____________________________________________________________________________
+[  4322] By: jhi                                   on 1999/10/09  05:31:26
+        Log: While awaiting a good test program to detect the broken gcc.
+             From: Thomas Conté <tom@fr.uu.net>
+             To: <jhi@iki.fi>
+             Cc: <perl5-porters@perl.org>
+             Subject: Re: [ID 19990825.007] test t/lib/ipc_sysv.t failing under irix 6.4
+             Date: Wed, 6 Oct 1999 19:56:29 +0200
+             Message-ID: <000a01bf1024$1d938f20$252ad0d4@eng.iway.fr>
+     Branch: cfgperl
+          ! hints/irix_6.sh perl.h
+____________________________________________________________________________
+[  4321] By: gsar                                  on 1999/10/09  00:41:02
+        Log: POPSUB() gave up the refcount to the CV before LEAVE had a chance to
+             clear entries in the CV's pad, leading to coredumps when CV had no
+             other references to it; this is a slightly edited version of the
+             patch suggested by Russel O'Connor <roconnor@world.std.com>
+     Branch: perl
+          ! cop.h pp_ctl.c pp_hot.c
+____________________________________________________________________________
+[  4320] By: gsar                                  on 1999/10/08  22:50:51
+        Log: revert POP{SUB,LOOP}{1,2} logic to the simpler pre-5.003_24
+             situation (assumptions about cx invalidation are not valid
+             anymore)
+     Branch: perl
+          ! cop.h pp_ctl.c pp_hot.c
+____________________________________________________________________________
+[  4319] By: jhi                                   on 1999/10/08  14:33:31
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> cop.h ext/Thread/Thread.xs op.c opcode.h perl.c perl.h perly.c
+         !> perly.y pod/perldiag.pod pod/perlfunc.pod pp_ctl.c pp_sys.c
+         !> t/comp/bproto.t thrdvar.h toke.c util.c
+____________________________________________________________________________
+[  4318] By: jhi                                   on 1999/10/08  13:51:34
+        Log: The second cut at AIX C++ extension troubles.
+     Branch: cfgperl
+          ! ext/DynaLoader/dl_aix.xs ext/DynaLoader/hints/aix.pl
+          ! hints/aix.sh
+____________________________________________________________________________
+[  4317] By: jhi                                   on 1999/10/08  10:44:13
+        Log: The first cut at fixing Perl extensions written in C++ in AIX,
+             statics don't get initialized right.  This patch at least
+             doesn't seem to break the build in my AIX, but unfortunately
+             I don't have the IBM C++ to do further testing.
+             
+             Problem reported by Stephanie Beals in
+             From: bealzy@us.ibm.com
+             To: perl5-porters@perl.org
+             Subject: [ID 19991007.005] DynaLoader/dl_aix.xs problem using load and unload on AIX
+             Date: Thu, 7 Oct 1999 15:05:54 -0400
+             Message-Id: <85256803.0068E70D.00@D51MTA03.pok.ibm.com>
+     Branch: cfgperl
+          + ext/DynaLoader/hints/aix.pl
+          ! MANIFEST ext/DynaLoader/dl_aix.xs hints/aix.sh
+____________________________________________________________________________
+[  4316] By: gsar                                  on 1999/10/08  10:26:15
+        Log: remove kludgey duplicate background error avoidance (caused
+             "leaks"; %@ wasn't even user-visible under -Dusethreads);
+             only repeats of most recent error are now avoided
+     Branch: perl
+          ! ext/Thread/Thread.xs perl.c perl.h pp_ctl.c thrdvar.h util.c
+____________________________________________________________________________
+[  4315] By: jhi                                   on 1999/10/08  09:48:59
+        Log: Fix omission.
+     Branch: cfgperl
+          ! makedef.pl
+____________________________________________________________________________
+[  4314] By: gsar                                  on 1999/10/08  07:17:01
+        Log: extend change#2299 to C<use> (fixes scoping problems in
+             C<if (...) { use foo; ... }>)
+     Branch: perl
+          ! op.c
+____________________________________________________________________________
+[  4313] By: gsar                                  on 1999/10/08  04:52:19
+        Log: small tweak for change#4309
+     Branch: perl
+          ! op.c
+____________________________________________________________________________
+[  4312] By: gsar                                  on 1999/10/08  02:31:13
+        Log: add suggested patch =~ s/NOTOP/OP_NOT/ with tests
+             From: Larry Wall <larry@wall.org>
+             Date: Wed, 6 Oct 1999 09:55:57 -0700 (PDT)
+             Message-Id: <199910061655.JAA11333@kiev.wall.org>
+             Subject: Re: [ID 19991001.004] apparent parsing error with not(arg)
+     Branch: perl
+          ! opcode.h t/comp/bproto.t toke.c
+____________________________________________________________________________
+[  4311] By: gsar                                  on 1999/10/08  00:58:19
+        Log: typo
+     Branch: perl
+          ! pp_sys.c
+____________________________________________________________________________
+[  4310] By: gsar                                  on 1999/10/07  23:51:38
+        Log: fix setpgrp vs getpgrp and POSIX vs BSD confusion (spotted by
+             Brian Mitchell <brian@chele.cais.net>)
+     Branch: perl
+          ! pod/perldiag.pod pod/perlfunc.pod pp_sys.c
+____________________________________________________________________________
+[  4309] By: gsar                                  on 1999/10/07  22:57:52
+        Log: change#3728 was flawed (loop contexts saw the wrong statement
+             info, causing loop control constructs to not find the label);
+             disable OP_SETSTATE entirely and add a fix that is specifically
+             targetted at disabling the OP_LINESEQ optimization in else BLOCK,
+             which was what the original patch was supposed to fix
+             
+             TODO: remove the remainder of the setstate logic if it can't
+             be used anywhere else (it isn't used anywhere now)
+     Branch: perl
+          ! cop.h op.c perly.c perly.y
+____________________________________________________________________________
+[  4308] By: jhi                                   on 1999/10/07  19:21:27
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> lib/Pod/Man.pm lib/Pod/Text.pm pod/pod2man.PL
+____________________________________________________________________________
+[  4307] By: gsar                                  on 1999/10/07  15:12:24
+        Log: update to podlators-0.08 from Russ Allbery
+     Branch: perl
+          ! lib/Pod/Man.pm lib/Pod/Text.pm pod/pod2man.PL
+____________________________________________________________________________
+[  4306] By: jhi                                   on 1999/10/06  17:20:34
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> (integrate 45 files)
+____________________________________________________________________________
+[  4305] By: gsar                                  on 1999/10/06  16:55:45
+        Log: some versions of mingw32 have __int64, define iff it isn't
+     Branch: perl
+          ! win32/win32.h
+____________________________________________________________________________
+[  4304] By: gsar                                  on 1999/10/06  03:45:44
+        Log: fix typos in change#4288
+     Branch: perl
+          ! Changes dump.c sv.c
+____________________________________________________________________________
+[  4303] By: gsar                                  on 1999/10/06  03:22:46
+        Log: integrate cfgperl contents into mainline
+     Branch: perl
+         +> eg/cgi/dna_small_gif.uu eg/cgi/wilogo_gif.uu
+          - eg/cgi/dna.small.gif.uu eg/cgi/wilogo.gif.uu
+         !> (integrate 31 files)
+____________________________________________________________________________
+[  4302] By: gsar                                  on 1999/10/06  02:36:53
+        Log: make die/warn and other diagnostics go to wherever STDERR happens
+             to point at; change places that meant Perl_debug_log rather than
+             PerlIO_stderr()
+     Branch: perl
+          ! cop.h doio.c embedvar.h ext/Devel/Peek/Peek.xs
+          ! ext/DynaLoader/dl_aix.xs ext/DynaLoader/dl_beos.xs
+          ! ext/DynaLoader/dl_cygwin.xs ext/DynaLoader/dl_dld.xs
+          ! ext/DynaLoader/dl_dlopen.xs ext/DynaLoader/dl_hpux.xs
+          ! ext/DynaLoader/dl_mpeix.xs ext/DynaLoader/dl_next.xs
+          ! ext/DynaLoader/dl_rhapsody.xs ext/DynaLoader/dl_vmesa.xs
+          ! ext/DynaLoader/dl_vms.xs ext/DynaLoader/dlutils.c
+          ! ext/Thread/Thread.xs ext/Thread/typemap intrpvar.h malloc.c
+          ! mg.c objXSUB.h op.c perl.c perl.h perlio.c pp.c pp_ctl.c
+          ! pp_hot.c regexec.c scope.c scope.h sv.c thread.h toke.c util.c
+          ! win32/dl_win32.xs win32/win32.c win32/win32thread.c
+____________________________________________________________________________
+[  4301] By: jhi                                   on 1999/10/05  23:03:46
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             To: François Désarménien <desar@club-internet.fr>
+             Cc: "perl5-porters@perl.org" <perl5-porters@perl.org>
+             Subject: Re: Strange RE engine breakage in 5_61
+             Date: Mon, 4 Oct 1999 19:58:03 -0400
+             Message-ID: <19991004195803.A21760@monk.mps.ohio-state.edu>
+             
+             (had to apply pat.t part manually because there
+             already were more tests than there was in _61)
+     Branch: cfgperl
+          ! regcomp.c regexec.c t/op/pat.t t/op/re_tests
+____________________________________________________________________________
+[  4300] By: jhi                                   on 1999/10/04  17:03:18
+        Log: From: Andy Dougherty <doughera@lafayette.edu>
+             To: Jarkko Hietaniemi <jhi@iki.fi>
+             cc: Perl Porters <perl5-porters@perl.org>, jhi@cc.hut.fi
+             Subject: Re: [ID 19991001.005] [_61] [PATCH] tarball fine on win32, zip isn't
+             Date: Mon, 4 Oct 1999 13:05:08 -0400 (EDT)
+             Message-ID: <Pine.SOL.4.10.9910041302550.6502-100000@maxwell.phys.lafayette.edu>
+     Branch: cfgperl
+          + eg/cgi/dna_small_gif.uu eg/cgi/wilogo_gif.uu
+          - eg/cgi/dna.small.gif.uu eg/cgi/wilogo.gif.uu
+          ! MANIFEST ext/B/defsubs_h.PL
+____________________________________________________________________________
+[  4299] By: jhi                                   on 1999/10/04  07:15:16
+        Log: From: Michael G Schwern <schwern@pobox.com>
+             To: perl5-porters@perl.org
+             Subject: Re: [PATCH av.c, op.c, perldiag.pod] "array field" -> "pseudo-hash field"
+             Date: Sun, 3 Oct 1999 17:34:17 -0400
+             Message-ID: <19991003173417.A4351@blackrider>
+     Branch: cfgperl
+          ! t/lib/fields.t t/pragma/constant.t
+____________________________________________________________________________
+[  4298] By: gsar                                  on 1999/10/04  04:57:53
+        Log: some compatibility macros were busted
+     Branch: perl
+          ! embed.h embed.pl toke.c
+____________________________________________________________________________
+[  4297] By: jhi                                   on 1999/10/03  17:50:59
+        Log: A better version of #4296.
+             
+             From: Michael G Schwern <schwern@pobox.com>
+             To: perl5-porters@perl.org
+             Subject: [PATCH av.c, op.c, perldiag.pod] "array field" -> "pseudo-hash field"
+             Date: Sun, 3 Oct 1999 13:54:23 -0400
+             Message-ID: <19991003135423.A3050@blackrider>
+     Branch: cfgperl
+          ! av.c op.c pod/perldiag.pod
+____________________________________________________________________________
+[  4296] By: jhi                                   on 1999/10/03  17:21:01
+        Log: (Replaced by #4297.)
+             
+             From: Michael G Schwern <schwern@pobox.com>
+             To: perl5-porters@perl.org
+             Subject: [PATCH av.c, perldiag.pod] Added field name to "No such array field"
+             Date: Sun, 3 Oct 1999 13:16:47 -0400
+             Message-ID: <19991003131647.A2816@blackrider>
+             
+             plus changed the error message to say "No such pseudo-hash field"
+             as discussed in the above mail message.
+     Branch: cfgperl
+          ! av.c pod/perldiag.pod
+____________________________________________________________________________
+[  4295] By: gsar                                  on 1999/10/03  16:09:36
+        Log: avoid doing irrelevant things on 'make perl'
+     Branch: perl
+          ! Makefile.SH
+____________________________________________________________________________
+[  4294] By: jhi                                   on 1999/10/03  14:16:24
+        Log: Fix a typo in #4293 spotted by Graham Barr.
+     Branch: cfgperl
+          ! pod/perlref.pod
+____________________________________________________________________________
+[  4293] By: jhi                                   on 1999/10/03  11:31:22
+        Log: From: Michael G Schwern <schwern@blackrider.aocn.com>
+             To: perl5-porters@perl.org
+             Subject: Re: Should keys in pseudo-hashes -always- exist? [DOC PATCH]
+             Date: Sun, 3 Oct 1999 02:34:01 -0400
+             Message-ID: <19991003023401.A1520@blackrider>
+     Branch: cfgperl
+          ! pod/perlfunc.pod pod/perlref.pod
+____________________________________________________________________________
+[  4292] By: jhi                                   on 1999/10/03  09:23:16
+        Log: From: Barrie Slaymaker <barries@slaysys.com>
+             To: perl5-porters@perl.org
+             Subject: [PATCH 5.005_61] Benchmark.pm bugfix, tweaks
+             Date: Sun, 3 Oct 1999 00:09:51 -0400
+             Message-Id: <199910030409.AAA18228@jester.slaysys.com>
+     Branch: cfgperl
+          ! lib/Benchmark.pm
+____________________________________________________________________________
+[  4291] By: jhi                                   on 1999/10/02  23:43:53
+        Log: Be understanding about large file systems.
+     Branch: cfgperl
+          ! t/lib/syslfs.t t/op/lfs.t
+____________________________________________________________________________
+[  4290] By: jhi                                   on 1999/10/02  23:39:16
+        Log: Configure fixfest continues.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig
+          ! U/modified/d_longdbl.U U/modified/d_longlong.U
+          ! U/threads/d_pthreadj.U U/typedefs/gidsign.U
+          ! U/typedefs/gidsize.U U/typedefs/pidsign.U U/typedefs/pidsize.U
+          ! U/typedefs/uidsign.U U/typedefs/uidsize.U
+     Branch: metaconfig/U/perl
+          ! i_inttypes.U io64.U
+____________________________________________________________________________
+[  4289] By: jhi                                   on 1999/10/02  23:12:54
+        Log: Regen Porting stuff.
+     Branch: cfgperl
+          ! Porting/Glossary Porting/config.sh Porting/config_H
+____________________________________________________________________________
+[  4288] By: jhi                                   on 1999/10/02  23:05:50
+        Log: Untangle the IV_IS_QUAD jungle by introduding
+             macros to be used when doing formatted printing:
+             IVdf, UVuf, UVxf, UVof.  Also introduce Uid_t_SIGN.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH doio.c dump.c op.c perl.h pp_hot.c pp_sys.c
+          ! regcomp.c sv.c taint.c toke.c util.c
+____________________________________________________________________________
+[  4287] By: jhi                                   on 1999/10/02  22:54:18
+        Log: metaconfig maintenance.
+     Branch: metaconfig
+          ! U/ebcdic/ebcdic.U U/typedefs/gidsign.U U/typedefs/gidsize.U
+          ! U/typedefs/pidsign.U U/typedefs/pidsize.U U/typedefs/uidsign.U
+          ! U/typedefs/uidsize.U
+____________________________________________________________________________
+[  4286] By: nick                                  on 1999/10/02  11:11:44
+        Log: Incremental merge of mainline
+     Branch: utfperl
+         +> README.Y2K hints/svr5.sh lib/Pod/Man.pm
+         +> lib/unicode/Unicode.html t/op/args.t t/pod/multiline_items.t
+         +> t/pod/multiline_items.xr t/pod/pod2usage.t t/pod/pod2usage.xr
+         +> t/pod/podselect.t t/pod/podselect.xr
+          - lib/Pod/PlainText.pm
+         !> (integrate 148 files)
+____________________________________________________________________________
+[  4285] By: jhi                                   on 1999/10/02  10:16:15
+        Log: Battle namespace pollution.
+     Branch: cfgperl
+          ! lib/Benchmark.pm
+____________________________________________________________________________
+[  4284] By: jhi                                   on 1999/10/02  10:11:20
+        Log: Regen Configure, all of xs_apiversion didn't take.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH patchlevel.h
+____________________________________________________________________________
+[  4283] By: jhi                                   on 1999/10/02  09:48:17
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         +> lib/Pod/Man.pm t/pod/multiline_items.t
+         +> t/pod/multiline_items.xr t/pod/pod2usage.t t/pod/pod2usage.xr
+         +> t/pod/podselect.t t/pod/podselect.xr
+          - lib/Pod/PlainText.pm
+         !> (integrate 50 files)
+____________________________________________________________________________
+[  4282] By: gsar                                  on 1999/10/02  06:39:14
+        Log: update pod2man, pod2text and related Pod:: modules with the
+             ones in podlators-0.07 from Russ Allbery
+     Branch: perl
+          + lib/Pod/Man.pm
+          ! lib/Pod/Text.pm lib/Pod/Text/Color.pm lib/Pod/Text/Termcap.pm
+          ! pod/pod2man.PL pod/pod2text.PL
+____________________________________________________________________________
+[  4281] By: gsar                                  on 1999/10/02  06:14:44
+        Log: fix PodParser testsuite; Pod::Text subsumes Pod::PlainText
+     Branch: perl
+          - lib/Pod/PlainText.pm
+          ! MANIFEST lib/Pod/Text.pm lib/Pod/Usage.pm pod/pod2usage.PL
+          ! pod/podchecker.PL pod/podselect.PL t/pod/emptycmd.t
+          ! t/pod/for.t t/pod/headings.t t/pod/include.t t/pod/included.t
+          ! t/pod/lref.t t/pod/multiline_items.t t/pod/nested_items.t
+          ! t/pod/nested_seqs.t t/pod/oneline_cmds.t t/pod/pod2usage.t
+          ! t/pod/poderrs.t t/pod/poderrs.xr t/pod/podselect.t
+          ! t/pod/special_seqs.t t/pod/testp2pt.pl t/pod/testpchk.pl
+____________________________________________________________________________
+[  4280] By: gsar                                  on 1999/10/02  04:39:38
+        Log: upgrade to PodParser-1.085 from Brad Appleton <bradapp@enteract.com>
+     Branch: perl
+          + t/pod/multiline_items.t t/pod/multiline_items.xr
+          + t/pod/pod2usage.t t/pod/pod2usage.xr t/pod/podselect.t
+          + t/pod/podselect.xr
+          ! MANIFEST lib/Pod/Checker.pm lib/Pod/InputObjects.pm
+          ! lib/Pod/Parser.pm lib/Pod/PlainText.pm lib/Pod/Select.pm
+          ! lib/Pod/Usage.pm t/pod/for.xr t/pod/headings.xr
+          ! t/pod/include.xr t/pod/included.xr t/pod/lref.xr
+          ! t/pod/nested_items.xr t/pod/nested_seqs.xr
+          ! t/pod/oneline_cmds.xr t/pod/poderrs.xr t/pod/special_seqs.xr
+          ! t/pod/testp2pt.pl
+____________________________________________________________________________
+[  4279] By: gsar                                  on 1999/10/02  03:36:41
+        Log: make exists() work better on pseudo-hashes (reworked a patch suggested
+             by Michael G Schwern <schwern@pobox.com>)
+     Branch: perl
+          ! av.c t/op/avhv.t
+____________________________________________________________________________
+[  4278] By: gsar                                  on 1999/10/02  02:36:55
+        Log: deprecate C<use attrs>
+     Branch: perl
+          ! ext/attrs/attrs.pm ext/attrs/attrs.xs t/lib/attrs.t
+          ! t/lib/thread.t t/pragma/sub_lval.t
+____________________________________________________________________________
+[  4277] By: gsar                                  on 1999/10/02  01:43:25
+        Log: add notes about effect of loop control statements inside
+             LABEL BLOCK continue BLOCK
+     Branch: perl
+          ! pod/perlfunc.pod
+____________________________________________________________________________
+[  4276] By: gsar                                  on 1999/10/02  01:23:02
+        Log: indent nested =items properly (suggested by Bill Fenner
+             <fenner@research.att.com>)
+     Branch: perl
+          ! pod/pod2man.PL
+____________________________________________________________________________
+[  4275] By: gsar                                  on 1999/10/02  01:09:16
+        Log: updated ptags generator from Ilya Zakharevich
+     Branch: perl
+          ! emacs/ptags
+____________________________________________________________________________
+[  4274] By: gsar                                  on 1999/10/01  23:08:52
+        Log: update Changes
+     Branch: perl
+          ! Changes
+____________________________________________________________________________
+[  4273] By: gsar                                  on 1999/10/01  22:58:55
+        Log: typo, whitespace adjustments
+     Branch: perl
+          ! utils/h2xs.PL
+____________________________________________________________________________
+[  4272] By: gsar                                  on 1999/10/01  22:46:06
+        Log: remove dup hunks
+     Branch: perl
+          ! configure.com vms/vms.c
+____________________________________________________________________________
+[  4271] By: gsar                                  on 1999/10/01  22:33:02
+        Log: integrate cfgperl contents into mainline; resolve h2xs.PL conflict
+             by declaring new globals "our" (XXX this means h2xs generated code
+             won't run on earlier versions; a switch to generate compatible
+             source is needed)
+     Branch: perl
+         !> (integrate 35 files)
+____________________________________________________________________________
+[  4270] By: jhi                                   on 1999/10/01  12:05:56
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> ext/B/B/C.pm lib/ExtUtils/typemap lib/ExtUtils/xsubpp
+         !> pod/perldiag.pod util.c
+____________________________________________________________________________
+[  4269] By: jhi                                   on 1999/10/01  10:26:19
+        Log: From: Piotr Klaban <makler@oryl.man.torun.pl>
+             To: perl5-porters@perl.org
+             Subject: [ID 19991001.001] perlguts man page error
+             Date: Fri, 1 Oct 1999 10:23:49 +0200 (MET DST)
+             Message-Id: <199910010823.KAA05796@oryl.man.torun.pl>
+     Branch: cfgperl
+          ! pod/perlguts.pod
+____________________________________________________________________________
+[  4268] By: jhi                                   on 1999/10/01  07:32:33
+        Log: There *is* a month called October.
+     Branch: cfgperl
+          ! t/op/time.t
+____________________________________________________________________________
+[  4267] By: jhi                                   on 1999/10/01  06:58:10
+        Log: Temp file cleanliness.
+     Branch: cfgperl
+          ! t/lib/filecopy.t
+____________________________________________________________________________
+[  4266] By: jhi                                   on 1999/10/01  06:46:56
+        Log: From: Barrie Slaymaker <barries@slaysys.com>
+             To: perl5-porters@perl.org
+             Subject: [PATCH 5.005_61] Benchmark.pm: Export countit(), cmpthese() by default
+             Date: Thu, 30 Sep 1999 22:16:26 -0400
+             Message-Id: <199910010216.WAA08309@jester.slaysys.com>
+     Branch: cfgperl
+          ! lib/Benchmark.pm
+____________________________________________________________________________
+[  4265] By: jhi                                   on 1999/09/30  20:25:35
+        Log: From: Barrie Slaymaker <barries@slaysys.com>
+             To: perl5-porters@perl.org
+             Subject: [PATCH 5.005_61] Benchmark tweaks, fixes, cmpthese()
+             Date: Thu, 30 Sep 1999 15:44:00 -0400
+             Message-Id: <199909301944.PAA07166@jester.slaysys.com>
+             (Replaces #4175.)
+     Branch: cfgperl
+          ! lib/Benchmark.pm
+____________________________________________________________________________
+[  4264] By: gsar                                  on 1999/09/30  17:59:26
+        Log: re-add missing "Out of memory!" entry
+     Branch: perl
+          ! pod/perldiag.pod
+____________________________________________________________________________
+[  4263] By: jhi                                   on 1999/09/30  17:05:43
+        Log: Regenerate Configure.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH
+____________________________________________________________________________
+[  4261] By: jhi                                   on 1999/09/30  16:15:05
+        Log: From: Andy Dougherty <doughera@lafayette.edu>
+             To: Perl Porters <perl5-porters@perl.org>
+             Subject: [PATCH 5.005_61] rand() advisory for perldelta.pod
+             Date: Thu, 30 Sep 1999 12:24:00 -0400 (EDT)
+             Message-ID: <Pine.SOL.4.10.9909301218390.3343-100000@maxwell.phys.lafayette.edu>
+     Branch: cfgperl
+          ! pod/perldelta.pod
+____________________________________________________________________________
+[  4260] By: jhi                                   on 1999/09/30  15:48:56
+        Log: From: Andy Dougherty <doughera@lafayette.edu>
+             To: Jarkko Hietaniemi <jhi@iki.fi>, Gurusamy Sarathy <gsar@activestate.com>
+             Subject: Re: Possible skeletal structure for searching multiple versions
+             Date: Thu, 30 Sep 1999 11:52:00 -0400 (EDT)
+             Message-ID: <Pine.SOL.4.10.9909301149090.3343-100000@maxwell.phys.lafayette.edu>
+     Branch: metaconfig
+          ! U/mkglossary
+     Branch: metaconfig/U/perl
+          + xs_apiversion.U
+          ! patchlevel.U
+____________________________________________________________________________
+[  4259] By: jhi                                   on 1999/09/30  15:07:16
+        Log: Further ?idsize.U fixing.
+     Branch: metaconfig
+          ! U/typedefs/gidsize.U U/typedefs/pidsize.U U/typedefs/uidsize.U
+____________________________________________________________________________
+[  4258] By: jhi                                   on 1999/09/30  15:00:14
+        Log: Fix the ?idsi{gn,ze} units, from Andy Dougherty.
+     Branch: metaconfig
+          ! U/typedefs/gidsign.U U/typedefs/gidsize.U U/typedefs/pidsign.U
+          ! U/typedefs/pidsize.U U/typedefs/uidsign.U U/typedefs/uidsize.U
+____________________________________________________________________________
+[  4257] By: jhi                                   on 1999/09/30  09:48:33
+        Log: From: "Kurt D. Starsinic" <kstar@chapin.edu>
+             To: Gurusamy Sarathy <gsar@ActiveState.com>
+             Cc: tchrist@perl.com, Larry Wall <larry@wall.org>,
+             The Perl Porters Mailing List <perl5-porters@perl.org>
+             Subject: [PATCH] (Was: deprecating SIGDIE)
+             Date: Wed, 29 Sep 1999 15:16:50 -0400
+             Message-ID: <19990929151650.E26675@O2.chapin.edu>
+     Branch: cfgperl
+          ! Porting/findvars embedvar.h intrpvar.h mg.c objXSUB.h perl.c
+____________________________________________________________________________
+[  4256] By: jhi                                   on 1999/09/30  09:45:22
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             To: Gurusamy Sarathy <gsar@activestate.com>
+             Cc: Barrie Slaymaker <barries@slaysys.com>, perl5-porters@perl.org
+             Subject: Re: _58, _61 Argument "" is not numeric in sprintf
+             Date: Wed, 29 Sep 1999 18:58:23 -0400
+             Message-ID: <19990929185823.A22099@monk.mps.ohio-state.edu>
+     Branch: cfgperl
+          ! Makefile.SH opcode.pl
+____________________________________________________________________________
+[  4255] By: gsar                                  on 1999/09/30  09:03:48
+        Log: remove prehistoric XFree() gunk
+     Branch: perl
+          ! lib/ExtUtils/typemap lib/ExtUtils/xsubpp
+____________________________________________________________________________
+[  4254] By: gsar                                  on 1999/09/30  08:40:14
+        Log: From: Vishal Bhatia <vishal@gol.com>
+             Date: Wed, 29 Sep 1999 23:27:28 +0900 (JST)
+             Message-ID: <Pine.LNX.4.10.9909292326280.5599-100000@localhost.localdomain>
+             Subject: [patch _61] Minor corrections in C.pm
+     Branch: perl
+          ! ext/B/B/C.pm
+____________________________________________________________________________
+[  4253] By: gsar                                  on 1999/09/30  08:36:27
+        Log: off-by-one in fbm_compile() (spotted by John Bley
+             <jbley@cs.cmu.edu>); whitespace adjustments
+     Branch: perl
+          ! util.c
+____________________________________________________________________________
+[  4251] By: jhi                                   on 1999/09/30  08:09:13
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             To: perl5-porters@perl.org (Mailing list Perl5)
+             Subject: [PATCH 5.00561+]  Followup h2xs patch
+             Date: Thu, 30 Sep 1999 04:15:52 -0400 (EDT)
+             Message-Id: <199909300815.EAA25425@monk.mps.ohio-state.edu>
+     Branch: cfgperl
+          ! utils/h2xs.PL
+____________________________________________________________________________
+[  4250] By: jhi                                   on 1999/09/29  19:11:32
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> djgpp/configure.bat embed.h embed.pl lib/Exporter/Heavy.pm
+         !> lib/ExtUtils/MM_Unix.pm lib/Time/Local.pm proto.h
+         !> t/pragma/locale/latin1 win32/Makefile win32/makefile.mk
+____________________________________________________________________________
+[  4249] By: bailey                                on 1999/09/29  02:21:31
+        Log: resync with mainline
+     Branch: vmsperl
+         +> (branch 32 files)
+          - ext/B/defsubs.h.PL lib/unicode/arabshp.txt
+          - lib/unicode/blocks.txt lib/unicode/index2.txt
+          - lib/unicode/jamo2.txt lib/unicode/names2.txt
+          - lib/unicode/props2.txt lib/unicode/readme.txt
+          - t/lib/bigfloatpm.t
+         !> (integrate 240 files)
+____________________________________________________________________________
+[  4248] By: jhi                                   on 1999/09/28  18:14:39
+        Log: From: Andy Dougherty <doughera@lafayette.edu>
+             To: Perl Porters <perl5-porters@perl.org>
+             Subject: [PATCH 5.005_xx] Re: [Config 5.005_03] -DDEBUGGING
+             Date: Tue, 28 Sep 1999 12:20:50 -0400 (EDT)
+             Message-ID: <Pine.SOL.4.10.9909281019360.1890-100000@maxwell.phys.lafayette.edu>
+             
+             From: Andy Dougherty <doughera@lafayette.edu>
+             To: Perl Porters <perl5-porters@perl.org>
+             Subject: [ANOTHER PATCH 5.005_61] Re: [Config 5.005_03] -DDEBUGGING
+             Date: Tue, 28 Sep 1999 13:39:49 -0400 (EDT)
+             Message-ID: <Pine.SOL.4.10.9909281338180.2012-100000@maxwell.phys.lafayette.edu>
+     Branch: cfgperl
+          ! hints/README.hints hints/amigaos.sh hints/cygwin.sh
+          ! hints/dynixptx.sh hints/epix.sh hints/esix4.sh hints/mint.sh
+          ! hints/mpeix.sh hints/next_3.sh hints/next_3_0.sh
+          ! hints/next_4.sh
+____________________________________________________________________________
+[  4247] By: gsar                                  on 1999/09/28  17:36:59
+        Log: revert change#4115 (breaks libwww's base/date.t); could be 
+             reworked to enable it conditional on $Time::Local::nocroak
+             or some such
+     Branch: perl
+          ! lib/Time/Local.pm
+____________________________________________________________________________
+[  4246] By: gsar                                  on 1999/09/28  17:33:14
+        Log: tweak for win32 build
+     Branch: perl
+          ! win32/Makefile win32/makefile.mk
+____________________________________________________________________________
+[  4245] By: gsar                                  on 1999/09/28  17:31:34
+        Log: change#4236 fallout
+     Branch: perl
+          ! lib/ExtUtils/MM_Unix.pm
+____________________________________________________________________________
+[  4244] By: gsar                                  on 1999/09/28  17:29:31
+        Log: remove doubled new_xpv
+     Branch: perl
+          ! embed.h embed.pl proto.h
+____________________________________________________________________________
+[  4243] By: jhi                                   on 1999/09/27  19:13:20
+        Log: Artistic fine-tuning.
+     Branch: cfgperl
+          ! ext/B/defsubs_h.PL
+____________________________________________________________________________
+[  4242] By: gsar                                  on 1999/09/27  17:05:22
+        Log: avoid implicit split to @_ in change#4181; binary -> text file
+             types in p4
+     Branch: perl
+          ! djgpp/configure.bat lib/Exporter/Heavy.pm
+          ! t/pragma/locale/latin1
+____________________________________________________________________________
+[  4241] By: jhi                                   on 1999/09/27  07:48:19
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> INSTALL embed.h embed.pl malloc.c pod/perldiag.pod pp.c
+         !> pp_ctl.c pp_hot.c pp_sys.c win32/Makefile win32/makefile.mk
+____________________________________________________________________________
+[  4240] By: jhi                                   on 1999/09/27  07:47:11
+        Log: Finalize change #4232.
+             From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             To: Jarkko Hietaniemi <jhi@iki.fi>
+             Cc: gsar@activestate.com, Mailing list Perl5 <perl5-porters@perl.org>
+             Subject: Re: xsubpp change breaks B, DB_File, POSIX builds
+             Date: Sun, 26 Sep 1999 16:52:31 -0400
+             Message-ID: <19990926165230.A26933@monk.mps.ohio-state.edu>
+     Branch: cfgperl
+          ! lib/ExtUtils/xsubpp
+____________________________________________________________________________
+[  4239] By: gsar                                  on 1999/09/27  02:48:42
+        Log: add notes in INSTALL about Configure -Accflags=-DFOO
+     Branch: perl
+          ! INSTALL
+____________________________________________________________________________
+[  4238] By: gsar                                  on 1999/09/27  02:03:48
+        Log: PERL_POLLUTE isn't required for bincompat, so don't enable
+             it automatically
+     Branch: perl
+          ! embed.h embed.pl
+____________________________________________________________________________
+[  4237] By: gsar                                  on 1999/09/27  01:52:47
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Fri, 24 Sep 1999 23:25:36 -0400
+             Message-ID: <19990924232536.A16257@monk.mps.ohio-state.edu>
+             Subject: [PATCH 5.005_61] Malloc fixes and docs
+     Branch: perl
+          ! malloc.c pod/perldiag.pod
+____________________________________________________________________________
+[  4236] By: gsar                                  on 1999/09/27  01:31:32
+        Log: avoid .exe in $Config{cc} (spotted by Vadim Konovalov
+             <vkonovalov@lucent.com>)
+     Branch: perl
+          ! win32/Makefile win32/makefile.mk
+____________________________________________________________________________
+[  4235] By: gsar                                  on 1999/09/26  17:02:03
+        Log: fix buggy popping of subroutine contexts in the lvalue
+             subroutines implementation (change#4081); correct the
+             plethora of cases where DIE() was more appropriate than
+             croak()
+     Branch: perl
+          ! pp.c pp_ctl.c pp_hot.c pp_sys.c
+____________________________________________________________________________
+[  4234] By: jhi                                   on 1999/09/26  12:06:28
+        Log: Fix #endif.
+     Branch: cfgperl
+          ! XSUB.h
+____________________________________________________________________________
+[  4233] By: jhi                                   on 1999/09/26  11:59:18
+        Log: Integrate with Sarathy. h2xs.PL had to be manually resolved,
+             I kept my (Ilya's) version.
+     Branch: cfgperl
+         !> gv.c gv.h intrpvar.h keywords.h keywords.pl lib/Shell.pm op.c
+         !> pod/perldiag.pod pod/perlembed.pod pod/perlfaq3.pod
+         !> pod/perlfaq7.pod pod/perlfunc.pod pod/perlmod.pod
+         !> pod/perlmodlib.pod pod/perlsub.pod pod/perltoot.pod
+         !> pod/perlxstut.pod sv.h t/pragma/strict-vars toke.c
+         !> utils/h2xs.PL win32/Makefile win32/makefile.mk
+____________________________________________________________________________
+[  4232] By: jhi                                   on 1999/09/26  09:53:43
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             To: Mailing list Perl5 <perl5-porters@perl.org>
+             Subject: [PATCH 5.005_61] teach xsubpp function pointers
+             Date: Sun, 26 Sep 1999 01:36:09 -0400
+             Message-ID: <19990926013609.A21148@monk.mps.ohio-state.edu>
+             
+             From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             To: Mailing list Perl5 <perl5-porters@perl.org>
+             Subject: [PATCH 5.005_61] Make h2xs -x almost bullet-proof
+             Date: Sun, 26 Sep 1999 03:00:50 -0400
+             Message-ID: <19990926030050.A21498@monk.mps.ohio-state.edu>
+     Branch: cfgperl
+          ! lib/ExtUtils/xsubpp utils/h2xs.PL
+____________________________________________________________________________
+[  4231] By: jhi                                   on 1999/09/26  09:48:49
+        Log: From: "Konovalov, Vadim" <vkonovalov@lucent.com>
+             To: perl5-porters@perl.org
+             Subject: misprint in perlguts
+             Date: Sun, 26 Sep 1999 12:48:36 +0400
+             Message-ID: <402099F49BEED211999700805FC7359F20D7A5@ru0028exch01.spb.lucent.com>
+     Branch: cfgperl
+          ! pod/perlguts.pod
+____________________________________________________________________________
+[  4230] By: gsar                                  on 1999/09/26  00:50:08
+        Log: add $installarchlib/CORE to default linker search path on windows
+     Branch: perl
+          ! win32/Makefile win32/makefile.mk
+____________________________________________________________________________
+[  4229] By: gsar                                  on 1999/09/25  20:05:03
+        Log: support C<use Shell> on Windows (reworked a patch suggested
+             by Jenda Krynicky <Jenda@McCann.cz>)
+     Branch: perl
+          ! lib/Shell.pm
+____________________________________________________________________________
+[  4228] By: gsar                                  on 1999/09/25  07:03:34
+        Log: integrate cfgperl contents into mainline
+     Branch: perl
+         +> hints/svr5.sh
+         !> Configure MANIFEST Makefile.SH config_h.SH hints/sco.sh
+         !> lib/unicode/Eq/Latin1 lib/unicode/Eq/Unicode
+         !> lib/unicode/mktables.PL pod/perldelta.pod pod/perlfaq9.pod
+         !> regcomp.c regexec.c t/lib/syslfs.t t/op/lfs.t
+____________________________________________________________________________
+[  4227] By: gsar                                  on 1999/09/25  06:44:47
+        Log: From: Larry Wall <larry@wall.org>
+             Date: Fri, 24 Sep 1999 21:59:37 PDT
+             Message-Id: <199909250459.VAA27506@kiev.wall.org>
+             Subject: Re: [PATCH 5.005_61] "our" declarations
+     Branch: perl
+          ! gv.c gv.h intrpvar.h keywords.h keywords.pl op.c
+          ! pod/perldiag.pod pod/perlembed.pod pod/perlfaq3.pod
+          ! pod/perlfaq7.pod pod/perlfunc.pod pod/perlmod.pod
+          ! pod/perlmodlib.pod pod/perlsub.pod pod/perltoot.pod
+          ! pod/perlxstut.pod sv.h t/pragma/strict-vars toke.c
+          ! utils/h2xs.PL
+____________________________________________________________________________
+[  4226] By: jhi                                   on 1999/09/24  23:10:52
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> XSUB.h ext/POSIX/POSIX.pod ext/POSIX/POSIX.xs
+         !> ext/POSIX/hints/linux.pl pod/perldiag.pod pod/perlfunc.pod
+         !> pp.c t/lib/posix.t t/op/pack.t toke.c utils/perlcc.PL
+____________________________________________________________________________
+[  4225] By: gsar                                  on 1999/09/24  18:19:54
+        Log: avoid infinite recursive exec()s of perl.exe when shebang
+             contains "Perl" rather than "perl" on DOSISH platforms
+     Branch: perl
+          ! toke.c
+____________________________________________________________________________
+[  4224] By: gsar                                  on 1999/09/24  16:09:23
+        Log: support cygwin and other platforms that link to import libraries
+             rather than directly with shared libraries (from a suggestion
+             by Lucian Cionca <Lucian.Cionca@algoritma.ro>)
+     Branch: perl
+          ! utils/perlcc.PL
+____________________________________________________________________________
+[  4223] By: gsar                                  on 1999/09/24  05:05:06
+        Log: normalize time for strftime() (without the isdst effects of
+             mktime()) using a custom mini_mktime()
+             From: spider-perl@Orb.Nashua.NH.US
+             Date: Thu, 23 Sep 1999 17:54:53 -0400
+             Message-Id: <199909232154.RAA25151@leggy.zk3.dec.com>
+             Subject: Re: [ID 19990913.003] Possible bug using POSIX::strftime Digital UNIX Perl 5.005_03 
+     Branch: perl
+          ! ext/POSIX/POSIX.pod ext/POSIX/POSIX.xs
+          ! ext/POSIX/hints/linux.pl t/lib/posix.t
+____________________________________________________________________________
+[  4222] By: gsar                                  on 1999/09/23  06:44:42
+        Log: change "#" to a comment starter in pack templates; "/" now
+             used for specifying counted types
+             From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Wed, 22 Sep 1999 19:41:30 -0400
+             Message-ID: <19990922194130.A864@monk.mps.ohio-state.edu>
+             Subject: [PATCH 5.005_61] Enable comments in pack()/unpack() templates
+     Branch: perl
+          ! pod/perldiag.pod pod/perlfunc.pod pp.c t/op/pack.t
+____________________________________________________________________________
+[  4221] By: gsar                                  on 1999/09/23  06:26:54
+        Log: From: Vishal Bhatia <vishal@gol.com>
+             Date: Thu, 23 Sep 1999 12:45:19 +0900 (JST)
+             Message-ID: <Pine.LNX.4.10.9909231218360.3428-100000@localhost.localdomain>
+             Subject: [patch _61] perlcc changes
+     Branch: perl
+          ! utils/perlcc.PL
+____________________________________________________________________________
+[  4220] By: gsar                                  on 1999/09/23  01:12:24
+        Log: add include guard
+     Branch: perl
+          ! XSUB.h
+____________________________________________________________________________
+[  4219] By: jhi                                   on 1999/09/22  20:38:15
+        Log: Cleanup cleanup.
+     Branch: cfgperl
+          ! Makefile.SH t/lib/syslfs.t t/op/lfs.t
+____________________________________________________________________________
+[  4218] By: jhi                                   on 1999/09/22  19:26:58
+        Log: Tweak the equivalence tables once again.
+     Branch: cfgperl
+          ! lib/unicode/Eq/Latin1 lib/unicode/Eq/Unicode
+          ! lib/unicode/mktables.PL
+____________________________________________________________________________
+[  4215] By: jhi                                   on 1999/09/22  06:47:03
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             To: Mailing list Perl5 <perl5-porters@perl.org>
+             Subject: [PATCH 5.005_61] regfree could segfault with -Mre=debug
+             Date: Tue, 21 Sep 1999 19:50:00 -0400
+             Message-ID: <19990921195000.A23938@monk.mps.ohio-state.edu>
+             
+             From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             To: Mailing list Perl5 <perl5-porters@perl.org>
+             Subject: [PATCH 5.005_61] More verbose -Mre=debug
+             Date: Tue, 21 Sep 1999 22:29:55 -0400
+             Message-ID: <19990921222955.A25094@monk.mps.ohio-state.edu>
+     Branch: cfgperl
+          ! regcomp.c regexec.c
+____________________________________________________________________________
+[  4214] By: jhi                                   on 1999/09/21  21:08:43
+        Log: From: 0000-Admin (0000) <root@devsys0.zenez.com>
+             Reply-To: gerberb@zenez.com
+             To: perl5-porters@perl.org
+             Subject: [ID 19990921.004] Changes for SCO OpenServer and UnixWare 7
+             Date: Tue, 21 Sep 1999 11:07:46 -0600 (MDT)
+             Message-Id: <199909211707.LAA23611@devsys0.zenez.com>
+             
+             (Snipped away the last lines of svr5.sh a la change #3725)
+     Branch: cfgperl
+          + hints/svr5.sh
+          ! Configure MANIFEST config_h.SH hints/sco.sh
+     Branch: metaconfig
+          ! U/modified/Cppsym.U U/modified/Oldconfig.U
+____________________________________________________________________________
+[  4213] By: jhi                                   on 1999/09/21  20:48:01
+        Log: From: Kragen Sitaker <kragen@dnaco.net>
+             To: perl5-porters@perl.org
+             Subject: [ID 19990921.013] accidental list context in perlfaq9
+             Date: Tue, 21 Sep 1999 16:27:53 -0400 (EDT)
+             Reply-To: kragen@pobox.com
+             Message-Id: <199909212027.QAA03450@kirk.dnaco.net>
+     Branch: cfgperl
+          ! pod/perlfaq9.pod
+____________________________________________________________________________
+[  4212] By: jhi                                   on 1999/09/20  19:55:42
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         +> README.Y2K
+         !> Changes MANIFEST
+____________________________________________________________________________
+[  4211] By: jhi                                   on 1999/09/20  19:44:44
+        Log: Rename -Duselfs to -Duselargefiles.  We don't need no stnkngbbrvtns.
+     Branch: cfgperl
+          ! Configure config_h.SH pod/perldelta.pod
+     Branch: metaconfig/U/perl
+          ! use64bits.U uselfs.U uselongdbl.U
+____________________________________________________________________________
+[  4210] By: jhi                                   on 1999/09/20  19:38:26
+        Log: Configure -A change: -Afoo=bar is equal to -Aappend:foo=" bar".
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig
+          ! U/modified/Options.U
+____________________________________________________________________________
+[  4209] By: gsar                                  on 1999/09/20  19:35:39
+        Log: integrate cfgperl changes into mainline
+     Branch: perl
+         +> lib/unicode/Unicode.html
+          ! Changes
+         !> Configure Porting/Glossary Porting/config.sh Porting/config_H
+         !> config_h.SH doio.c perl.h pod/perldelta.pod pod/perlfunc.pod
+____________________________________________________________________________
+[  4208] By: gsar                                  on 1999/09/20  18:28:44
+        Log: add README.Y2K (from Dominic Dunlop <domo@vo.lu>)
+     Branch: perl
+          + README.Y2K
+          ! MANIFEST
+____________________________________________________________________________
+[  4207] By: jhi                                   on 1999/09/20  11:06:13
+        Log: Document -Duselfs, -Duselongdouble, and -Dusemorebits.
+     Branch: cfgperl
+          ! pod/perldelta.pod
+____________________________________________________________________________
+[  4206] By: jhi                                   on 1999/09/20  09:53:15
+        Log: Do not test for gccish things in non-gccish platforms.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig
+          ! U/compline/ccflags.U
+____________________________________________________________________________
+[  4205] By: jhi                                   on 1999/09/20  09:41:22
+        Log: Prompt for uselfs.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH
+     Branch: metaconfig
+          ! U/mksample
+     Branch: metaconfig/U/perl
+          ! use64bits.U uselfs.U
+____________________________________________________________________________
+[  4204] By: jhi                                   on 1999/09/20  09:09:29
+        Log: Add usemorebits and uselfs.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH doio.c perl.h
+     Branch: metaconfig/U/perl
+          + uselfs.U usemorebits.U
+          ! use64bits.U uselongdbl.U
+____________________________________________________________________________
+[  4203] By: jhi                                   on 1999/09/20  07:48:48
+        Log: Dethinko.
+     Branch: cfgperl
+          ! pod/perlfunc.pod
+____________________________________________________________________________
+[  4202] By: jhi                                   on 1999/09/20  07:33:32
+        Log: Fix a bug in the description of endianness.  Reported in
+             From: "Konovalov, Vadim" <vkonovalov@lucent.com>
+             To: perl5-porters@perl.org
+             Subject: BUG: perldoc -f pack
+             Date: Mon, 20 Sep 1999 09:43:49 +0400
+             Message-ID: <402099F49BEED211999700805FC7359F20D3F5@ru0028exch01.spb.lucent.com>
+     Branch: cfgperl
+          ! pod/perlfunc.pod
+____________________________________________________________________________
+[  4201] By: jhi                                   on 1999/09/20  07:01:26
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         +> t/op/args.t
+         !> (integrate 31 files)
+____________________________________________________________________________
+[  4200] By: gsar                                  on 1999/09/20  03:45:06
+        Log: From: Russ Allbery <rra@stanford.edu>
+             Date: 19 Aug 1999 04:35:44 -0700
+             Message-Id: <yl7lms9f5b.fsf@windlord.stanford.edu>
+             Subject: [ID 19990819.002] File::Find error when pruning top-level directories
+     Branch: perl
+          ! lib/File/Find.pm
+____________________________________________________________________________
+[  4199] By: gsar                                  on 1999/09/20  03:27:49
+        Log: suppress warning (from John Tobey <jtobey@epsilondev.com>)
+     Branch: perl
+          ! ext/B/B/Terse.pm
+____________________________________________________________________________
+[  4198] By: gsar                                  on 1999/09/20  03:25:25
+        Log: add arenas for managing allocations of remaining xpv*v structures
+             From: Vishal Bhatia <vishal@gol.com>
+             Date: Wed, 25 Aug 1999 00:31:33 +0900 (JST)
+             Message-ID: <Pine.LNX.4.10.9908250031000.11727-100000@localhost.localdomain>
+             Subject: [PATCH 5.005_60] removing extra ref count (compiler) 
+     Branch: perl
+          ! embed.h embed.pl embedvar.h ext/B/B/C.pm intrpvar.h objXSUB.h
+          ! proto.h sv.c
+____________________________________________________________________________
+[  4197] By: gsar                                  on 1999/09/20  03:06:10
+        Log: queue errors due to strictures rather than printing them as
+             warnings; symbols that violate strictures do *not* end up in
+             the symbol table anyway, making multiple evals of the same piece
+             of code produce the same errors; errors indicate all locations
+             of a global symbol rather than just the first one; these
+             changes make compile-time failures within evals reliably
+             visible via the return value or contents of $@, and trappable
+             using __DIE__ hooks
+     Branch: perl
+          ! embed.h embed.pl embedvar.h ext/DynaLoader/dlutils.c
+          ! ext/Thread/Thread.xs global.sym gv.c objXSUB.h op.c perl.c
+          ! perlapi.c pp_ctl.c proto.h regcomp.c t/pragma/strict-refs
+          ! t/pragma/strict-vars thrdvar.h toke.c util.c
+____________________________________________________________________________
+[  4196] By: gsar                                  on 1999/09/19  22:14:29
+        Log: control change#1914 via hints (causes problems on some platforms)
+     Branch: perl
+          ! ext/POSIX/POSIX.pod ext/POSIX/POSIX.xs
+          ! ext/POSIX/hints/linux.pl
+____________________________________________________________________________
+[  4195] By: gsar                                  on 1999/09/19  21:30:18
+        Log: avoid clearing @_ at all for faster subroutine calls; fix bugs
+             in passing around references to @_, eg C<sub foo { \@_ }>; add
+             tests for the same
+     Branch: perl
+          + t/op/args.t
+          ! MANIFEST cop.h pp.c pp_ctl.c pp_hot.c
+____________________________________________________________________________
+[  4194] By: jhi                                   on 1999/09/18  18:57:45
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> opcode.h opcode.pl
+____________________________________________________________________________
+[  4193] By: nick                                  on 1999/09/18  15:24:56
+        Log: Re-integrate mainline
+             Basic SvUTF8 stuff in headers, no functional changes yet.
+     Branch: utfperl
+          + lib/byte.pm lib/byte_heavy.pl
+         +> ext/B/defsubs_h.PL ext/DB_File/version.c jpl/JNI/Closer.java
+         +> jpl/JNI/JNIConfig jpl/JNI/JNIConfig.Win32
+         +> jpl/JNI/JNIConfig.kaffe jpl/JNI/JNIConfig.noembed
+         +> jpl/JNI/JNIConfig.standard jpl/JNI/typemap.gcc
+         +> jpl/JNI/typemap.win32 jpl/SETVARS.PL lib/unicode/ArabShap.txt
+         +> lib/unicode/Blocks.txt lib/unicode/CompExcl.txt
+         +> lib/unicode/EAWidth.txt lib/unicode/Index.txt
+         +> lib/unicode/Jamo-2.txt lib/unicode/LineBrk.txt
+         +> lib/unicode/Names.txt lib/unicode/Props.txt
+         +> lib/unicode/ReadMe.txt lib/unicode/SpecCase.txt
+         +> t/lib/bigfltpm.t
+          - ext/B/defsubs.h.PL lib/unicode/arabshp.txt
+          - lib/unicode/blocks.txt lib/unicode/index2.txt
+          - lib/unicode/jamo2.txt lib/unicode/names2.txt
+          - lib/unicode/props2.txt lib/unicode/readme.txt
+          - t/lib/bigfloatpm.t
+          ! doop.c embed.h embed.pl gv.c mg.c objXSUB.h op.c op.h perl.h
+          ! perlapi.c pp.c pp_ctl.c pp_hot.c proto.h regcomp.c regcomp.h
+          ! regexec.c regexp.h regnodes.h sv.c sv.h toke.c utf8.c utf8.h
+          ! warnings.h
+         !> (integrate 142 files)
+____________________________________________________________________________
+[  4192] By: gsar                                  on 1999/09/18  15:11:47
+        Log: more op description tweaks
+     Branch: perl
+          ! opcode.h opcode.pl
+____________________________________________________________________________
+[  4191] By: jhi                                   on 1999/09/18  07:47:16
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> Changes opcode.h opcode.pl t/io/open.t t/op/misc.t
+         !> t/pragma/warn/op
+____________________________________________________________________________
+[  4190] By: jhi                                   on 1999/09/18  07:35:45
+        Log: Add description of the Unicode database files.
+     Branch: cfgperl
+          + lib/unicode/Unicode.html
+____________________________________________________________________________
+[  4189] By: gsar                                  on 1999/09/18  03:14:58
+        Log: tweak some op names in change#4177 (will any of this break code that
+             gropes $@ ?)
+     Branch: perl
+          ! Changes opcode.h opcode.pl t/io/open.t t/op/misc.t
+          ! t/pragma/warn/op
+____________________________________________________________________________
+[  4188] By: jhi                                   on 1999/09/17  21:30:08
+        Log: Pick up the typo fix.
+     Branch: cfgperl
+         !> t/io/open.t
+____________________________________________________________________________
+[  4187] By: gsar                                  on 1999/09/17  21:13:55
+        Log: fix typo
+     Branch: perl
+          ! t/io/open.t
+____________________________________________________________________________
+[  4186] By: gsar                                  on 1999/09/17  20:57:29
+        Log: integrate cfgperl change
+     Branch: perl
+         !> vms/subconfigure.com
+____________________________________________________________________________
+[  4185] By: jhi                                   on 1999/09/17  20:46:41
+        Log: Re-apply applicable parts of #3993, #3994, and #3995.
+     Branch: cfgperl
+          ! vms/subconfigure.com
+____________________________________________________________________________
+[  4184] By: gsar                                  on 1999/09/17  20:26:02
+        Log: integrate cfgperl contents into mainline
+     Branch: perl
+         +> lib/unicode/ArabShap.txt lib/unicode/Blocks.txt
+         +> lib/unicode/CompExcl.txt lib/unicode/EAWidth.txt
+         +> lib/unicode/Index.txt lib/unicode/Jamo-2.txt
+         +> lib/unicode/LineBrk.txt lib/unicode/Names.txt
+         +> lib/unicode/Props.txt lib/unicode/ReadMe.txt
+         +> lib/unicode/SpecCase.txt
+          - lib/unicode/arabshp.txt lib/unicode/blocks.txt
+          - lib/unicode/index2.txt lib/unicode/jamo2.txt
+          - lib/unicode/names2.txt lib/unicode/props2.txt
+          - lib/unicode/readme.txt
+         !> (integrate 73 files)
+____________________________________________________________________________
+[  4183] By: jhi                                   on 1999/09/17  20:25:51
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> configure.com ext/ByteLoader/byterun.h
+         !> ext/DynaLoader/DynaLoader_pm.PL lib/ExtUtils/MM_VMS.pm
+         !> lib/File/Spec/VMS.pm pod/perlhist.pod t/io/open.t
+         !> vms/descrip_mms.template vms/gen_shrfls.pl vms/perly_c.vms
+         !> vms/perly_h.vms vms/subconfigure.com vms/vms.c vms/vmsish.h
+____________________________________________________________________________
+[  4182] By: gsar                                  on 1999/09/17  20:16:28
+        Log: integrate vmsperl contents into mainline (where VMS files conflicted,
+             vmsperl contents have prevailed)
+     Branch: perl
+         !> configure.com ext/ByteLoader/byterun.h
+         !> ext/DynaLoader/DynaLoader_pm.PL lib/ExtUtils/MM_VMS.pm
+         !> lib/File/Spec/VMS.pm t/io/open.t vms/descrip_mms.template
+         !> vms/gen_shrfls.pl vms/perly_c.vms vms/perly_h.vms
+         !> vms/subconfigure.com vms/vms.c vms/vmsish.h
+____________________________________________________________________________
+[  4181] By: jhi                                   on 1999/09/17  20:12:37
+        Log: From: Michael G Schwern <schwern@pobox.com>
+             To: perl5-porters@perl.org
+             Subject: [PATCH 5.005_60 lib/Exporter/Heavy.pm] export_to_level()
+             Date: Thu, 19 Aug 1999 21:30:01 -0400
+             Message-ID: <19990819213001.A22512@athens.aocn.com>
+     Branch: cfgperl
+          ! lib/Exporter/Heavy.pm
+____________________________________________________________________________
+[  4180] By: gsar                                  on 1999/09/17  20:11:00
+        Log: perlhist additions
+     Branch: perl
+          ! pod/perlhist.pod
+____________________________________________________________________________
+[  4179] By: jhi                                   on 1999/09/17  20:08:00
+        Log: The change #4176 should've undone only the test, not the code patch.
+     Branch: cfgperl
+          ! doio.c
+____________________________________________________________________________
+[  4178] By: jhi                                   on 1999/09/17  20:06:08
+        Log: From: Ian Phillipps <ian@dial.pipex.com>
+             To: Hans GINZEL <hgin2088@mail.kolej.mff.cuni.cz>, perl5-porters@perl.org
+             Subject: [PATCH 5.005_59] Re: [ID 19990820.007] Small typo in perlsyn.pod
+             Date: Sat, 21 Aug 1999 12:36:12 +0100
+             Message-ID: <19990821123612.A9955@homer.diplex.co.uk>
+     Branch: cfgperl
+          ! pod/perlsyn.pod
+____________________________________________________________________________
+[  4177] By: jhi                                   on 1999/09/17  20:00:19
+        Log: More descriptive names for operators.
+             
+             From: Michael G Schwern <schwern@pobox.com>
+             To: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Cc: perl5-porters@perl.org
+             Subject: Re: [ID 19990817.009] [BUG 5.005_60 & 5.005_03] == reported as eq in
+             Date: Tue, 17 Aug 1999 18:35:45 -0400
+             Message-ID: <19990817183545.A23073@toldyouso.com>
+             
+             From: Michael G Schwern <schwern@pobox.com>
+             To: perl5-porters@perl.org
+             Subject: [PATCH 5.005_60 opcode.pl and friends] Improved opcode descriptions
+             Date: Wed, 18 Aug 1999 03:53:38 -0400
+             Message-ID: <19990818035337.A31505@athens.aocn.com>
+     Branch: cfgperl
+          ! opcode.h opcode.pl pp.sym pp_proto.h sv.c t/op/misc.t
+          ! t/pragma/warn/op t/pragma/warn/sv
+____________________________________________________________________________
+[  4176] By: jhi                                   on 1999/09/17  18:19:18
+        Log: Take away the infamous io/dup.t #7.
+             It seems there simply is no way to portably
+             "flush" an input file handle.
+     Branch: cfgperl
+          ! doio.c t/io/dup.t
+____________________________________________________________________________
+[  4175] By: jhi                                   on 1999/09/17  14:45:08
+        Log: From: Barrie Slaymaker <barries@slaysys.com>
+             To: perl5-porters@perl.org
+             Subject: [PATCH 5.005_61] Benchmark: screwed patch format, try this instead
+             Date: Fri, 17 Sep 1999 11:16:48 -0400
+             Message-Id: <199909171516.LAA30887@jester.slaysys.com>
+     Branch: cfgperl
+          ! lib/Benchmark.pm
+____________________________________________________________________________
+[  4174] By: jhi                                   on 1999/09/17  14:07:16
+        Log: UNICOS does support large files but doesn't support sparse files
+             so we cannot easily test for large file support.
+     Branch: cfgperl
+          ! t/lib/syslfs.t t/op/lfs.t
+____________________________________________________________________________
+[  4173] By: jhi                                   on 1999/09/17  14:03:44
+        Log: UNICOS has sloppy division/modulo for floating point numbers.
+     Branch: cfgperl
+          ! t/op/arith.t
+____________________________________________________________________________
+[  4172] By: jhi                                   on 1999/09/17  13:47:49
+        Log: Portable blocksize (replaces #4171).
+     Branch: cfgperl
+          ! t/lib/syslfs.t t/op/lfs.t
+____________________________________________________________________________
+[  4171] By: jhi                                   on 1999/09/17  13:08:54
+        Log: (replaced by #4172)
+     Branch: cfgperl
+          ! t/lib/syslfs.t t/op/lfs.t
+____________________________________________________________________________
+[  4170] By: jhi                                   on 1999/09/17  12:59:11
+        Log: Detypo #4169.
+     Branch: cfgperl
+          ! t/lib/syslfs.t t/op/lfs.t
+____________________________________________________________________________
+[  4169] By: jhi                                   on 1999/09/17  12:16:34
+        Log: Diagnose possible quota limits.
+     Branch: cfgperl
+          ! t/lib/syslfs.t t/op/lfs.t
+____________________________________________________________________________
+[  4168] By: jhi                                   on 1999/09/17  12:10:43
+        Log: UNICOS doesn't have getpgid().  Or, at least 9.0.1ai
+             doesn't have one that wouldn't cause SIGSYS.  UNICOS
+             does have getpgrp(void) so Perl getpgrp() is happy.
+     Branch: cfgperl
+          ! hints/unicos.sh
+____________________________________________________________________________
+[  4167] By: jhi                                   on 1999/09/17  11:49:30
+        Log: Filesystem quotas may stop you from using large files.
+     Branch: cfgperl
+          ! pod/perldelta.pod t/lib/syslfs.t t/op/lfs.t
+____________________________________________________________________________
+[  4166] By: jhi                                   on 1999/09/17  11:36:01
+        Log: Too strict pattern for parsing group lists.
+     Branch: cfgperl
+          ! t/op/groups.t
+____________________________________________________________________________
+[  4165] By: jhi                                   on 1999/09/17  09:06:18
+        Log: Configure maintenance. It's sigaction.sa_flags
+             and the Glossary regen'ed.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH
+     Branch: metaconfig
+          ! U/compline/d_sigaction.U
+____________________________________________________________________________
+[  4164] By: jhi                                   on 1999/09/15  06:57:51
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         +> jpl/JNI/Closer.java jpl/JNI/JNIConfig jpl/JNI/JNIConfig.Win32
+         +> jpl/JNI/JNIConfig.kaffe jpl/JNI/JNIConfig.noembed
+         +> jpl/JNI/JNIConfig.standard jpl/JNI/typemap.gcc
+         +> jpl/JNI/typemap.win32 jpl/SETVARS.PL
+         !> Changes MANIFEST embed.h embed.pl jpl/JNI/JNI.pm
+         !> jpl/JNI/JNI.xs jpl/JNI/Makefile.PL jpl/JNI/test.pl
+         !> jpl/JNI/typemap jpl/JPL/Makefile.PL
+         !> jpl/PerlInterpreter/Makefile.PL
+         !> jpl/PerlInterpreter/PerlInterpreter.c
+         !> jpl/PerlInterpreter/PerlInterpreter.h jpl/README
+         !> jpl/Sample/Makefile.PL jpl/install-jpl
+         !> lib/File/Spec/Functions.pm pod/perlhist.pod regexec.c
+         !> t/op/pat.t
+____________________________________________________________________________
+[  4163] By: gsar                                  on 1999/09/15  05:17:27
+        Log: add :ALL export tag (from Chris Nandor <pudge@pobox.com>)
+     Branch: perl
+          ! lib/File/Spec/Functions.pm
+____________________________________________________________________________
+[  4162] By: gsar                                  on 1999/09/15  05:09:14
+        Log: addendum to change#4136 (from Robin Barker <rmb1@cise.npl.co.uk>)
+     Branch: perl
+          ! Changes embed.h embed.pl
+____________________________________________________________________________
+[  4161] By: gsar                                  on 1999/09/15  04:08:25
+        Log: missing perlhist dates from Jeff Okamoto
+     Branch: perl
+          ! pod/perlhist.pod
+____________________________________________________________________________
+[  4160] By: gsar                                  on 1999/09/15  03:13:08
+        Log: jpl tweak
+     Branch: perl
+          ! MANIFEST jpl/JNI/Makefile.PL
+____________________________________________________________________________
+[  4159] By: gsar                                  on 1999/09/15  02:57:08
+        Log: update to JPL snapshot v09141999, with minor tweaks (from Brian
+             Jepson <bjepson@home.com>)
+     Branch: perl
+          + jpl/JNI/Closer.java jpl/JNI/JNIConfig jpl/JNI/JNIConfig.Win32
+          + jpl/JNI/JNIConfig.kaffe jpl/JNI/JNIConfig.noembed
+          + jpl/JNI/JNIConfig.standard jpl/JNI/typemap.gcc
+          + jpl/JNI/typemap.win32 jpl/SETVARS.PL
+          ! jpl/JNI/JNI.pm jpl/JNI/JNI.xs jpl/JNI/Makefile.PL
+          ! jpl/JNI/test.pl jpl/JNI/typemap jpl/JPL/Makefile.PL
+          ! jpl/PerlInterpreter/Makefile.PL
+          ! jpl/PerlInterpreter/PerlInterpreter.c
+          ! jpl/PerlInterpreter/PerlInterpreter.h jpl/README
+          ! jpl/Sample/Makefile.PL jpl/install-jpl
+____________________________________________________________________________
+[  4158] By: gsar                                  on 1999/09/15  01:27:14
+        Log: From:    Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date:    Tue, 14 Sep 1999 21:26:15 EDT
+             Message-Id: <199909150126.VAA24720@monk.mps.ohio-state.edu>
+             Subject: [PATCH 5.005_58+] Re: [ID 19990914.001] Perl_re_intuit_start() hangs in a loop
+     Branch: perl
+          ! regexec.c t/op/pat.t
+____________________________________________________________________________
+[  4157] By: jhi                                   on 1999/09/14  21:18:09
+        Log: config.h will define USE_64_BITS if need be.
+     Branch: cfgperl
+          ! hints/irix_6.sh
+____________________________________________________________________________
+[  4156] By: jhi                                   on 1999/09/14  20:30:00
+        Log: Change #4149 necessitates also a small code change.
+     Branch: cfgperl
+          ! ext/B/defsubs_h.PL
+____________________________________________________________________________
+[  4155] By: jhi                                   on 1999/09/14  20:15:53
+        Log: Update EPOC libdir names.
+     Branch: cfgperl
+          ! epoc/config.h
+____________________________________________________________________________
+[  4154] By: jhi                                   on 1999/09/14  20:13:41
+        Log: Obsolete epoc/config.h caused #4153 to re-introduce already
+             deceased HAS.*DBM.*64 mumblings.
+     Branch: cfgperl
+          ! Configure config_h.SH epoc/config.h
+____________________________________________________________________________
+[  4153] By: jhi                                   on 1999/09/14  20:04:53
+        Log: Configure nits.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig
+          ! U/compline/d_sigaction.U U/threads/i_pthread.U
+____________________________________________________________________________
+[  4152] By: jhi                                   on 1999/09/14  19:30:22
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         +> ext/B/defsubs_h.PL t/lib/bigfltpm.t
+          - ext/B/defsubs.h.PL t/lib/bigfloatpm.t
+         !> INSTALL MANIFEST ext/B/Makefile.PL pod/perldiag.pod
+         !> win32/config_sh.PL
+____________________________________________________________________________
+[  4151] By: jhi                                   on 1999/09/14  10:25:01
+        Log: Update Unicode database and recompute the tables.
+             Rename the .txt files to be more Unicode 3.0-like.
+             Unihan-3.0.txt not included because it is 16 MB.
+             syllables.txt is manually maintained.
+             See ReadMe.txt for description of the .txt files.
+             (not all of them are used yet)
+     Branch: cfgperl
+          + lib/unicode/ArabShap.txt lib/unicode/Blocks.txt
+          + lib/unicode/CompExcl.txt lib/unicode/EAWidth.txt
+          + lib/unicode/Index.txt lib/unicode/Jamo-2.txt
+          + lib/unicode/LineBrk.txt lib/unicode/Names.txt
+          + lib/unicode/Props.txt lib/unicode/ReadMe.txt
+          + lib/unicode/SpecCase.txt
+          - lib/unicode/arabshp.txt lib/unicode/blocks.txt
+          - lib/unicode/index2.txt lib/unicode/jamo2.txt
+          - lib/unicode/names2.txt lib/unicode/props2.txt
+          - lib/unicode/readme.txt
+          ! MANIFEST lib/unicode/ArabLink.pl lib/unicode/ArabLnkGrp.pl
+          ! lib/unicode/Bidirectional.pl lib/unicode/Block.pl
+          ! lib/unicode/Category.pl lib/unicode/CombiningClass.pl
+          ! lib/unicode/Decomposition.pl
+          ! lib/unicode/In/ArabicPresentationForms-B.pl
+          ! lib/unicode/In/Specials.pl lib/unicode/In/Tibetan.pl
+          ! lib/unicode/Is/Alnum.pl lib/unicode/Is/Alpha.pl
+          ! lib/unicode/Is/BidiCS.pl lib/unicode/Is/BidiL.pl
+          ! lib/unicode/Is/BidiON.pl lib/unicode/Is/BidiWS.pl
+          ! lib/unicode/Is/DCcompat.pl lib/unicode/Is/DecoCanon.pl
+          ! lib/unicode/Is/DecoCompat.pl lib/unicode/Is/L.pl
+          ! lib/unicode/Is/Ll.pl lib/unicode/Is/Lo.pl
+          ! lib/unicode/Is/Lower.pl lib/unicode/Is/Lu.pl
+          ! lib/unicode/Is/Pd.pl lib/unicode/Is/Po.pl lib/unicode/Is/S.pl
+          ! lib/unicode/Is/Sm.pl lib/unicode/Is/So.pl
+          ! lib/unicode/Is/Upper.pl lib/unicode/Is/Word.pl
+          ! lib/unicode/JamoShort.pl lib/unicode/UnicodeData-Latest.txt
+          ! lib/unicode/mktables.PL
+____________________________________________________________________________
+[  4150] By: gsar                                  on 1999/09/14  09:31:57
+        Log: INSTALL tweak
+     Branch: perl
+          ! INSTALL
+____________________________________________________________________________
+[  4149] By: gsar                                  on 1999/09/14  09:00:45
+        Log: change some filenames to be 8.3-friendly
+     Branch: perl
+         +> ext/B/defsubs_h.PL t/lib/bigfltpm.t
+          - ext/B/defsubs.h.PL t/lib/bigfloatpm.t
+          ! MANIFEST ext/B/Makefile.PL pod/perldiag.pod
+____________________________________________________________________________
+[  4148] By: gsar                                  on 1999/09/14  08:35:00
+        Log: win32 config tweak (suggested by Greg Chapman <glc@well.com>)
+     Branch: perl
+          ! win32/config_sh.PL
+____________________________________________________________________________
+[  4147] By: jhi                                   on 1999/09/14  08:07:49
+        Log: Not that UVSIZE normally differs that much from IVSIZE...
+     Branch: cfgperl
+          ! perl.h
+____________________________________________________________________________
+[  4146] By: jhi                                   on 1999/09/14  08:04:40
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> Changes ext/DB_File/DB_File.xs
+____________________________________________________________________________
+[  4145] By: jhi                                   on 1999/09/14  07:10:02
+        Log: I_PTHREAD was PTHREADEAD.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig
+          ! U/threads/i_pthread.U
+____________________________________________________________________________
+[  4144] By: gsar                                  on 1999/09/14  06:46:47
+        Log: change#4113 was missing DB_File.xs changes
+     Branch: perl
+          ! ext/DB_File/DB_File.xs
+____________________________________________________________________________
+[  4143] By: jhi                                   on 1999/09/13  20:16:20
+        Log: Small doc and whitespace edits.
+     Branch: cfgperl
+          ! ext/DynaLoader/dl_aix.xs ext/DynaLoader/dl_beos.xs
+          ! ext/DynaLoader/dl_cygwin.xs ext/DynaLoader/dl_dld.xs
+          ! ext/DynaLoader/dl_hpux.xs ext/DynaLoader/dl_mpeix.xs
+          ! ext/DynaLoader/dl_next.xs ext/DynaLoader/dl_rhapsody.xs
+          ! ext/DynaLoader/dl_vmesa.xs ext/DynaLoader/dl_vms.xs
+          ! pod/perldelta.pod
+____________________________________________________________________________
+[  4142] By: gsar                                  on 1999/09/13  19:32:31
+        Log: integrate cfgperl contents into mainline, update Changes
+     Branch: perl
+         +> ext/DB_File/version.c
+          ! Changes
+         !> (integrate 44 files)
+____________________________________________________________________________
+[  4141] By: jhi                                   on 1999/09/13  16:16:56
+        Log: Scan for <pthread.h> always.
+     Branch: cfgperl
+          ! Configure config_h.SH perl.h
+     Branch: metaconfig
+          ! U/threads/i_pthread.U
+____________________________________________________________________________
+[  4140] By: jhi                                   on 1999/09/13  16:00:08
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> (integrate 27 files)
+____________________________________________________________________________
+[  4139] By: jhi                                   on 1999/09/13  15:35:18
+        Log: Add -A option to Configure to diddle with variables
+             after the hints file has been applied.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig
+          ! U/modified/Oldconfig.U U/modified/Options.U
+____________________________________________________________________________
+[  4138] By: jhi                                   on 1999/09/13  13:42:56
+        Log: Change #4136 edited DynaLoader.xs which is kind of fruitless.
+     Branch: cfgperl
+          ! ext/DynaLoader/dl_aix.xs ext/DynaLoader/dl_beos.xs
+          ! ext/DynaLoader/dl_cygwin.xs ext/DynaLoader/dl_dld.xs
+          ! ext/DynaLoader/dl_hpux.xs ext/DynaLoader/dl_mpeix.xs
+          ! ext/DynaLoader/dl_next.xs ext/DynaLoader/dl_rhapsody.xs
+          ! ext/DynaLoader/dl_vmesa.xs ext/DynaLoader/dl_vms.xs
+____________________________________________________________________________
+[  4137] By: jhi                                   on 1999/09/13  13:25:31
+        Log: Applying change #4136 manually introduced patch residue.
+     Branch: cfgperl
+          ! perl.h
+____________________________________________________________________________
+[  4136] By: jhi                                   on 1999/09/13  13:23:04
+        Log: Replace change #4100 with
+             From: Robin Barker <rmb1@cise.npl.co.uk>
+             To: gsar@activestate.com
+             Cc: perl5-porters@perl.org
+             Subject: Re: [ID 19990907.004] [PATCH perl5.005_61] compiler warnings with -Duse64bits
+             Date: Mon, 13 Sep 1999 14:15:11 +0100 (BST)
+             Message-Id: <199909131315.OAA24012@tempest.npl.co.uk>
+     Branch: cfgperl
+          ! doio.c dump.c ext/B/B.xs ext/B/typemap
+          ! ext/ByteLoader/bytecode.h ext/Devel/DProf/DProf.xs
+          ! ext/DynaLoader/dl_dlopen.xs ext/ODBM_File/ODBM_File.xs
+          ! ext/POSIX/POSIX.xs lib/ExtUtils/typemap malloc.c perl.h pp.c
+          ! pp_ctl.c pp_hot.c pp_sys.c sv.c
+____________________________________________________________________________
+[  4135] By: jhi                                   on 1999/09/13  10:22:31
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             To: perl5-porters@perl.org (Mailing list Perl5)
+             Subject: [PATCH 5.005_61] MakeMaker supports uninstalled Perls
+             Date: Sat, 11 Sep 1999 05:31:03 -0400 (EDT)
+             Message-Id: <199909110931.FAA11036@monk.mps.ohio-state.edu>
+             
+             From: andreas.koenig@anima.de (Andreas J. Koenig)
+             To: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Cc: perl5-porters@perl.org (Mailing list Perl5)
+             Subject: Re: [PATCH 5.005_61] MakeMaker supports uninstalled Perls
+             Date: 11 Sep 1999 15:36:26 +0200
+             Message-ID: <sfc906dr2n9.fsf@hohenstaufen.in-berlin.de>
+     Branch: cfgperl
+          ! lib/ExtUtils/MM_Unix.pm lib/ExtUtils/MakeMaker.pm
+____________________________________________________________________________
+[  4134] By: jhi                                   on 1999/09/13  10:20:14
+        Log: From: Tom Phoenix <rootbeer@redcat.com>
+             To: Perl Porters Mailing List <perl5-porters@perl.org>
+             Subject: [DOCPATCH] Server errors and perldiag
+             Date: Fri, 10 Sep 1999 16:45:02 -0700 (PDT)
+             Message-ID: <Pine.GSO.4.10.9909101639490.16999-100000@user2.teleport.com>
+     Branch: cfgperl
+          ! pod/perldiag.pod
+____________________________________________________________________________
+[  4133] By: gsar                                  on 1999/09/13  03:25:43
+        Log: avoid assertion failure on C<@a'>
+     Branch: perl
+          ! toke.c
+____________________________________________________________________________
+[  4132] By: gsar                                  on 1999/09/13  03:03:57
+        Log: add -DPERL_Y2KWARN build option that will generate additional
+             warnings on "19$yy" etc (reworked a patch suggested by
+             Ulrich Pfeifer <upf@de.uu.net>)
+     Branch: perl
+          ! pod/perldelta.pod pod/perldiag.pod pod/perllexwarn.pod
+          ! pp_hot.c sv.c t/pragma/warn/pp_hot t/pragma/warn/sv
+____________________________________________________________________________
+[  4131] By: gsar                                  on 1999/09/12  22:06:25
+        Log: fix DATA leaks; reword documentation about the DATA filehandle
+     Branch: perl
+          ! ext/Opcode/Safe.pm lib/Pod/Functions.pm pod/perldata.pod
+____________________________________________________________________________
+[  4130] By: gsar                                  on 1999/09/12  20:08:56
+        Log: make sprintf("%g",...) threadsafe; only taint its result iff the
+             formatted result looks nonstandard
+     Branch: perl
+          ! embed.pl embedvar.h intrpvar.h objXSUB.h perl.c perlapi.c
+          ! pod/perlfunc.pod pod/perlguts.pod proto.h sv.c
+          ! t/pragma/locale.t thrdvar.h
+____________________________________________________________________________
+[  4129] By: gsar                                  on 1999/09/12  17:04:11
+        Log: From: Doug MacEachern <dougm@cp.net>
+             Date: Sun, 25 Jul 1999 15:49:00 -0700 (PDT)
+             Message-ID: <Pine.LNX.4.10.9907251538380.373-100000@mojo.eng.cp.net>
+             Subject: [PATCH 5.005_57] B::clearsym
+     Branch: perl
+          ! ext/B/B.pm ext/B/B/Bblock.pm ext/B/B/Debug.pm ext/B/B/Terse.pm
+____________________________________________________________________________
+[  4128] By: gsar                                  on 1999/09/12  16:59:12
+        Log: better debugger help output (from Ilya Zakharevich)
+     Branch: perl
+          ! lib/perl5db.pl
+____________________________________________________________________________
+[  4127] By: jhi                                   on 1999/09/11  20:50:37
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         +> pod/perlcompile.pod t/lib/gol-basic.t t/lib/gol-compat.t
+         +> t/lib/gol-linkage.t
+         !> (integrate 43 files)
+____________________________________________________________________________
+[  4126] By: nick                                  on 1999/09/10  20:44:22
+        Log: Get resolve -at mainline
+     Branch: utfperl
+         +> (branch 297 files)
+          - README.cygwin32 XSlock.h bytecode.h byterun.c byterun.h
+          - cygwin32/cw32imp.h cygwin32/gcc2 cygwin32/ld2 cygwin32/perlgcc
+          - cygwin32/perlld ext/B/byteperl.c ext/DynaLoader/dl_cygwin32.xs
+          - hints/cygwin32.sh interp.sym myconfig objpp.h perl_exp.SH
+          - t/pragma/warn-1global t/pragma/warning.t thread.sym
+          - win32/GenCAPI.pl win32/TEST win32/autosplit.pl
+          - win32/bin/network.pl win32/bin/webget.pl win32/bin/www.pl
+          - win32/genxsdef.pl win32/makedef.pl win32/makemain.pl
+          - win32/makeperldef.pl win32/perlhost.h
+         !> (integrate 847 files)
+____________________________________________________________________________
+[  4125] By: gsar                                  on 1999/09/10  19:22:14
+        Log: s/dXS_TARGET/dXSTARG/ in change#4044 (to match dARGS vs dXSARGS
+             etc.)
+     Branch: perl
+          ! XSUB.h pp.h
+____________________________________________________________________________
+[  4124] By: gsar                                  on 1999/09/10  19:14:35
+        Log: rewrote substantive parts of patch
+             From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Fri, 27 Aug 1999 19:02:18 -0400
+             Message-ID: <19990827190218.A19561@monk.mps.ohio-state.edu>
+             Subject: [PATCH 5.005_58] REx documentation
+     Branch: perl
+          ! pod/perlre.pod
+____________________________________________________________________________
+[  4123] By: gsar                                  on 1999/09/10  18:21:53
+        Log: note about AVf_*
+     Branch: perl
+          ! av.h
+____________________________________________________________________________
+[  4122] By: gsar                                  on 1999/09/10  17:55:42
+        Log: allow 'text' in L<text|A::B/"C"> (from Martin Lichtin
+             <lichtin@bivio.com>)
+     Branch: perl
+          ! lib/Pod/Html.pm
+____________________________________________________________________________
+[  4121] By: gsar                                  on 1999/09/10  17:49:35
+        Log: dos-djgpp update (from Laszlo Molnar <laszlo.molnar@eth.ericsson.se>)
+     Branch: perl
+          ! AUTHORS Changes README.dos djgpp/config.over
+          ! djgpp/configure.bat djgpp/djgpp.c djgpp/djgppsed.sh dosish.h
+          ! lib/ExtUtils/MM_Unix.pm pod/pod2usage.PL pod/podchecker.PL
+          ! pod/podselect.PL sv.h t/io/openpid.t util.c
+____________________________________________________________________________
+[  4120] By: gsar                                  on 1999/09/10  12:25:01
+        Log: add perlcompile.pod (edited content from Nathan Torkington
+             <gnat@frii.com> and others)
+     Branch: perl
+          + pod/perlcompile.pod
+          ! MANIFEST pod/Makefile pod/buildtoc pod/perl.pod pod/roffitall
+____________________________________________________________________________
+[  4119] By: gsar                                  on 1999/09/10  11:05:13
+        Log: avoid leaking static local_patches unless patchlevel.h is
+             explicitly included
+     Branch: perl
+          ! patchlevel.h perl.c
+____________________________________________________________________________
+[  4118] By: gsar                                  on 1999/09/10  10:44:54
+        Log: upgrade to Getopt::Long v2.20 (from Johan Vromans
+             <jvromans@squirrel.nl>)
+     Branch: perl
+          + t/lib/gol-basic.t t/lib/gol-compat.t t/lib/gol-linkage.t
+          ! Changes MANIFEST lib/Getopt/Long.pm
+____________________________________________________________________________
+[  4116] By: jhi                                   on 1999/09/09  15:56:52
+        Log: perldeltify change #4115.
+     Branch: cfgperl
+          ! pod/perldelta.pod
+____________________________________________________________________________
+[  4115] By: jhi                                   on 1999/09/09  15:48:56
+        Log: From: "John L. Allen" <allen@grumman.com> 
+             To: perl5-porters@perl.org 
+             Subject: [ID 19990901.003] Time::Local should not croak on "out-of-range" days
+             Date: Wed, 1 Sep 1999 13:33:39 -0400 (EDT) 
+             Message-Id: <199909011733.NAA17356@gateway.grumman.com> 
+     Branch: cfgperl
+          ! lib/Time/Local.pm
+____________________________________________________________________________
+[  4114] By: jhi                                   on 1999/09/09  15:42:30
+        Log: From: "Daniel S. Lewart" <lewart@www.cvm.uiuc.edu>
+             To: perl5-porters@perl.org
+             Subject: [ID 19990909.003] MAXINT redefined warning on HP-UX 10.20
+             Date: Thu, 9 Sep 1999 10:33:37 -0500 (CDT)
+             Message-Id: <199909091533.KAA01242@www.cvm.uiuc.edu>
+     Branch: cfgperl
+          ! pp_sys.c
+____________________________________________________________________________
+[  4113] By: jhi                                   on 1999/09/09  10:17:45
+        Log: From: paul.marquess@bt.com
+             To: gsar@ActiveState.com
+             Cc: perl5-porters@perl.org
+             Subject: [PATCH 5.005_61] DB_File 1.71
+             Date: Thu, 9 Sep 1999 11:20:13 +0100
+             Message-ID: <5104D4DBC598D211B5FE0000F8FE7EB202D49BBE@mbtlipnt02.btlabs.bt.co.uk>
+     Branch: cfgperl
+          + ext/DB_File/version.c
+          ! MANIFEST ext/DB_File/Changes ext/DB_File/DB_File.pm
+          ! ext/DB_File/Makefile.PL ext/DB_File/dbinfo ext/DB_File/typemap
+          ! t/lib/db-btree.t
+____________________________________________________________________________
+[  4112] By: jhi                                   on 1999/09/09  09:05:32
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             To: perl5-porters@perl.org (Mailing list Perl5)
+             Subject: [PATCH 5.005_58] Fix interaction of (?p{}) and (?>)
+             Date: Thu, 9 Sep 1999 04:40:11 -0400 (EDT)
+             Message-Id: <199909090840.EAA26471@monk.mps.ohio-state.edu>
+     Branch: cfgperl
+          ! regexec.c t/op/pat.t
+____________________________________________________________________________
+[  4110] By: jhi                                   on 1999/09/09  07:29:17
+        Log: Tidy up 64-bit situation in perldelta.
+     Branch: cfgperl
+          ! pod/perldelta.pod
+____________________________________________________________________________
+[  4109] By: jhi                                   on 1999/09/09  07:26:53
+        Log: Clear up PL_regcc issues.
+             
+             From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             To: perl5-porters@perl.org (Mailing list Perl5)
+             Subject: [PATCH 5.005_60] Another regexec.c unobfuscation
+             Date: Thu, 9 Sep 1999 02:49:49 -0400 (EDT)
+             Message-Id: <199909090649.CAA26119@monk.mps.ohio-state.edu>
+     Branch: cfgperl
+          ! regexec.c
+____________________________________________________________________________
+[  4108] By: gsar                                  on 1999/09/08  20:52:51
+        Log: avoid ass_u_ming uppercase types are not user objects (spotted
+             by Kurt Starsinic)
+     Branch: perl
+          ! ext/Data/Dumper/Dumper.pm
+____________________________________________________________________________
+[  4107] By: gsar                                  on 1999/09/08  20:35:18
+        Log: From: akim@epita.fr (DEMAILLE Akim)
+             Date: Wed, 8 Sep 1999 18:18:44 +0200 (CEST)
+             Message-Id: <m11OkQm-003A4IC@beyrouth.lrde.epita.fr>
+             Subject: [ID 19990908.014] s2p does not quote @
+     Branch: perl
+          ! x2p/s2p.PL
+____________________________________________________________________________
+[  4106] By: gsar                                  on 1999/09/08  20:25:12
+        Log: integrate cfgperl contents into mainline
+     Branch: perl
+         !> (integrate 30 files)
+____________________________________________________________________________
+[  4105] By: jhi                                   on 1999/09/08  09:02:37
+        Log: Minor touches at the [:class:] description.
+     Branch: cfgperl
+          ! pod/perlre.pod
+____________________________________________________________________________
+[  4104] By: jhi                                   on 1999/09/08  08:57:58
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             To: Mailing list Perl5 <perl5-porters@perl.org>
+             Subject: [PATCH 5.005_58] Fix debugging output for REx
+             Date: Wed, 8 Sep 1999 05:02:02 -0400
+             Message-ID: <19990908050201.A17682@monk.mps.ohio-state.edu>
+     Branch: cfgperl
+          ! regcomp.c
+____________________________________________________________________________
+[  4103] By: gsar                                  on 1999/09/08  00:53:50
+        Log: fix memory leak in C<sub f { split ' ', "a b" } f() while 1>
+     Branch: perl
+          ! pp.c
+____________________________________________________________________________
+[  4102] By: gsar                                  on 1999/09/08  00:52:50
+        Log: fix memory leak in C<sub f { @_ = 1 } f() while 1>
+     Branch: perl
+          ! cop.h pp_hot.c
+____________________________________________________________________________
+[  4101] By: gsar                                  on 1999/09/07  17:25:07
+        Log: various fixups for windows
+     Branch: perl
+          ! embed.h embed.pl objXSUB.h op.c perlapi.c proto.h
+          ! win32/Makefile win32/makefile.mk xsutils.c
+____________________________________________________________________________
+[  4100] By: jhi                                   on 1999/09/07  12:49:15
+        Log: Fix pointer casts.
+             
+             From: Robin Barker <rmb1@cise.npl.co.uk>
+             To: perl5-porters@perl.org
+             Subject: [ID 19990907.004] [PATCH perl5.005_61] compiler warnings with
+             -Duse64bits
+             Date: Tue, 7 Sep 1999 12:30:18 +0100 (BST)
+             Message-Id: <199909071130.MAA11435@tempest.npl.co.uk>
+     Branch: cfgperl
+          ! doio.c dump.c ext/B/B.xs ext/B/typemap
+          ! ext/ByteLoader/bytecode.h ext/Devel/DProf/DProf.xs
+          ! ext/DynaLoader/dl_dlopen.xs ext/ODBM_File/ODBM_File.xs
+          ! ext/POSIX/POSIX.xs lib/ExtUtils/typemap malloc.c perl.h pp.c
+          ! pp_ctl.c pp_hot.c pp_sys.c sv.c
+____________________________________________________________________________
+[  4099] By: jhi                                   on 1999/09/07  10:29:04
+        Log: Add sig/pid/uid size and sign probes.
+     Branch: metaconfig
+          + U/typedefs/gidsign.U U/typedefs/gidsize.U U/typedefs/pidsign.U
+          + U/typedefs/pidsize.U U/typedefs/uidsign.U U/typedefs/uidsize.U
+____________________________________________________________________________
+[  4098] By: jhi                                   on 1999/09/07  10:27:06
+        Log: Band-aid until we've got %{Uid_t} or something similar
+             for sv_catpvfn().
+     Branch: cfgperl
+          ! taint.c
+____________________________________________________________________________
+[  4097] By: jhi                                   on 1999/09/07  09:41:23
+        Log: Fix a printf thinko: now quads must have the ll L q prefix.
+             (in other words, a bare %d is an int/unsigned)
+     Branch: cfgperl
+          ! pp_sys.c sv.c t/op/64bit.t
+____________________________________________________________________________
+[  4096] By: jhi                                   on 1999/09/07  07:36:17
+        Log: HP-UX 10.20 and gcc 2.8.1 break UINT32_MAX.
+             
+             From: "Daniel S. Lewart" <lewart@www.cvm.uiuc.edu>
+             To: perl5-porters@perl.org
+             Subject: [ID 19990906.007] Not OK: perl 5.00561 on PA-RISC1.1 10.20
+             Date: Mon, 6 Sep 1999 21:18:12 -0500 (CDT)
+             Message-Id: <199909070218.VAA29232@www.cvm.uiuc.edu>
+     Branch: cfgperl
+          ! hints/hpux.sh perl.h
+____________________________________________________________________________
+[  4095] By: gsar                                  on 1999/09/06  20:47:02
+        Log: applied suggested patch with suitable test to detect MSVC
+             From: "Vishal Bhatia" <vishalb@my-deja.com>
+             Date: Wed, 11 Aug 1999 01:43:28 -0700
+             Message-ID: <GFCJELIOGEENAAAA@my-deja.com>
+             Subject: compiler on  win32
+     Branch: perl
+          ! ext/B/B/C.pm
+____________________________________________________________________________
+[  4094] By: jhi                                   on 1999/09/06  20:34:44
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> ext/B/B/Bytecode.pm lib/Test/Harness.pm t/TEST t/UTEST
+         !> t/harness t/pragma/sub_lval.t utils/Makefile utils/perlcc.PL
+____________________________________________________________________________
+[  4093] By: jhi                                   on 1999/09/06  20:33:43
+        Log: Fix UV_SIZEOF to UVSIZE; change the overflow tests
+             so that they overflow also on 64-bit platforms.
+     Branch: cfgperl
+          ! t/pragma/warn/toke t/pragma/warn/util toke.c util.c
+____________________________________________________________________________
+[  4092] By: gsar                                  on 1999/09/06  20:16:58
+        Log: support bytecode and C backends in perlcc (patch suggested
+             by Tom Hughes <tom@compton.au>); s/-opt/-noopt/ and make the
+             C backend the default; describe new switches in pod; introduce
+             PERLCC_OPTS and s/COMPILE_TIMEOUT/PERLCC_TIMEOUT/;
+             s/COMPILE_TEST/HARNESS_COMPILE_TEST/; document these %ENV
+             entries
+     Branch: perl
+          ! ext/B/B/Bytecode.pm lib/Test/Harness.pm t/TEST t/UTEST
+          ! t/harness utils/Makefile utils/perlcc.PL
+____________________________________________________________________________
+[  4091] By: jhi                                   on 1999/09/06  19:10:41
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         +> t/pragma/sub_lval.t
+         !> (integrate 52 files)
+____________________________________________________________________________
+[  4090] By: gsar                                  on 1999/09/06  19:09:06
+        Log: propagate changed error text
+     Branch: perl
+          ! t/pragma/sub_lval.t
+____________________________________________________________________________
+[  4089] By: gsar                                  on 1999/09/06  18:54:43
+        Log: sprintf doc tweak (from Ian Phillipps <ian@dial.pipex.com>)
+     Branch: perl
+          ! pod/perlfunc.pod
+____________________________________________________________________________
+[  4088] By: gsar                                  on 1999/09/06  18:52:10
+        Log: From: paul.marquess@bt.com
+             Date: Sun, 5 Sep 1999 15:11:08 +0100 
+             Message-ID: <5104D4DBC598D211B5FE0000F8FE7EB202D49BAB@mbtlipnt02.btlabs.bt.co.uk>
+             Subject: [PATCH 5.005_61] Another patch for Lexical Warnings
+     Branch: perl
+          ! pp_sys.c t/pragma/warn/doio t/pragma/warn/op
+          ! t/pragma/warn/pp_hot t/pragma/warn/pp_sys
+          ! t/pragma/warn/regcomp t/pragma/warn/sv t/pragma/warn/toke
+          ! t/pragma/warn/universal t/pragma/warn/utf8 t/pragma/warn/util
+          ! toke.c
+____________________________________________________________________________
+[  4087] By: gsar                                  on 1999/09/06  18:06:06
+        Log: change#3612 is buggy when quotemeta argument matches target
+             (hope this is the last of the optimized-OP_SASSIGN bugs)
+             From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Sun, 5 Sep 1999 06:07:42 -0400 (EDT)
+             Message-Id: <199909051007.GAA06423@monk.mps.ohio-state.edu>
+             Subject: Re: [BUG: quotemeta]
+     Branch: perl
+          ! Changes op.c t/op/lex_assign.t
+____________________________________________________________________________
+[  4086] By: gsar                                  on 1999/09/06  17:57:52
+        Log: misc tweaks
+     Branch: perl
+          ! bytecode.pl ext/ByteLoader/byterun.h pod/perlsyn.pod toke.c
+____________________________________________________________________________
+[  4085] By: gsar                                  on 1999/09/06  03:54:23
+        Log: applied patch suggested by Hans Mulder to fix problems on
+             OPENSTEP-Mach; be more careful about PERL_POLLUTE_MALLOC
+             when they ask for bincompat (platforms that used to default
+             to EMBEDMYMALLOC continue to do so); disable warnings.t#192
+             (appears unsalvageable on some platforms)
+     Branch: perl
+          ! embed.h embed.pl handy.h perl.h pp_sys.c t/pragma/warn/pp_hot
+____________________________________________________________________________
+[  4084] By: bailey                                on 1999/09/06  02:39:11
+        Log: Integrate mainline 5.05_61
+     Branch: vmsperl
+         +> (branch 32 files)
+          - lib/unicode/EthiopicSyllables.txt
+          - lib/unicode/MakeEthiopicSyllables.PL t/pragma/warning.t
+          - warning.pl
+          ! vms/descrip_mms.template vms/gen_shrfls.pl vms/perly_c.vms
+          ! vms/perly_h.vms vms/vms.c
+         !> (integrate 346 files)
+____________________________________________________________________________
+[  4083] By: gsar                                  on 1999/09/06  00:10:40
+        Log: optional warning on join(/foo/...) (reworked suggested patch
+             by Mark-Jason Dominus <mjd@plover.com>)
+     Branch: perl
+          ! embed.h objXSUB.h op.c opcode.h opcode.pl perlapi.c
+          ! pod/perldelta.pod pod/perldiag.pod pod/perlfunc.pod pp.sym
+          ! pp_proto.h t/pragma/warn/op
+____________________________________________________________________________
+[  4082] By: gsar                                  on 1999/09/05  22:28:57
+        Log: fix data loss when more than one block is read from SDBM
+             *.dir file (suggested by Uwe Ohse <uwe@ohse.de>)
+     Branch: perl
+          ! ext/SDBM_File/sdbm/sdbm.c
+____________________________________________________________________________
+[  4081] By: gsar                                  on 1999/09/05  22:07:18
+        Log: initial implementation of lvalue subroutines (slightly fixed
+             version of patch suggested by Ilya Zakharevich, which in turn
+             is based on the one suggested by Tuomas J. Lukka <lukka@iki.fi>)
+     Branch: perl
+          + t/pragma/sub_lval.t
+          ! MANIFEST cop.h cv.h dump.c embed.h ext/Opcode/Opcode.pm
+          ! ext/attrs/attrs.pm ext/attrs/attrs.xs global.sym objXSUB.h
+          ! op.c op.h opcode.h opcode.pl opnames.h perlapi.c
+          ! pod/perldiag.pod pod/perlsub.pod pp.c pp.sym pp_hot.c
+          ! pp_proto.h proto.h t/pragma/warn/pp_ctl
+____________________________________________________________________________
+[  4080] By: jhi                                   on 1999/09/05  22:02:18
+        Log: Undo #4055 (related to #4079).
+     Branch: cfgperl
+          ! pod/perlop.pod
+____________________________________________________________________________
+[  4079] By: jhi                                   on 1999/09/05  21:30:54
+        Log: Time is not yet ripe.
+     Branch: cfgperl
+          ! pod/perldelta.pod pod/perlop.pod pp.c t/op/64bit.t t/op/misc.t
+____________________________________________________________________________
+[  4078] By: gsar                                  on 1999/09/05  18:17:32
+        Log: modified suggested patch to handle cross-refs and qr// objects
+             correctly; unfollowed refs are represented as simple string
+             value, not just the bare type; $VERSION stays the same until
+             it is ready for prime time (avoids CPAN confustication)
+             From:    John Nolan <jpnolan@Op.Net>
+             Date:    Wed, 04 Aug 1999 20:21:10 EDT
+             Message-Id: <199908050021.UAA09693@monet.op.net>
+             Subject: [ID 19990804.006] [PATCH]5.005_60 (Data::Dumper) - implements Maxdepth setting
+     Branch: perl
+          ! Changes ext/Data/Dumper/Changes ext/Data/Dumper/Dumper.pm
+          ! ext/Data/Dumper/Dumper.xs ext/Data/Dumper/Todo t/lib/dumper.t
+____________________________________________________________________________
+[  4077] By: jhi                                   on 1999/09/04  21:54:42
+        Log: timesum() wasn't @EXPORTed as promised by the documentation.
+             Bug reported by Alex Efros <powerman@inart.kharkov.com>.
+     Branch: cfgperl
+          ! lib/Benchmark.pm
+____________________________________________________________________________
+[  4076] By: gsar                                  on 1999/09/04  20:21:59
+        Log: integrate cfgperl contents into mainline
+     Branch: perl
+         +> lib/attributes.pm lib/warnings.pm t/lib/attrs.t t/op/attrs.t
+         +> t/pragma/warn/7fatal t/pragma/warn/8signal t/pragma/warnings.t
+         +> warnings.h warnings.pl xsutils.c
+          - lib/warning.pm t/pragma/warning.t warning.h warning.pl
+         !> (integrate 109 files)
+____________________________________________________________________________
+[  4075] By: jhi                                   on 1999/09/04  18:04:47
+        Log: use integer on the problematic subtest.
+     Branch: cfgperl
+          ! t/op/misc.t
+____________________________________________________________________________
+[  4074] By: jhi                                   on 1999/09/04  17:57:40
+        Log: Warn about numconvert.t in case somebody
+             wants to make sv_2pv more 64-bit aware.
+     Branch: cfgperl
+          ! sv.c
+____________________________________________________________________________
+[  4073] By: jhi                                   on 1999/09/04  17:54:51
+        Log: Comment upgrading: the quad situation isn't quite as
+             bad as it used to be.
+     Branch: cfgperl
+          ! perl.h
+____________________________________________________________________________
+[  4072] By: jhi                                   on 1999/09/04  15:35:37
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> win32/win32.c
+____________________________________________________________________________
+[  4071] By: jhi                                   on 1999/09/04  15:28:11
+        Log: Fix LFS with -Duseperlio in Solaris.  Reported in
+             
+             From: Robin Barker <rmb1@cise.npl.co.uk>
+             To: perl5-porters@perl.org
+             Subject: [ID 19990823.009] [PATCH perl5.005_61] typo in perl.h
+             Date: Mon, 23 Aug 1999 16:41:11 +0100 (BST)
+             Message-Id: <199908231541.QAA10043@tempest.npl.co.uk>
+             
+             and later (in private email) found to be dependent
+             on useperlio.
+             
+             Mental note: the cpp magic done in perlsdio.h (and assumedly
+             also in perlsfio.h) may cause trouble later with lfs because
+             both the perlio scheme by Perl and the lfs support by vendors
+             like to play cpp games to map the stdio namespace back and forth.
+             The problem fixed here (fseek vs fseeko, ftell vs ftello) may be
+             just the beginning.
+     Branch: cfgperl
+          ! perlio.c
+____________________________________________________________________________
+[  4070] By: jhi                                   on 1999/09/04  13:12:14
+        Log: Enable 64-bit clean bit ops.
+             (Disables the t/op/misc.t substest 3 in 64-bit platforms.)
+     Branch: cfgperl
+          ! pod/perldelta.pod pod/perlop.pod pp.c pp_hot.c t/op/64bit.t
+          ! t/op/misc.t
+____________________________________________________________________________
+[  4069] By: jhi                                   on 1999/09/03  21:17:30
+        Log: Turn on USE_64_BIT_OFFSETS implicitly.
+     Branch: cfgperl
+          ! perl.h
+____________________________________________________________________________
+[  4068] By: jhi                                   on 1999/09/03  08:19:59
+        Log: Fix from Spider for the sub attributes (there was an undocumented
+             dependency between force_word() and skipspace()).
+     Branch: cfgperl
+          ! toke.c
+____________________________________________________________________________
+[  4067] By: jhi                                   on 1999/09/01  23:17:06
+        Log: From: John Tobey <spam@john-edwin-tobey.org>
+             To: ilya@math.ohio-state.edu
+             CC: perl5-porters@perl.org
+             Subject: Re: [PATCH 5.005_60] distclean forgot two
+             Date: Mon, 23 Aug 1999 02:10:11 -0400 (EDT)
+             Message-Id: <m11InJ5-000FPCC@feynman.localnet>
+     Branch: cfgperl
+          ! t/lib/dprof.t
+____________________________________________________________________________
+[  4066] By: jhi                                   on 1999/09/01  23:14:50
+        Log: From: "Fifer, Eric" <EFifer@sanwaint.com>
+             To: perl5-porters@perl.org
+             Subject: [ID 19990821.001] [PATCH] perl5.005_60 cygwin port
+             Date: Fri, 20 Aug 1999 15:37:27 +0100
+             Message-Id: <8A160D637356D311BC4300600849EC8122E217@POST>
+     Branch: cfgperl
+          ! cygwin/Makefile.SHs ext/ByteLoader/byterun.h
+          ! ext/SDBM_File/sdbm/sdbm.c hints/cygwin.sh perl.h pp_sys.c
+          ! t/io/fs.t t/io/tell.t t/lib/anydbm.t t/op/stat.t
+____________________________________________________________________________
+[  4065] By: jhi                                   on 1999/09/01  22:06:43
+        Log: From: Dominic Dunlop <domo@vo.lu>
+             To: perl5-porters@perl.org
+             Subject: [ID 19990819.001] Not OK: perl 5.00560 on powerpc-machten 4.1.1
+             (UNINSTALLED) [PATCH]
+             Date: Thu, 19 Aug 1999 09:48:03 +0200
+             Message-Id: <v03110709b3e165b51dda@[212.24.192.132]>
+             
+             The PERL_POLLUTE_MALLOC part had to be manually applied.
+     Branch: cfgperl
+          ! hints/machten.sh perl.h
+____________________________________________________________________________
+[  4064] By: jhi                                   on 1999/09/01  13:56:14
+        Log: From: Martin Lichtin <lichtin@bivio.com>
+             To: jhi@iki.fi
+             CC: perl5-porters@perl.org
+             Subject: Re: [ID 19990829.001] ExtUtils::Install.pm, minor umask problem
+             Date: Wed, 01 Sep 1999 15:50:04 +0200
+             Message-ID: <37CD2F0C.944BFACE@bivio.com>
+     Branch: cfgperl
+          ! lib/ExtUtils/Install.pm
+____________________________________________________________________________
+[  4063] By: jhi                                   on 1999/09/01  13:16:11
+        Log: Enhance lfs tests: check every seek and sysseek
+             and test also that -e and -f detect largefiles.
+     Branch: cfgperl
+          ! t/lib/syslfs.t t/op/lfs.t
+____________________________________________________________________________
+[  4062] By: jhi                                   on 1999/09/01  12:08:04
+        Log: From: Colin Kuskie <ckuskie@Cadence.COM>
+             To: Ronald J Kimball <rjk@linguist.dartmouth.edu>
+             cc: "M.J.T. Guy" <mjtg@cus.cam.ac.uk>,
+             The Perl Porters Mailing List <perl5-porters@perl.org>
+             Subject: [REPATCH 5.005_61] Re: perldiag.pod omissions
+             Date: Tue, 31 Aug 1999 11:24:31 -0700 (PDT)
+             Message-ID: <Pine.GSO.4.10.9908311055460.11290-100000@pdxult10a.cadence.com>
+     Branch: cfgperl
+          ! pod/perldiag.pod
+____________________________________________________________________________
+[  4061] By: jhi                                   on 1999/09/01  12:03:03
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             To: ilya@math.ohio-state.edu (Ilya Zakharevich)
+             Cc: perl5-porters@perl.org, cloos@adamsmith.ai
+             Subject: Re: [ID 19990830.005] Assigning value of an op on an SV to said SV
+             Date: Wed, 1 Sep 1999 02:56:06 -0400 (EDT)
+             Message-Id: <199909010656.CAA04478@monk.mps.ohio-state.edu>
+     Branch: cfgperl
+          ! op.c t/op/join.t
+____________________________________________________________________________
+[  4060] By: jhi                                   on 1999/09/01  07:59:42
+        Log: IV_DIG and NV_DIG fixes.
+     Branch: cfgperl
+          ! perl.h
+____________________________________________________________________________
+[  4059] By: jhi                                   on 1999/08/31  14:47:18
+        Log: \C{} -> \N{} residue.
+     Branch: cfgperl
+          ! toke.c
+____________________________________________________________________________
+[  4057] By: gsar                                  on 1999/08/30  22:08:19
+        Log: avoid hiding child process window
+     Branch: perl
+          ! win32/win32.c
+____________________________________________________________________________
+[  4055] By: jhi                                   on 1999/08/30  21:20:50
+        Log: Document the undefinedness of overshifting.
+     Branch: cfgperl
+          ! pod/perlop.pod
+____________________________________________________________________________
+[  4054] By: jhi                                   on 1999/08/30  20:18:18
+        Log: History fixes and updates.
+     Branch: cfgperl
+          ! pod/perlhist.pod
+____________________________________________________________________________
+[  4053] By: jhi                                   on 1999/08/30  19:34:02
+        Log: Shell quoting thinko broke installdirs.
+             From: JVromans@Squirrel.nl (Johan Vromans)
+             To: perl5-porters@perl.org
+             Subject: [ID 19990830.001] 5.005_61 Configure does not substitute
+             installprefix
+             Date: Mon, 30 Aug 1999 16:10:10 +0200 (MEST)
+             Message-Id: <14282.37058.934928.805633@plume.nl.compuware.com>
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig
+          ! U/installdirs/archlib.U U/installdirs/bin.U
+          ! U/installdirs/html1dir.U U/installdirs/html3dir.U
+          ! U/installdirs/installprefix.U U/installdirs/man1dir.U
+          ! U/installdirs/man3dir.U U/installdirs/privlib.U
+          ! U/installdirs/scriptdir.U U/installdirs/sitearch.U
+          ! U/installdirs/sitebin.U U/installdirs/sitehtml1dir.U
+          ! U/installdirs/sitehtml3dir.U U/installdirs/sitelib.U
+          ! U/installdirs/siteman1dir.U U/installdirs/siteman3dir.U
+          ! U/installdirs/sitescriptdir.U U/installdirs/vendorarch.U
+          ! U/installdirs/vendorbin.U U/installdirs/vendorhtml1dir.U
+          ! U/installdirs/vendorhtml3dir.U U/installdirs/vendorlib.U
+          ! U/installdirs/vendorman1dir.U U/installdirs/vendorman3dir.U
+          ! U/installdirs/vendorscriptdir.U
+____________________________________________________________________________
+[  4052] By: jhi                                   on 1999/08/30  02:57:05
+        Log: Use \N{named characters} instead of \C.
+             From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             To: jhi@iki.fi
+             Cc: larry@wall.org (Larry Wall), Tim.Bunce@ig.co.uk (Tim Bunce),
+             perl5-porters@perl.org (Mailing list Perl5)
+             Subject: Re: [PATCH 5.005_58] Named characters in Perl
+             Date: Sun, 29 Aug 1999 16:46:53 -0400 (EDT)
+             Message-Id: <199908292046.QAA05510@monk.mps.ohio-state.edu>
+     Branch: cfgperl
+          ! lib/charnames.pm lib/utf8.pm pod/perldiag.pod pod/perlop.pod
+          ! pod/perlre.pod regcomp.c t/lib/charnames.t toke.c
+____________________________________________________________________________
+[  4051] By: jhi                                   on 1999/08/30  02:54:20
+        Log: From: Spider Boardman <spider@Orb.Nashua.NH.US>
+             To: perl5-porters@perl.org
+             Subject: [ID 19990829.004] Autoloaded &VERSION and UNIVERSAL::VERSION
+             don't mix
+             Date: Sun, 29 Aug 1999 19:04:53 -0400
+             Message-Id: <199908292304.TAA13738@Orb.Nashua.NH.US>
+     Branch: cfgperl
+          ! universal.c
+____________________________________________________________________________
+[  4050] By: jhi                                   on 1999/08/29  16:38:58
+        Log: Conditionally socksify the LIBS of Socket.
+     Branch: cfgperl
+          ! ext/Socket/Makefile.PL
+____________________________________________________________________________
+[  4049] By: jhi                                   on 1999/08/29  15:33:30
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             To: Mailing list Perl5 <perl5-porters@perl.org>
+             Subject: Re: [PATCH 5.005_60] fix @DB::typeahead
+             Date: Wed, 25 Aug 1999 16:19:58 -0400
+             Message-ID: <19990825161958.A4658@monk.mps.ohio-state.edu>
+     Branch: cfgperl
+          ! lib/perl5db.pl
+____________________________________________________________________________
+[  4048] By: jhi                                   on 1999/08/29  15:31:36
+        Log: From: Stephen McCamant <smccam@uclink4.berkeley.edu>
+             To: perl5-porters@perl.org
+             Subject: [PATCH _61] Lost arguments to simplified sort
+             Date: Wed, 25 Aug 1999 23:22:32 -0700 (PDT)
+             Message-ID: <14276.56616.879390.562685@metonymy.hip.berkeley.edu>
+     Branch: cfgperl
+          ! op.c t/op/sort.t
+____________________________________________________________________________
+[  4047] By: jhi                                   on 1999/08/29  15:29:29
+        Log: From: Olaf Flebbe <olaf@science-computing.de>
+             Sender: owner-perl5-porters@perl.org
+             To: perl5-porters@perl.org
+             Subject: [ID 19990827.003] [PATCH]5.005_60 Patch for EPOC Support
+             Date: Fri, 27 Aug 1999 21:50:41 +0200 (MEST)
+     Branch: cfgperl
+          ! README.epoc epoc/config.h epoc/epoc.c epoc/epocish.h
+          ! epoc/perl.mmp epoc/perl.pkg
+____________________________________________________________________________
+[  4046] By: jhi                                   on 1999/08/29  15:21:18
+        Log: From: pvhp@forte.com (Peter Prymmer)
+             To: perl5-porters@perl.org
+             Subject: [PATCH: 5.005_61] an EBCDIC friendly cgi-html.t test
+             Date: Fri, 27 Aug 99 18:51:04 PDT
+             Message-Id: <9908280151.AA05010@forte.com>
+     Branch: cfgperl
+          ! t/lib/cgi-html.t
+____________________________________________________________________________
+[  4045] By: jhi                                   on 1999/08/29  15:18:38
+        Log: Fix scalar gmtime (and localtime) in quad environments,
+             bug reported by Robin Parker.
+             
+             From: Robin Barker <rmb1@cise.npl.co.uk>
+             To: jhi@iki.fi
+             Cc: perl5-porters@perl.org
+             Subject: Re: [ID 19990823.009] [PATCH perl5.005_61] typo in perl.h
+             Date: Tue, 24 Aug 1999 11:09:24 +0100 (BST)
+             Message-Id: <199908241009.LAA24394@tempest.npl.co.uk>
+     Branch: cfgperl
+          ! pp_sys.c t/op/time.t
+____________________________________________________________________________
+[  4044] By: jhi                                   on 1999/08/29  11:24:03
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             To: perl5-porters@perl.org (Mailing list Perl5)
+             Subject: [PATCH 5.005_60] Speeding up XSUB calls up to 66%
+             Date: Fri, 27 Aug 1999 03:33:01 -0400 (EDT)
+             Message-Id: <199908270733.DAA16927@monk.mps.ohio-state.edu>
+             
+             Addendum: it's "only" 33% speedup.
+     Branch: cfgperl
+          ! dump.c op.c op.h pp.h
+____________________________________________________________________________
+[  4043] By: jhi                                   on 1999/08/29  11:10:33
+        Log: From: spider-perl@Orb.Nashua.NH.US
+             To: Mailing list Perl5 <perl5-porters@perl.org>
+             Subject: [PATCH 5.005_61 CORE] sub : attrlist
+             Date: Sun, 29 Aug 1999 03:02:11 -0400
+             Message-Id: <199908290702.DAA32191@Orb.Nashua.NH.US>
+     Branch: cfgperl
+          + lib/attributes.pm t/lib/attrs.t t/op/attrs.t xsutils.c
+          ! MANIFEST Makefile.SH embed.h embed.pl embedvar.h global.sym
+          ! gv.c lib/AutoSplit.pm lib/SelfLoader.pm objXSUB.h op.c perl.c
+          ! perl.h perlapi.c perlapi.h perly.c perly.fixer perly.h perly.y
+          ! perly_c.diff pod/perldelta.pod pod/perldiag.pod
+          ! pod/perlfunc.pod pod/perlmodlib.pod pod/perlsub.pod proto.h
+          ! toke.c vms/perly_c.vms vms/perly_h.vms warnings.h
+____________________________________________________________________________
+[  4042] By: jhi                                   on 1999/08/29  11:08:50
+        Log: Turn off gcc-2.95's strict-alias optimization.
+             This, of course, should be only temporary.
+             From Andy Dougherty.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig
+          ! U/compline/ccflags.U U/modified/cc.U
+____________________________________________________________________________
+[  4041] By: jhi                                   on 1999/08/29  10:47:30
+        Log: Fix a typo in #4036.
+     Branch: cfgperl
+          ! mg.c
+____________________________________________________________________________
+[  4040] By: jhi                                   on 1999/08/29  10:34:58
+        Log: Add a missing #endif forgotten by #4035.
+     Branch: cfgperl
+          ! doop.c
+____________________________________________________________________________
+[  4039] By: jhi                                   on 1999/08/29  10:31:19
+        Log: Remove an extra #endif introduced by #4036.
+     Branch: cfgperl
+          ! perl.h
+____________________________________________________________________________
+[  4038] By: jhi                                   on 1999/08/29  10:18:59
+        Log: Rename warning to warnings, from Paul Marquess.
+     Branch: cfgperl
+          + lib/warnings.pm t/pragma/warn/7fatal t/pragma/warn/8signal
+          + t/pragma/warnings.t warnings.h warnings.pl
+          - lib/warning.pm t/pragma/warning.t warning.h warning.pl
+          ! MANIFEST Makefile.SH gv.c mg.c perl.h pod/perldelta.pod
+          ! pod/perldiag.pod pod/perlfunc.pod pod/perllexwarn.pod
+          ! pod/perlmodlib.pod pod/perlrun.pod pod/perltoc.pod
+          ! pod/perlvar.pod t/op/64bit.t t/op/tie.t t/pragma/warn/2use
+          ! t/pragma/warn/3both t/pragma/warn/4lint t/pragma/warn/5nolint
+          ! t/pragma/warn/6default t/pragma/warn/doio t/pragma/warn/doop
+          ! t/pragma/warn/gv t/pragma/warn/mg t/pragma/warn/op
+          ! t/pragma/warn/perl t/pragma/warn/perly t/pragma/warn/pp
+          ! t/pragma/warn/pp_ctl t/pragma/warn/pp_hot t/pragma/warn/pp_sys
+          ! t/pragma/warn/regcomp t/pragma/warn/regexec t/pragma/warn/sv
+          ! t/pragma/warn/taint t/pragma/warn/toke t/pragma/warn/universal
+          ! t/pragma/warn/utf8 t/pragma/warn/util toke.c
+____________________________________________________________________________
+[  4037] By: jhi                                   on 1999/08/29  10:08:47
+        Log: Create the equivalence tables based on
+             the real Unicode decomposition, not on
+             the character name.
+     Branch: cfgperl
+          ! lib/unicode/Eq/Latin1 lib/unicode/Eq/Unicode
+          ! lib/unicode/mktables.PL
+____________________________________________________________________________
+[  4036] By: jhi                                   on 1999/08/29  09:29:08
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         +> lib/unicode/Is/SylA.pl lib/unicode/Is/SylC.pl
+         +> lib/unicode/Is/SylE.pl lib/unicode/Is/SylI.pl
+         +> lib/unicode/Is/SylO.pl lib/unicode/Is/SylU.pl
+         +> lib/unicode/Is/SylV.pl lib/unicode/Is/SylWA.pl
+         +> lib/unicode/Is/SylWC.pl lib/unicode/Is/SylWE.pl
+         +> lib/unicode/Is/SylWI.pl lib/unicode/Is/SylWV.pl
+         !> (integrate 190 files)
+____________________________________________________________________________
+[  4035] By: jhi                                   on 1999/08/29  08:56:15
+        Log: Implement 64-bit vec().
+     Branch: cfgperl
+          ! doop.c pod/perldelta.pod pod/perldiag.pod pod/perlfunc.pod
+          ! pp.h t/op/64bit.t
+____________________________________________________________________________
+[  4034] By: gsar                                  on 1999/08/29  03:35:18
+        Log: deadcode removal
+     Branch: perl
+          ! XSUB.h embed.h embed.pl global.sym mg.c op.c perl.h perlapi.h
+          ! pp_ctl.c proto.h run.c sv.c
+____________________________________________________________________________
+[  4033] By: jhi                                   on 1999/08/28  17:31:07
+        Log: From: Robin Barker <rmb1@cise.npl.co.uk>
+             To: perl5-porters@perl.org
+             Subject: [ID 19990823.009] [PATCH perl5.005_61] typo in perl.h
+             Date: Mon, 23 Aug 1999 16:41:11 +0100 (BST)
+             Message-Id: <199908231541.QAA10043@tempest.npl.co.uk>
+     Branch: cfgperl
+          ! perl.h
+____________________________________________________________________________
+[  4032] By: gsar                                  on 1999/08/26  23:53:33
+        Log: new thread should set current interp in TLS
+     Branch: perl
+          ! ext/Thread/Thread.xs
+____________________________________________________________________________
+[  4031] By: bailey                                on 1999/08/23  03:40:07
+        Log: When extension doesn't have a "main" object file to anchor linker search, pull in all objct files
+     Branch: vmsperl
+          ! lib/ExtUtils/MM_VMS.pm
+____________________________________________________________________________
+[  4030] By: bailey                                on 1999/08/23  03:37:43
+        Log: Patch up holes in realclean target
+     Branch: vmsperl
+          ! vms/descrip_mms.template
+____________________________________________________________________________
+[  4029] By: bailey                                on 1999/08/23  03:36:24
+        Log: Fix handling of PERL_POLLUTE
+     Branch: vmsperl
+          ! lib/ExtUtils/MM_VMS.pm
+____________________________________________________________________________
+[  4028] By: bailey                                on 1999/08/23  03:34:08
+        Log: Update VMS version of perly.h
+     Branch: vmsperl
+          ! vms/perly_h.vms
+____________________________________________________________________________
+[  4027] By: bailey                                on 1999/08/23  03:32:45
+        Log: Update dependencies in Descrip.MMS
+     Branch: vmsperl
+          ! vms/descrip_mms.template
+____________________________________________________________________________
+[  4026] By: bailey                                on 1999/08/23  03:30:01
+        Log: Fix prototypes in perlapi.c (64-bit?)
+             Clear prior definition of getenv_len before defining VMS-specific macro
+     Branch: vmsperl
+          ! perlapi.c vms/vmsish.h
+____________________________________________________________________________
+[  4025] By: bailey                                on 1999/08/23  03:25:51
+        Log: Add '-m' option to Configure.com which skips the MANIFEST check
+     Branch: vmsperl
+          ! configure.com
+____________________________________________________________________________
+[  4024] By: bailey                                on 1999/08/23  03:23:34
+        Log: Skip open() tests that rely on Unix fork semantics
+     Branch: vmsperl
+          ! t/io/open.t
+____________________________________________________________________________
+[  4023] By: bailey                                on 1999/08/23  03:21:46
+        Log: Loosen conditons for recognizing a function name in perl.h to accomodate revisions
+     Branch: vmsperl
+          ! vms/gen_shrfls.pl
+____________________________________________________________________________
+[  4022] By: bailey                                on 1999/08/23  03:17:33
+        Log: update MM_VMS to use new File::Spec routines
+     Branch: vmsperl
+          ! lib/ExtUtils/MM_VMS.pm lib/File/Spec/VMS.pm
+____________________________________________________________________________
+[  4021] By: bailey                                on 1999/08/23  03:13:40
+        Log: byteperl is now part of the ByteLoader ext
+     Branch: vmsperl
+          ! ext/ByteLoader/byterun.h vms/descrip_mms.template
+____________________________________________________________________________
+[  4020] By: bailey                                on 1999/08/23  03:10:41
+        Log: Allow option to treat barewords at start of Unix paths as simple words rather than logicals
+     Branch: vmsperl
+          ! vms/vms.c
+____________________________________________________________________________
+[  4019] By: bailey                                on 1999/08/23  03:07:28
+        Log: Update calls for new thread context handling
+     Branch: vmsperl
+          ! ext/Devel/DProf/DProf.xs ext/DynaLoader/dl_vms.xs
+          ! ext/POSIX/POSIX.xs vms/vms.c vms/vmsish.h vms/writemain.pl
+____________________________________________________________________________
+[  4018] By: bailey                                on 1999/08/23  03:01:31
+        Log: Allow for file versions in library when looking for .bs files
+     Branch: vmsperl
+          ! ext/DynaLoader/DynaLoader_pm.PL
+____________________________________________________________________________
+[  4017] By: bailey                                on 1999/08/23  02:58:55
+        Log: Update VMS configuration procedures for 5.005_60
+     Branch: vmsperl
+          ! configure.com vms/subconfigure.com
+____________________________________________________________________________
+[  4016] By: gsar                                  on 1999/08/20  22:19:56
+        Log: update Changes
+     Branch: perl
+          ! Changes
+
+----------------
+Version 5.005_61
+----------------
+
+____________________________________________________________________________
+[  4015] By: gsar                                  on 1999/08/20  22:17:41
+        Log: perl_free() should use PerlMem_free()
+     Branch: perl
+          ! perl.c
+____________________________________________________________________________
+[  4014] By: gsar                                  on 1999/08/20  22:10:46
+        Log: win32 tweaks
+     Branch: perl
+          ! XSUB.h mg.c perl.c win32/config.bc win32/config.gc
+          ! win32/config.vc win32/config_H.bc win32/config_H.gc
+          ! win32/config_H.vc
+____________________________________________________________________________
+[  4013] By: gsar                                  on 1999/08/20  22:09:56
+        Log: DEBUG_m() adjusted to internalize dTHX
+     Branch: perl
+          ! malloc.c perl.h util.c
+____________________________________________________________________________
+[  4012] By: gsar                                  on 1999/08/20  17:51:06
+        Log: make autogenerated files writable
+     Branch: perl
+          ! (edit 171 files)
+____________________________________________________________________________
+[  4011] By: gsar                                  on 1999/08/20  17:43:47
+        Log: update Changes
+     Branch: perl
+          ! Changes perl.h pod/perldelta.pod pod/perlguts.pod
+____________________________________________________________________________
+[  4010] By: gsar                                  on 1999/08/20  17:21:53
+        Log: up patchlevel &c
+     Branch: perl
+          ! Changes patchlevel.h win32/Makefile win32/config_H.bc
+          ! win32/config_H.gc win32/config_H.vc win32/makefile.mk
+____________________________________________________________________________
+[  4009] By: gsar                                  on 1999/08/20  16:46:26
+        Log: add missing Is/Syl*.pl files
+     Branch: perl
+          + lib/unicode/Is/SylA.pl lib/unicode/Is/SylC.pl
+          + lib/unicode/Is/SylE.pl lib/unicode/Is/SylI.pl
+          + lib/unicode/Is/SylO.pl lib/unicode/Is/SylU.pl
+          + lib/unicode/Is/SylV.pl lib/unicode/Is/SylWA.pl
+          + lib/unicode/Is/SylWC.pl lib/unicode/Is/SylWE.pl
+          + lib/unicode/Is/SylWI.pl lib/unicode/Is/SylWV.pl
+____________________________________________________________________________
+[  4008] By: gsar                                  on 1999/08/20  16:31:02
+        Log: integrate cfgperl contents into mainline
+     Branch: perl
+         +> ext/ByteLoader/hints/sunos.pl lib/charnames.pm
+         +> lib/unicode/Eq/Latin1 lib/unicode/Eq/Unicode
+         +> lib/unicode/syllables.txt t/lib/charnames.t t/lib/syslfs.t
+         +> t/op/lfs.t
+          - lib/unicode/EthiopicSyllables.txt
+          - lib/unicode/MakeEthiopicSyllables.PL
+         !> (integrate 261 files)
+____________________________________________________________________________
+[  4007] By: gsar                                  on 1999/08/20  15:24:08
+        Log: support USE_THREADS+MULTIPLICITY; source compat tweaks for
+             USE_THREADS and MULTIPLICITY; minor pod adjustments
+     Branch: perl
+          ! Porting/patching.pod Todo Todo-5.005 XSUB.h embed.pl
+          ! embedvar.h perl.c perl.h pod/perlguts.pod util.c
+____________________________________________________________________________
+[  4006] By: jhi                                   on 1999/08/19  19:01:41
+        Log: Tighten the vec() code so that naughty BITS cause an error.
+     Branch: cfgperl
+          ! doop.c
+____________________________________________________________________________
+[  4005] By: jhi                                   on 1999/08/19  15:55:09
+        Log: Don't document ill-defined vec() bits cases
+             (for which the code doesn't work right in any case)
+     Branch: cfgperl
+          ! pod/perldiag.pod pod/perlfunc.pod
+____________________________________________________________________________
+[  4004] By: jhi                                   on 1999/08/19  12:49:41
+        Log: Removed duplicated code (in pp.c and mg.c) by introducing
+             do_vecget().  NOTE: the calling convention of do_vecset()
+             changes, too: the `offset' that is assigned to LvTARGOFF(TARG)
+             in pp_vec() is no more multiplied by `size' in pp_vec(),
+             the multiplication is now done in do_vecset().
+             
+             Also fix a cpp thinko in change #4002.
+     Branch: cfgperl
+          ! doop.c embed.h embed.pl embedvar.h global.sym mg.c objXSUB.h
+          ! perl.h perlapi.c pod/perldiag.pod pod/perlfunc.pod pp.c
+          ! proto.h
+____________________________________________________________________________
+[  4003] By: jhi                                   on 1999/08/18  08:27:22
+        Log: Warn about small spherical distances.
+     Branch: cfgperl
+          ! lib/Math/Trig.pm
+____________________________________________________________________________
+[  4002] By: jhi                                   on 1999/08/17  09:11:51
+        Log: Enhance IV_FITS_IN_IV (though it's still unused).
+     Branch: cfgperl
+          ! perl.h
+____________________________________________________________________________
+[  4001] By: jhi                                   on 1999/08/17  08:13:34
+        Log: From: andreas.koenig@anima.de (Andreas J. Koenig)
+             Message-ID: <sfcogg7ylk7.fsf@hohenstaufen.in-berlin.de>
+             To: The Perl5 Porters Mailing List <perl5-porters@perl.org>
+             Subject: [PATCH] overload.pm str/num confu
+             Date: 17 Aug 1999 08:21:12 +0200
+     Branch: cfgperl
+          ! lib/overload.pm
+____________________________________________________________________________
+[  4000] By: jhi                                   on 1999/08/17  07:20:23
+        Log: From: merlyn@stonehenge.com (Randal L. Schwartz)
+             To: perl5-porters@perl.org
+             Subject: [ID 19990816.006] small patch to perlobj.pod from 5.005_03
+             Date: 16 Aug 1999 14:24:28 -0700
+             Message-Id: <m1ogg7to4z.fsf@halfdome.holdit.com>
+     Branch: cfgperl
+          ! pod/perlobj.pod
+____________________________________________________________________________
+[  3999] By: jhi                                   on 1999/08/16  19:49:09
+        Log: Integrate with Nick.
+     Branch: cfgperl
+         !> cop.h op.c perl.c t/op/eval.t t/pragma/warn/op util.c
+____________________________________________________________________________
+[  3998] By: jhi                                   on 1999/08/16  19:44:29
+        Log: Fix most of the pod2man moanings reported in
+             
+             From: "Larry W. Virden" <lvirden@cas.org>
+             To: perl5-porters@perl.org
+             Subject: [ID 19990803.011] Not OK: perl 5.00560 on sun4-solaris 2.6
+             (UNINSTALLED)
+             Date: Tue, 3 Aug 1999 15:35:06 -0400 (EDT)
+             Message-Id: <199908031935.PAA27692@cas.org>
+             
+             Configure regen'ed.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH ext/B/B/Stash.pm lib/Carp/Heavy.pm
+          ! lib/Dumpvalue.pm lib/Exporter/Heavy.pm lib/filetest.pm
+          ! lib/utf8.pm pod/perllexwarn.pod pod/perlxstut.pod
+          ! utils/h2xs.PL utils/perlcc.PL
+____________________________________________________________________________
+[  3997] By: jhi                                   on 1999/08/16  19:20:37
+        Log: A fix of sorts for the flush-before-dup scenario.
+     Branch: cfgperl
+          ! doio.c
+____________________________________________________________________________
+[  3996] By: jhi                                   on 1999/08/16  19:14:37
+        Log: More paranoia.
+     Branch: cfgperl
+          ! sv.c
+____________________________________________________________________________
+[  3995] By: jhi                                   on 1999/08/16  18:55:35
+        Log: Batch of small 64-bit/long double/large file support tweaks:
+             - scan for LDBL_DIG
+             - from DBL_DIG and LDBL_DIG select NV_DIG
+             - introduce IVSIZE, UVSIZE, NVSIZE
+             - introduce IV_DIG
+             - remove stdio64
+             - AIX uses `oslevel` when others use `uname -r`
+             - already AIX 4.2 goes 64-bit
+             - in HP-UX require the 64-bit libc, just the directory isn't enough
+             - group ids are not NVs
+             - #undef USE_LONG_DOUBLE if long double is no better than double
+             - introduce NV_WITHIN_*() and IV_FITS_IN_IV
+             - mention large file support in perldelta
+             - introduce quad TOPpin' and POPpin'
+             - the svcat... buffer was tiny for printing quads in %b
+             - fix the multiplication test in 64bit.t
+             - try to make VMS to comply with all this removal and "introducal"
+             of symbols
+     Branch: cfgperl
+          ! Configure config_h.SH dump.c hints/aix.sh hints/hpux.sh mg.c
+          ! perl.h perlio.c pod/perldelta.pod pp.h sv.c t/lib/syslfs.t
+          ! t/op/64bit.t t/op/lfs.t utf8.c vms/subconfigure.com
+     Branch: metaconfig
+          ! U/modified/d_longdbl.U
+     Branch: metaconfig/U/perl
+          + d_ldbl_dig.U
+____________________________________________________________________________
+[  3994] By: jhi                                   on 1999/08/16  07:53:44
+        Log: More Configure/subconfigure.com syncing.
+     Branch: cfgperl
+          ! vms/subconfigure.com
+____________________________________________________________________________
+[  3993] By: jhi                                   on 1999/08/14  22:09:26
+        Log: Remove from VMS what the change #3982 took away from Configure lands.
+     Branch: cfgperl
+          ! vms/subconfigure.com
+____________________________________________________________________________
+[  3992] By: jhi                                   on 1999/08/14  13:29:13
+        Log: Small test tweaks.
+     Branch: cfgperl
+          ! t/io/dup.t t/lib/dprof.t t/lib/odbm.t
+____________________________________________________________________________
+[  3991] By: jhi                                   on 1999/08/14  13:08:41
+        Log: Augment filesize limit note.
+     Branch: cfgperl
+          ! doio.c
+____________________________________________________________________________
+[  3990] By: jhi                                   on 1999/08/14  13:06:12
+        Log: Note about filesize limits.
+     Branch: cfgperl
+          ! doio.c pp_sys.c
+____________________________________________________________________________
+[  3989] By: jhi                                   on 1999/08/14  11:31:58
+        Log: Catch the case of filesize limits.
+     Branch: cfgperl
+          ! t/lib/syslfs.t t/op/lfs.t
+____________________________________________________________________________
+[  3988] By: nick                                  on 1999/08/14  09:20:58
+        Log: New lightweight Carp has a require. If Carp is used in a __DIE__ handler
+             this causes a POPSTACK panic. The problem seems to be that although
+             die_where() has unwound the tail of perl_vdie() top_env setjmp has been
+             set to resume execution there. Avoiding setting CATCH_SET(TRUE) in 
+             call_sv() avoids this. So invent a new G_NOCATCH flag to disable
+             messing with CATCH_SET() in call_sv, use it in perl_vdie().
+             Add test to op/eval.t which will fail (panic) if bug comes back.
+             >>> I AM NOT CONVINCED THIS IS CORRECT LONG TERM FIX <<<
+     Branch: perl
+          ! cop.h perl.c t/op/eval.t util.c
+____________________________________________________________________________
+[  3987] By: jhi                                   on 1999/08/13  23:57:52
+        Log: From: "Craig A. Berry" <craig.berry@metamor.com>
+             To: perl5-porters@perl.org, vmsperl@perl.org, sarathy@activestate.com
+             Subject: [PATCH 5.005_60] fix MM_VMS.pm for space-delimited lists
+             Date: Fri, 13 Aug 1999 17:42:47 -0500
+             Message-Id: <v04210105b3da3ed9599d@[172.16.246.133]>
+     Branch: cfgperl
+          ! lib/ExtUtils/MM_VMS.pm
+____________________________________________________________________________
+[  3986] By: jhi                                   on 1999/08/13  23:56:44
+        Log: Don't quit before printing out the message.
+     Branch: cfgperl
+          ! t/lib/syslfs.t t/op/lfs.t
+____________________________________________________________________________
+[  3985] By: jhi                                   on 1999/08/13  23:35:49
+        Log: Remove more t/ trash on target "clean".
+     Branch: cfgperl
+          ! Makefile.SH
+____________________________________________________________________________
+[  3984] By: jhi                                   on 1999/08/13  23:02:53
+        Log: Avoid double long double. 
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig/U/perl
+          ! uselongdbl.U
+____________________________________________________________________________
+[  3983] By: jhi                                   on 1999/08/13  22:59:56
+        Log: BYTEORDER fix.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig
+          ! U/compline/byteorder.U
+____________________________________________________________________________
+[  3982] By: jhi                                   on 1999/08/13  22:48:40
+        Log: Jumbo Configure and large file support update.
+             Remove a lot of unneeded 64-bitness cruft;
+             re-introduce BYTEORDER; update 64-bitness hints;
+             lfs should now work in Solaris; long doubles in AIX.
+     Branch: cfgperl
+          ! Configure config_h.SH doio.c hints/aix.sh hints/hpux.sh
+          ! hints/irix_6.sh hints/solaris_2.sh iperlsys.h perl.h perlio.c
+          ! perlsdio.h pp.h pp_sys.c
+     Branch: metaconfig
+          ! U/compline/byteorder.U U/compline/ccflags.U
+     Branch: metaconfig/U/perl
+          ! d_dlsymun.U io64.U uselongdbl.U
+____________________________________________________________________________
+[  3980] By: jhi                                   on 1999/08/13  15:09:11
+        Log: Introduce HAS_LLSEEK.
+     Branch: cfgperl
+          ! Configure config_h.SH perl.h
+____________________________________________________________________________
+[  3979] By: jhi                                   on 1999/08/13  14:29:47
+        Log: From: <dan@sidhe.org>
+             To: perl5-porters@perl.org, vmsperl@perl.org, bailey@newman.upenn.edu,
+             sarathy@activestate.com
+             Subject: [PATCH 5.005_60]fix up VMS->unix filename translation a bit
+             Date: Fri, 13 Aug 1999 09:00:42 -0700 (PDT)
+             Message-ID: <Pine.LNX.4.10.9908130849390.3950-100000@tuatha.sidhe.org>
+     Branch: cfgperl
+          ! vms/vms.c
+____________________________________________________________________________
+[  3978] By: jhi                                   on 1999/08/13  09:56:46
+        Log: Make the 64-bit tests more paranoid.
+     Branch: cfgperl
+          ! t/op/64bit.t
+____________________________________________________________________________
+[  3976] By: jhi                                   on 1999/08/12  21:49:16
+        Log: IRIX64 needs more -mabi=64 with gcc.
+     Branch: cfgperl
+          ! hints/irix_6.sh
+____________________________________________________________________________
+[  3975] By: jhi                                   on 1999/08/12  21:02:03
+        Log: Reincarnate change #3967, now in more modest form.
+     Branch: cfgperl
+          ! hints/irix_6.sh
+____________________________________________________________________________
+[  3974] By: jhi                                   on 1999/08/12  20:49:36
+        Log: Remove rt from libswanted (I added it many moons ago
+             when I thought it would be useful in Digital UNIX,
+             I was wrong); undo the recent IRIX hints changes,
+             getting rid of one warning brought new ones.
+     Branch: cfgperl
+          ! Configure config_h.SH hints/irix_6.sh
+     Branch: metaconfig
+          ! U/modified/Myinit.U
+____________________________________________________________________________
+[  3973] By: jhi                                   on 1999/08/12  19:42:53
+        Log: st_blocks is in 512 byte blocks.
+     Branch: cfgperl
+          ! t/lib/syslfs.t t/op/lfs.t
+____________________________________________________________________________
+[  3972] By: jhi                                   on 1999/08/12  19:27:31
+        Log: Don't claim defeat too early.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig/U/perl
+          ! longdblfio.U
+____________________________________________________________________________
+[  3971] By: jhi                                   on 1999/08/12  19:24:14
+        Log: IRIX 64-bit hint tweak. 
+     Branch: cfgperl
+          ! hints/irix_6.sh
+____________________________________________________________________________
+[  3970] By: nick                                  on 1999/08/12  19:17:20
+        Log: Turn of deprecated warnings for defined(@Sompack::ISA) type
+             tests i.e. RV2AV and RV2HV
+     Branch: perl
+          ! op.c t/pragma/warn/op
+____________________________________________________________________________
+[  3969] By: jhi                                   on 1999/08/12  19:06:17
+        Log: Add Configure -Duselongdouble and add a missing semicolon.
+     Branch: cfgperl
+          ! Configure config_h.SH sv.c
+     Branch: metaconfig/U/perl
+          + uselongdbl.U
+____________________________________________________________________________
+[  3968] By: jhi                                   on 1999/08/12  18:46:00
+        Log: Simply exit() early if lfs support seems unlikely.
+     Branch: cfgperl
+          ! t/lib/syslfs.t t/op/lfs.t
+____________________________________________________________________________
+[  3967] By: jhi                                   on 1999/08/12  18:44:05
+        Log: Suffer silently for unused libraries.
+     Branch: cfgperl
+          ! hints/irix_6.sh
+____________________________________________________________________________
+[  3966] By: jhi                                   on 1999/08/12  13:18:44
+        Log: Update MANIFEST to follow change #3965.
+     Branch: cfgperl
+          ! MANIFEST
+____________________________________________________________________________
+[  3965] By: jhi                                   on 1999/08/12  13:15:38
+        Log: Regenerate Unicode tables based on new syllable lists
+             from Daniel Yacob.
+     Branch: cfgperl
+          ! (edit 159 files)
+____________________________________________________________________________
+[  3964] By: jhi                                   on 1999/08/12  10:06:24
+        Log: Remove more spurious casting.
+     Branch: cfgperl
+          ! pp_sys.c
+____________________________________________________________________________
+[  3963] By: jhi                                   on 1999/08/12  08:18:53
+        Log: Minor niggles on the lfs tests.
+     Branch: cfgperl
+          ! t/lib/syslfs.t t/op/lfs.t
+____________________________________________________________________________
+[  3962] By: jhi                                   on 1999/08/11  22:48:25
+        Log: Don't bother with lfs testing if off_t is too small.
+     Branch: cfgperl
+          ! t/lib/syslfs.t t/op/lfs.t
+____________________________________________________________________________
+[  3961] By: jhi                                   on 1999/08/11  22:22:54
+        Log: Long double patches from Dan Sugalski.
+     Branch: cfgperl
+          ! sv.c
+____________________________________________________________________________
+[  3960] By: jhi                                   on 1999/08/11  22:17:55
+        Log: Flush buffer before duplicating file descriptor.
+             
+             From: Mark-Jason Dominus <mjd@plover.com>
+             To: Graham Barr <gbarr@pobox.com>
+             cc: Vicki Brown <vlb@cfcl.com>, perl5-porters@perl.org, mjd@plover.com
+             Subject: Re: [ID 19990811.002] can't dup DATA? (PATCH (5.005_57))
+             Date: Wed, 11 Aug 1999 15:56:09 -0400
+             Message-ID: <19990811195610.5933.qmail@plover.com>
+             
+             From: Mark-Jason Dominus <mjd@plover.com>
+             To: perl5-porters@perl.org
+             Subject: Re: [ID 19990811.002] can't dup DATA? (PATCH (5.005_57)) 
+             Date: Wed, 11 Aug 1999 16:05:46 -0400
+             Message-ID: <19990811200546.6165.qmail@plover.com>
+     Branch: cfgperl
+          ! doio.c pod/perldelta.pod
+____________________________________________________________________________
+[  3959] By: jhi                                   on 1999/08/11  22:11:35
+        Log: Bypass fsync(NULL) (crashes miniperl compiled with DEC C 5.2)
+             
+             From: "Craig A. Berry" <craig.berry@metamor.com>
+             Sender: owner-perl5-porters@perl.org
+             To: vmsperl@perl.org, perl5-porters@perl.org, sarathy@activestate.com,
+             bailey@newman.upenn.edu
+             Subject: [PATCH 5.005_60] vms.c my_flush patch to circumvent fileno
+             problem
+             Date: Wed, 11 Aug 1999 14:31:11 -0500
+             Message-Id: <4.2.0.58.19990811141007.00b8f8a0@mmtnt11.metamor.com>
+     Branch: cfgperl
+          ! vms/vms.c
+____________________________________________________________________________
+[  3958] By: jhi                                   on 1999/08/11  15:35:45
+        Log: Add a hopefully comforting message if there seems to be no LFS. 
+             This seems to be the case with e.g. ext2fs, a somewhat popular fs.
+             The tests will fail on lfs tests only if quad is available,
+             if ENOQUAD, the lfs tests will be skipped.
+     Branch: cfgperl
+          ! t/lib/syslfs.t t/op/lfs.t
+____________________________________________________________________________
+[  3957] By: jhi                                   on 1999/08/11  12:25:59
+        Log: Unapply an experimental patch that accidentally escaped
+             from the lab by piggybacking with the change #3955.
+     Branch: cfgperl
+          ! pp.c pp.h pp_hot.c
+____________________________________________________________________________
+[  3956] By: jhi                                   on 1999/08/11  08:19:23
+        Log: Add sysio large file support testing.
+     Branch: cfgperl
+          + t/lib/syslfs.t
+          ! MANIFEST pod/perlfunc.pod t/op/64bit.t t/op/lfs.t
+____________________________________________________________________________
+[  3955] By: jhi                                   on 1999/08/10  22:39:11
+        Log: From: <dan@sidhe.org>
+             To: vmsperl@perl.org, perl5-porters@perl.org,
+             sarathy@activestate.com, bailey@newman.upenn.edu
+             Subject: [PATCH 5.005_60]Patches needed to get _60 building with
+             threads on VMS
+             Date: Tue, 10 Aug 1999 16:34:56 -0700 (PDT)
+             Message-ID: <Pine.LNX.4.10.9908101631030.18266-100000@tuatha.sidhe.org>
+     Branch: cfgperl
+          ! ext/Devel/DProf/DProf.xs ext/DynaLoader/dl_vms.xs
+          ! ext/POSIX/POSIX.xs pp.c pp.h pp_hot.c vms/vms.c vms/vmsish.h
+          ! vms/writemain.pl
+____________________________________________________________________________
+[  3954] By: jhi                                   on 1999/08/10  20:37:55
+        Log: LFS testing robustness.
+     Branch: cfgperl
+          ! t/op/lfs.t
+____________________________________________________________________________
+[  3953] By: jhi                                   on 1999/08/10  19:54:50
+        Log: From: <dan@sidhe.org>
+             To: vmsperl@perl.org, perp5-porters@perl.org, bailey@newman.upenn.edu,
+             sarathy@activestate.com
+             Subject: [PATCH 5.005_60]Pathces to get _60 building on VMS
+             Date: Tue, 10 Aug 1999 13:28:18 -0700 (PDT)
+             Message-ID: <Pine.LNX.4.10.9908101323130.18266-100000@tuatha.sidhe.org>
+     Branch: cfgperl
+          ! configure.com vms/descrip_mms.template vms/gen_shrfls.pl
+          ! vms/subconfigure.com vms/vmsish.h
+____________________________________________________________________________
+[  3952] By: jhi                                   on 1999/08/10  17:18:57
+        Log: AIX is different, again.  Now in cc -E output.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig
+          ! U/modified/cppstdin.U
+____________________________________________________________________________
+[  3951] By: jhi                                   on 1999/08/10  14:37:08
+        Log: Use Pid_t on pgrp matters.
+     Branch: cfgperl
+          ! pp_sys.c
+____________________________________________________________________________
+[  3950] By: jhi                                   on 1999/08/10  14:35:30
+        Log: Use Pid_t.
+     Branch: cfgperl
+          ! doio.c embed.h embed.pl embedvar.h global.sym perlapi.c
+          ! pp_sys.c proto.h util.c
+____________________________________________________________________________
+[  3949] By: jhi                                   on 1999/08/10  14:11:15
+        Log: Use Mode_t.
+     Branch: cfgperl
+          ! doio.c embed.h embed.pl embedvar.h global.sym perlapi.c
+          ! perlapi.h pp_sys.c proto.h
+____________________________________________________________________________
+[  3948] By: jhi                                   on 1999/08/10  13:53:19
+        Log: Small perlbug doc tweaks from Jon Orwant.
+     Branch: cfgperl
+          ! utils/perlbug.PL
+____________________________________________________________________________
+[  3947] By: jhi                                   on 1999/08/10  09:55:11
+        Log: Large file support testing.
+     Branch: cfgperl
+          + t/op/lfs.t
+          ! MANIFEST t/op/64bit.t
+____________________________________________________________________________
+[  3946] By: jhi                                   on 1999/08/10  09:13:54
+        Log: Remove I32 casting from time-related functions.
+     Branch: cfgperl
+          ! pp_sys.c
+____________________________________________________________________________
+[  3945] By: jhi                                   on 1999/08/10  09:06:42
+        Log: Gratuitous uid and gid casts to I32s and ints removed.
+             There are still problem spots in printfing such ids:
+             width (%d vs %ld) and signedness %d vs %u.
+     Branch: cfgperl
+          ! doio.c embed.h embed.pl embedvar.h global.sym intrpvar.h mg.c
+          ! perl.c perlapi.c pp_hot.c proto.h
+____________________________________________________________________________
+[  3944] By: jhi                                   on 1999/08/10  07:43:03
+        Log: Remove I32 casts from pp_stat, these make stat()
+             very broken e.g. on files larger than 2 gigabytes.
+             Reported by
+             From: Phil Lobbes <phil@finchcomputer.com>
+             To: perl5-porters@perl.org
+             Subject: [ID 19990810.001] Possible bug using stat w/large files Digital
+             UNIX Perl 5.005_03
+             Date: Mon, 09 Aug 1999 21:38:54 -0700
+             Message-Id: <199908100438.VAA08292@ultra.finchcomputer.com>
+             
+             There are more of these I32 casts all over pp_sys.c,
+             all of them should be checked.
+     Branch: cfgperl
+          ! pp_sys.c
+____________________________________________________________________________
+[  3943] By: jhi                                   on 1999/08/10  07:38:30
+        Log: Remove blathering.
+     Branch: cfgperl
+          ! lib/unicode/mktables.PL
+____________________________________________________________________________
+[  3942] By: jhi                                   on 1999/08/09  20:35:13
+        Log: lexwarn maintenance: new warning class unsafe
+             subclasses 'overflow' and 'portable' created,
+             used by the recent integer overflow warnings.
+             Class syntax subclass 'octal' renamed to 'digit',
+             binary and hexadecimal parsing errors also 'digit' warnings.
+     Branch: cfgperl
+          ! lib/warning.pm pod/perllexwarn.pod t/pragma/warn/util toke.c
+          ! util.c warning.h warning.pl
+____________________________________________________________________________
+[  3941] By: jhi                                   on 1999/08/09  10:40:47
+        Log: Integrate with Nick.
+     Branch: cfgperl
+         +> opnames.h
+         !> Changes MANIFEST embed.h embed.pl ext/B/B/C.pm ext/B/B/CC.pm
+         !> global.sym opcode.h opcode.pl perl.h perlapi.c pp.c
+____________________________________________________________________________
+[  3940] By: jhi                                   on 1999/08/09  10:32:43
+        Log: Regenerate the Unicode tables after having updated the Unicode
+             database (change #3939).
+     Branch: cfgperl
+          ! (edit 157 files)
+____________________________________________________________________________
+[  3939] By: jhi                                   on 1999/08/09  10:27:22
+        Log: Unicode data updated to be the latest beta of the Unicode 3.0.
+     Branch: cfgperl
+          ! lib/unicode/UnicodeData-Latest.txt
+____________________________________________________________________________
+[  3938] By: jhi                                   on 1999/08/09  10:25:54
+        Log: Ethiopic changes via private email from Daniel Yacob,
+             <dmulholl@cs.indiana.edu>.  Ethiopic and Cherokee done,
+             Canadian Syllabics and Yi under construction.
+     Branch: cfgperl
+          + lib/unicode/syllables.txt
+          - lib/unicode/EthiopicSyllables.txt
+          - lib/unicode/MakeEthiopicSyllables.PL
+          ! MANIFEST lib/unicode/UnicodeData-Latest.txt
+          ! lib/unicode/mktables.PL
+____________________________________________________________________________
+[  3937] By: jhi                                   on 1999/08/09  10:21:51
+        Log: Move the equivalence class creation last.
+     Branch: cfgperl
+          ! lib/unicode/mktables.PL
+____________________________________________________________________________
+[  3936] By: jhi                                   on 1999/08/09  10:20:40
+        Log: Compute equivalence classes (diacritics stripping) only
+             for letters, not for ligatures.
+     Branch: cfgperl
+          ! lib/unicode/Eq/Latin1 lib/unicode/Eq/Unicode
+          ! lib/unicode/mktables.PL
+____________________________________________________________________________
+[  3935] By: nick                                  on 1999/08/08  13:53:57
+        Log: Will now correctly re-call 
+             bootstrap "Foo";
+             if requested. This should allow build on Win32 and other
+             platforms where you cannot link to loadables directly.
+     Branch: perl
+          ! ext/B/B/C.pm
+____________________________________________________________________________
+[  3934] By: nick                                  on 1999/08/07  12:23:55
+        Log: Vishal Bhatia <vishalb@my-deja.com>
+             Subject: [PATCH 5.005_60] fix for some obscure bugs (compiler)
+             Message-ID: <HLPEBPHPAKHKAAAA@my-deja.com>
+     Branch: perl
+          ! ext/B/B/CC.pm
+____________________________________________________________________________
+[  3933] By: nick                                  on 1999/08/07  12:19:46
+        Log: B::C changes to get simple Tk app. compiling again
+     Branch: perl
+          ! ext/B/B/C.pm
+____________________________________________________________________________
+[  3932] By: jhi                                   on 1999/08/06  21:17:16
+        Log: Regen Configure to include change #3915.
+     Branch: cfgperl
+          ! Configure config_h.SH
+____________________________________________________________________________
+[  3931] By: jhi                                   on 1999/08/06  18:52:57
+        Log: Todo update.
+     Branch: cfgperl
+          ! Todo Todo-5.005 lib/unicode/mktables.PL
+____________________________________________________________________________
+[  3930] By: jhi                                   on 1999/08/06  13:13:05
+        Log: Character class equivalence tables.
+     Branch: cfgperl
+          + lib/unicode/Eq/Latin1 lib/unicode/Eq/Unicode
+          ! MANIFEST lib/unicode/mktables.PL
+____________________________________________________________________________
+[  3929] By: jhi                                   on 1999/08/06  11:59:11
+        Log: More Fcntl constants.  (This process really needs
+             to be automated, at least partly, see the Errno extension.)
+             Now also the SEEK_ constants are available via the Fcntl.
+             Yes, this is redundant (IO::Seekable and POSIX supply them already),
+             but now Fcntl is a one-stop shopping mall for all your
+             file-related constants.   
+     Branch: cfgperl
+          ! ext/Fcntl/Fcntl.pm ext/Fcntl/Fcntl.xs pod/perlfunc.pod
+____________________________________________________________________________
+[  3928] By: jhi                                   on 1999/08/06  08:08:03
+        Log: Protect against pack/unpack repeat count overflows,
+             based on:
+             
+             From: Nathan Torkington <gnat@frii.com>
+             To: Brian Keefer <mgomes@cwix.com>
+             Cc: perl5-porters@perl.org
+             Subject: Re: [ID 19990806.001] Core dump with obfuscated code
+             Date: Thu, 5 Aug 1999 23:01:51 -0600 (MDT)
+             Message-ID: <14250.27711.769942.100675@localhost.frii.com>
+     Branch: cfgperl
+          ! pod/perldiag.pod pp.c
+____________________________________________________________________________
+[  3927] By: jhi                                   on 1999/08/06  07:32:20
+        Log: Fix for Nathan's fix (#3920) from Guy Decoux.
+             
+             From: Nathan Torkington <gnat@frii.com>
+             To: perl5-porters@perl.org
+             Subject: Bugfix for my bugfix
+             Date: Thu, 5 Aug 1999 21:25:47 -0600 (MDT)
+             Message-ID: <14250.21947.765134.940583@localhost.frii.com>
+     Branch: cfgperl
+          ! ext/B/B/Assembler.pm
+____________________________________________________________________________
+[  3926] By: jhi                                   on 1999/08/05  17:25:19
+        Log: Fix regex charclass parsing so that bogus ranges
+             like [0-\d] and [[:word:]-z] are no more allowed.
+             The anomaly was noticed by Guy Decoux.
+     Branch: cfgperl
+          ! pod/perldiag.pod pod/perlre.pod regcomp.c t/op/re_tests
+____________________________________________________________________________
+[  3925] By: jhi                                   on 1999/08/05  10:31:47
+        Log: split /^/ deprecation warning should not be on by default.
+     Branch: cfgperl
+          ! pp.c
+____________________________________________________________________________
+[  3923] By: jhi                                   on 1999/08/05  09:16:57
+        Log: From: paul.marquess@bt.com
+             To: jhi@iki.fi, paul.marquess@bt.com
+             Cc: gsar@ActiveState.com, perl5-porters@perl.org
+             Subject: RE: [PATCH 5.005_60] anydbm.t + DB_File + Berkeley DB >= 2.4.10
+             Date: Thu, 5 Aug 1999 09:33:14 +0100
+             Message-ID: <5104D4DBC598D211B5FE0000F8FE7EB202D49B26@mbtlipnt02.btlabs.bt.co.uk>
+     Branch: cfgperl
+          ! t/lib/anydbm.t
+____________________________________________________________________________
+[  3921] By: jhi                                   on 1999/08/05  08:05:13
+        Log: From: paul.marquess@bt.com
+             To: perl5-porters@perl.org
+             Cc: gsar@activestate.com, nik@tiuk.ti.com, jhi@iki.fi,
+             randy@theoryx5.uwinnipeg.ca
+             Subject:  [PATCH 5.005_60] DB_File 1.70
+             Date: Wed, 4 Aug 1999 23:22:22 +0100
+             Message-ID: <5104D4DBC598D211B5FE0000F8FE7EB202D49B21@mbtlipnt02.btlabs.bt.co.uk>
+             
+             (Replaces change #3917)
+     Branch: cfgperl
+          ! ext/DB_File/Changes ext/DB_File/DB_File.pm
+          ! ext/DB_File/DB_File.xs t/lib/db-btree.t t/lib/db-hash.t
+____________________________________________________________________________
+[  3920] By: jhi                                   on 1999/08/04  19:02:58
+        Log: From: Nathan Torkington <gnat@frii.com>
+             To: perl5-porters@perl.org
+             Subject: [5.005_60 PATCH] Make B::Bytecode work
+             Date: Wed, 4 Aug 1999 11:24:56 -0600 (MDT)
+             Message-ID: <14248.30568.769427.216092@localhost.frii.com>
+     Branch: cfgperl
+          ! ext/B/B/Assembler.pm
+____________________________________________________________________________
+[  3919] By: jhi                                   on 1999/08/04  10:56:26
+        Log: Update history records.
+     Branch: cfgperl
+          ! pod/perlhist.pod
+____________________________________________________________________________
+[  3918] By: jhi                                   on 1999/08/04  09:36:13
+        Log: Minor fixes to linux -Dusethreads -Duseperlio.
+     Branch: cfgperl
+          ! perlio.c
+____________________________________________________________________________
+[  3917] By: jhi                                   on 1999/08/04  08:13:20
+        Log: (Replaced by change #3921)
+             From: paul.marquess@bt.com
+             To: gsar@activestate.com
+             Cc: perl5-porters@perl.org
+             Subject: [PATCH 5.005_60] DB_File 1.69
+             Date: Tue, 3 Aug 1999 22:55:00 +0100
+             Message-ID: <5104D4DBC598D211B5FE0000F8FE7EB29C6D04@mbtlipnt02.btlabs.bt.co.uk>
+     Branch: cfgperl
+          ! ext/DB_File/Changes ext/DB_File/DB_File.pm
+          ! ext/DB_File/DB_File.xs t/lib/db-btree.t t/lib/db-hash.t
+____________________________________________________________________________
+[  3916] By: jhi                                   on 1999/08/04  07:59:05
+        Log: Introduce the charnames pragma.
+             
+             Subject: [PATCH 5.005_58] Free \C (for named chars), move to \O
+             From: Ilya Zakharevich <[9]ilya@math.ohio-state.edu>
+             To: Chip Salzenberg <[11]chip@perlsupport.com>
+             Cc: Mailing list Perl5 <[12]perl5-porters@perl.org>
+             Date: Sat, 31 Jul 1999 05:44:05 -0400
+             Message-Id: <[13]199907311407.IAA25042@localhost.frii.com>
+             
+             From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             To: Mailing list Perl5 <perl5-porters@perl.org>
+             Subject: [PATCH 5.005_58] Named characters in Perl
+             Date: Mon, 2 Aug 1999 19:25:40 -0400
+             Message-ID: <19990802192540.B24407@monk.mps.ohio-state.edu>
+     Branch: cfgperl
+          + lib/charnames.pm t/lib/charnames.t
+          ! MAINTAIN MANIFEST lib/utf8.pm pod/perldiag.pod pod/perlop.pod
+          ! pod/perlre.pod regcomp.c toke.c
+____________________________________________________________________________
+[  3915] By: jhi                                   on 1999/08/03  21:18:49
+        Log: Support Configure -Dmake=pmake.
+             Via private email from Andy.
+             NOTE: assumes "basename" command.
+     Branch: metaconfig
+          ! U/modified/Config_sh.U
+____________________________________________________________________________
+[  3914] By: jhi                                   on 1999/08/03  21:11:11
+        Log: The op/filetest.t failed subtest 7 if testing as root.
+             
+             From: =?iso-8859-1?Q?Fran=E7ois=20D=E9sarm=E9nien?= <desar@club-internet.fr>
+             To: perl5-porters@perl.org
+             Subject: [ID 19990727.039] Not OK: perl 5.00558 on i386-sco 3.2v5.0.4
+             Date: Tue, 27 Jul 1999 22:54:05 +0200
+             Message-Id: <379E1C6D.626DC765@club-internet.fr>
+     Branch: cfgperl
+          ! t/op/filetest.t
+____________________________________________________________________________
+[  3911] By: jhi                                   on 1999/08/03  19:52:38
+        Log: The "-Dusethreads -Duseperlio" combination failed.
+             
+             From: Spider Boardman <spider@leggy.zk3.dec.com>
+             To: perl5-porters@perl.org
+             Subject: [ID 19990803.007] Not OK: perl 5.00560 on alpha-dec_osf-thread
+             4.0 (UNINSTALLED)
+             Date: Tue, 3 Aug 1999 14:25:00 -0400
+             Message-Id: <199908031825.OAA29254@leggy.zk3.dec.com>
+             
+             See also change #3912.
+     Branch: cfgperl
+          ! perlio.c
+____________________________________________________________________________
+[  3910] By: jhi                                   on 1999/08/03  10:44:24
+        Log: From: Chris Nandor <pudge@pobox.com>
+             To: perl5-porters@perl.org
+             Subject: [PATCH 5.005_58] perlbug.PL 1.27
+             Date: Wed, 28 Jul 1999 23:42:49 -0400
+             Message-Id: <v04210104b3c57ce9e3de@[152.167.11.247]>
+     Branch: cfgperl
+          ! utils/perlbug.PL
+____________________________________________________________________________
+[  3909] By: jhi                                   on 1999/08/03  10:41:04
+        Log: Hints for building ByteLoader in SunoS.  Based on
+             From: Andy Dougherty <doughera@lafayette.edu>
+             To: Gurusamy Sarathy <gsar@activestate.com>
+             Cc: Perl Porters <perl5-porters@perl.org>
+             Subject: Re: 5.005_58 Not OK SunOS 4.1.3
+             Date: Mon, 2 Aug 1999 14:01:58 -0400 (EDT)
+             Message-Id: <Pine.GSU.4.05.9908021357410.5873-100000@newton.phys>
+     Branch: cfgperl
+          + ext/ByteLoader/hints/sunos.pl
+          ! MANIFEST ext/ByteLoader/ByteLoader.xs
+____________________________________________________________________________
+[  3908] By: jhi                                   on 1999/08/03  09:29:22
+        Log: Clarify RE engine code; inline a static function to a macro;
+             make exact string nodes smaller.
+             
+             From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             To: perl5-porters@perl.org (Mailing list Perl5)
+             Subject: [PATCH 5.005_60] Cosmetic change to REx engine
+             Date: Mon, 2 Aug 1999 21:53:36 -0400 (EDT)
+             Message-Id: <199908030153.VAA10542@monk.mps.ohio-state.edu>
+     Branch: cfgperl
+          ! Makefile.SH embed.pl global.sym keywords.h lib/warning.pm
+          ! opcode.h pp.sym pp_proto.h regcomp.c regcomp.h regexec.c
+          ! regnodes.h warning.h
+____________________________________________________________________________
+[  3907] By: jhi                                   on 1999/08/03  08:11:49
+        Log: 5_59 configured with -Dd_bincompat5005 can't be made
+             binary compatible with a 5_03 which was built with -DEMBEDMYMALLOC.
+             
+             From: Spider Boardman <spider@leggy.zk3.dec.com>
+             To: perl5-porters@perl.org
+             Subject: [ID 19990802.016] Not OK: perl 5.00559
+             Date: Mon, 2 Aug 1999 16:11:13 -0400
+             Message-Id: <199908022011.QAA30224@leggy.zk3.dec.com>
+     Branch: cfgperl
+          ! embed.pl
+____________________________________________________________________________
+[  3906] By: jhi                                   on 1999/08/03  07:48:59
+        Log: Change #3790 redemption: with a little additional
+             patch from Ilya it works okay.
+     Branch: cfgperl
+          ! ext/SDBM_File/Makefile.PL lib/ExtUtils/MM_Unix.pm
+          ! lib/ExtUtils/MakeMaker.pm os2/OS2/REXX/Makefile.PL perl.h
+____________________________________________________________________________
+[  3905] By: gsar                                  on 1999/08/02  21:03:23
+        Log: this will be 5.005_60
+     Branch: perl
+          ! Changes
+
+----------------
+Version 5.005_60
+----------------
+
+____________________________________________________________________________
+[  3904] By: gsar                                  on 1999/08/02  20:30:23
+        Log: don't enable PERL_POLLUTE_MALLOC when EMBEDMYMALLOC is
+             in effect (from Spider Boardman <spider@leggy.zk3.dec.com>);
+             regen headers
+     Branch: perl
+          ! embed.h embed.pl global.sym opcode.h perlapi.c
+____________________________________________________________________________
+[  3903] By: gsar                                  on 1999/08/02  20:26:07
+        Log: native int pack/unpack fixes (from Spider Boardman
+             <spider@leggy.zk3.dec.com>)
+     Branch: perl
+          ! pp.c
+____________________________________________________________________________
+[  3902] By: gsar                                  on 1999/08/02  20:24:41
+        Log: fix broken -DDEBUGGING_OPS (from Spider Boardman
+             <spider@leggy.zk3.dec.com>)
+     Branch: perl
+          + opnames.h
+          ! Changes MANIFEST opcode.pl perl.h
+____________________________________________________________________________
+[  3901] By: gsar                                  on 1999/08/02  18:51:18
+        Log: integrate cfgperl contents
+     Branch: perl
+         !> INSTALL README pod/perldelta.pod
+____________________________________________________________________________
+[  3900] By: jhi                                   on 1999/08/02  18:46:21
+        Log: Update README and INSTALL; partly based on the message
+             
+             From: "John L. Allen" <allen@grumman.com>
+             To: Jarkko Hietaniemi <jhi@iki.fi>
+             cc: perl5-porters@perl.org
+             Subject: Re: Perl Installation Problem
+             Date: Thu, 29 Jul 1999 14:55:05 -0400 (EDT)
+             Message-ID: <Pine.SOL.3.91.990729144440.1035A-100000@gateway.grumman.com>
+             
+             and private email from Andy Dougherty.
+     Branch: cfgperl
+          ! INSTALL README
+____________________________________________________________________________
+[  3899] By: jhi                                   on 1999/08/02  18:36:35
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> op.c
+____________________________________________________________________________
+[  3898] By: jhi                                   on 1999/08/02  18:34:49
+        Log: Update PERL_BINCOMPAT_5005; update 64-bitness.
+     Branch: cfgperl
+          ! pod/perldelta.pod
+____________________________________________________________________________
+[  3897] By: gsar                                  on 1999/08/02  18:18:37
+        Log: optimizations could sometimes bypass bareword check
+     Branch: perl
+          ! op.c
+____________________________________________________________________________
+[  3896] By: jhi                                   on 1999/08/02  18:18:34
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> Changes makedef.pl patchlevel.h win32/Makefile
+         !> win32/config_H.bc win32/config_H.gc win32/config_H.vc
+         !> win32/makefile.mk
+____________________________________________________________________________
+[  3895] By: gsar                                  on 1999/08/02  17:22:40
+        Log: up patchlevel etc.
+     Branch: perl
+          ! Changes patchlevel.h win32/Makefile win32/config_H.bc
+          ! win32/config_H.gc win32/config_H.vc win32/makefile.mk
+____________________________________________________________________________
+[  3894] By: gsar                                  on 1999/08/02  17:12:31
+        Log: integrate change#3893, make it conditional on bincompat5005
+     Branch: perl
+          ! makedef.pl
+____________________________________________________________________________
+[  3893] By: jhi                                   on 1999/08/02  16:49:08
+        Log: PERL_BINCOMPAT_5005 symbol translation.
+             (AIX wouldn't link neither perl nor extensions.)
+     Branch: cfgperl
+          ! makedef.pl
+____________________________________________________________________________
+[  3892] By: gsar                                  on 1999/08/02  16:09:13
+        Log: integrate cfgperl contents into mainline
+     Branch: perl
+         +> t/op/64bit.t
+          ! Changes
+         !> Configure MANIFEST config_h.SH doio.c dump.c hints/aix.sh op.c
+         !> pod/perlfunc.pod pp_hot.c pp_sys.c regcomp.c sv.c t/io/open.t
+         !> t/pragma/utf8.t t/pragma/warn/pp_hot toke.c util.c
+____________________________________________________________________________
+[  3891] By: jhi                                   on 1999/08/02  14:52:40
+        Log: AIX long long probing requires LL suffix for
+             the ll constant.  The suffix doesn't seem
+             to bother other ll platforms.
+     Branch: cfgperl
+          ! Configure config_h.SH hints/aix.sh
+     Branch: metaconfig/U/perl
+          ! quadfio.U
+____________________________________________________________________________
+[  3890] By: jhi                                   on 1999/08/02  14:21:55
+        Log: Exact path to perl for open -|.
+     Branch: cfgperl
+          ! t/io/open.t
+____________________________________________________________________________
+[  3889] By: jhi                                   on 1999/08/02  14:18:03
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> Changes patchlevel.h pod/perlhist.pod pp_ctl.c util.c
+         !> win32/Makefile win32/config_H.bc win32/config_H.gc
+         !> win32/config_H.vc win32/makefile.mk win32/win32.c
+____________________________________________________________________________
+[  3888] By: jhi                                   on 1999/08/02  14:14:29
+        Log: AIX -Duse64bits: old AIXen do not have the getconf variables.
+     Branch: cfgperl
+          ! hints/aix.sh
+____________________________________________________________________________
+[  3887] By: jhi                                   on 1999/08/02  12:53:10
+        Log: Fix some of the {IV_IS_QUAD,UV_IS_QUAD} cases so that
+             emacs code indentation doesn't get wrong ideas--
+             in other words, introduce a couple of "redundant" if:s.
+     Branch: cfgperl
+          ! doio.c dump.c op.c pp_hot.c pp_sys.c regcomp.c sv.c toke.c
+          ! util.c
+____________________________________________________________________________
+[  3886] By: jhi                                   on 1999/08/02  12:43:16
+        Log: Mention that also *BSD systems with glibc are known to stumble.
+     Branch: cfgperl
+          ! t/pragma/warn/pp_hot
+____________________________________________________________________________
+[  3885] By: jhi                                   on 1999/08/02  12:34:15
+        Log: Allow also non-long long but still quad platforms print quads.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig/U/perl
+          ! longdblfio.U quadfio.U
+____________________________________________________________________________
+[  3884] By: jhi                                   on 1999/08/02  11:56:14
+        Log: Fix regclass utf8 hex ranges for quads.
+     Branch: cfgperl
+          ! regcomp.c
+____________________________________________________________________________
+[  3883] By: jhi                                   on 1999/08/02  11:42:14
+        Log: Enhance the description of how to detect quad support.
+     Branch: cfgperl
+          ! pod/perlfunc.pod
+____________________________________________________________________________
+[  3882] By: jhi                                   on 1999/08/02  11:22:19
+        Log: Fix printf %D %U %O for quads.
+     Branch: cfgperl
+          ! sv.c t/op/64bit.t
+____________________________________________________________________________
+[  3881] By: jhi                                   on 1999/08/02  11:16:12
+        Log: Document quad printing.
+     Branch: cfgperl
+          ! pod/perlfunc.pod
+____________________________________________________________________________
+[  3880] By: jhi                                   on 1999/08/02  10:32:01
+        Log: More 64-bit fixing.  One known bug of that kind
+             remains, 32-bit platforms using long long in
+             the test t/pragma/utf8 subtests 1-3 fail.
+             (Update: change   #3884 fixed that one.)
+     Branch: cfgperl
+          + t/op/64bit.t
+          ! Configure MANIFEST config_h.SH regcomp.c sv.c t/pragma/utf8.t
+
+----------------
+Version 5.005_59
+----------------
+
+____________________________________________________________________________
+[  3879] By: gsar                                  on 1999/08/02  08:18:58
+        Log: integrate cfgperl changes into mainline
+     Branch: perl
+         !> Configure config_h.SH sv.c
+____________________________________________________________________________
+[  3878] By: gsar                                  on 1999/08/02  08:13:16
+        Log: change#3692 had an unintentional patch leak through!
+             (this would explain the mysterious C<next LABEL> failures
+             people have seen)
+     Branch: perl
+          ! pp_ctl.c
+____________________________________________________________________________
+[  3877] By: gsar                                  on 1999/08/02  08:00:29
+        Log: up patchlevel to 59
+     Branch: perl
+          ! Changes patchlevel.h pod/perlhist.pod win32/Makefile
+          ! win32/config_H.bc win32/config_H.gc win32/config_H.vc
+          ! win32/makefile.mk
+____________________________________________________________________________
+[  3876] By: gsar                                  on 1999/08/02  07:51:18
+        Log: fix coredump under usethreads+debug
+     Branch: perl
+          ! util.c
+____________________________________________________________________________
+[  3875] By: jhi                                   on 1999/08/02  07:50:51
+        Log: d_bincompat5005 could be left empty.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig/U/perl
+          ! bincompat5005.U
+____________________________________________________________________________
+[  3874] By: jhi                                   on 1999/08/02  07:42:45
+        Log: Fix printf %d when IV is quad.
+     Branch: cfgperl
+          ! sv.c
+____________________________________________________________________________
+[  3873] By: gsar                                  on 1999/08/02  07:41:03
+        Log: fix d_bincompat5005='' junking config.h
+     Branch: perl
+          ! Configure
+____________________________________________________________________________
+[  3872] By: gsar                                  on 1999/08/02  07:38:48
+        Log: C needs parameter list, not merely type
+     Branch: perl
+          ! win32/win32.c
+____________________________________________________________________________
+[  3871] By: jhi                                   on 1999/08/02  07:20:51
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> Changes ext/B/B/C.pm ext/B/B/CC.pm regexec.c
+____________________________________________________________________________
+[  3870] By: gsar                                  on 1999/08/02  07:12:18
+        Log: integrate cfgperl changes into mainline
+     Branch: perl
+          ! Changes
+         !> Configure Makefile.SH Porting/Glossary Porting/config.sh
+         !> Porting/config_H config_h.SH doio.c dump.c mg.c op.c perl.h
+         !> pp_ctl.c pp_hot.c pp_sys.c scope.c sv.c t/pragma/warn/sv
+         !> toke.c util.c
+____________________________________________________________________________
+[  3869] By: gsar                                  on 1999/08/02  06:59:09
+        Log: From: "Vishal Bhatia" <vishalb@my-deja.com>
+             Date: Sat, 31 Jul 1999 19:08:33 -0700
+             Message-ID: <LAONLKLELDJAFAAA@my-deja.com>
+             Subject: [PATCH 5.005_58] "use constant" in the compiler
+     Branch: perl
+          ! ext/B/B/C.pm ext/B/B/CC.pm
+____________________________________________________________________________
+[  3868] By: gsar                                  on 1999/08/02  06:55:51
+        Log: debug build tweak
+     Branch: perl
+          ! regexec.c
+____________________________________________________________________________
+[  3867] By: gsar                                  on 1999/08/02  06:35:18
+        Log: create vmsperl branch (to be owned and operated by: cbailey)
+     Branch: vmsperl
+         +> (branch 1476 files)
+____________________________________________________________________________
+[  3866] By: jhi                                   on 1999/08/01  23:34:40
+        Log: so_locations once is enough.
+     Branch: cfgperl
+          ! Makefile.SH
+____________________________________________________________________________
+[  3865] By: jhi                                   on 1999/08/01  23:13:05
+        Log: Simplicate duplicated code.
+     Branch: cfgperl
+          ! util.c
+____________________________________________________________________________
+[  3864] By: jhi                                   on 1999/08/01  22:41:41
+        Log: Integrate with Sarathy.  perl.h and util.c required manual resolving.
+     Branch: cfgperl
+         +> README.cygwin cygwin/Makefile.SHs cygwin/ld2.in
+         +> cygwin/perlld.in ext/DynaLoader/dl_cygwin.xs hints/cygwin.sh
+          - README.cygwin32 cygwin32/Makefile.SHs
+          - cygwin32/build-instructions.READFIRST
+          - cygwin32/build-instructions.charles-wilson
+          - cygwin32/build-instructions.sebastien-barre
+          - cygwin32/build-instructions.steven-morlock
+          - cygwin32/build-instructions.steven-morlock2 cygwin32/ld2.in
+          - cygwin32/perlld.in ext/DynaLoader/dl_cygwin32.xs
+          - hints/cygwin32.sh
+         !> (integrate 61 files)
+____________________________________________________________________________
+[  3863] By: jhi                                   on 1999/08/01  22:36:02
+        Log: Regen Configure and Glossary once again.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH
+____________________________________________________________________________
+[  3862] By: jhi                                   on 1999/08/01  22:26:09
+        Log: Glossary update for #3861.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH
+____________________________________________________________________________
+[  3861] By: jhi                                   on 1999/08/01  22:22:51
+        Log: 64-bit work.  Now 32-bit platforms get a 100% make test
+             with -Duse64bits (using long long).
+             Tested in Solaris 2.6 sparc  RH Linux 6.0 x86
+             (and Digital IX 4.0D, to get a true 64-bit opinion).  Now e.g.
+             'print unpack "q", pack "q", 12345678901'
+             should work on such 32-bit platforms.
+             Still a lot of printf()s behind -D which wrongly assume
+             that %ld/%lx and (long) are a good combination.
+             Introducing a slew of new macros intended to be used in printf()
+             format strings: e. g. PERL_PRId64 is the string to be used
+             when printing an IV, printf("%" PERL_PRId64 "\n", iv).
+             The PRI... naming follows the C9X naming of <inttypes.h> macros.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH doio.c dump.c mg.c op.c perl.h pp_ctl.c pp_hot.c
+          ! pp_sys.c scope.c sv.c t/pragma/warn/sv toke.c util.c
+     Branch: metaconfig/U/perl
+          + atolf.U atoll.U longdblfio.U quadfio.U strtoull.U
+____________________________________________________________________________
+[  3860] By: gsar                                  on 1999/08/01  21:23:18
+        Log: integrate cfgperl contents into mainline
+     Branch: perl
+          ! toke.c
+         !> (integrate 29 files)
+____________________________________________________________________________
+[  3859] By: gsar                                  on 1999/08/01  21:13:09
+        Log: From: Nathan Torkington <gnat@frii.com>
+             Date: Sun, 1 Aug 1999 11:23:35 -0600 (MDT)
+             Message-ID: <14244.33431.739419.806927@localhost.frii.com>
+             Subject: [PATCH 5.005_58] ext/B/B/Disassembler.pm patch
+     Branch: perl
+          ! ext/B/B/Disassembler.pm
+____________________________________________________________________________
+[  3858] By: gsar                                  on 1999/08/01  21:09:15
+        Log: DB_File 1.68 update from Paul Marquess
+     Branch: perl
+          ! ext/DB_File/Changes ext/DB_File/DB_File.pm
+          ! ext/DB_File/DB_File.xs t/lib/db-btree.t t/lib/db-hash.t
+          ! t/lib/db-recno.t
+____________________________________________________________________________
+[  3857] By: gsar                                  on 1999/08/01  21:05:54
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Sat, 31 Jul 1999 05:13:38 -0400
+             Message-Id: <199907311407.IAA25038@localhost.frii.com>
+             Subject: [PATCH 5.005_58] More optimizations to REx engine
+     Branch: perl
+          ! embed.pl embedvar.h ext/Thread/Thread.xs objXSUB.h perl.c
+          ! perl.h proto.h regcomp.c regexec.c t/op/re_tests thrdvar.h
+____________________________________________________________________________
+[  3856] By: gsar                                  on 1999/08/01  20:59:59
+        Log: slightly modified version of suggested patch
+             From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Sat, 31 Jul 1999 04:45:12 -0400
+             Message-Id: <199907311406.IAA25034@localhost.frii.com>
+             Subject: [PATCH 5.005_58] Fix OS/2 build
+     Branch: perl
+          ! Makefile.SH lib/ExtUtils/MM_OS2.pm lib/ExtUtils/Mksymlists.pm
+          ! makedef.pl os2/Makefile.SHs os2/diff.configure perl.h sv.h
+____________________________________________________________________________
+[  3855] By: gsar                                  on 1999/08/01  20:49:06
+        Log: cygwin update
+             From: "Fifer, Eric" <EFifer@sanwaint.com>
+             Date: Fri, 30 Jul 1999 18:31:48 +0100
+             Message-Id: <71E287AB0D94D111BBD600600849EC8185EE06@POST>
+             Subject: [ID 19990730.003] PATCH] perl5.005_58 cygwin port
+     Branch: perl
+          ! doio.c dosish.h lib/File/Spec/Unix.pm mg.c perl.h perlsdio.h
+          ! pp_sys.c unixish.h util.c
+____________________________________________________________________________
+[  3854] By: gsar                                  on 1999/08/01  20:41:53
+        Log: fixes from Stephen McCamant that address bugs in change#3612
+             (the optimization shouldn't be enabled in expressions where
+             the variable is introduced), and fix Deparse to grok the
+             optimization
+             Date: Thu, 29 Jul 1999 21:21:49 -0500 (CDT)
+             Message-ID: <14241.3133.979257.953396@alias-2.pr.mcs.net>
+             Subject: [PATCH _58] Set OPpTARGET_MY more consistently
+             --
+             Date: Thu, 29 Jul 1999 22:31:16 -0500 (CDT)
+             Message-ID: <14241.7300.181386.763503@alias-2.pr.mcs.net>
+             Subject: [PATCH _58] Disable TARGET_MY-ization on variable introduction
+             --
+             Date: Fri, 30 Jul 1999 22:25:27 -0500 (CDT)
+             Message-Id: <199907310326.VAA24376@localhost.frii.com>
+             Subject: [PATCH _58, long] B::Deparse (was Re: New warning 'Useless use of...')
+     Branch: perl
+          ! ext/B/B/Deparse.pm op.c
+____________________________________________________________________________
+[  3853] By: gsar                                  on 1999/08/01  20:31:32
+        Log: From: Stephen McCamant <smccam@uclink4.berkeley.edu>
+             Date: Thu, 29 Jul 1999 14:08:50 -0500 (CDT)
+             Message-ID: <14240.42690.292893.605292@alias-2.pr.mcs.net>
+             Subject: [PATCH _58] Two one-liner LOGOP tweaks
+     Branch: perl
+          ! op.c opcode.h opcode.pl
+____________________________________________________________________________
+[  3852] By: gsar                                  on 1999/08/01  20:29:17
+        Log: rename cygwin32 to cygwin (from Eric Fifer <EFifer@sanwaint.com>)
+     Branch: perl
+          ! AUTHORS EXTERN.h INSTALL MAINTAIN Makefile.SH Porting/patchls
+          ! README.cygwin README.win32 XSUB.h cygwin/Makefile.SHs
+          ! ext/DynaLoader/dl_cygwin.xs ext/POSIX/POSIX.xs
+          ! ext/SDBM_File/sdbm/pair.c hints/cygwin.sh
+          ! lib/ExtUtils/MM_Cygwin.pm makedepend.SH perl.h pod/perl.pod
+          ! pod/perlport.pod pp_sys.c util.c
+____________________________________________________________________________
+[  3851] By: gsar                                  on 1999/08/01  20:20:05
+        Log: move files around for s/cygwin32/cygwin/ renaming
+     Branch: perl
+         +> README.cygwin cygwin/Makefile.SHs cygwin/ld2.in
+         +> cygwin/perlld.in ext/DynaLoader/dl_cygwin.xs hints/cygwin.sh
+          - README.cygwin32 cygwin32/Makefile.SHs
+          - cygwin32/build-instructions.READFIRST
+          - cygwin32/build-instructions.charles-wilson
+          - cygwin32/build-instructions.sebastien-barre
+          - cygwin32/build-instructions.steven-morlock
+          - cygwin32/build-instructions.steven-morlock2 cygwin32/ld2.in
+          - cygwin32/perlld.in ext/DynaLoader/dl_cygwin32.xs
+          - hints/cygwin32.sh
+          ! MANIFEST
+____________________________________________________________________________
+[  3850] By: gsar                                  on 1999/08/01  20:05:14
+        Log: posix-bc hints tweak (via private mail from Thomas Dorner
+             <Thomas.Dorner@start.de>)
+     Branch: perl
+          ! Changes hints/posix-bc.sh
+____________________________________________________________________________
+[  3849] By: gsar                                  on 1999/08/01  19:50:20
+        Log: notes on PERL_IMPLICIT_CONTEXT (from a version by Nathan Torkington
+             <gnat@frii.com>)
+     Branch: perl
+          ! perl.h pod/perldelta.pod pod/perlguts.pod
+____________________________________________________________________________
+[  3848] By: gsar                                  on 1999/08/01  18:34:41
+        Log: fix defined(@foo) encarpments
+     Branch: perl
+          ! ext/B/B/C.pm lib/CGI.pm lib/Dumpvalue.pm lib/dumpvar.pl
+          ! pod/perltrap.pod
+____________________________________________________________________________
+[  3847] By: jhi                                   on 1999/08/01  17:17:07
+        Log: Undo #3790 and the patches that attempted to fix it
+             (#3837, #3838, #3845).  The #3790 caused linkage failures
+             and/or core dumps in Solaris 2.6, Digital UNIX 4.0D, and
+             IRIX 6.5.
+     Branch: cfgperl
+          - ext/SDBM_File/hints/dec_osf.pl ext/SDBM_File/hints/solaris.pl
+          ! MANIFEST ext/SDBM_File/Makefile.PL lib/ExtUtils/MM_Unix.pm
+          ! lib/ExtUtils/MakeMaker.pm os2/OS2/REXX/Makefile.PL perl.h
+____________________________________________________________________________
+[  3846] By: jhi                                   on 1999/08/01  11:41:52
+        Log: Reading 64-bit decimal numbers was broken because
+             the NV was cast to an I32, not an IV.
+     Branch: cfgperl
+          ! toke.c
+____________________________________________________________________________
+[  3845] By: jhi                                   on 1999/08/01  11:00:24
+        Log: Solaris doesn't like PERL_MALLOC_OK in SDBM_File.
+     Branch: cfgperl
+          + ext/SDBM_File/hints/solaris.pl
+____________________________________________________________________________
+[  3844] By: jhi                                   on 1999/08/01  10:55:44
+        Log: Enable Solaris largefiles support only if -Duse64bits is used.
+             (Effectively removes #3311).
+     Branch: cfgperl
+          ! hints/solaris_2.sh
+____________________________________________________________________________
+[  3843] By: jhi                                   on 1999/07/31  22:44:56
+        Log: Integer overflow iteration.
+     Branch: cfgperl
+          ! t/op/oct.t toke.c util.c
+____________________________________________________________________________
+[  3842] By: jhi                                   on 1999/07/31  22:11:03
+        Log: Remove a lot of unused regnode codes.
+             Noticed by Ilya.
+     Branch: cfgperl
+          ! regcomp.c regcomp.sym regexec.c regnodes.h
+____________________________________________________________________________
+[  3841] By: jhi                                   on 1999/07/31  21:53:54
+        Log: Make the use64bits and usethreads friendlier/braver;
+             they no more wimp out if the platform is unknown.
+             On use64bits if gcc used -DUSE_LONG_LONG is added
+             to the ccflags (this dependency on gcc caused a slightly weird
+             reordering of Configure, but things still seem to work.)
+     Branch: cfgperl
+          ! Configure README.threads config_h.SH
+     Branch: metaconfig
+          ! U/threads/usethreads.U
+     Branch: metaconfig/U/perl
+          ! use64bits.U
+____________________________________________________________________________
+[  3840] By: jhi                                   on 1999/07/31  20:26:22
+        Log: Hack the "integer overflow" code some more.
+     Branch: cfgperl
+          ! perl.h toke.c util.c
+____________________________________________________________________________
+[  3839] By: jhi                                   on 1999/07/31  20:22:00
+        Log: Test oct() at the 2^32-1 limit.
+     Branch: cfgperl
+          ! t/op/oct.t
+____________________________________________________________________________
+[  3838] By: jhi                                   on 1999/07/31  20:08:43
+        Log: Update MANIFEST for #3837.
+     Branch: cfgperl
+          ! MANIFEST
+____________________________________________________________________________
+[  3837] By: jhi                                   on 1999/07/31  20:02:40
+        Log: Digital UNIX 4.0D doesn't like perl malloc on sdbm
+             (a core dump with a corrput stack ensues).
+     Branch: cfgperl
+          + ext/SDBM_File/hints/dec_osf.pl
+____________________________________________________________________________
+[  3836] By: jhi                                   on 1999/07/29  21:09:01
+        Log: Allow for Configure -Ubincompat5005 override.
+     Branch: cfgperl
+          ! Configure config_h.SH
+     Branch: metaconfig/U/perl
+          ! bincompat5005.U
+____________________________________________________________________________
+[  3835] By: jhi                                   on 1999/07/29  21:04:02
+        Log: Make Configure support PERL_BINCOMPAT_5005.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH
+     Branch: metaconfig/U/perl
+          + bincompat5005.U
+____________________________________________________________________________
+[  3834] By: jhi                                   on 1999/07/29  19:25:35
+        Log: AIX tweak, need reported by David R. Fravor <dfavor@austin.ibm.com> 
+     Branch: cfgperl
+          ! Makefile.SH
+____________________________________________________________________________
+[  3833] By: jhi                                   on 1999/07/29  14:07:09
+        Log: Integrate with Sarathy.  I overruled on perldelta
+             and perldiag.
+     Branch: cfgperl
+         !> README.win32 emacs/cperl-mode.el globals.c installperl
+         !> iperlsys.h makedef.pl perl.h pod/perldelta.pod
+         !> pod/perldiag.pod pod/perllexwarn.pod toke.c utils/perldoc.PL
+         !> win32/Makefile win32/bin/pl2bat.pl win32/makefile.mk
+         !> win32/perllib.c win32/win32.c
+____________________________________________________________________________
+[  3832] By: jhi                                   on 1999/07/29  14:02:50
+        Log: Repent and make overly large integerish
+             constants non-fatal.  They are now promoted
+             to NVs, accompanied by an overflow warning that
+             is by default on.
+     Branch: cfgperl
+          ! embed.pl global.sym pod/perldelta.pod pod/perldiag.pod pp.c
+          ! proto.h t/op/oct.t t/pragma/warn/6default t/pragma/warn/util
+          ! toke.c util.c
+____________________________________________________________________________
+[  3831] By: jhi                                   on 1999/07/29  11:40:04
+        Log: AIX exhibits different error on failed system().
+             Slightly modified patch via private email from
+             David R. Favor <dfavor@austin.ibm.com>
+     Branch: cfgperl
+          ! t/op/exec.t
+____________________________________________________________________________
+[  3830] By: gsar                                  on 1999/07/29  07:46:11
+        Log: cperl-mode.el v4.19
+     Branch: perl
+          ! emacs/cperl-mode.el
+____________________________________________________________________________
+[  3829] By: gsar                                  on 1999/07/29  07:30:35
+        Log: From: jan.dubois@ibm.net (Jan Dubois)
+             Date: Wed, 28 Jul 1999 22:01:42 +0200
+             Message-ID: <37aa5f9b.12941448@smtp1.ibm.net>
+             Subject: [PATCH 5.005_58] win32/bin/pl2bat.pl doesn't work correctly
+     Branch: perl
+          ! win32/bin/pl2bat.pl
+____________________________________________________________________________
+[  3828] By: gsar                                  on 1999/07/29  07:19:27
+        Log: tweak previous change for multiple hits
+     Branch: perl
+          ! utils/perldoc.PL
+____________________________________________________________________________
+[  3827] By: gsar                                  on 1999/07/29  07:10:00
+        Log: band-aid for perldoc -t broken-ness (the new Pod::Text
+             really needs a pod2text() compatibility function)
+     Branch: perl
+          ! utils/perldoc.PL
+____________________________________________________________________________
+[  3826] By: gsar                                  on 1999/07/29  01:33:46
+        Log: minor tweaks to pods and toke.c comments
+     Branch: perl
+          ! pod/perldelta.pod pod/perldiag.pod pod/perllexwarn.pod toke.c
+____________________________________________________________________________
+[  3825] By: gsar                                  on 1999/07/29  00:12:52
+        Log: integrate cfgperl changes into mainline
+     Branch: perl
+         !> Configure Porting/Glossary Porting/config.sh Porting/config_H
+         !> README.threads config_h.SH ext/IO/lib/IO/Handle.pm
+         !> ext/IO/lib/IO/Socket.pm ext/IO/lib/IO/Socket/INET.pm
+         !> ext/POSIX/POSIX.xs lib/ExtUtils/Install.pm perl.h
+         !> pod/perldelta.pod pod/perldiag.pod pod/perlfunc.pod
+         !> pod/perllexwarn.pod pod/perlre.pod pp.c pp_sys.c
+         !> t/lib/io_unix.t t/op/oct.t t/pragma/warn/6default
+         !> t/pragma/warn/util toke.c util.c
+____________________________________________________________________________
+[  3824] By: jhi                                   on 1999/07/28  21:15:04
+        Log: Tiny patch to go over #3820 (via private mail from Lincoln).
+     Branch: cfgperl
+          ! ext/IO/lib/IO/Handle.pm ext/IO/lib/IO/Socket.pm
+          ! ext/IO/lib/IO/Socket/INET.pm
+____________________________________________________________________________
+[  3823] By: jhi                                   on 1999/07/28  20:29:17
+        Log: Continue pack() doc honing.
+     Branch: cfgperl
+          ! pod/perlfunc.pod
+____________________________________________________________________________
+[  3822] By: jhi                                   on 1999/07/28  20:17:37
+        Log: Enhance pack() doc.
+     Branch: cfgperl
+          ! pod/perlfunc.pod
+____________________________________________________________________________
+[  3821] By: jhi                                   on 1999/07/28  18:34:50
+        Log: UNIX Domain Sockets are not implemented under QNX.
+             
+             From: Norton Allen <allen@huarp.harvard.edu>
+             To: perl5-porters@perl.org
+             Subject: [ID 19990728.010] Patch:t/lib/io_unix.t _58 QNX
+             Date: Wed, 28 Jul 1999 14:07:16 -0400 (edt)
+             Message-Id: <199907281807.OAA13167@bottesini.harvard.edu>
+     Branch: cfgperl
+          ! t/lib/io_unix.t
+____________________________________________________________________________
+[  3820] By: jhi                                   on 1999/07/28  18:13:37
+        Log: IO::* enhancements.
+             
+             1) write() and syswrite() will now accept a single-argument
+             form of the call, for consistency with Perl's syswrite().
+             2) You can create a TCP-based IO::Socket::INET without forcing
+             a connect attempt.  This allows you to configure its options
+             (like making it non-blocking) and then call connect() manually.
+             3) Fixed a bug that prevented the IO::Socket::protocol() accessor
+             from ever returning the correct value.
+             
+             From: Lincoln Stein <lstein@formaggio.cshl.org>
+             To: Graham Barr <gbarr@pobox.com>
+             Cc: Lincoln Stein <lstein@cshl.org>, perl5-porters@perl.org
+             Subject: Re: patch for IO::*
+             Date: Wed, 28 Jul 1999 13:55:05 -0400 (EDT)
+             Message-ID: <14239.17401.330408.145295@formaggio.cshl.org>
+     Branch: cfgperl
+          ! ext/IO/lib/IO/Handle.pm ext/IO/lib/IO/Socket.pm
+          ! ext/IO/lib/IO/Socket/INET.pm
+____________________________________________________________________________
+[  3819] By: gsar                                  on 1999/07/28  18:08:06
+        Log: misc PERL_OBJECT tweaks; perlcore.dll is now perl56.dll
+     Branch: perl
+          ! README.win32 globals.c installperl iperlsys.h makedef.pl
+          ! perl.h win32/Makefile win32/makefile.mk win32/perllib.c
+          ! win32/win32.c
+____________________________________________________________________________
+[  3818] By: jhi                                   on 1999/07/28  17:48:16
+        Log: Need to add QNX to the list for DONT_DECLARE_STD.
+             (The elimination of use of the _() macro apparently triggered
+             an incompatability with a #define of atof)
+             
+             From: Norton Allen <allen@huarp.harvard.edu>
+             To: perl5-porters@perl.org
+             Subject: [ID 19990728.008] Patch:perl.h _58 QNX
+             Date: Wed, 28 Jul 1999 13:06:23 -0400 (edt)
+             Message-Id: <199907281706.NAA07617@bottesini.harvard.edu>
+     Branch: cfgperl
+          ! perl.h
+____________________________________________________________________________
+[  3817] By: jhi                                   on 1999/07/28  17:46:30
+        Log: Need to add some more conditions to deal with the case
+             defined(HAS_GETSPNAM) && ! defined(HAS_GETSPENT)
+             which is true for QNX4.
+             From: Norton Allen <allen@huarp.harvard.edu>
+             To: perl5-porters@perl.org
+             Subject: [ID 19990728.009] Patch:pp_sys.c _58 QNX
+             Date: Wed, 28 Jul 1999 13:08:42 -0400 (edt)
+             Message-Id: <199907281708.NAA07947@bottesini.harvard.edu>
+     Branch: cfgperl
+          ! pp_sys.c
+____________________________________________________________________________
+[  3816] By: jhi                                   on 1999/07/28  17:43:40
+        Log: The QNX shell needs a couple more semicolons.
+             
+             From: Norton Allen <allen@huarp.harvard.edu>
+             To: perl5-porters@perl.org
+             Subject: [ID 19990728.007] Patch:Configure _58 QNX
+             Date: Wed, 28 Jul 1999 13:03:00 -0400 (edt)
+             Message-Id: <199907281703.NAA07363@bottesini.harvard.edu>
+             
+             plus silence metalint moanings on vendorprefix.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH
+____________________________________________________________________________
+[  3815] By: jhi                                   on 1999/07/28  17:31:11
+        Log: Silence metalint on vendorprefix.U.
+     Branch: metaconfig
+          ! U/installdirs/vendorprefix.U
+____________________________________________________________________________
+[  3814] By: jhi                                   on 1999/07/28  17:13:29
+        Log: QNX shell needs more semicolons.
+     Branch: metaconfig/U/perl
+          ! Extensions.U
+____________________________________________________________________________
+[  3813] By: jhi                                   on 1999/07/28  17:05:08
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> lib/ExtUtils/MM_Unix.pm
+____________________________________________________________________________
+[  3812] By: jhi                                   on 1999/07/28  16:20:17
+        Log: Fix a typo, un-shout, and reformat the installation output.
+     Branch: cfgperl
+          ! lib/ExtUtils/Install.pm
+____________________________________________________________________________
+[  3811] By: gsar                                  on 1999/07/28  15:41:11
+        Log: fix typo that caused INSTALLPRIVLIB to have doubled 'perl5'
+     Branch: perl
+          ! lib/ExtUtils/MM_Unix.pm
+____________________________________________________________________________
+[  3810] By: jhi                                   on 1999/07/28  13:55:57
+        Log: Talk more about subsecond things in perlfunc.
+             (Yes, redundant with perlfaq8.)
+     Branch: cfgperl
+          ! pod/perlfunc.pod
+____________________________________________________________________________
+[  3809] By: jhi                                   on 1999/07/28  07:23:48
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> configpm hints/freebsd.sh lib/Pod/Html.pm perl.h t/op/grent.t
+         !> t/op/pwent.t
+____________________________________________________________________________
+[  3808] By: jhi                                   on 1999/07/28  07:23:03
+        Log: Document toke.c.
+             From: Nathan Torkington <gnat@frii.com>
+             To: perl5-porters@perl.org
+             Subject: Re: toke.c patch, work in progress
+             Date: Tue, 27 Jul 1999 23:02:09 -0600 (MDT)
+             Message-ID: <14238.36561.979473.667842@localhost.frii.com>
+     Branch: cfgperl
+          ! toke.c
+____________________________________________________________________________
+[  3807] By: jhi                                   on 1999/07/28  07:10:56
+        Log: perlre clarification.
+             
+             From: Ian Phillipps <ian@dial.pipex.com>
+             To: Perl 5 Porters <perl5-porters@perl.org>
+             Subject: [PATCH 5.00557] Add definite article to perlre.pod
+             Date: Tue, 27 Jul 1999 10:46:29 +0100
+             Message-ID: <19990727104629.A10074@homer.diplex.co.uk>
+     Branch: cfgperl
+          ! pod/perlre.pod
+____________________________________________________________________________
+[  3806] By: gsar                                  on 1999/07/28  07:07:46
+        Log: fix the perl -V breakage
+             
+             From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             To: Jarkko Hietaniemi <jhi@iki.fi>
+             Cc: "John L. Allen" <allen@grumman.com>, perl5-porters@perl.org,
+             gsar@activestate.com
+             Subject: Re: Follow up to: _58 on AIX 431
+             Date: Tue, 27 Jul 1999 17:42:00 -0400
+             Message-ID: <19990727174200.A12775@monk.mps.ohio-state.edu>
+     Branch: perl
+          ! configpm
+____________________________________________________________________________
+[  3805] By: gsar                                  on 1999/07/28  07:03:34
+        Log: avoid warning (from Doug MacEachern)
+     Branch: perl
+          ! perl.h
+____________________________________________________________________________
+[  3804] By: gsar                                  on 1999/07/28  06:59:30
+        Log: Pod::Html tweak
+             
+             From: jan.dubois@ibm.net (Jan Dubois)
+             To: perl5-porters@perl.org
+             Subject: [PATCH 5.005_58] pod2html: Missing chunk for VMS filenames
+             Date: Tue, 27 Jul 1999 22:14:12 +0200
+             Message-ID: <37a50af0.46171380@smtp1.ibm.net>
+     Branch: perl
+          ! lib/Pod/Html.pm
+____________________________________________________________________________
+[  3803] By: gsar                                  on 1999/07/28  06:56:38
+        Log: freebsd hints update
+             
+             From: Anton Berezin <tobez@plab.ku.dk>
+             To: perl5-porters@perl.org
+             Subject: [ID 19990727.034] Not OK: perl 5.00558 on i386-freebsd-thread4.0-current (UNINSTALLED)
+             Date: Tue, 27 Jul 1999 20:29:39 +0200 (CEST)
+             Message-Id: <199907271829.UAA62861@lion.plab.ku.dk>
+     Branch: perl
+          ! hints/freebsd.sh
+____________________________________________________________________________
+[  3802] By: gsar                                  on 1999/07/28  06:51:32
+        Log: cosmetic testsuite patch
+             
+             From: Graham Barr <gbarr@ti.com>
+             To: Perl5 Porters <perl5-porters@perl.org>
+             Subject: 5.005_58 build
+             Date: Tue, 27 Jul 1999 08:09:25 -0500
+             Message-ID: <19990727080925.F4683@dal.asp.ti.com>
+     Branch: perl
+          ! t/op/grent.t t/op/pwent.t
+____________________________________________________________________________
+[  3801] By: jhi                                   on 1999/07/27  13:49:39
+        Log: Minuscule cleanup of the integer overflow patch.
+     Branch: cfgperl
+          ! util.c
+____________________________________________________________________________
+[  3800] By: jhi                                   on 1999/07/27  13:37:23
+        Log: Test hex('x...').
+     Branch: cfgperl
+          ! t/op/oct.t
+____________________________________________________________________________
+[  3799] By: jhi                                   on 1999/07/27  12:45:45
+        Log: Integrate with Sarathy (5.005_58).
+     Branch: cfgperl
+          - ext/B/byteperl.c
+         !> Changes MANIFEST Porting/makerel configpm embed.h embed.pl
+         !> ext/Devel/DProf/DProf.xs ext/POSIX/POSIX.pm
+         !> ext/SDBM_File/Makefile.PL lib/AutoLoader.pm
+         !> lib/ExtUtils/MM_Unix.pm lib/ExtUtils/MakeMaker.pm
+         !> lib/Pod/Parser.pm lib/SelfLoader.pm os2/OS2/REXX/Makefile.PL
+         !> perl.h pod/perldelta.pod pod/perlfaq9.pod pod/perlhist.pod
+         !> win32/bin/pl2bat.pl win32/config_H.bc win32/config_H.gc
+         !> win32/config_H.vc
+____________________________________________________________________________
+[  3798] By: jhi                                   on 1999/07/27  12:42:43
+        Log: Integer constants (0x, 0[0-7], 0b) now overflow fatally,
+             they used to be just optional lexical warnings.
+             Also, with warnings turned on, constants > 2**32-1
+             trigger a non-portability warning.
+     Branch: cfgperl
+          ! pod/perldelta.pod pod/perldiag.pod pod/perllexwarn.pod pp.c
+          ! t/op/oct.t t/pragma/warn/6default t/pragma/warn/util toke.c
+          ! util.c
+____________________________________________________________________________
+[  3797] By: gsar                                  on 1999/07/27  10:48:27
+        Log: here lies 5.005_58
+     Branch: perl
+          - ext/B/byteperl.c
+          ! Changes MANIFEST Porting/makerel pod/perldelta.pod
+          ! pod/perlfaq9.pod pod/perlhist.pod
+
+----------------
+Version 5.005_58
+----------------
+
+____________________________________________________________________________
+[  3796] By: gsar                                  on 1999/07/27  09:23:42
+        Log: regenerate win32/config_H.?c
+     Branch: perl
+          ! win32/config_H.bc win32/config_H.gc win32/config_H.vc
+____________________________________________________________________________
+[  3795] By: gsar                                  on 1999/07/27  09:02:31
+        Log: From: Tye McQueen <tye@metronet.com>
+             Date: Mon, 26 Jul 1999 19:19:22 -0500 (CDT)
+             Message-Id: <199907270019.AA08223@metronet.com>
+             Subject: Patch pl2bat.pl so batch file can fail
+     Branch: perl
+          ! win32/bin/pl2bat.pl
+____________________________________________________________________________
+[  3794] By: gsar                                  on 1999/07/27  08:59:58
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Mon, 26 Jul 1999 01:09:00 -0400 (EDT)
+             Message-Id: <199907260509.BAA26303@monk.mps.ohio-state.edu>
+             Subject: [PATCH 5.005_57] decrease memory footprint of standard modules
+     Branch: perl
+          ! configpm ext/POSIX/POSIX.pm lib/AutoLoader.pm
+          ! lib/SelfLoader.pm
+____________________________________________________________________________
+[  3793] By: gsar                                  on 1999/07/27  08:19:16
+        Log: support -DPERL_BINCOMPAT_5005, still needs a Configure test
+             (from Andy Dougherty)
+     Branch: perl
+          ! embed.h embed.pl
+____________________________________________________________________________
+[  3792] By: gsar                                  on 1999/07/27  08:04:19
+        Log: recognize more constructs such as C<$-> in pod (from Russ Allbery
+             and Brad Appleton)
+     Branch: perl
+          ! lib/Pod/Parser.pm
+____________________________________________________________________________
+[  3791] By: gsar                                  on 1999/07/27  07:50:54
+        Log: cover case where CLK_TCK is a float, not integer (from
+             alexander smishlajev <als@turnhere.com>)
+     Branch: perl
+          ! ext/Devel/DProf/DProf.xs
+____________________________________________________________________________
+[  3790] By: gsar                                  on 1999/07/27  07:45:08
+        Log: provide MakeMaker attribute PERL_MALLOC_OK that allows extensions
+             to call Perl_malloc() as malloc() (from Ilya Zakharevich)
+     Branch: perl
+          ! ext/SDBM_File/Makefile.PL lib/ExtUtils/MM_Unix.pm
+          ! lib/ExtUtils/MakeMaker.pm os2/OS2/REXX/Makefile.PL perl.h
+____________________________________________________________________________
+[  3789] By: jhi                                   on 1999/07/27  07:44:55
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         +> lib/Pod/Text/Color.pm lib/Pod/Text/Termcap.pm
+         !> MANIFEST doio.c embed.h embed.pl ext/B/B/CC.pm
+         !> ext/SDBM_File/sdbm/sdbm.h global.sym lib/Pod/Html.pm
+         !> lib/Pod/Text.pm objXSUB.h opcode.h opcode.pl perlapi.c
+         !> pod/perldiag.pod pod/perlfunc.pod pod/pod2text.PL pp_sys.c
+         !> proto.h t/comp/proto.t t/io/open.t
+____________________________________________________________________________
+[  3788] By: gsar                                  on 1999/07/27  07:29:59
+        Log: replace Pod::Text with Pod::SimpleText v0.01 (thanks
+             to Russ Allbery <rra@stanford.edu>); s/Simple// and
+             s/pod2txt/pod2text/ etc.
+     Branch: perl
+          + lib/Pod/Text/Color.pm lib/Pod/Text/Termcap.pm
+          ! MANIFEST lib/Pod/Text.pm pod/pod2text.PL
+____________________________________________________________________________
+[  3787] By: gsar                                  on 1999/07/27  06:48:40
+        Log: From: Andy Dougherty <doughera@lafayette.edu>
+             Date: Wed, 16 Jun 1999 14:40:09 -0400 (EDT)
+             Message-Id: <Pine.GSU.4.05.9906161435390.248-100000@newton.phys>
+             Subject: Re: [ID 19990608.003] my_bcopy problem; Unixware 2.0.3
+     Branch: perl
+          ! ext/SDBM_File/sdbm/sdbm.h
+____________________________________________________________________________
+[  3786] By: gsar                                  on 1999/07/27  06:30:09
+        Log: applied suggested patch; added missing prototype changes to
+             opcode.pl along with documentation typos (feature still needs
+             to be described in perlopentut.pod and summarized in
+             perldelta.pod)
+             From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Thu, 17 Jun 1999 00:39:34 -0400 (EDT)
+             Message-Id: <199906170439.AAA18154@monk.mps.ohio-state.edu>
+             Subject: [PATCH 5.00557] 3-arg open
+     Branch: perl
+          ! doio.c embed.h embed.pl global.sym objXSUB.h opcode.h
+          ! opcode.pl perlapi.c pod/perldiag.pod pod/perlfunc.pod pp_sys.c
+          ! proto.h t/comp/proto.t t/io/open.t
+____________________________________________________________________________
+[  3785] By: gsar                                  on 1999/07/27  04:36:39
+        Log: don't quit if =head* wasn't found (suggested by Roland Bauer
+             <roland.bauer@fff.at>)
+     Branch: perl
+          ! lib/Pod/Html.pm
+____________________________________________________________________________
+[  3784] By: gsar                                  on 1999/07/27  03:56:17
+        Log: change#3762 wasn't needed
+     Branch: perl
+          ! ext/B/B/CC.pm
+____________________________________________________________________________
+[  3783] By: jhi                                   on 1999/07/26  19:08:21
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> Changes makedef.pl patchlevel.h pod/perlfunc.pod pp_ctl.c
+         !> toke.c utils/dprofpp.PL win32/Makefile win32/config_H.bc
+         !> win32/config_H.gc win32/config_H.vc win32/makefile.mk
+____________________________________________________________________________
+[  3782] By: gsar                                  on 1999/07/26  18:16:50
+        Log: update Changes, patchlevel &c.
+     Branch: perl
+          ! Changes patchlevel.h win32/Makefile win32/config_H.bc
+          ! win32/config_H.gc win32/config_H.vc win32/makefile.mk
+____________________________________________________________________________
+[  3781] By: gsar                                  on 1999/07/26  17:54:47
+        Log: a more correct fix for change#2744
+             From: Stephen McCamant <smccam@uclink4.berkeley.edu>
+             Date: Sun, 25 Jul 1999 14:02:25 -0500 (CDT)
+             Message-ID: <14235.24385.671437.246345@alias-2.pr.mcs.net>
+             Subject: [PATCH _57] Re: toke.c questions 
+     Branch: perl
+          ! toke.c
+____________________________________________________________________________
+[  3780] By: gsar                                  on 1999/07/26  17:37:04
+        Log: utime() doc typo from Greg Bacon <gbacon@itsc.uah.edu>
+     Branch: perl
+          ! pod/perlfunc.pod
+____________________________________________________________________________
+[  3779] By: jhi                                   on 1999/07/26  16:37:23
+        Log: Dusting off.
+     Branch: cfgperl
+          ! README.threads
+____________________________________________________________________________
+[  3778] By: gsar                                  on 1999/07/26  13:28:46
+        Log: avoid DIVZERO
+     Branch: perl
+          ! utils/dprofpp.PL
+____________________________________________________________________________
+[  3777] By: gsar                                  on 1999/07/26  13:18:53
+        Log: warnings identified by Borland compiler
+     Branch: perl
+          ! makedef.pl pp_ctl.c
+____________________________________________________________________________
+[  3776] By: jhi                                   on 1999/07/26  13:07:36
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> lib/Carp/Heavy.pm pp_ctl.c pp_hot.c
+____________________________________________________________________________
+[  3775] By: gsar                                  on 1999/07/26  12:55:43
+        Log: avoid infinite recursion when Thread.pm croaks during
+             bootstrap
+     Branch: perl
+          ! lib/Carp/Heavy.pm
+____________________________________________________________________________
+[  3774] By: gsar                                  on 1999/07/26  12:43:02
+        Log: integrate cfgperl contents into mainline
+     Branch: perl
+         +> lib/Carp/Heavy.pm
+         !> MANIFEST Makefile.SH cflags.SH configpm ext/util/make_ext
+         !> lib/AutoSplit.pm lib/Carp.pm makedepend.SH pod/pod2html.PL
+         !> pod/pod2latex.PL pod/pod2man.PL pod/pod2text.PL
+         !> pod/pod2usage.PL pod/podchecker.PL pod/podselect.PL
+         !> writemain.SH x2p/Makefile.SH x2p/cflags.SH
+____________________________________________________________________________
+[  3773] By: jhi                                   on 1999/07/26  12:40:29
+        Log: Use long doubles only if they are useful.
+     Branch: cfgperl
+          ! ext/POSIX/POSIX.xs
+____________________________________________________________________________
+[  3772] By: gsar                                  on 1999/07/26  12:33:11
+        Log: typo in change#3768
+     Branch: perl
+          ! pp_hot.c
+____________________________________________________________________________
+[  3771] By: gsar                                  on 1999/07/26  12:08:27
+        Log: alpha-stage support for user-hooks in @INC
+             From: Ken Fox <kfox@ford.com>
+             Date: Mon, 19 Jul 1999 22:12:29 -0400 (EDT)
+             Message-Id: <199907200213.WAA02816@mailfw2.ford.com>
+             Subject: Re: loading remote modules
+     Branch: perl
+          ! pp_ctl.c
+____________________________________________________________________________
+[  3770] By: jhi                                   on 1999/07/26  11:38:36
+        Log: Back out #3735.  Needs more work.
+     Branch: cfgperl
+          ! Makefile.SH cflags.SH configpm ext/util/make_ext
+          ! lib/AutoSplit.pm makedepend.SH pod/pod2html.PL
+          ! pod/pod2latex.PL pod/pod2man.PL pod/pod2text.PL
+          ! pod/pod2usage.PL pod/podchecker.PL pod/podselect.PL
+          ! writemain.SH x2p/Makefile.SH x2p/cflags.SH
+____________________________________________________________________________
+[  3769] By: jhi                                   on 1999/07/26  11:24:45
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> (integrate 35 files)
+____________________________________________________________________________
+[  3768] By: gsar                                  on 1999/07/26  11:03:07
+        Log: optimize method name lookup
+             From: Chip Salzenberg <chip@perlsupport.com>
+             Date: Thu, 22 Jul 1999 13:43:36 -0400
+             Message-ID: <19990722134336.Q391@perlsupport.com>
+             Subject: [PATCH] OP_METHOD_NAMED
+     Branch: perl
+          ! dump.c embed.h embed.pl ext/Opcode/Opcode.pm objXSUB.h op.c
+          ! opcode.h opcode.pl perlapi.c pp.sym pp_hot.c pp_proto.h
+          ! proto.h
+____________________________________________________________________________
+[  3767] By: gsar                                  on 1999/07/26  10:44:11
+        Log: allow arrow omission in $foo[10]->('foo') etc. (but not in
+             foo()->()); rework grammar to remove conflicts
+             From: Stephen McCamant <smccam@uclink4.berkeley.edu>
+             Date: Fri, 23 Jul 1999 15:55:22 -0500 (CDT)
+             Message-ID: <14232.54970.771570.548676@alias-2.pr.mcs.net>
+             Subject: [PATCH _57, long] Re: optional arrow asymmetry
+     Branch: perl
+          ! Makefile.SH embed.h embed.pl global.sym objXSUB.h op.c
+          ! perlapi.c perly.c perly.h perly.y perly_c.diff proto.h
+          ! vms/perly_c.vms vms/perly_h.vms
+____________________________________________________________________________
+[  3766] By: jhi                                   on 1999/07/26  10:18:56
+        Log: Use $< instead of $*.c in *perlmain.o rules.
+     Branch: cfgperl
+          ! Makefile.SH
+____________________________________________________________________________
+[  3765] By: gsar                                  on 1999/07/26  09:28:48
+        Log: From: Ian Phillipps <ian@dial.pipex.com>
+             Date: Fri, 23 Jul 1999 23:35:56 +0100
+             Message-ID: <19990723233556.B2435@homer.diplex.co.uk>
+             Subject: (Version 2) Extending unpack to deal with counted strings
+     Branch: perl
+          ! pod/perldiag.pod pod/perlfunc.pod pp.c t/op/pack.t
+____________________________________________________________________________
+[  3764] By: jhi                                   on 1999/07/26  09:17:26
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             To: perl5-porters@perl.org (Mailing list Perl5)
+             Subject: [PATCH 5.005_57] Lean Carp.pm with Carp/Heavy.pm
+             Date: Mon, 26 Jul 1999 04:05:27 -0400 (EDT)
+             Message-Id: <199907260805.EAA26888@monk.mps.ohio-state.edu>
+             
+             The patch was based on 5_57 so had to re-apply lib/Carp.pm
+             parts of changes #3498, #3696, and #3702 for the new
+             lib/Carp/Heavy.pm.
+     Branch: cfgperl
+          + lib/Carp/Heavy.pm
+          ! MANIFEST lib/Carp.pm
+____________________________________________________________________________
+[  3763] By: gsar                                  on 1999/07/26  09:03:17
+        Log: ~ isn't valid in VMS filenames
+     Branch: perl
+          ! lib/Pod/Html.pm
+____________________________________________________________________________
+[  3762] By: gsar                                  on 1999/07/26  08:59:47
+        Log: setstate stop-gap from Vishal Bhatia
+     Branch: perl
+          ! ext/B/B/CC.pm
+____________________________________________________________________________
+[  3761] By: gsar                                  on 1999/07/26  08:06:39
+        Log: patch for pp_foo -> Perl_pp_foo changes from Vishal Bhatia;
+             add B::OP::name() method that returns just the op_name;
+             convert Deparse et all to use that instead of B::OP::ppaddr();
+             add support for OP_SETSTATE in Deparse
+     Branch: perl
+          ! ext/B/B.pm ext/B/B.xs ext/B/B/Bblock.pm ext/B/B/Bytecode.pm
+          ! ext/B/B/C.pm ext/B/B/CC.pm ext/B/B/Deparse.pm ext/B/B/Lint.pm
+          ! ext/B/B/Xref.pm opcode.h opcode.pl
+____________________________________________________________________________
+[  3760] By: jhi                                   on 1999/07/26  07:14:43
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> (integrate 43 files)
+____________________________________________________________________________
+[  3759] By: gsar                                  on 1999/07/26  05:12:24
+        Log: add disclaimer about perl 4 libraries (modified version of
+             patch suggested by Clinton Pierce <cpierce1@ford.com>)
+     Branch: perl
+          ! lib/abbrev.pl lib/bigfloat.pl lib/bigint.pl lib/bigrat.pl
+          ! lib/cacheout.pl lib/chat2.pl lib/complete.pl lib/ctime.pl
+          ! lib/dotsh.pl lib/exceptions.pl lib/fastcwd.pl lib/flush.pl
+          ! lib/ftp.pl lib/getcwd.pl lib/getopt.pl lib/getopts.pl
+          ! lib/hostname.pl lib/look.pl lib/pwd.pl lib/termcap.pl
+____________________________________________________________________________
+[  3758] By: gsar                                  on 1999/07/26  04:48:35
+        Log: make reset() behave with high-bit characters
+             From: Ian Phillipps <ian@dial.pipex.com>
+             Date: Thu, 22 Jul 1999 22:48:59 +0100
+             Message-ID: <19990722224859.A27987@homer.diplex.co.uk>
+             Subject: [PATCH 5.005_57] sv_reset can cause stack corruption
+     Branch: perl
+          ! sv.c
+____________________________________________________________________________
+[  3757] By: gsar                                  on 1999/07/26  04:40:32
+        Log: update to perlport-1.44 from Chris Nandor <pudge@pobox.com>
+     Branch: perl
+          ! pod/perlport.pod
+____________________________________________________________________________
+[  3756] By: gsar                                  on 1999/07/26  04:20:37
+        Log: dprofpp pod additions from Nathan Torkington <gnat@frii.com>
+     Branch: perl
+          ! utils/dprofpp.PL
+____________________________________________________________________________
+[  3755] By: gsar                                  on 1999/07/26  04:18:00
+        Log: disable VPATH for now (breaks x2p build)
+     Branch: perl
+          ! x2p/Makefile.SH
+____________________________________________________________________________
+[  3754] By: gsar                                  on 1999/07/26  03:15:33
+        Log: INSTALL =~ s/5.006/5.6/; delay loading Errno until needed
+             (%! has the necessary magic); misc typos
+     Branch: perl
+          ! INSTALL ext/DB_File/DB_File.pm ext/Fcntl/Fcntl.pm
+          ! ext/GDBM_File/GDBM_File.pm gv.c jpl/JNI/JNI.pm
+          ! lib/AutoLoader.pm lib/CPAN.pm perl.c pod/perllocale.pod
+          ! utils/h2xs.PL
+____________________________________________________________________________
+[  3753] By: gsar                                  on 1999/07/26  02:38:28
+        Log: integrate cfgperl contents into mainline
+     Branch: perl
+         +> t/pragma/locale/latin1 t/pragma/locale/utf8
+         !> (integrate 53 files)
+____________________________________________________________________________
+[  3752] By: gsar                                  on 1999/07/26  02:11:31
+        Log: ensure implicitly closed handles don't set $? or $!
+     Branch: perl
+          ! doio.c embed.h embed.pl perlapi.c proto.h sv.c t/io/pipe.t
+____________________________________________________________________________
+[  3751] By: gsar                                  on 1999/07/26  01:28:34
+        Log: change#3534 didn't preserve undef return values from caller()
+     Branch: perl
+          ! Changes pp_ctl.c
+____________________________________________________________________________
+[  3750] By: jhi                                   on 1999/07/25  20:59:29
+        Log: Back up a tiny bit from #3735.
+             This may break builds outside the source directory
+             but then again, they do not work that ell yet anyway.
+     Branch: cfgperl
+          ! Makefile.SH
+____________________________________________________________________________
+[  3750] By: jhi                                   on 1999/07/25  20:59:29
+        Log: Back up a tiny bit from #3735.
+             This may break builds outside the source directory
+             but then again, they do not work that ell yet anyway.
+     Branch: cfgperl
+          ! Makefile.SH
+____________________________________________________________________________
+[  3749] By: jhi                                   on 1999/07/25  19:15:55
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> lib/ExtUtils/MM_Unix.pm toke.c utils/h2xs.PL
+____________________________________________________________________________
+[  3748] By: jhi                                   on 1999/07/25  19:06:59
+        Log: Recode locale.t so that the change in #3730
+             is not needed and locale.t works both without
+             and with the utf8 pragma.
+     Branch: cfgperl
+          + t/pragma/locale/latin1 t/pragma/locale/utf8
+          ! MANIFEST t/pragma/locale.t
+____________________________________________________________________________
+[  3747] By: jhi                                   on 1999/07/25  19:01:46
+        Log: Like #3743.
+     Branch: cfgperl
+          ! utils/perlbug.PL
+____________________________________________________________________________
+[  3746] By: gsar                                  on 1999/07/25  18:08:58
+        Log: add option to omit Changes file, from Abigail <abigail@delanet.com>;
+             append a HISTORY section to POD if option is used
+     Branch: perl
+          ! utils/h2xs.PL
+____________________________________________________________________________
+[  3745] By: gsar                                  on 1999/07/25  17:40:03
+        Log: warn rather than die when parse_version() can't cut it (from
+             Michael G Schwern <schwern@pobox.com>)
+     Branch: perl
+          ! lib/ExtUtils/MM_Unix.pm
+____________________________________________________________________________
+[  3744] By: gsar                                  on 1999/07/25  16:32:48
+        Log: make map behave like grep wrt indirect object slot when
+             there are parentheses; revert an experimental mod by Larry
+             in change#2038 that failed to parse %{{qw(a b c)}} properly
+             (this means C<map {use Foo; ...} ...> still needs a proper
+             fix)
+     Branch: perl
+          ! toke.c
+____________________________________________________________________________
+[  3743] By: jhi                                   on 1999/07/25  16:24:55
+        Log: Fix a typo in #3725.
+     Branch: cfgperl
+          ! utils/perlbug.PL
+____________________________________________________________________________
+[  3742] By: jhi                                   on 1999/07/25  16:14:39
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> (integrate 26 files)
+____________________________________________________________________________
+[  3741] By: jhi                                   on 1999/07/25  16:02:28
+        Log: Cut-and-pasto in #3737.
+     Branch: cfgperl
+          ! perl.c
+____________________________________________________________________________
+[  3740] By: gsar                                  on 1999/07/25  15:59:34
+        Log: add note about glibc bug
+     Branch: perl
+          ! t/pragma/warn/pp_hot
+____________________________________________________________________________
+[  3739] By: gsar                                  on 1999/07/25  15:48:40
+        Log: fix bug in change#3728 that might free COPs prematurely;
+             null(op) now does more thorough scrubbing of the op, which
+             fixes a few compile-time memory "leaks"
+     Branch: perl
+          ! dump.c embed.h embed.pl op.c proto.h
+____________________________________________________________________________
+[  3738] By: jhi                                   on 1999/07/25  14:15:26
+        Log: In accordance with #3737.
+     Branch: metaconfig
+          ! U/installdirs/sitelib.U U/installdirs/vendorprefix.U
+          ! U/modified/Oldconfig.U
+     Branch: metaconfig/U/perl
+          ! Extensions.U
+____________________________________________________________________________
+[  3737] By: jhi                                   on 1999/07/25  14:12:34
+        Log: Use vendorprefixlib.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH perl.c
+____________________________________________________________________________
+[  3736] By: jhi                                   on 1999/07/25  13:10:03
+        Log: Populate metaconfig branch.
+     Branch: metaconfig
+          + (add 1468 files)
+     Branch: metaconfig/U/perl
+          + (add 101 files)
+____________________________________________________________________________
+[  3735] By: jhi                                   on 1999/07/25  12:27:20
+        Log: First steps of making builds outside the source
+             directory possible.  These should get us as far
+             as miniperl, then building DynaLoader falls into
+             tiny twinkling pieces as MakeMaker knows nothing
+             of VPATH mindset.
+     Branch: cfgperl
+          ! Configure Makefile.SH cflags.SH config_h.SH configpm
+          ! ext/util/make_ext lib/AutoSplit.pm makedepend.SH
+          ! pod/pod2html.PL pod/pod2latex.PL pod/pod2man.PL
+          ! pod/pod2text.PL pod/pod2usage.PL pod/podchecker.PL
+          ! pod/podselect.PL writemain.SH x2p/Makefile.SH x2p/cflags.SH
+____________________________________________________________________________
+[  3734] By: jhi                                   on 1999/07/25  11:19:28
+        Log: Poor Glossary--are we fixed yet?
+     Branch: cfgperl
+          ! Porting/Glossary
+____________________________________________________________________________
+[  3733] By: jhi                                   on 1999/07/25  11:15:06
+        Log: Change #3732 mistakenly clobbered Glossary.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH
+____________________________________________________________________________
+[  3732] By: jhi                                   on 1999/07/25  10:46:39
+        Log: Andy's new installation scheme (note: a lot of this
+             leaked in already with change #3731).  The vendor*
+             stuff is not used anywhere (in *.SH, say), so it
+             isn't in Configure, either.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH
+____________________________________________________________________________
+[  3731] By: jhi                                   on 1999/07/25  10:12:07
+        Log: Circumcode a strange shell(?) bug in AIX found
+             while trying to do -Duse64bits (which I couldn't do
+             in the end because the CPU isn't 64-bit in that box,
+             but at least now the probing doesn't crash.)
+     Branch: cfgperl
+          ! Configure config_h.SH hints/aix.sh
+____________________________________________________________________________
+[  3730] By: gsar                                  on 1999/07/25  04:56:56
+        Log: fix little utf8 nits in testsuite; add patch from Ilya that cures
+             a utf8 bug in one of the new RE optimizations
+     Branch: perl
+          ! regcomp.c regexec.c t/harness t/lib/io_udp.t t/op/re_tests
+          ! t/pragma/locale.t
+____________________________________________________________________________
+[  3729] By: jhi                                   on 1999/07/23  19:56:27
+        Log: From: Andy Dougherty <doughera@lafayette.edu>
+             To: Perl Porters <perl5-porters@perl.org>
+             Subject: [PATCH 5.005_57] INSTALL-1.58
+             Date: Fri, 23 Jul 1999 10:50:13 -0400 (EDT)
+             Message-Id: <Pine.GSU.4.05.9907231033190.3555-100000@newton.phys>
+             
+             plus
+             
+             From: "Kurt D. Starsinic" <kstar@chapin.edu>
+             To: Andy Dougherty <doughera@lafayette.edu>
+             Cc: Perl Porters <perl5-porters@perl.org>
+             Subject: Re: [PATCH 5.005_57] INSTALL-1.58
+             Date: Fri, 23 Jul 1999 13:38:25 -0400
+             Message-ID: <19990723133825.A12033@O2.chapin.edu>
+     Branch: cfgperl
+          ! INSTALL
+____________________________________________________________________________
+[  3728] By: gsar                                  on 1999/07/23  17:24:42
+        Log: applied suggested patch for tracking line numbers correctly in
+             optimized blocks with a single statement; changed setcop to
+             setstate and added code for -Dx dumps
+             From: Hugo van der Sanden <hv@crypt.compulink.co.uk>
+             Date: Wed, 23 Jun 1999 17:27:42 +0100
+             Message-Id: <199906231627.RAA24033@crypt.compulink.co.uk>
+             Subject: [PATCH 5.005_57] Line number error in optimised else() 
+     Branch: perl
+          ! dump.c embed.h ext/Devel/DProf/DProf.xs ext/Opcode/Opcode.pm
+          ! objXSUB.h op.c opcode.h opcode.pl perlapi.c pp.sym pp_hot.c
+          ! pp_proto.h t/op/misc.t
+____________________________________________________________________________
+[  3727] By: gsar                                  on 1999/07/23  15:56:04
+        Log: avoid useless use of target for pp_each(); also fixes bugs due to
+             refcount held by the target
+     Branch: perl
+          ! opcode.h opcode.pl pp.c t/op/each.t
+____________________________________________________________________________
+[  3726] By: jhi                                   on 1999/07/23  12:08:30
+        Log: Change #3725 aftershock.
+     Branch: cfgperl
+          ! INSTALL jpl/JNI/JNI.pm
+____________________________________________________________________________
+[  3725] By: jhi                                   on 1999/07/23  11:58:49
+        Log: Introduce $Config{ldlibpthname} which contains
+             the name of the environment variable holding the
+             dynamic library search path, often LD_LIBRARY_PATH.
+             Use this new feature all over.
+             Also removed remnants of admonition "add LD_LIBRARY_PATH
+             before running make" because Makefile.SH does this for you. 
+     Branch: cfgperl
+          ! Configure Makefile.SH config_h.SH
+          ! ext/DynaLoader/DynaLoader_pm.PL hints/README.hints
+          ! hints/aix.sh hints/beos.sh hints/cygwin32.sh hints/dgux.sh
+          ! hints/epix.sh hints/esix4.sh hints/hpux.sh hints/next_4.sh
+          ! hints/os2.sh hints/rhapsody.sh hints/svr4.sh jpl/JNI/JNI.pm
+          ! jpl/install-jpl utils/perlbug.PL
+____________________________________________________________________________
+[  3724] By: jhi                                   on 1999/07/23  08:03:36
+        Log: From: Spider Boardman <spider@orb.nashua.nh.us>
+             To: perl5-porters@perl.org
+             Subject: [PATCH] Re: [ID 19990715.003] [BUG] all perl5 versions: segfault on $# 
+             Date: Thu, 22 Jul 1999 19:58:34 -0400
+             Message-Id: <199907222358.TAA27354@Orb.Nashua.NH.US>
+     Branch: cfgperl
+          ! av.c
+____________________________________________________________________________
+[  3723] By: gsar                                  on 1999/07/23  00:01:29
+        Log: emit warning about function calls that were encountered too early
+             to enforce their prototype
+     Branch: perl
+          ! op.c op.h pod/perldiag.pod
+____________________________________________________________________________
+[  3722] By: jhi                                   on 1999/07/22  21:19:59
+        Log: From: "Kurt D. Starsinic" <kstar@chapin.edu>
+             To: perl5-porters@perl.org
+             Cc: Chip Salzenberg <chip@perlsupport.com>, Gurusamy Sarathy <gsar@activestate.com>
+             Subject: [PATCH] MakeMaker documentation
+             Date: Wed, 21 Jul 1999 14:15:42 -0400
+             Message-ID: <19990721141542.A1800@O2.chapin.edu>
+     Branch: cfgperl
+          ! lib/ExtUtils/MakeMaker.pm
+____________________________________________________________________________
+[  3721] By: jhi                                   on 1999/07/22  21:05:19
+        Log: From: pvhp@forte.com (Peter Prymmer)
+             To: chip@perlsupport.com, gsar@activestate.com, perl-mvs@perl.org, perl5-porters@perl.org
+             Subject: [PATCH: 5.005_03 && 5.005_57]os390 hints file appendix stops bad builds
+             Date: Wed, 21 Jul 99 17:15:39 PDT
+             Message-Id: <9907220015.AA11931@forte.com>
+     Branch: cfgperl
+          ! hints/os390.sh
+____________________________________________________________________________
+[  3720] By: jhi                                   on 1999/07/22  20:51:17
+        Log: AIX magic: ccdlflags needs to be different for
+             Perl itself and for extra-core extensions
+             (as used by ExtUtilss::embed::ldopts).
+             Based on the problems described in
+             
+             From: Mike W Ellwood <mwe@rl.ac.uk>
+             To: perl5-porters@perl.org
+             Subject: [ID 19990722.002] Perl 5.00503 and AIX 4.1.5; perl.exp; build errors. Also Imagemagick...
+             Date: Thu, 22 Jul 1999 14:28:19 +0100 (BST)
+             Reply-To: m.w.ellwood@rl.ac.uk
+             Message-Id: <Pine.A41.3.96.990722141209.72660V-100000@unixfe.rl.ac.uk>
+     Branch: cfgperl
+          ! Configure Makefile.SH config_h.SH hints/aix.sh
+____________________________________________________________________________
+[  3719] By: jhi                                   on 1999/07/22  08:23:53
+        Log: Update history records.
+     Branch: cfgperl
+          ! pod/perlhist.pod
+____________________________________________________________________________
+[  3718] By: jhi                                   on 1999/07/21  13:54:42
+        Log: Todododobedobedo.
+     Branch: cfgperl
+          ! Todo
+____________________________________________________________________________
+[  3717] By: jhi                                   on 1999/07/21  12:10:48
+        Log: Even more Todo.
+     Branch: cfgperl
+          ! Todo
+____________________________________________________________________________
+[  3716] By: jhi                                   on 1999/07/21  11:40:39
+        Log: Use Errno more extensively so that error
+             messages are more portable (another way
+             would be to muck around with LC_MESSAGES).
+             Problem reported in
+             
+             From: oracle@pcr8.pcr.com
+             To: perl5-porters@perl.org
+             Subject: [ID 19990719.003] LC_MESSAGES breaks h2xs autoloaded constants on AIX 4.1.4
+             Date: Mon, 19 Jul 1999 18:39:13 -0400
+             Message-Id: <9907192239.AA44990@pcr8.pcr.com>
+     Branch: cfgperl
+          ! ext/DB_File/DB_File.pm ext/Fcntl/Fcntl.pm
+          ! ext/GDBM_File/GDBM_File.pm jpl/JNI/JNI.pm lib/AutoLoader.pm
+          ! lib/CPAN.pm pod/perllocale.pod utils/h2xs.PL
+____________________________________________________________________________
+[  3715] By: jhi                                   on 1999/07/21  11:05:36
+        Log: Slightly modified patch.
+             From: Sean Sheedy <seans@ncube.com>
+             To: perl5-porters@perl.org
+             Subject: [ID 19990720.003] Perl 5.005_3 patch: Non-standard object extensions
+             Date: Tue, 20 Jul 1999 09:52:06 -0700
+             Message-Id: <3794A935.1C150E54@ncube.com>
+     Branch: cfgperl
+          ! cflags.SH x2p/cflags.SH
+____________________________________________________________________________
+[  3714] By: jhi                                   on 1999/07/20  21:26:19
+        Log: More Todo.
+     Branch: cfgperl
+          ! Todo
+____________________________________________________________________________
+[  3713] By: jhi                                   on 1999/07/20  18:02:45
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         +> ext/Devel/DProf/Changes ext/Devel/DProf/DProf.pm
+         +> ext/Devel/DProf/DProf.xs ext/Devel/DProf/Makefile.PL
+         +> ext/Devel/DProf/Todo t/lib/dprof.t t/lib/dprof/V.pm
+         +> t/lib/dprof/test1_t t/lib/dprof/test1_v t/lib/dprof/test2_t
+         +> t/lib/dprof/test2_v t/lib/dprof/test3_t t/lib/dprof/test3_v
+         +> t/lib/dprof/test4_t t/lib/dprof/test4_v t/lib/dprof/test5_t
+         +> t/lib/dprof/test5_v t/lib/dprof/test6_t t/lib/dprof/test6_v
+         +> utils/dprofpp.PL
+         !> INSTALL MAINTAIN MANIFEST configure.com
+         !> ext/Devel/Peek/Makefile.PL installman installperl
+         !> pod/roffitall utils/Makefile vms/descrip_mms.template
+         !> win32/Makefile win32/makefile.mk win32/win32.h
+____________________________________________________________________________
+[  3712] By: gsar                                  on 1999/07/20  15:29:01
+        Log: DProf tweak
+     Branch: perl
+          ! ext/Devel/DProf/DProf.xs
+____________________________________________________________________________
+[  3711] By: gsar                                  on 1999/07/20  07:56:19
+        Log: another DProf build tweak
+     Branch: perl
+          ! utils/dprofpp.PL
+____________________________________________________________________________
+[  3710] By: gsar                                  on 1999/07/20  07:36:36
+        Log: move DProf things around to where they are supposed to be
+     Branch: perl
+          + t/lib/dprof.t t/lib/dprof/V.pm t/lib/dprof/test1_t
+          + t/lib/dprof/test1_v t/lib/dprof/test2_t t/lib/dprof/test2_v
+          + t/lib/dprof/test3_t t/lib/dprof/test3_v t/lib/dprof/test4_t
+          + t/lib/dprof/test4_v t/lib/dprof/test5_t t/lib/dprof/test5_v
+          + t/lib/dprof/test6_t t/lib/dprof/test6_v
+         +> utils/dprofpp.PL
+          - ext/Devel/DProf/dprofpp.PL ext/Devel/DProf/t/V.pm
+          - ext/Devel/DProf/t/test1.pl ext/Devel/DProf/t/test1.t
+          - ext/Devel/DProf/t/test1.v ext/Devel/DProf/t/test2.t
+          - ext/Devel/DProf/t/test2.v ext/Devel/DProf/t/test3.t
+          - ext/Devel/DProf/t/test3.v ext/Devel/DProf/t/test4.t
+          - ext/Devel/DProf/t/test4.v ext/Devel/DProf/t/test5.t
+          - ext/Devel/DProf/t/test5.v ext/Devel/DProf/t/test6.t
+          - ext/Devel/DProf/t/test6.v ext/Devel/DProf/test.pl
+          ! INSTALL MANIFEST ext/Devel/DProf/Makefile.PL installman
+          ! installperl pod/roffitall utils/Makefile
+          ! vms/descrip_mms.template win32/Makefile win32/makefile.mk
+____________________________________________________________________________
+[  3709] By: gsar                                  on 1999/07/20  06:13:16
+        Log: DProf fixups for PERL_IMPLICIT_CONTEXT
+     Branch: perl
+          ! ext/Devel/DProf/DProf.xs ext/Devel/DProf/Makefile.PL
+          ! ext/Devel/Peek/Makefile.PL
+____________________________________________________________________________
+[  3708] By: gsar                                  on 1999/07/20  06:01:22
+        Log: move DProf to Devel/DProf
+     Branch: perl
+         +> ext/Devel/DProf/Changes ext/Devel/DProf/DProf.pm
+         +> ext/Devel/DProf/DProf.xs ext/Devel/DProf/Makefile.PL
+         +> ext/Devel/DProf/Todo ext/Devel/DProf/dprofpp.PL
+         +> ext/Devel/DProf/t/V.pm ext/Devel/DProf/t/test1.pl
+         +> ext/Devel/DProf/t/test1.t ext/Devel/DProf/t/test1.v
+         +> ext/Devel/DProf/t/test2.t ext/Devel/DProf/t/test2.v
+         +> ext/Devel/DProf/t/test3.t ext/Devel/DProf/t/test3.v
+         +> ext/Devel/DProf/t/test4.t ext/Devel/DProf/t/test4.v
+         +> ext/Devel/DProf/t/test5.t ext/Devel/DProf/t/test5.v
+         +> ext/Devel/DProf/t/test6.t ext/Devel/DProf/t/test6.v
+         +> ext/Devel/DProf/test.pl
+          - ext/DProf/Changes ext/DProf/DProf.pm ext/DProf/DProf.xs
+          - ext/DProf/Makefile.PL ext/DProf/Todo ext/DProf/dprofpp.PL
+          - ext/DProf/t/V.pm ext/DProf/t/test1.pl ext/DProf/t/test1.t
+          - ext/DProf/t/test1.v ext/DProf/t/test2.t ext/DProf/t/test2.v
+          - ext/DProf/t/test3.t ext/DProf/t/test3.v ext/DProf/t/test4.t
+          - ext/DProf/t/test4.v ext/DProf/t/test5.t ext/DProf/t/test5.v
+          - ext/DProf/t/test6.t ext/DProf/t/test6.v ext/DProf/test.pl
+          ! MAINTAIN MANIFEST configure.com win32/Makefile
+          ! win32/makefile.mk
+____________________________________________________________________________
+[  3707] By: gsar                                  on 1999/07/20  05:39:11
+        Log: add Devel::DProf v19990108 from CPAN, as it was
+     Branch: perl
+          + ext/DProf/Changes ext/DProf/DProf.pm ext/DProf/DProf.xs
+          + ext/DProf/Makefile.PL ext/DProf/Todo ext/DProf/dprofpp.PL
+          + ext/DProf/t/V.pm ext/DProf/t/test1.pl ext/DProf/t/test1.t
+          + ext/DProf/t/test1.v ext/DProf/t/test2.t ext/DProf/t/test2.v
+          + ext/DProf/t/test3.t ext/DProf/t/test3.v ext/DProf/t/test4.t
+          + ext/DProf/t/test4.v ext/DProf/t/test5.t ext/DProf/t/test5.v
+          + ext/DProf/t/test6.t ext/DProf/t/test6.v ext/DProf/test.pl
+          ! MANIFEST
+____________________________________________________________________________
+[  3706] By: gsar                                  on 1999/07/20  04:52:25
+        Log: C<union any> needs no PERL_OBJECT-treatment
+     Branch: perl
+          ! win32/win32.h
+____________________________________________________________________________
+[  3705] By: gsar                                  on 1999/07/20  04:11:54
+        Log: fix problem in default build
+     Branch: perl
+          ! win32/Makefile win32/makefile.mk
+____________________________________________________________________________
+[  3704] By: jhi                                   on 1999/07/19  07:06:36
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> Changes lib/Carp.pm makedef.pl pod/perldiag.pod sv.h util.c
+         !> win32/win32.c
+____________________________________________________________________________
+[  3703] By: gsar                                  on 1999/07/19  05:55:57
+        Log: win32 nits
+     Branch: perl
+          ! makedef.pl sv.h
+____________________________________________________________________________
+[  3702] By: gsar                                  on 1999/07/19  04:29:34
+        Log: don't display tid from main thread (or testsuite breaks)
+     Branch: perl
+          ! lib/Carp.pm util.c
+____________________________________________________________________________
+[  3701] By: gsar                                  on 1999/07/19  00:47:52
+        Log: remove several doubled (and tripled!) entries
+     Branch: perl
+          ! pod/perldiag.pod
+____________________________________________________________________________
+[  3700] By: gsar                                  on 1999/07/19  00:42:34
+        Log: integrate cfgperl contents into mainline
+     Branch: perl
+         +> makedef.pl
+          - perl_exp.SH win32/makedef.pl
+         !> MANIFEST Makefile.SH ext/DynaLoader/DynaLoader_pm.PL
+         !> ext/DynaLoader/dl_aix.xs ext/DynaLoader/dl_vms.xs hints/aix.sh
+         !> pod/perldiag.pod pp.c regexec.c t/pragma/warn/util toke.c
+         !> utf8.c util.c win32/Makefile win32/makefile.mk
+____________________________________________________________________________
+[  3699] By: gsar                                  on 1999/07/19  00:33:59
+        Log: avoid bug in win32_str_os_error() (from Jan Dubois)
+     Branch: perl
+          ! Changes win32/win32.c
+____________________________________________________________________________
+[  3698] By: jhi                                   on 1999/07/18  21:33:57
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         +> t/op/chars.t
+         !> (integrate 57 files)
+____________________________________________________________________________
+[  3697] By: gsar                                  on 1999/07/18  05:22:36
+        Log: From: pvhp@forte.com (Peter Prymmer)
+             Date: Thu, 1 Jul 99 19:31:24 PDT
+             Message-Id: <9907020231.AA16942@forte.com>
+             Subject: [ID 19990701.031] 4 ctl chars on EBCDIC not asciiish enough
+     Branch: perl
+           + t/op/chars.t
+           ! MANIFEST ebcdic.c t/op/ord.t
+____________________________________________________________________________
+[  3696] By: gsar                                  on 1999/07/18  05:11:02
+        Log: display thread id in diagnostics (suggested by Dan Sugalski)
+     Branch: perl
+           ! lib/Carp.pm util.c
+____________________________________________________________________________
+[  3695] By: gsar                                  on 1999/07/18  04:57:47
+        Log: missing perldiag entry (from Dan Sugalski <sugalskd@osshe.edu>)
+     Branch: perl
+           ! pod/perldiag.pod
+____________________________________________________________________________
+[  3694] By: gsar                                  on 1999/07/18  04:56:28
+        Log: cache [NIUP]V conversions of defined READONLY values
+             From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Sun, 11 Jul 1999 04:39:44 -0400
+             Message-ID: <19990711043944.A25944@monk.mps.ohio-state.edu>
+             Subject: [PATCH 5.005_57] Allow caching of numeric/string conversion
+     Branch: perl
+           ! sv.c
+____________________________________________________________________________
+[  3693] By: gsar                                  on 1999/07/18  03:53:38
+        Log: From: jan.dubois@ibm.net (Jan Dubois)
+             Date: Sat, 17 Jul 1999 10:58:29 +0200
+             Message-ID: <379144ad.13616689@smtp1.ibm.net>
+             Subject: [PATCH 5.005] Some lib/ExtUtils/Manifest.pm POD fixes
+     Branch: perl
+           ! lib/ExtUtils/Manifest.pm
+____________________________________________________________________________
+[  3692] By: gsar                                  on 1999/07/18  03:51:03
+        Log: remove spurious newSTATEOP() that causes goto to enter one too many
+             contexts when jumping between if and elsif blocks
+     Branch: perl
+           ! perly.c perly.y pp_ctl.c t/op/goto.t
+____________________________________________________________________________
+[  3691] By: gsar                                  on 1999/07/18  01:49:59
+        Log: detypo, update Changes
+     Branch: perl
+           ! Changes doio.c
+____________________________________________________________________________
+[  3690] By: gsar                                  on 1999/07/18  01:16:59
+        Log: mention the -Minteger effect on modulus (from Nathan Torkington)
+     Branch: perl
+           ! lib/integer.pm
+____________________________________________________________________________
+[  3689] By: gsar                                  on 1999/07/18  00:47:17
+        Log: ensure __END__ appears on a line by itself in wrapped
+             scripts (thanks to Steve Tolkin <tolkin@mediaone.net>);
+             mention caveat about successfull kill()
+     Branch: perl
+           ! pod/perlfunc.pod win32/bin/pl2bat.pl
+____________________________________________________________________________
+[  3688] By: gsar                                  on 1999/07/17  20:47:44
+        Log: noecho noops (from Nicholas Clark <nick@flirble.org>)
+     Branch: perl
+           ! ext/SDBM_File/sdbm/Makefile.PL
+____________________________________________________________________________
+[  3687] By: gsar                                  on 1999/07/17  20:43:27
+        Log: make CC.pm use a distinct CCPP() macro rather than PP()
+             (suggested by Vishal Bhatia <vishalb@my-deja.com>)
+     Branch: perl
+           ! cc_runtime.h ext/B/B/CC.pm
+____________________________________________________________________________
+[  3686] By: gsar                                  on 1999/07/17  20:39:08
+        Log: tiny bug in vars.pm (from John Dlugosz)
+     Branch: perl
+           ! lib/vars.pm
+____________________________________________________________________________
+[  3685] By: gsar                                  on 1999/07/17  20:37:27
+        Log: applied suggested patch, along with later tweak
+             From: jan.dubois@ibm.net (Jan Dubois)
+             Date: Wed, 14 Jul 1999 23:53:43 +0200
+             Message-ID: <37a902e7.15977234@smtp1.ibm.net>
+             Subject: Merge ActivePerl Stylesheet support etc into Pod::Html.pm
+     Branch: perl
+           ! lib/Pod/Html.pm
+____________________________________________________________________________
+[  3684] By: gsar                                  on 1999/07/17  20:24:32
+        Log: avoid #ifdef DEBUGGING in thrdvar.h (from Dominic Dunlop <domo@vo.lu>)
+     Branch: perl
+           ! thrdvar.h
+____________________________________________________________________________
+[  3683] By: gsar                                  on 1999/07/17  20:21:01
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Tue, 13 Jul 1999 05:44:28 -0400 (EDT)
+             Message-Id: <199907130944.FAA04473@monk.mps.ohio-state.edu>
+             Subject: [PATCH 5.005_57] Segfaults if $^P
+     Branch: perl
+          ! embed.h embed.pl global.sym mg.c objXSUB.h perl.c perlapi.c
+           ! proto.h
+____________________________________________________________________________
+[  3682] By: gsar                                  on 1999/07/17  20:04:17
+        Log: use a better prefixify() heuristic than m/perl/ (prefix/lib/perl5
+             and prefix/lib/perl5/man are ass_u_med only if those directories
+             actually exist; else prefix/{lib,man} are used)
+     Branch: perl
+           ! lib/ExtUtils/MM_Unix.pm
+____________________________________________________________________________
+[  3681] By: gsar                                  on 1999/07/17  19:12:33
+        Log: allow $foo{$x} and $bar[$i] for (\$) prototype
+     Branch: perl
+           ! op.c t/comp/proto.t
+____________________________________________________________________________
+[  3680] By: gsar                                  on 1999/07/17  18:23:55
+        Log: fix vec() on magic values
+             From: Ian Phillipps <ian@dial.pipex.com>
+             Date: Mon, 12 Jul 1999 12:30:05 +0100
+             Message-ID: <19990712123005.A11355@homer.diplex.co.uk>
+             Subject: [PATCH 5.005_57] Re: do_vecset is broken.  Re: [ID 19990703.003].
+     Branch: perl
+           ! doop.c t/op/tie.t
+____________________________________________________________________________
+[  3679] By: gsar                                  on 1999/07/17  18:10:44
+        Log: make system() return -1 and set $! if exec of child failed
+             From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Fri, 9 Jul 1999 05:21:13 -0400
+             Message-ID: <19990709052113.A6201@monk.mps.ohio-state.edu>
+             Subject: [PATCH 5.005_57] system()==-1 and $! from failing fork/exec
+     Branch: perl
+          ! doio.c embed.h embed.pl global.sym objXSUB.h perlapi.c
+           ! pod/perlfunc.pod pp_sys.c proto.h t/op/exec.t
+____________________________________________________________________________
+[  3678] By: gsar                                  on 1999/07/17  17:54:01
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Fri, 9 Jul 1999 04:27:51 -0400 (EDT)
+             Message-Id: <199907090827.EAA03321@monk.mps.ohio-state.edu>
+             Subject: [PATCH 5.005_57] File descriptor leak in do_exec3
+     Branch: perl
+           ! util.c
+____________________________________________________________________________
+[  3677] By: gsar                                  on 1999/07/17  17:34:38
+        Log: a modernized version of find2perl from Ken Pizzini <ken@halcyon.com>;
+             converted Ken's documentation outline into pod
+     Branch: perl
+           ! x2p/find2perl.PL
+____________________________________________________________________________
+[  3676] By: gsar                                  on 1999/07/17  16:34:09
+        Log: pod fixes (with minor edits) from Abigail, Ronald Kimball, Jon
+             Waddington, Tuomas Lukka, Steven Tolkin, Ian Phillipps, and
+             Steve Lidie
+     Branch: perl
+          ! pod/Win32.pod pod/perldelta.pod pod/perlfaq.pod
+          ! pod/perlfaq1.pod pod/perlfaq2.pod pod/perlfaq3.pod
+          ! pod/perlfaq4.pod pod/perlfaq5.pod pod/perlfunc.pod
+          ! pod/perlguts.pod pod/perlhist.pod pod/perlop.pod
+          ! pod/perlport.pod pod/perltoc.pod pod/perltodo.pod
+           ! pod/perltoot.pod pod/perltootc.pod pod/perlvar.pod
+____________________________________________________________________________
+[  3675] By: gsar                                  on 1999/07/17  00:16:53
+        Log: backout redundant change#3628
+     Branch: perl
+           ! Changes hints/bsdos.sh
+____________________________________________________________________________
+[  3674] By: jhi                                   on 1999/07/15  14:26:03
+        Log: Fix the bin/oct/hex constant overflow tests for
+             long long platforms.
+     Branch: cfgperl
+           ! t/pragma/warn/util
+____________________________________________________________________________
+[  3673] By: jhi                                   on 1999/07/14  21:59:11
+        Log: Fixed AIX dynamic loading and AIX shared Perl library.
+             Tested in: AIX 4.1.5 cc+useshrplib+usethreads, 4.1.5 cc,
+             4.1.5 gcc+useshrplib+usethreads, 4.3.1 cc+useshrplib.
+             Hijacked win32/makedef.pl for more general purpose export
+             list building, now it is used (as toplevel makedef.pl)
+             for win32 and AIX (perl_exp.SH made unnecessary).
+             Because the export lists are now correct in AIX, no more linker
+             warnings about "Exported symbol not defined" should appear.
+     Branch: cfgperl
+           + makedef.pl
+           - perl_exp.SH win32/makedef.pl
+          ! MANIFEST Makefile.SH ext/DynaLoader/DynaLoader_pm.PL
+          ! ext/DynaLoader/dl_aix.xs hints/aix.sh win32/Makefile
+           ! win32/makefile.mk
+____________________________________________________________________________
+[  3672] By: gsar                                  on 1999/07/14  17:12:13
+        Log: minor efficiency tweak
+     Branch: perl
+           ! pp_ctl.c
+____________________________________________________________________________
+[  3671] By: jhi                                   on 1999/07/14  16:22:39
+        Log: The regexec.c change of #3606 caused a core dump in fbm_instr()
+             if its caller re_intuit_start() was entered with strend == strpos
+             because end_shift ended up as -1.  The patch ain't necessarily
+             correct but least the core dump is avoided.
+     Branch: cfgperl
+           ! regexec.c
+____________________________________________________________________________
+[  3670] By: jhi                                   on 1999/07/13  07:59:09
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+          - XSlock.h win32/GenCAPI.pl win32/TEST win32/autosplit.pl
+           - win32/genxsdef.pl win32/makemain.pl win32/makeperldef.pl
+          !> (integrate 67 files)
+____________________________________________________________________________
+[  3669] By: gsar                                  on 1999/07/12  06:14:54
+        Log: fixups for sundry warnings about function pointers
+     Branch: perl
+          ! ext/re/re.xs intrpvar.h op.c perl.c perl.h pp_ctl.c scope.h
+          ! sv.c thrdvar.h util.c win32/Makefile win32/makefile.mk
+           ! win32/win32.c win32/win32.h
+____________________________________________________________________________
+[  3668] By: gsar                                  on 1999/07/12  04:11:58
+        Log: tweaks for win32/borland
+     Branch: perl
+           ! t/pragma/locale.t win32/makedef.pl win32/makefile.mk
+____________________________________________________________________________
+[  3667] By: gsar                                  on 1999/07/12  01:55:15
+        Log: yet more cleanups of the PERL_OBJECT, MULTIPLICITY and USE_THREADS
+             builds; passing the implicit context is unified among the three
+             flavors; PERL_IMPLICIT_CONTEXT is auto-enabled under all three
+             flavors (see the top of perl.h) for testing; all varargs functions
+             foo() have a va_list-taking variant vfoo() for generating the
+             context-free versions; the PERL_OBJECT build should now be
+             hyper-compatible with CPAN extensions (C++ is totally out of
+             the picture)
+             
+             result has only been tested on Windows
+             
+             TODO: write docs on the THX rationale and idiomatic usage of
+             the Perl API
+     Branch: perl
+          - XSlock.h win32/GenCAPI.pl win32/TEST win32/autosplit.pl
+           - win32/genxsdef.pl win32/makemain.pl win32/makeperldef.pl
+          ! MANIFEST XSUB.h bytecode.pl deb.c dump.c embed.h embed.pl
+          ! embedvar.h ext/B/B.xs ext/ByteLoader/ByteLoader.xs
+          ! ext/ByteLoader/byterun.c ext/Data/Dumper/Dumper.xs
+          ! ext/Devel/Peek/Peek.xs ext/Fcntl/Fcntl.xs ext/IO/IO.xs
+          ! ext/Opcode/Opcode.xs ext/POSIX/POSIX.xs
+          ! ext/SDBM_File/SDBM_File.xs ext/Socket/Socket.xs
+          ! ext/Thread/Thread.xs ext/attrs/attrs.xs ext/re/re.xs
+          ! global.sym globals.c intrpvar.h iperlsys.h
+          ! lib/ExtUtils/MM_Unix.pm lib/ExtUtils/MM_Win32.pm
+          ! lib/ExtUtils/MakeMaker.pm lib/ExtUtils/xsubpp lib/base.pm
+          ! lib/warning.pm malloc.c objXSUB.h perl.c perl.h perlapi.c
+          ! perlapi.h perlio.c pp_sys.c proto.h regcomp.c regexec.c
+          ! scope.c sv.c thrdvar.h util.c win32/Makefile win32/config_H.bc
+          ! win32/config_H.gc win32/config_H.vc win32/config_h.PL
+          ! win32/dl_win32.xs win32/include/dirent.h
+          ! win32/include/sys/socket.h win32/makedef.pl win32/makefile.mk
+          ! win32/perllib.c win32/runperl.c win32/win32.c win32/win32.h
+           ! win32/win32iop.h win32/win32sck.c
+____________________________________________________________________________
+[  3666] By: jhi                                   on 1999/07/11  22:00:13
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+          !> op.c t/op/lex_assign.t
+____________________________________________________________________________
+[  3665] By: jhi                                   on 1999/07/11  21:59:01
+        Log: More manual sync.
+     Branch: cfgperl
+           ! pod/perldelta.pod
+____________________________________________________________________________
+[  3664] By: gsar                                  on 1999/07/11  19:11:07
+        Log: change#3612 was buggy and failed to build Tk; applied Ilya's
+             remedy and related tests via private mail
+     Branch: perl
+           ! op.c t/op/lex_assign.t
+____________________________________________________________________________
+[  3663] By: jhi                                   on 1999/07/11  15:04:37
+        Log: Manual synchronization with Sarathy (some files
+             had drifted apart for no apparent reason), plus
+             I had a typo in dl_vms.xs Sarathy had fixed.
+     Branch: cfgperl
+           ! ext/DynaLoader/dl_vms.xs pod/perldelta.pod pp.c pp_sys.c
+____________________________________________________________________________
+[  3662] By: jhi                                   on 1999/07/10  12:23:21
+        Log: Change t/pragma/warn oct()/hex() overflow tests to use %Config
+             to adapt to the underlying platform (the binary, 0b1..., test
+             was broken in 64-bit platforms).  Also change "hex" in the
+             warning messages to "hexadecimal" to match "binary" and "octal".
+     Branch: cfgperl
+           ! pod/perldiag.pod t/pragma/warn/util util.c
+____________________________________________________________________________
+[  3661] By: jhi                                   on 1999/07/08  21:54:55
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+          +> perlapi.c perlapi.h
+          !> (integrate 43 files)
+____________________________________________________________________________
+[  3660] By: gsar                                  on 1999/07/08  18:47:35
+        Log: more PERL_OBJECT cleanups (changes still untested on Unix!)
+     Branch: perl
+           + perlapi.c perlapi.h
+          ! MANIFEST XSUB.h emacs/ptags embed.h embed.pl embedvar.h
+          ! ext/Opcode/Opcode.xs global.sym globals.c intrpvar.h
+          ! iperlsys.h mg.c miniperlmain.c objXSUB.h perl.c perl.h perly.c
+          ! pp.c pp_ctl.c pp_hot.c proto.h regcomp.c regcomp.h regexec.c
+          ! scope.c scope.h sv.c thrdvar.h toke.c util.c win32/GenCAPI.pl
+          ! win32/Makefile win32/makedef.pl win32/perllib.c win32/win32.c
+           ! win32/win32.h
+____________________________________________________________________________
+[  3659] By: gsar                                  on 1999/07/08  18:41:45
+        Log: sundry cleanups for clean build on windows
+     Branch: perl
+           ! doio.c regcomp.c regcomp.h t/io/openpid.t utf8.c
+____________________________________________________________________________
+[  3658] By: gsar                                  on 1999/07/08  01:24:25
+        Log: fixes for logical bugs in the lexwarn patch; other tweaks to avoid
+             type mismatch problems
+     Branch: perl
+          ! doio.c gv.c op.c pp.c regcomp.c regexec.c run.c sv.c
+           ! t/pragma/warn/op toke.c utf8.c util.c
+____________________________________________________________________________
+[  3657] By: jhi                                   on 1999/07/07  23:01:16
+        Log: Integrate with Sarathy.  perldiag.pod required manual editing.
+     Branch: cfgperl
+           ! pod/perldiag.pod
+         !> Changes configure.com ext/B/B/Deparse.pm
+         !> ext/ByteLoader/Makefile.PL ext/Fcntl/Fcntl.xs
+         !> ext/IO/lib/IO/File.pm gv.c iperlsys.h lib/ExtUtils/MM_VMS.pm
+         !> lib/File/Basename.pm lib/File/Spec/VMS.pm perlsfio.h
+         !> t/base/rs.t t/lib/io_multihomed.t t/lib/textfill.t
+         !> t/lib/textwrap.t t/op/filetest.t t/op/mkdir.t
+          !> t/pragma/overload.t thread.h vms/vms.c
+____________________________________________________________________________
+[  3656] By: gsar                                  on 1999/07/07  21:04:38
+        Log: integrate cfgperl contents
+     Branch: perl
+         +> lib/unicode/Is/ASCII.pl lib/unicode/Is/Cntrl.pl
+         +> lib/unicode/Is/Graph.pl lib/unicode/Is/Punct.pl
+          +> lib/unicode/Is/Word.pl lib/unicode/Is/XDigit.pl
+           ! Changes
+          !> (integrate 45 files)
+____________________________________________________________________________
+[  3655] By: gsar                                  on 1999/07/07  18:55:45
+        Log: filetest.t and ByteLoader build tweaks from Peter Prymmer
+             <pvhp@forte.com>
+     Branch: perl
+           ! ext/ByteLoader/Makefile.PL t/op/filetest.t
+____________________________________________________________________________
+[  3654] By: gsar                                  on 1999/07/07  18:47:03
+        Log: change#1889 mistakenly removed F_SETLK
+     Branch: perl
+           ! ext/Fcntl/Fcntl.xs
+____________________________________________________________________________
+[  3653] By: gsar                                  on 1999/07/07  18:42:42
+        Log: B::Deparse update
+             From: Stephen McCamant <smccam@uclink4.berkeley.edu>
+             Date: Mon,  5 Jul 1999 17:57:03 -0500 (CDT)
+             Message-ID: <14209.13729.738691.610723@alias-2.pr.mcs.net>
+             Subject: [PATCH _57, long] B::Deparse 0.58
+     Branch: perl
+           ! ext/B/B/Deparse.pm
+____________________________________________________________________________
+[  3652] By: gsar                                  on 1999/07/07  18:41:07
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Mon, 5 Jul 1999 18:24:19 -0400 (EDT)
+             Message-Id: <199907052224.SAA10454@monk.mps.ohio-state.edu>
+             Subject: Re: [ID 19990705.001] Overloading boolean conversion
+     Branch: perl
+           ! gv.c t/pragma/overload.t
+____________________________________________________________________________
+[  3651] By: gsar                                  on 1999/07/07  17:47:30
+        Log: missing PerlIO_reopen() (suggested by sam@daemoninc.com)
+     Branch: perl
+           ! perlsfio.h
+____________________________________________________________________________
+[  3650] By: gsar                                  on 1999/07/07  17:45:52
+        Log: applied new parts of suggested patch
+             From: Charles Bailey <BAILEY@newman.upenn.edu>
+             Date: Fri, 02 Jul 1999 19:18:41 -0400 (EDT)
+             Message-id: <01JD3M8W1VXS000S5G@mail.newman.upenn.edu>
+             Subject: [PATCH 5.005_57] Consolidated VMS patch
+     Branch: perl
+          ! configure.com ext/IO/lib/IO/File.pm iperlsys.h
+          ! lib/ExtUtils/MM_VMS.pm lib/File/Basename.pm
+          ! lib/File/Spec/VMS.pm pod/perldiag.pod t/base/rs.t
+          ! t/lib/io_multihomed.t t/lib/textfill.t t/lib/textwrap.t
+           ! t/op/filetest.t t/op/mkdir.t thread.h vms/vms.c
+____________________________________________________________________________
+[  3649] By: jhi                                   on 1999/07/07  13:38:02
+        Log: Sync regcomp warn with reality.
+     Branch: cfgperl
+           ! t/pragma/warn/regcomp
+____________________________________________________________________________
+[  3648] By: jhi                                   on 1999/07/07  13:04:55
+        Log: Integrate with Sarathy; one conflict in t/pragma/warn/recgomp
+             resolved manually.
+     Branch: cfgperl
+         +> pod/perllexwarn.pod t/pragma/warn/6default t/pragma/warn/av
+         +> t/pragma/warn/doop t/pragma/warn/hv t/pragma/warn/malloc
+          +> t/pragma/warn/perlio t/pragma/warn/run t/pragma/warn/utf8
+           - README.lexwarn
+          !> (integrate 79 files)
+____________________________________________________________________________
+[  3647] By: gsar                                  on 1999/07/07  10:32:03
+        Log: From: jan.dubois@ibm.net (Jan Dubois)
+             Date: Thu, 01 Jul 1999 11:17:53 +0200
+             Message-ID: <377b2ca4.14467042@smtp1.ibm.net>
+             Subject: [PATCH 5.005_57] MakeMaker support for pod2html
+     Branch: perl
+          ! lib/ExtUtils/MM_Unix.pm lib/ExtUtils/MM_Win32.pm
+           ! lib/ExtUtils/MakeMaker.pm
+____________________________________________________________________________
+[  3646] By: gsar                                  on 1999/07/07  10:27:55
+        Log: fix undocumented IO::Handle functions as suggested
+             by cj10@cam.ac.uk
+     Branch: perl
+           ! ext/IO/lib/IO/Handle.pm
+____________________________________________________________________________
+[  3645] By: gsar                                  on 1999/07/07  10:18:55
+        Log: prohibit thread join()ing itself (from Dan Sugalski)
+     Branch: perl
+           ! ext/Thread/Thread.xs
+____________________________________________________________________________
+[  3644] By: gsar                                  on 1999/07/07  10:14:26
+        Log: From: "Vishal Bhatia" <vishalb@my-deja.com>
+             Date: Wed, 30 Jun 1999 14:02:42 -0700
+             Message-ID: <LJHFKBDHMHHJDAAA@my-deja.com>
+             Subject:  [PATCH 5.005_57] Compiler and XSUBS
+     Branch: perl
+           ! ext/B/B/C.pm
+____________________________________________________________________________
+[  3643] By: gsar                                  on 1999/07/07  10:08:38
+        Log: mention C<foreach VAR (LIST) BLOCK continue BLOCK> syntax
+             (from François Désarménien <desar@club-internet.fr>)
+     Branch: perl
+           ! pod/perlsyn.pod
+____________________________________________________________________________
+[  3642] By: gsar                                  on 1999/07/07  10:03:24
+        Log: From: Doug MacEachern <dougm@cp.net>
+             Date: Sun, 27 Jun 1999 22:43:25 -0700 (PDT)
+             Message-ID: <Pine.LNX.4.10.9906272236430.389-100000@mojo.eng.cp.net>
+             Subject: [PATCH 5.005_57] add B::PV::{LEN,CUR}
+     Branch: perl
+           ! ext/B/B.xs
+____________________________________________________________________________
+[  3641] By: gsar                                  on 1999/07/07  10:00:57
+        Log: slightly modified version of suggested patch
+             From: Steven N. Hirsch <hirschs@stargate.btv.ibm.com>
+             Date: Mon, 28 Jun 1999 14:23:59 -0400
+             Message-Id: <199906281823.OAA24912@stargate.btv.ibm.com>
+             Subject: [ID 19990628.007] POSIX::tmpnam() broken for threaded 5.00503
+     Branch: perl
+           ! ext/POSIX/POSIX.xs
+____________________________________________________________________________
+[  3640] By: gsar                                  on 1999/07/07  09:45:43
+        Log: lexical warnings update (warning.t fails one test
+             due to leaked scalar, investigation pending)
+             From: paul.marquess@bt.com
+             Date: Sat, 26 Jun 1999 23:19:52 +0100
+             Message-ID: <5104D4DBC598D211B5FE0000F8FE7EB29C6C8E@mbtlipnt02.btlabs.bt.co.uk>
+             Subject: [PATCH 5.005_57] Lexical Warnings - mandatory warning are now default warnings
+     Branch: perl
+          + pod/perllexwarn.pod t/pragma/warn/6default t/pragma/warn/av
+          + t/pragma/warn/doop t/pragma/warn/hv t/pragma/warn/malloc
+           + t/pragma/warn/perlio t/pragma/warn/run t/pragma/warn/utf8
+           - README.lexwarn
+          ! Changes MANIFEST av.c djgpp/djgpp.c doio.c doop.c
+          ! ext/B/B/Asmdata.pm ext/ByteLoader/byterun.c
+          ! ext/ByteLoader/byterun.h gv.c hv.c jpl/JNI/JNI.xs
+          ! lib/warning.pm mg.c op.c os2/os2.c perl.c perlio.c
+          ! pod/perldelta.pod pod/perldiag.pod pod/perlfunc.pod
+          ! pod/perlmodlib.pod pod/perlrun.pod pod/perlvar.pod pp.c
+          ! pp_ctl.c run.c sv.c t/pragma/warn/3both t/pragma/warn/doio
+          ! t/pragma/warn/gv t/pragma/warn/mg t/pragma/warn/op
+          ! t/pragma/warn/perl t/pragma/warn/perly t/pragma/warn/pp
+          ! t/pragma/warn/pp_ctl t/pragma/warn/pp_hot t/pragma/warn/pp_sys
+          ! t/pragma/warn/regcomp t/pragma/warn/regexec t/pragma/warn/sv
+          ! t/pragma/warn/taint t/pragma/warn/toke t/pragma/warn/universal
+          ! t/pragma/warn/util t/pragma/warning.t toke.c utf8.c util.c
+           ! warning.h warning.pl win32/win32.c
+____________________________________________________________________________
+[  3639] By: gsar                                  on 1999/07/07  08:09:30
+        Log: From: Brian Jepson <bjepson@home.com>
+             Date: Sat, 26 Jun 1999 10:47:45 -0500 (EST)
+             Message-ID: <Pine.LNX.4.10.9906261044180.659-100000@cx384756-a.sking1.ri.home.com>
+             Subject: Patch to JPL example program
+     Branch: perl
+           ! jpl/JPL_Rolo/JPL_Rolo.jpl
+____________________________________________________________________________
+[  3638] By: jhi                                   on 1999/07/07  08:07:58
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+          !> (integrate 34 files)
+____________________________________________________________________________
+[  3637] By: gsar                                  on 1999/07/07  08:07:49
+        Log: From: Stephen McCamant <smccam@uclink4.berkeley.edu>
+             Date: Fri, 25 Jun 1999 13:38:44 -0500 (CDT)
+             Message-ID: <14193.25034.113373.245377@alias-2.pr.mcs.net>
+             Subject: [PATCH _57, long] Eliminate CONDOPs
+     Branch: perl
+          ! bytecode.pl dump.c ext/B/B.pm ext/B/B.xs ext/B/B/Bblock.pm
+          ! ext/B/B/Bytecode.pm ext/B/B/C.pm ext/B/B/CC.pm
+          ! ext/B/B/Debug.pm ext/B/B/Xref.pm ext/B/ramblings/flip-flop
+          ! ext/B/typemap op.c op.h opcode.h opcode.pl perl.h
+           ! pod/perltoc.pod pp_ctl.c pp_hot.c
+____________________________________________________________________________
+[  3636] By: gsar                                  on 1999/07/07  07:50:51
+        Log: adapted suggested patch for IO-1.20x
+             From: ian@dial.pipex.com
+             Date:  Fri, 25 Jun 1999 10:39:42 +0100
+             Message-Id:  <199906250939.KAA02152@homer.diplex.co.uk>
+             Subject: [ID 19990625.001]  Minor fixes for IO::Socket.pm
+     Branch: perl
+           ! ext/IO/lib/IO/Socket.pm
+____________________________________________________________________________
+[  3635] By: gsar                                  on 1999/07/07  07:26:05
+        Log: PowerMAX hints update from Tom Horsley <Tom.Horsley@mail.ccur.com>
+     Branch: perl
+           ! hints/powerux.sh
+____________________________________________________________________________
+[  3634] By: gsar                                  on 1999/07/07  07:20:02
+        Log: From: Hugo van der Sanden <hv@crypt.compulink.co.uk>
+             Date: Wed, 23 Jun 1999 16:16:05 +0100
+             Message-Id: <199906231516.QAA23851@crypt.compulink.co.uk>
+             Subject: [PATCH 5.005_57] memleak in optimizer
+     Branch: perl
+           ! embed.h embed.pl objXSUB.h op.c proto.h
+____________________________________________________________________________
+[  3633] By: gsar                                  on 1999/07/07  07:10:52
+        Log: add do-not-edit caveats for files generated by opcode.pl
+             (suggested by Hugo van der Sanden)
+     Branch: perl
+           ! opcode.h opcode.pl pp.sym pp_proto.h
+____________________________________________________________________________
+[  3632] By: gsar                                  on 1999/07/07  06:41:13
+        Log: better diagnostics on read operations from write-only
+             filehandles
+     Branch: perl
+          ! doio.c perl.c pod/perldelta.pod pod/perldiag.pod pp_hot.c
+           ! pp_sys.c t/pragma/warn/pp_hot t/pragma/warn/pp_sys
+____________________________________________________________________________
+[  3631] By: gsar                                  on 1999/07/07  02:03:34
+        Log: make Sys::Hostname safe against C<$SIG{CHLD}='IGNORE'> (suggested
+             by David Muir Sharnoff <muir@idiom.com>)
+     Branch: perl
+           ! lib/Sys/Hostname.pm
+____________________________________________________________________________
+[  3630] By: gsar                                  on 1999/07/07  01:57:16
+        Log: From: "Vishal Bhatia" <vishalb@my-deja.com>
+             Date: Sun, 20 Jun 1999 17:17:17 -0700
+             Message-ID: <AEBDBGKPMEAJAAAA@my-deja.com>
+             Subject: [PATCH 5.005_57] Minor bug fix in pp_require
+     Branch: perl
+           ! ext/B/B/CC.pm
+____________________________________________________________________________
+[  3629] By: gsar                                  on 1999/07/07  01:46:03
+        Log: installperl should write normal messages to STDOUT, not STDERR
+     Branch: perl
+           ! installperl
+____________________________________________________________________________
+[  3628] By: gsar                                  on 1999/07/07  01:41:25
+        Log: BSD/OS needs -DSTRUCT_TM_HASZONE as of 4.0.1 (from mab@alink.net)
+     Branch: perl
+           ! hints/bsdos.sh
+____________________________________________________________________________
+[  3627] By: gsar                                  on 1999/07/07  00:27:10
+        Log: make diagnostic on C<my $^I> etc., more readable
+     Branch: perl
+           ! op.c
+____________________________________________________________________________
+[  3626] By: gsar                                  on 1999/07/06  23:47:27
+        Log: From: Andy Dougherty <doughera@lafayette.edu>
+             Date:  Thu, 17 Jun 1999 12:07:11 -0400 (EDT)
+             Message-Id:  <Pine.GSU.4.05.9906171204580.937-100000@newton.phys>
+             Subject: [ID 19990617.004  [PATCH 5.005_57] make distclean fixes]
+     Branch: perl
+           ! Makefile.SH utils/Makefile
+____________________________________________________________________________
+[  3625] By: jhi                                   on 1999/07/06  21:50:46
+        Log: Some new files of #3624 missing from MANIFEST.
+     Branch: cfgperl
+           ! MANIFEST
+____________________________________________________________________________
+[  3624] By: jhi                                   on 1999/07/06  21:47:04
+        Log: POSIX [[:character class:]] support for standard, locale,
+             and utf8.  If both utf8 and locale are on, utf8 wins.
+             I don't fully understand why so many tables changed in
+             lib/unicode because of "make" -- maybe it was just overdue.
+     Branch: cfgperl
+          + lib/unicode/Is/ASCII.pl lib/unicode/Is/Cntrl.pl
+          + lib/unicode/Is/Graph.pl lib/unicode/Is/Punct.pl
+           + lib/unicode/Is/Word.pl lib/unicode/Is/XDigit.pl
+          ! MANIFEST Todo-5.005 embed.h embed.pl embedvar.h global.sym
+          ! handy.h intrpvar.h lib/unicode/Bidirectional.pl
+          ! lib/unicode/Block.pl lib/unicode/Category.pl
+          ! lib/unicode/Is/Alnum.pl lib/unicode/Is/Alpha.pl
+          ! lib/unicode/Is/BidiL.pl lib/unicode/Is/Digit.pl
+          ! lib/unicode/Is/L.pl lib/unicode/Is/Lo.pl
+          ! lib/unicode/Is/Lower.pl lib/unicode/Is/Print.pl
+          ! lib/unicode/Is/Space.pl lib/unicode/Is/Upper.pl
+          ! lib/unicode/Is/Z.pl lib/unicode/Is/Zs.pl lib/unicode/Name.pl
+          ! lib/unicode/To/Digit.pl lib/unicode/mktables.PL objXSUB.h
+          ! pod/perldelta.pod pod/perldiag.pod pod/perlre.pod proto.h
+          ! regcomp.c regcomp.h regcomp.sym regexec.c regnodes.h
+          ! t/op/pat.t t/op/re_tests t/op/regexp.t t/pragma/utf8.t
+           ! t/pragma/warn/regcomp utf8.c
+____________________________________________________________________________
+[  3623] By: gsar                                  on 1999/07/06  20:52:48
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Wed, 16 Jun 1999 14:57:22 -0400
+             Message-ID: <19990616145722.B16258@monk.mps.ohio-state.edu>
+             Subject: [PATCH 5.00557] Devel::Peek
+     Branch: perl
+           ! ext/Devel/Peek/Peek.pm ext/Devel/Peek/Peek.xs
+____________________________________________________________________________
+[  3622] By: gsar                                  on 1999/07/06  20:22:59
+        Log: applied patch after demunging headers with appropriate paths
+             From: "Vishal Bhatia" <vishalb@my-deja.com>
+             Date: Sat, 12 Jun 1999 08:23:59 -0700
+             Message-ID: <JIHEJPFDFKIBDAAA@my-deja.com>
+             Subject: [Patch 5.005_57] unsigned arithmetic (Compiler)
+     Branch: perl
+          ! cc_runtime.h ext/B/B.xs ext/B/B/CC.pm ext/B/B/Stackobj.pm
+           ! ext/B/defsubs.h.PL lib/ExtUtils/typemap t/harness
+____________________________________________________________________________
+[  3621] By: gsar                                  on 1999/07/06  20:10:50
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Thu, 10 Jun 1999 04:05:22 -0400 (EDT)
+             Message-Id: <199906100805.EAA18216@monk.mps.ohio-state.edu>
+             Subject: [PATCH 5.005_57] Optimize 2>&1 in commands
+     Branch: perl
+           ! doio.c
+____________________________________________________________________________
+[  3620] By: jhi                                   on 1999/07/06  19:16:47
+        Log: Mention EPOC and SOCKS.
+     Branch: cfgperl
+           ! pod/perldelta.pod
+____________________________________________________________________________
+[  3619] By: gsar                                  on 1999/07/06  16:52:37
+        Log: fix int vs STRLEN issue
+     Branch: perl
+           ! pp.c
+____________________________________________________________________________
+[  3618] By: jhi                                   on 1999/07/06  16:52:20
+        Log: There ain't Perl_atonv().
+     Branch: cfgperl
+           ! ext/ByteLoader/bytecode.h
+____________________________________________________________________________
+[  3617] By: jhi                                   on 1999/07/06  15:55:22
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+          !> Makefile.SH
+____________________________________________________________________________
+[  3616] By: jhi                                   on 1999/07/06  15:54:09
+        Log: Tweak for #3613.
+     Branch: cfgperl
+           ! Configure config_h.SH
+____________________________________________________________________________
+[  3615] By: gsar                                  on 1999/07/06  11:00:21
+        Log: From: "Todd C. Miller" <Todd.Miller@courtesan.com>
+             Date:  Sun, 13 Jun 1999 17:46:13 -0600 (MDT)
+             Message-Id:  <199906132346.RAA26632@xerxes.courtesan.com>
+             Subject: [ID 19990613.003  linklibperl set incorrectly in Makefile.SH for OpenBSD]
+     Branch: perl
+           ! Makefile.SH
+____________________________________________________________________________
+[  3614] By: jhi                                   on 1999/07/06  10:44:48
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+         !> ext/IO/lib/IO/File.pm op.c op.h opcode.h opcode.pl perl.h pp.h
+          !> pp.sym pp_proto.h t/base/rs.t t/pragma/warn/op
+____________________________________________________________________________
+[  3613] By: jhi                                   on 1999/07/06  10:43:20
+        Log: From: Nathan Kurz <nate@valleytel.net>
+             Subject: [ID 19990612.001 compiling three deep modules within ext/]
+             ply-To: nate@valleytel.net
+             erl5-porters@perl.org
+             Date: Sat, 12 Jun 1999 01:26:04 -0500
+             Message-Id: <199906120626.BAA04996@trinkpad.valleytel.net>
+     Branch: cfgperl
+           ! Configure config_h.SH
+____________________________________________________________________________
+[  3612] By: gsar                                  on 1999/07/06  10:17:52
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Sat, 12 Jun 1999 04:49:09 -0400 (EDT)
+             Message-Id: <199906120849.EAA26986@monk.mps.ohio-state.edu>
+             Subject: [PATCH 5.005_57] Optimize away OP_SASSIGN
+     Branch: perl
+           ! op.c op.h opcode.h opcode.pl pp.h pp.sym pp_proto.h
+____________________________________________________________________________
+[  3611] By: gsar                                  on 1999/07/06  09:51:20
+        Log: From: pvhp@forte.com (Peter Prymmer)
+             Date: Fri, 11 Jun 99 17:07:19 PDT
+             Message-Id: <9906120007.AA13802@forte.com>
+             Subject: [PATCH _03 && _57]portability fix for IO::File and FileHandle
+     Branch: perl
+           ! ext/IO/lib/IO/File.pm
+____________________________________________________________________________
+[  3610] By: gsar                                  on 1999/07/06  09:37:37
+        Log: fix for C<$/ = 42> setting paragraph mode (applied with small
+             tweak)
+             From: "M.J.T. Guy" <mjtg@cus.cam.ac.uk>
+             Date: Wed, 09 Jun 1999 18:27:51 +0100
+             Message-Id: <E10rm8l-00023T-00@ursa.cus.cam.ac.uk>
+             Subject: Re: [ID 19990608.002] Possible bug with binmode and <FH> on Perl 5.005_03 Win32
+     Branch: perl
+           ! perl.h t/base/rs.t
+____________________________________________________________________________
+[  3609] By: jhi                                   on 1999/07/06  09:28:48
+        Log: Integrate with Sarathy.
+     Branch: cfgperl
+          !> (integrate 49 files)
+____________________________________________________________________________
+[  3608] By: gsar                                  on 1999/07/06  09:28:21
+        Log: test tweak
+     Branch: perl
+           ! t/pragma/warn/op
+____________________________________________________________________________
+[  3607] By: jhi                                   on 1999/07/06  09:22:48
+        Log: Put back the cygwin32 Configure fix of 3582 undone by 3597.
+     Branch: cfgperl
+           ! Configure config_h.SH
+____________________________________________________________________________
+[  3606] By: gsar                                  on 1999/07/06  09:05:02
+        Log: applied slightly tweaked version of suggested patch for
+             improved RE API
+             From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Wed, 9 Jun 1999 18:14:27 -0400 (EDT)
+             Message-Id: <199906092214.SAA14126@monk.mps.ohio-state.edu>
+             Subject: [PATCH 5.005_57] REx engine rehash
+     Branch: perl
+          ! Changes dump.c embed.h embed.pl embedvar.h ext/re/Makefile.PL
+          ! ext/re/re.xs global.sym objXSUB.h perl.c perl.h pp.c pp_hot.c
+          ! proto.h regcomp.c regcomp.h regexec.c regexp.h thrdvar.h
+           ! util.c
+____________________________________________________________________________
+[  3605] By: gsar                                  on 1999/07/06  08:54:03
+        Log: bug in change#3602 (cpp conditionals not allowed inside macro args)
+     Branch: perl
+           ! sv.c
+____________________________________________________________________________
+[  3604] By: gsar                                  on 1999/07/06  07:08:30
+        Log: From: paul.marquess@bt.com
+             Date: Tue, 8 Jun 1999 22:37:58 +0100 
+             Message-ID: <5104D4DBC598D211B5FE0000F8FE7EB29C6C3C@mbtlipnt02.btlabs.bt.co.uk>
+             Subject: [PATCH 5.005_57] DB_File 1.67
+     Branch: perl
+          ! ext/DB_File/Changes ext/DB_File/DB_File.pm
+           ! ext/DB_File/DB_File.xs ext/DB_File/typemap
+____________________________________________________________________________
+[  3603] By: gsar                                  on 1999/07/06  07:04:50
+        Log: From: paul.marquess@bt.com
+             Date: Tue, 8 Jun 1999 22:34:01 +0100 
+             Message-ID: <5104D4DBC598D211B5FE0000F8FE7EB29C6C3B@mbtlipnt02.btlabs.bt.co.uk>
+             Subject: [PATCH 5.005_57] DBM Filters
+     Branch: perl
+          ! ext/GDBM_File/GDBM_File.pm ext/GDBM_File/GDBM_File.xs
+          ! ext/NDBM_File/NDBM_File.pm ext/NDBM_File/NDBM_File.xs
+          ! ext/ODBM_File/ODBM_File.pm ext/ODBM_File/ODBM_File.xs
+           ! ext/SDBM_File/SDBM_File.pm ext/SDBM_File/SDBM_File.xs
+____________________________________________________________________________
+[  3602] By: gsar                                  on 1999/07/06  07:00:01
+        Log: slightly tweaked version of suggested patch
+             From: Dan Sugalski <sugalskd@ous.edu>
+             Date: Tue, 08 Jun 1999 14:09:38 -0700
+             Message-Id: <3.0.6.32.19990608140938.030f12e0@ous.edu>
+             Subject: [PATCH 5.005_57]Use NV instead of double in the core
+     Branch: perl
+          ! av.h bytecode.pl cv.h doio.c dump.c embed.pl
+          ! ext/ByteLoader/bytecode.h ext/ByteLoader/byterun.c hv.h
+          ! intrpvar.h mg.c op.c perl.h pp.c pp.h pp_ctl.c pp_sys.c
+           ! proto.h sv.c sv.h toke.c universal.c util.c
+____________________________________________________________________________
+[  3601] By: gsar                                  on 1999/07/06  06:52:57
+        Log: integrate cfgperl contents into mainline
+     Branch: perl
+         +> README.epoc epoc/config.h epoc/epoc.c epoc/epocish.h
+          +> epoc/perl.mmp epoc/perl.pkg
+          !> (integrate 30 files)
+____________________________________________________________________________
+[  3598] By: jhi                                   on 1999/07/05  20:02:55
+        Log: Integrate with mainperl.
+     Branch: cfgperl
+          +> lib/CGI/Pretty.pm
+         !> Changes ext/B/B/Bblock.pm ext/B/B/C.pm ext/B/B/CC.pm
+         !> ext/B/B/Stackobj.pm ext/GDBM_File/GDBM_File.xs mg.c op.c
+         !> opcode.h opcode.pl pp_sys.c t/lib/io_udp.t thread.h toke.c
+         !> vms/descrip_mms.template vms/subconfigure.com vms/vms.c
+          !> vms/vmsish.h
+____________________________________________________________________________
+[  3597] By: jhi                                   on 1999/07/05  19:59:48
+        Log: Hack SOCKS support some more plus a patch from Andy Dougherty
+             that addresses the notorious "Additional libraries" question.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+          ! config_h.SH doio.c ext/Socket/Socket.xs hints/aix.sh perl.c
+           ! pp_sys.c
+____________________________________________________________________________
+[  3596] By: gsar                                  on 1999/07/05  18:30:51
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Tue, 8 Jun 1999 04:47:58 -0400 (EDT)
+             Message-Id: <199906080847.EAA03810@monk.mps.ohio-state.edu>
+             Subject: [PATCH 5.00557] Long-standing UDP sockets bug on OS/2
+     Branch: perl
+           ! pp_sys.c t/lib/io_udp.t
+____________________________________________________________________________
+[  3595] By: gsar                                  on 1999/07/05  18:29:08
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Tue, 8 Jun 1999 04:44:58 -0400 (EDT)
+             Message-Id: <199906080844.EAA03784@monk.mps.ohio-state.edu>
+             Subject: [PATCH 5.00557] Setting $^E wipes out $!
+     Branch: perl
+           ! mg.c
+____________________________________________________________________________
+[  3594] By: gsar                                  on 1999/07/05  18:24:53
+        Log: hand-apply whitespace mutiliated patch
+             From: Dan Sugalski <sugalskd@osshe.edu>
+             Date: Mon, 07 Jun 1999 14:46:42 -0700
+             Message-Id: <3.0.6.32.19990607144642.03079100@ous.edu>
+             Subject: [PATCH 5.005_57]Updated VMS patch
+     Branch: perl
+          ! thread.h vms/descrip_mms.template vms/subconfigure.com
+           ! vms/vms.c vms/vmsish.h
+____________________________________________________________________________
+[  3593] By: gsar                                  on 1999/07/05  17:53:04
+        Log: applied parts not duplicated by previous patches
+             From: "Vishal Bhatia" <vishalb@my-deja.com>
+             Date: Sat, 05 Jun 1999 08:42:17 -0700
+             Message-ID: <JAMCAJKJEJDPAAAA@my-deja.com>
+             Subject: Fwd: [PATCH 5.005_57] consolidated compiler changes
+     Branch: perl
+          ! Changes ext/B/B/Bblock.pm ext/B/B/C.pm ext/B/B/CC.pm
+           ! ext/B/B/Stackobj.pm
+____________________________________________________________________________
+[  3592] By: jhi                                   on 1999/07/05  17:17:22
+        Log: AIX threaded build, plus few more on the side.
+     Branch: cfgperl
+          ! embed.h embed.pl ext/DynaLoader/dl_aix.xs
+          ! ext/DynaLoader/dl_next.xs ext/DynaLoader/dl_rhapsody.xs
+          ! ext/DynaLoader/dl_vms.xs hints/aix.sh objXSUB.h perl.h
+           ! perl_exp.SH pp_ctl.c proto.h toke.c util.c
+____________________________________________________________________________
+[  3591] By: gsar                                  on 1999/07/05  16:52:34
+        Log: "\e" and "\a" didn't produce right escape under EBCDIC
+             From: pvhp@forte.com (Peter Prymmer)
+             Date: Fri, 4 Jun 99 12:00:27 PDT
+             Message-Id: <9906041900.AA28387@forte.com>
+             Subject: [PATCH 5.005_57]lingering ASCIIism in tokener
+     Branch: perl
+           ! toke.c
+____________________________________________________________________________
+[  3590] By: gsar                                  on 1999/07/05  16:40:01
+        Log: s/scalar ref constructor/single ref constructor/ (suggested
+             by Stephen McCamant)
+     Branch: perl
+           ! opcode.h opcode.pl
+____________________________________________________________________________
+[  3589] By: gsar                                  on 1999/07/05  16:34:06
+        Log: no such thing as gdbm_clearerr() (from Andy Dougherty)
+     Branch: perl
+           ! ext/GDBM_File/GDBM_File.xs
+____________________________________________________________________________
+[  3588] By: gsar                                  on 1999/07/05  16:29:39
+        Log: allow C<-foo> under C<use integer> (behavior of C<-$string>
+             is unchanged still)
+     Branch: perl
+           ! op.c
+____________________________________________________________________________
+[  3587] By: jhi                                   on 1999/07/05  10:31:43
+        Log: Make perl_exp.SH smarter about what to include and what to exclude.
+     Branch: cfgperl
+           ! perl_exp.SH
+____________________________________________________________________________
+[  3586] By: jhi                                   on 1999/07/05  09:29:31
+        Log: Remove unnecessary and extraneous my $i = 0.
+     Branch: cfgperl
+           ! bytecode.pl
+____________________________________________________________________________
+[  3585] By: jhi                                   on 1999/07/05  07:28:59
+        Log: Integrate with mainperl.
+     Branch: cfgperl
+          !> (integrate 30 files)
+____________________________________________________________________________
+[  3584] By: gsar                                  on 1999/07/05  05:36:28
+        Log: From: Vishal Bhatia <vishalb@hotmail.com>
+             Date: Thu, 03 Jun 1999 00:57:48 PDT
+             Message-ID: <19990603075749.86665.qmail@hotmail.com>
+             Subject: Re: [PATCH 5.005_57] pp_sort sorted out
+     Branch: perl
+           ! ext/B/B/Bblock.pm ext/B/B/C.pm ext/B/B/CC.pm
+____________________________________________________________________________
+[  3583] By: gsar                                  on 1999/07/05  05:31:19
+        Log: suppress fancy display when in verbose mode (suggested by
+             Paul Johnson <pjcj@transeda.com>)
+     Branch: perl
+           ! lib/Test/Harness.pm
+____________________________________________________________________________
+[  3582] By: gsar                                  on 1999/07/05  05:17:12
+        Log: cygwin32 update
+             From: "Fifer, Eric" <EFifer@sanwaint.com>
+             Date:  Wed, 2 Jun 1999 15:16:05 +0100
+             Message-Id:  <71E287AB0D94D111BBD600600849EC8185EDD9@POST>
+             Subject:  [ID 19990602.003] perl5.005_03 (CORE) cygwin32 port
+     Branch: perl
+          ! Configure Makefile.SH README.cygwin32 cygwin32/Makefile.SHs
+          ! cygwin32/build-instructions.READFIRST
+          ! cygwin32/build-instructions.charles-wilson
+          ! cygwin32/build-instructions.sebastien-barre
+          ! cygwin32/build-instructions.steven-morlock
+          ! cygwin32/build-instructions.steven-morlock2 doio.c dosish.h
+          ! ext/POSIX/Makefile.PL ext/POSIX/POSIX.xs hints/cygwin32.sh
+          ! lib/Cwd.pm lib/ExtUtils/MM_Cygwin.pm perl.h pp_hot.c
+           ! t/op/magic.t util.c
+____________________________________________________________________________
+[  3581] By: gsar                                  on 1999/07/05  02:46:18
+        Log: NeXT doesn't have FD_CLOEXEC (suggested by Hans Mulder)
+     Branch: perl
+           ! util.c
+____________________________________________________________________________
+[  3580] By: gsar                                  on 1999/07/05  02:38:03
+        Log: From: "Ed Peschko" <ed_peschko@csgsystems.com>
+             Date: Mon, 31 May 1999 18:18:13 -0600
+             Message-ID: <19990601001813.AAA17834@csgsystems.com>
+             Subject: [ PATCH perl5.005_57 ] new perlcc + regression tests
+     Branch: perl
+           ! t/TEST t/UTEST t/harness utils/perlcc.PL
+____________________________________________________________________________
+[  3579] By: gsar                                  on 1999/07/05  01:20:58
+        Log: compatibility tweak for Class::Struct
+     Branch: perl
+           ! lib/Class/Struct.pm
+____________________________________________________________________________
+[  3578] By: jhi                                   on 1999/07/04  23:26:01
+        Log: Miscellaneus AIX fixes + SOCKS support.
+     Branch: cfgperl
+          ! Configure Makefile.SH Porting/Glossary Porting/config.sh
+          ! Porting/config_H config_h.SH doio.c ext/Socket/Socket.xs
+           ! hints/aix.sh pp_sys.c
+____________________________________________________________________________
+[  3577] By: gsar                                  on 1999/07/04  23:07:39
+        Log: test tweak
+     Branch: perl
+           ! t/io/openpid.t
+____________________________________________________________________________
+[  3576] By: jhi                                   on 1999/07/04  22:39:23
+        Log: Integrate with mainperl.
+     Branch: cfgperl
+          +> t/io/openpid.t
+           - win32/perlhost.h
+          !> (integrate 51 files)
+____________________________________________________________________________
+[  3575] By: jhi                                   on 1999/07/04  22:26:48
+        Log: Added 64-bit support for AIX 4.3 or better
+             based on Martin H. Rusoff's observations.
+     Branch: cfgperl
+           ! Configure config_h.SH hints/aix.sh
+____________________________________________________________________________
+[  3574] By: jhi                                   on 1999/07/04  21:34:47
+        Log: Do not throw away gccvers compilation errors.
+             From: Andy Dougherty <doughera@lafayette.edu>
+             To: Ron Seguin <rseguin@on.bell.ca>
+             Cc: Perl Porters <perl5-porters@perl.org>
+             Subject: [PATCH] Re: [ID 19990625.011]  WHOA There
+             Date: Mon, 28 Jun 1999 12:36:38 -0400 (EDT)
+             Message-Id: <Pine.GSU.4.05.9906281230100.6265-100000@newton.phys>
+     Branch: cfgperl
+           ! Configure config_h.SH
+____________________________________________________________________________
+[  3573] By: gsar                                  on 1999/07/04  21:10:32
+        Log: adapted suggested tests for addition to testsuite
+             From: RonaldWS@aol.com
+             Date:  Sun, 30 May 1999 16:27:28 EDT
+             Message-Id:  <25cd799f.2482f930@aol.com>
+             Subject: [19990530.007] Open with pipe | does not return pid under win32
+     Branch: perl
+           + t/io/openpid.t
+           ! MANIFEST win32/win32.c
+____________________________________________________________________________
+[  3572] By: gsar                                  on 1999/07/04  20:29:32
+        Log: perl_run() should call my_exit(0) for normal completion
+     Branch: perl
+           ! perl.c
+____________________________________________________________________________
+[  3571] By: jhi                                   on 1999/07/04  20:10:44
+        Log: Add test for change #3568 plus general cleanup.
+     Branch: cfgperl
+           ! t/pragma/locale.t
+____________________________________________________________________________
+[  3570] By: gsar                                  on 1999/07/04  20:03:21
+        Log: make overload, Data::Dumper, and dumpvar understand qr// stringify
+             overloading
+     Branch: perl
+          ! ext/Data/Dumper/Dumper.pm ext/Data/Dumper/Dumper.xs
+           ! lib/Dumpvalue.pm lib/dumpvar.pl lib/overload.pm pp_ctl.c
+____________________________________________________________________________
+[  3569] By: gsar                                  on 1999/07/04  18:04:48
+        Log: make AIX dynaloading work when libperl is shared (and thus under
+             mod_perl etc.)
+             From: Jens-Uwe Mager <jum@helios.de>
+             Date:  Sat, 29 May 1999 17:09:52 +0200
+             Message-Id:  <199905291509.RAA43978@ans.helios.de>
+             Subject: [19990529.002] DynaLoader does not work properly if perl is not the main program (AIX)
+     Branch: perl
+           ! ext/DynaLoader/dl_aix.xs
+____________________________________________________________________________
+[  3568] By: jhi                                   on 1999/07/04  14:54:23
+        Log: pp_lc/pp_lcfirst/pp_quotemeta/pp_uc/pp_ucfirst were not calling mg_set().
+             This resulted for example in the 'o' magic not being cleared by
+             magic_setcollxfrm(), which resulted in strange cmp results.
+             The bug was reported originally in the message
+             Subject: Bug with locale
+             From: Jan Starzynski <jan@planet.de> 
+             To: perlbug@perl.com 
+             Date: Fri, 09 Apr 1999 13:23:07 +0200 
+             Message-ID: <370DE31B.DAEE1332@planet.de> 
+     Branch: cfgperl
+           ! pp.c
+____________________________________________________________________________
+[  3567] By: gsar                                  on 1999/07/04  02:38:34
+        Log: remove misleading info on defined(&func), unclutter deprecation
+             about defined(@array)
+     Branch: perl
+          ! op.c pod/perldelta.pod pod/perldiag.pod pod/perlfunc.pod
+           ! t/pragma/warn/op
+____________________________________________________________________________
+[  3566] By: gsar                                  on 1999/07/04  01:46:31
+        Log: From: jan.dubois@ibm.net (Jan Dubois)
+             Date: Wed, 26 May 1999 22:07:17 +0200
+             Message-ID: <374c53ac.10322322@smtp1.ibm.net>
+             Subject: [PATCH 5.005_57] MINGW32 and EGCS 1.1.2 support
+     Branch: perl
+           ! Changes win32/win32.c win32/win32.h
+____________________________________________________________________________
+[  3565] By: gsar                                  on 1999/07/04  01:26:02
+        Log: newer version of perlxstut from Jeff Okamoto (slightly edited
+             for win32 issues)
+     Branch: perl
+           ! pod/perlxstut.pod
+____________________________________________________________________________
+[  3564] By: gsar                                  on 1999/07/02  03:09:04
+        Log: avoid warnings
+     Branch: perl
+           ! ext/Thread/Thread/Specific.pm lib/fields.pm
+____________________________________________________________________________
+[  3563] By: gsar                                  on 1999/06/28  19:23:47
+        Log: inc version (for CPAN.pm sanity)
+     Branch: perl
+           ! lib/Text/ParseWords.pm
+____________________________________________________________________________
+[  3562] By: gsar                                  on 1999/06/28  19:19:01
+        Log: regen perltoc
+     Branch: perl
+           ! pod/perltoc.pod
+____________________________________________________________________________
+[  3561] By: gsar                                  on 1999/06/28  19:08:41
+        Log: From: Damian Conway <damian@cs.monash.edu.au>
+             Date: Wed, 26 May 1999 00:58:35 -0400
+             Message-Id: <199905260458.AAA06411@defender.perl.org>
+             Subject: [19990526.002] Misc. improvements to Class:Struct
+     Branch: perl
+           ! MANIFEST lib/Class/Struct.pm
+____________________________________________________________________________
+[  3560] By: gsar                                  on 1999/06/28  18:50:52
+        Log: remove bogus PL_optype_size
+     Branch: perl
+           ! bytecode.pl ext/ByteLoader/byterun.h
+____________________________________________________________________________
+[  3559] By: gsar                                  on 1999/06/28  18:22:26
+        Log: upgrade CGI.pm to v2.53 (CGI/{Apache,Switch}.pm NOT deleted)
+     Branch: perl
+           + lib/CGI/Pretty.pm
+          ! eg/cgi/file_upload.cgi lib/CGI.pm lib/CGI/Carp.pm
+          ! lib/CGI/Cookie.pm lib/CGI/Fast.pm t/lib/cgi-form.t
+           ! t/lib/cgi-html.t t/lib/cgi-request.t
+____________________________________________________________________________
+[  3558] By: jhi                                   on 1999/06/28  07:30:21
+        Log: Change Olaf Lebbe's email address.
+     Branch: cfgperl
+           ! README.epoc
+____________________________________________________________________________
+[  3557] By: gsar                                  on 1999/06/28  00:07:33
+        Log: make autogenerated files writable
+     Branch: perl
+           - win32/perlhost.h
+          ! MANIFEST Porting/makerel embed.h embedvar.h ext/B/B/Asmdata.pm
+          ! ext/ByteLoader/byterun.c ext/ByteLoader/byterun.h global.sym
+          ! keywords.h lib/warning.pm objXSUB.h opcode.h pp.sym pp_proto.h
+          ! proto.h regnodes.h warning.h win32/config_H.bc
+           ! win32/config_H.gc win32/config_H.vc
+____________________________________________________________________________
+[  3556] By: jhi                                   on 1999/06/27  19:22:53
+        Log: Update MANIFEST to match #3555.
+     Branch: cfgperl
+           ! MANIFEST
+____________________________________________________________________________
+[  3555] By: jhi                                   on 1999/06/27  19:16:22
+        Log: EPOC port to Psion5.
+             From: Olaf Flebbe <O.Flebbe@science-computing.de>
+             To: Jarkko Hietaniemi <jhi@iki.fi>
+             Cc: perl5-porters@perl.org
+             Subject: Re: Psion5
+             Date: Sun, 27 Jun 1999 20:50:30 +0200 (METDST)
+             Message-ID: <Pine.GHP.4.02.9906272048130.17736-100000@io.science-computing.de>
+     Branch: cfgperl
+          + README.epoc epoc/config.h epoc/epoc.c epoc/epocish.h
+           + epoc/perl.mmp epoc/perl.pkg
+          ! MANIFEST doio.c lib/Term/ReadLine.pm lib/perl5db.pl perl.c
+           ! perl.h sv.c util.c
+____________________________________________________________________________
+[  3554] By: jhi                                   on 1999/06/27  18:50:52
+        Log: Integrate from mainperl.
+     Branch: cfgperl
+          !> (integrate 48 files)
+____________________________________________________________________________
+[  3553] By: gsar                                  on 1999/06/27  14:28:49
+        Log: somewhat untested PERL_OBJECT cleanups (C++isms mostly
+             gone from the public API); PERL_OBJECT builds again on
+             windows
+             
+             TODO: namespace-clean the typedefs in iperlsys.h and
+             elsewhere; remove C++ remnants from public headers
+     Branch: perl
+          ! XSUB.h bytecode.pl cv.h embed.h embed.pl ext/B/B.xs
+          ! ext/ByteLoader/ByteLoader.xs ext/ByteLoader/bytecode.h
+          ! ext/ByteLoader/byterun.c ext/ByteLoader/byterun.h
+          ! ext/DynaLoader/dlutils.c global.sym globals.c iperlsys.h
+          ! lib/ExtUtils/Embed.pm lib/ExtUtils/xsubpp mg.c objXSUB.h
+          ! opcode.h opcode.pl perl.c perl.h pod/perlhist.pod pp_ctl.c
+          ! pp_hot.c proto.h scope.h sv.h toke.c universal.c util.c
+          ! win32/GenCAPI.pl win32/Makefile win32/config.bc
+          ! win32/config.gc win32/config.vc win32/dl_win32.xs
+          ! win32/makedef.pl win32/makefile.mk win32/perllib.c
+          ! win32/runperl.c win32/win32.c win32/win32.h win32/win32iop.h
+           ! win32/win32sck.c
+____________________________________________________________________________
+[  3552] By: gsar                                  on 1999/06/27  13:49:31
+        Log: integrate cfgperl changes into mainline
+     Branch: perl
+         !> dump.c embed.h embed.pl embedvar.h global.sym intrpvar.h mg.c
+         !> objXSUB.h op.c perl.c perl.h perlvars.h pp.c pp_ctl.c
+         !> pp_proto.h pp_sys.c proto.h sv.c t/pragma/locale.t toke.c
+          !> util.c
+____________________________________________________________________________
+[  3551] By: gsar                                  on 1999/06/27  13:31:11
+        Log: fix indents
+     Branch: perl
+           ! op.c
+____________________________________________________________________________
+[  3550] By: gsar                                  on 1999/06/24  22:42:53
+        Log: update Changes
+     Branch: perl
+           ! Changes
+____________________________________________________________________________
+[  3549] By: gsar                                  on 1999/06/24  22:41:17
+        Log: avoid race condition in the CAPI extension bootstrap handler
+     Branch: perl
+           ! lib/ExtUtils/xsubpp win32/GenCAPI.pl
+____________________________________________________________________________
+[  3548] By: gsar                                  on 1999/06/24  22:39:53
+        Log: sanity check to cover the case when perl is installed into the
+             X:\ (drive root)
+     Branch: perl
+           ! win32/win32.c
+____________________________________________________________________________
+[  3547] By: gsar                                  on 1999/06/22  19:30:32
+        Log: tweak RefHash to make intent clearer (suggested by John Dlugosz)
+     Branch: perl
+           ! lib/Tie/RefHash.pm
+____________________________________________________________________________
+[  3544] By: jhi                                   on 1999/06/18  19:24:28
+        Log: Tidy up #3542 and #3543. 
+     Branch: cfgperl
+           ! t/pragma/locale.t util.c
+____________________________________________________________________________
+[  3543] By: jhi                                   on 1999/06/18  10:28:45
+        Log: Spice up locale.t.
+     Branch: cfgperl
+           ! t/pragma/locale.t
+____________________________________________________________________________
+[  3542] By: jhi                                   on 1999/06/17  22:42:03
+        Log: Fixed two long-standing locale bugs.
+             
+             Both problems were related to numeric locale which
+             controls the radix character aka the decimal separator.
+             (1) printf (and sprintf) were resetting the numeric locale to C.
+             (2) Using locale-numerically formatted floating point
+             numbers (e.g. "1,23") together with -w caused warnings about
+             "isn't numeric".  The operations were working fine, though,
+             because atof() was using the local locale.
+             Both problems reported by Stefan Vogtner.
+             
+             Introduced a wrapper for atof() that attempts to convert
+             the string both ways.  This helps Perl to understand
+             numbers like this "4.56" even when using a local locale
+             makes atof() understand only numbers like this "7,89".
+             
+             Remaining related problems, both of which existed before
+             this patch and continue to exist after this patch:
+             (a) The behaviour of print() is _not_ as documented by perllocale.
+             Instead of always using the C locale, print() does use the
+             local locale, just like the *printf() do.  This may be fixable
+             now that switching to-and-fro between locales has been made
+             more consistent, but fixing print() would change existing
+             behaviour.  perllocale is not changed by this patch.
+             (b) If a number has been stringified (say, via "$number") under
+             a local locale, the cached string value persists even under
+             "no locale".  This may or may not be a problem: operations
+             work fine because the original number is still there, but
+             that the string form keeps its locale-ish outlook may be
+             somewhat confusing.
+     Branch: cfgperl
+          ! dump.c embed.h embed.pl embedvar.h global.sym intrpvar.h mg.c
+          ! objXSUB.h op.c perl.c perl.h perlvars.h pp.c pp_ctl.c
+          ! pp_proto.h pp_sys.c proto.h sv.c t/pragma/locale.t toke.c
+           ! util.c
+____________________________________________________________________________
+[  3541] By: jhi                                   on 1999/06/17  20:00:16
+        Log: Integrate from mainperl.
+     Branch: cfgperl
+          !> ext/Data/Dumper/Dumper.pm op.c
+____________________________________________________________________________
+[  3540] By: gsar                                  on 1999/06/16  16:49:55
+        Log: dump C<0> as such, not C<'0'>
+     Branch: perl
+           ! ext/Data/Dumper/Dumper.pm
+____________________________________________________________________________
+[  3539] By: gsar                                  on 1999/06/13  04:04:40
+        Log: fix coredumper in change#3498
+     Branch: perl
+           ! op.c
+____________________________________________________________________________
+[  3538] By: jhi                                   on 1999/06/12  22:01:26
+        Log: Integrate from mainperl.
+     Branch: cfgperl
+          +> lib/caller.pm
+          !> (integrate 36 files)
+____________________________________________________________________________
+[  3537] By: gsar                                  on 1999/06/12  06:43:03
+        Log: EXTERN_C declarations for global arrays in various
+             headers, so perl can be built even in C++ mode; win32
+             build fixups; regen headers
+     Branch: perl
+          ! XSUB.h embedvar.h ext/B/B.xs objXSUB.h opcode.h opcode.pl
+           ! perl.h regcomp.h regexec.c utf8.h win32/win32.c win32/win32.h
+____________________________________________________________________________
+[  3536] By: gsar                                  on 1999/06/12  06:38:21
+        Log: caller.pm typos
+     Branch: perl
+           ! lib/caller.pm
+____________________________________________________________________________
+[  3535] By: gsar                                  on 1999/06/11  23:13:54
+        Log: various little tweaks; most globals are now in intrpvar.h, ninterps
+             is temporarily gone
+     Branch: perl
+          ! embed.pl intrpvar.h os2/os2.c perl.c perlvars.h
+           ! pod/perldelta.pod proto.h win32/perllib.c
+____________________________________________________________________________
+[  3534] By: gsar                                  on 1999/06/11  20:41:51
+        Log: implement C<use caller 'encoding'>
+     Branch: perl
+           + lib/caller.pm
+           ! MANIFEST perl.h pod/perldelta.pod pod/perlfunc.pod pp_ctl.c
+____________________________________________________________________________
+[  3533] By: gsar                                  on 1999/06/11  16:51:04
+        Log: truncate() has a peculiar exemption from strict barewords, even
+             though it has a non-filehandle prototype
+     Branch: perl
+           ! op.c t/io/fs.t
+____________________________________________________________________________
+[  3532] By: gsar                                  on 1999/06/11  09:09:16
+        Log: GDBM tweak
+     Branch: perl
+           ! ext/GDBM_File/GDBM_File.xs ext/GDBM_File/typemap
+____________________________________________________________________________
+[  3531] By: gsar                                  on 1999/06/10  23:34:19
+        Log: part of the platform changes for IMPLICIT_CONTEXT
+     Branch: perl
+          ! djgpp/djgpp.c jpl/JNI/JNI.xs jpl/JNI/typemap
+          ! jpl/PerlInterpreter/PerlInterpreter.c
+          ! jpl/PerlInterpreter/PerlInterpreter.h
+          ! os2/OS2/ExtAttr/ExtAttr.xs os2/OS2/PrfDB/PrfDB.xs
+           ! os2/OS2/Process/Process.xs os2/OS2/REXX/REXX.xs perl.h
+____________________________________________________________________________
+[  3530] By: jhi                                   on 1999/06/10  20:55:56
+        Log: Integrate from mainperl.
+     Branch: cfgperl
+          !> ext/DB_File/DB_File.xs ext/DB_File/typemap
+____________________________________________________________________________
+[  3529] By: gsar                                  on 1999/06/10  20:40:01
+        Log: DB_File tweaks for IMPLICIT CONTEXT
+     Branch: perl
+           ! ext/DB_File/DB_File.xs ext/DB_File/typemap
+____________________________________________________________________________
+[  3528] By: jhi                                   on 1999/06/10  10:18:15
+        Log: Integrate from mainperl.
+     Branch: cfgperl
+          !> (integrate 105 files)
+____________________________________________________________________________
+[  3527] By: gsar                                  on 1999/06/10  09:30:35
+        Log: most globals are now interpreter local; locale initialization
+             was too early, defer it until interpreter is allocated and
+             initialized; multiple interpreters should now be
+             concurrency-safe (untested)
+     Branch: perl
+          ! embedvar.h intrpvar.h malloc.c miniperlmain.c perl.c perl.h
+           ! perlvars.h
+____________________________________________________________________________
+[  3526] By: gsar                                  on 1999/06/10  08:38:00
+        Log: fix small nits
+     Branch: perl
+           ! cc_runtime.h ext/B/B/CC.pm run.c
+____________________________________________________________________________
+[  3525] By: gsar                                  on 1999/06/10  04:41:38
+        Log: win32 build fixes
+     Branch: perl
+          ! bytecode.pl dosish.h embed.h embed.pl ext/B/B.xs
+          ! ext/ByteLoader/ByteLoader.xs ext/ByteLoader/bytecode.h
+          ! ext/ByteLoader/byterun.h ext/SDBM_File/sdbm/sdbm.c globals.c
+          ! mg.c objXSUB.h op.h perl.c perl.h pp_sys.c proto.h sv.c util.c
+          ! win32/Makefile win32/config_H.bc win32/config_H.gc
+          ! win32/config_H.vc win32/config_h.PL win32/dl_win32.xs
+          ! win32/makedef.pl win32/makefile.mk win32/perllib.c
+          ! win32/win32.c win32/win32.h win32/win32sck.c
+           ! win32/win32thread.c win32/win32thread.h
+____________________________________________________________________________
+[  3524] By: gsar                                  on 1999/06/09  18:03:01
+        Log: more complete support for implicit thread/interpreter pointer,
+             enabled via -DPERL_IMPLICIT_CONTEXT (all changes are noops
+             without that enabled):
+             - USE_THREADS now enables PERL_IMPLICIT_CONTEXT, so dTHR
+             is a noop; tests pass on Solaris; should be faster now!
+             - MULTIPLICITY has been tested with and without
+             PERL_IMPLICIT_CONTEXT on Solaris
+             - improved function database now merged with embed.pl
+             - everything except the varargs functions have foo(a,b,c) macros
+             to provide compatibility
+             - varargs functions default to compatibility variants that
+             get the context pointer using dTHX
+             - there should be almost no source compatibility issues as a
+             result of all this
+             - dl_foo.xs changes other than dl_dlopen.xs untested
+             - still needs documentation, fixups for win32 etc
+             Next step: migrate most non-mutex variables from perlvars.h
+             to intrpvar.h
+     Branch: perl
+           - proto.pl
+          ! MANIFEST XSUB.h av.c bytecode.pl cv.h doio.c doop.c dump.c
+          ! ebcdic.c embed.h embed.pl embedvar.h ext/B/B.xs ext/B/typemap
+          ! ext/ByteLoader/ByteLoader.xs ext/ByteLoader/bytecode.h
+          ! ext/ByteLoader/byterun.c ext/ByteLoader/byterun.h
+          ! ext/Data/Dumper/Dumper.xs ext/Devel/Peek/Peek.xs
+          ! ext/DynaLoader/dl_aix.xs ext/DynaLoader/dl_beos.xs
+          ! ext/DynaLoader/dl_cygwin32.xs ext/DynaLoader/dl_dld.xs
+          ! ext/DynaLoader/dl_dlopen.xs ext/DynaLoader/dl_hpux.xs
+          ! ext/DynaLoader/dl_mpeix.xs ext/DynaLoader/dl_next.xs
+          ! ext/DynaLoader/dl_none.xs ext/DynaLoader/dl_rhapsody.xs
+          ! ext/DynaLoader/dl_vmesa.xs ext/DynaLoader/dl_vms.xs
+          ! ext/DynaLoader/dlutils.c ext/Opcode/Opcode.xs
+          ! ext/POSIX/POSIX.xs ext/Thread/Thread.xs ext/re/re.xs
+          ! global.sym globals.c gv.c hv.c lib/ExtUtils/typemap
+          ! lib/ExtUtils/xsubpp malloc.c mg.c mg.h miniperlmain.c
+          ! objXSUB.h op.c opcode.h opcode.pl perl.c perl.h perlio.c
+          ! perlsfio.h perly.c pp.c pp.h pp_ctl.c pp_hot.c pp_sys.c
+          ! proto.h regcomp.c regcomp.h regexec.c run.c scope.c scope.h
+          ! sv.c taint.c thrdvar.h thread.h toke.c universal.c utf8.c
+           ! util.c win32/Makefile win32/makefile.mk writemain.SH
+____________________________________________________________________________
+[  3523] By: gsar                                  on 1999/06/07  05:24:13
+        Log: missed a file
+     Branch: perl
+           + proto.pl
+           ! MANIFEST
+____________________________________________________________________________
+[  3522] By: gsar                                  on 1999/06/07  05:18:34
+        Log: initial stub implementation of implicit thread/this
+             pointer   argument; builds/tests on Solaris, win32
+             hasn't been fixed up yet; proto.h, global.sym and
+             static function decls are now generated from a common
+             database in proto.pl; some inconsistently named
+             perl_foo() things are now Perl_foo(), compatibility
+             #defines provided; perl_foo() (lowercase 'p') reserved
+             for functions that take an explicit context argument;
+             next step: generate #define foo(a,b) Perl_foo(aTHX_ a,b)
+     Branch: perl
+          ! XSUB.h av.c cop.h deb.c doio.c doop.c dump.c ebcdic.c embed.h
+          ! embed.pl ext/POSIX/POSIX.xs global.sym globals.c gv.c gv.h
+          ! hv.c malloc.c mg.c miniperlmain.c objXSUB.h op.c opcode.h
+          ! opcode.pl perl.c perl.h perl_exp.SH perlio.c perly.c perly.y
+          ! pp.c pp.sym pp_ctl.c pp_hot.c pp_proto.h pp_sys.c proto.h
+          ! regcomp.c regexec.c run.c scope.c scope.h sv.c taint.c toke.c
+           ! universal.c utf8.c util.c
+____________________________________________________________________________
+[  3521] By: gsar                                  on 1999/06/04  23:00:22
+        Log: clean up some stray "global" symbols
+     Branch: perl
+          ! embed.h embed.pl global.sym objXSUB.h opcode.pl pp.sym
+           ! pp_proto.h proto.h
+____________________________________________________________________________
+[  3520] By: jhi                                   on 1999/06/02  21:33:28
+        Log: Integrate from mainperl.
+     Branch: cfgperl
+          !> (integrate 94 files)
+____________________________________________________________________________
+[  3519] By: gsar                                  on 1999/06/02  07:16:10
+        Log: avoid dereferencing null pointer from getpwent() et al
+     Branch: perl
+           ! pp_sys.c
+____________________________________________________________________________
+[  3518] By: gsar                                  on 1999/06/02  04:47:10
+        Log: remove _() non-ansism
+     Branch: perl
+          ! Porting/config_H XSUB.h config_h.SH cv.h doio.c doop.c
+          ! ext/B/B/C.pm ext/B/B/CC.pm ext/B/byteperl.c
+          ! ext/ByteLoader/ByteLoader.xs ext/Data/Dumper/Dumper.xs
+          ! ext/DynaLoader/dl_beos.xs ext/DynaLoader/dl_dlopen.xs
+          ! ext/DynaLoader/dl_vmesa.xs ext/IO/poll.h ext/IPC/SysV/SysV.xs
+          ! ext/Opcode/Opcode.xs ext/POSIX/POSIX.xs ext/Thread/Thread.xs
+          ! ext/re/re.xs handy.h hv.c iperlsys.h
+          ! jpl/PerlInterpreter/PerlInterpreter.c lib/ExtUtils/Embed.pm
+          ! malloc.c mg.c mg.h minimod.pl miniperlmain.c op.c op.h
+          ! opcode.h opcode.pl os2/POSIX.mkfifo perl.c perl.h
+          ! plan9/config.plan9 pod/perlembed.pod pod/perlguts.pod pp.c
+          ! pp_ctl.c pp_hot.c pp_sys.c proto.h regcomp.c regexec.c run.c
+          ! scope.h sv.c sv.h thread.h toke.c util.c vms/sockadapt.h
+          ! vms/vmsish.h vms/writemain.pl vos/config.h
+          ! vos/config_h.SH_orig win32/GenCAPI.pl win32/config_H.bc
+          ! win32/config_H.gc win32/config_H.vc win32/makemain.pl
+          ! win32/perllib.c win32/runperl.c win32/win32.h
+          ! win32/win32thread.h writemain.SH x2p/a2p.c x2p/a2p.h x2p/a2p.y
+           ! x2p/hash.h x2p/str.h x2p/util.h x2p/walk.c
+____________________________________________________________________________
+[  3517] By: gsar                                  on 1999/06/02  02:17:51
+        Log: missed a few files
+     Branch: perl
+           ! ext/POSIX/POSIX.xs jpl/JNI/JNI.xs
+____________________________________________________________________________
+[  3516] By: gsar                                  on 1999/06/02  01:37:33
+        Log: integrate cfgperl contents into mainline
+     Branch: perl
+         +> ext/ByteLoader/bytecode.h ext/ByteLoader/byterun.c
+          +> ext/ByteLoader/byterun.h
+           - bytecode.h byterun.c byterun.h
+           ! Changes
+          !> (integrate 58 files)
+____________________________________________________________________________
+[  3515] By: gsar                                  on 1999/06/02  00:48:50
+        Log: remove stray K&R-isms
+     Branch: perl
+          ! ext/SDBM_File/sdbm/dba.c ext/SDBM_File/sdbm/dbd.c
+          ! ext/SDBM_File/sdbm/dbe.c ext/SDBM_File/sdbm/dbm.c
+          ! ext/SDBM_File/sdbm/dbu.c mg.c op.c pp_ctl.c pp_sys.c sv.c
+           ! toke.c util.c win32/win32.c x2p/hash.c
+____________________________________________________________________________
+[  3514] By: gsar                                  on 1999/06/01  15:55:55
+        Log: change#3447 didn't do enough to exempt Foo->bar(qw/.../) from
+             strict 'subs'
+     Branch: perl
+           ! op.c t/pragma/strict-subs
+____________________________________________________________________________
+[  3513] By: jhi                                   on 1999/06/01  07:17:05
+        Log: Patch applying of #3499 had gone awry.
+     Branch: cfgperl
+           ! ext/ByteLoader/bytecode.h ext/ByteLoader/byterun.h
+____________________________________________________________________________
+[  3512] By: gsar                                  on 1999/05/31  19:21:30
+        Log: tighter -help output
+     Branch: perl
+           ! perl.c
+____________________________________________________________________________
+[  3511] By: gsar                                  on 1999/05/31  17:18:23
+        Log: fix memory leak in C<eval 'return sub {...}'>
+     Branch: perl
+           ! embed.h embed.pl objXSUB.h pp_ctl.c proto.h
+____________________________________________________________________________
+[  3510] By: gsar                                  on 1999/05/31  14:11:46
+        Log: tweak C++isms
+     Branch: perl
+           ! win32/dl_win32.xs win32/win32.c
+____________________________________________________________________________
+[  3509] By: jhi                                   on 1999/05/30  13:02:26
+        Log: Cleanup of #3488.
+     Branch: cfgperl
+           ! Configure config_h.SH
+____________________________________________________________________________
+[  3508] By: jhi                                   on 1999/05/30  11:16:01
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             To: Mailing list Perl5 <perl5-porters@perl.org>
+             Subject: [PATCH 5.005_57] Teach Socket and io_unix.t the syntax of OS/2
+             Date: Sat, 29 May 1999 20:18:13 -0400
+             Message-ID: <19990529201813.B9489@monk.mps.ohio-state.edu>
+     Branch: cfgperl
+           ! ext/Socket/Socket.xs os2/os2ish.h t/lib/io_unix.t
+____________________________________________________________________________
+[  3507] By: jhi                                   on 1999/05/29  20:05:40
+        Log: From: Mark-Jason Dominus <mjd@plover.com>
+             To: perl5-porters@perl.com
+             Subject: PATCH (5.005_57): Document use of `SPECIAL' flag for `pushre':
+             Date: Sat, 29 May 1999 14:45:10 -0400
+             Message-ID: <19990529184510.27557.qmail@plover.com>
+     Branch: cfgperl
+           ! op.h
+____________________________________________________________________________
+[  3506] By: gsar                                  on 1999/05/29  16:49:39
+        Log: avoid gv_check() recursive pit
+     Branch: perl
+           ! gv.c
+____________________________________________________________________________
+[  3505] By: jhi                                   on 1999/05/29  11:38:16
+        Log: From: jan.dubois@ibm.net (Jan Dubois)
+             To: Gurusamy Sarathy <gsar@activestate.com>
+             Cc: perl5-porters@perl.org
+             Subject: [PATCH 5.005_57]Safeguard against unimplemented functions in pwuid.t and grent.t
+             Date: Sat, 29 May 1999 08:46:22 +0200
+             Message-ID: <374f8007.2016008@smtp1.ibm.net>
+     Branch: cfgperl
+           ! t/op/grent.t t/op/pwent.t
+____________________________________________________________________________
+[  3504] By: jhi                                   on 1999/05/29  11:07:10
+        Log: QNX needs <sys/select.h> to define fd_set.
+             
+             From: Norton Allen <allen@huarp.harvard.edu>
+             To: perl5-porters@perl.org
+             Subject: [19990526.016] Not OK: perl 5.00503 on x86-qnx 424
+             Date:  Wed, 26 May 1999 13:51:27 -0400 (EDT)
+             Message-Id:  <199905261751.NAA20966@bottesini.harvard.edu>
+     Branch: cfgperl
+           ! ext/IO/poll.c
+____________________________________________________________________________
+[  3503] By: jhi                                   on 1999/05/29  10:53:31
+        Log: From: jan.dubois@ibm.net (Jan Dubois)
+             To: Gurusamy Sarathy <gsar@activestate.com>, perl5-porters@perl.org
+             Subject: [PATCH all versions] (was Re: Unitialized Value Complaints in Math::BigFloat)
+             Date: Fri, 28 May 1999 20:14:35 +0200
+             Message-ID: <3751daa4.7188847@smtp1.ibm.net>
+     Branch: cfgperl
+           ! lib/Math/BigFloat.pm
+____________________________________________________________________________
+[  3502] By: jhi                                   on 1999/05/29  10:44:44
+        Log: Make Configure support the change #3367,
+             SysV shadow passwords.
+     Branch: cfgperl
+           ! Configure config_h.SH pp_sys.c
+____________________________________________________________________________
+[  3501] By: gsar                                  on 1999/05/28  21:22:23
+        Log: add wide versions of win32 system calls (first step in
+             globalization); delayload winsock for performance if compiling
+             with VC 6.0
+     Branch: perl
+          ! win32/Makefile win32/dl_win32.xs win32/makefile.mk
+           ! win32/win32.c win32/win32.h
+____________________________________________________________________________
+[  3500] By: jhi                                   on 1999/05/28  21:17:24
+        Log: The new t/lib/io_linenum.t was using stricture
+             before @INC was set up.
+     Branch: cfgperl
+           ! t/lib/io_linenum.t
+____________________________________________________________________________
+[  3499] By: jhi                                   on 1999/05/28  17:13:23
+        Log: From: Tom Hughes <tom@compton.nu>
+             To: perl5-porters@perl.org
+             Subject: [PATCH 5.005_57] ByteLoader mark 2
+             Date: Wed, 26 May 1999 23:59:49 +0100
+             Message-ID: <bf337a0849.tom@compton.compton.nu>
+             
+             plus resolve tiny conflict with #3479
+             plus regen_headers.
+     Branch: cfgperl
+          + ext/ByteLoader/bytecode.h ext/ByteLoader/byterun.c
+           + ext/ByteLoader/byterun.h
+           - bytecode.h byterun.c byterun.h
+          ! MANIFEST Makefile.SH bytecode.pl embed.h embedvar.h ext/B/B.pm
+          ! ext/B/B.xs ext/B/B/Bytecode.pm ext/B/Makefile.PL
+          ! ext/ByteLoader/ByteLoader.pm ext/ByteLoader/ByteLoader.xs
+          ! ext/ByteLoader/Makefile.PL global.sym intrpvar.h objXSUB.h
+           ! perl.h perlvars.h proto.h util.c utils/Makefile
+____________________________________________________________________________
+[  3498] By: jhi                                   on 1999/05/28  16:53:04
+        Log: From: Mark-Jason Dominus <mjd@plover.com>
+             To: perl5-porters@perl.com
+             Subject: PATCH (5.005_57): defined(@a) now deprecated
+             Date: Thu, 27 May 1999 16:05:44 -0400
+             Message-ID: <19990527200544.13330.qmail@plover.com>
+     Branch: cfgperl
+          ! lib/Carp.pm op.c opcode.h opcode.pl pod/perldelta.pod
+           ! pod/perldiag.pod pod/perlfunc.pod pp_proto.h t/pragma/warn/op
+____________________________________________________________________________
+[  3497] By: jhi                                   on 1999/05/28  16:50:54
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             To: perl5-porters@perl.org (Mailing list Perl5)
+             Subject: [PATCH 5.00557] Cosmetic OS/2-related patches
+             Date: Fri, 28 May 1999 12:13:00 -0400 (EDT)
+             Message-Id: <199905281613.MAA02048@monk.mps.ohio-state.edu>
+     Branch: cfgperl
+          ! MANIFEST Makefile.SH ext/POSIX/POSIX.xs hints/os2.sh
+           ! os2/Makefile.SHs t/io/pipe.t t/lib/io_sock.t
+____________________________________________________________________________
+[  3496] By: jhi                                   on 1999/05/28  16:48:39
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             To: perl5-porters@perl.org (Mailing list Perl5)
+             Subject: [PATCH 5.00557] Required OS/2-related patches
+             Date: Fri, 28 May 1999 12:11:48 -0400 (EDT)
+             Message-Id: <199905281611.MAA02037@monk.mps.ohio-state.edu>
+     Branch: cfgperl
+          ! os2/os2.c t/lib/bigfloatpm.t t/lib/io_unix.t t/op/groups.t
+           ! t/op/stat.t util.c
+____________________________________________________________________________
+[  3495] By: jhi                                   on 1999/05/28  16:45:56
+        Log: From: Paul Johnson <pjcj@transeda.com>
+             To: perl5-porters <perl5-porters@perl.org>
+             Subject: [PATCH 5.005_57] Provide more useful test okay percentage
+             Date: Fri, 28 May 1999 15:13:54 +0100
+             Message-ID: <19990528151354.B289@west-tip.transeda.com>
+     Branch: cfgperl
+           ! t/TEST
+____________________________________________________________________________
+[  3494] By: jhi                                   on 1999/05/28  16:44:34
+        Log: From: Paul Johnson <pjcj@transeda.com>
+             To: perl5-porters <perl5-porters@perl.org>
+             Subject: [PATCH 5.005_57] Fixes related to working local $.
+             Date: Fri, 28 May 1999 15:11:18 +0100
+             Message-ID: <19990528151118.A289@west-tip.transeda.com>
+     Branch: cfgperl
+           ! ext/IO/lib/IO/Handle.pm pod/perlvar.pod t/lib/io_linenum.t
+____________________________________________________________________________
+[  3493] By: gsar                                  on 1999/05/28  16:37:26
+        Log: change#3449 wasn't doing enough
+     Branch: perl
+           ! op.c t/comp/proto.t
+____________________________________________________________________________
+[  3492] By: jhi                                   on 1999/05/28  08:12:23
+        Log: From: paul.marquess@bt.com
+             To: doughera@lafayette.edu
+             Cc: perl5-porters@perl.org
+             Subject: RE: [19990527.002] DBM Filters in _57 cause problems in NDBM_File
+             Date: Thu, 27 May 1999 23:31:38 +0100
+             Message-ID: <5104D4DBC598D211B5FE0000F8FE7EB29C6C03@mbtlipnt02.btlabs.bt.co.uk>
+             
+             Had to be applied manually; some mailer had munged the patch slightly.
+     Branch: cfgperl
+           ! ext/NDBM_File/NDBM_File.xs
+____________________________________________________________________________
+[  3491] By: jhi                                   on 1999/05/28  07:51:17
+        Log: From: "Vishal Bhatia" <vishalb@my-deja.com>
+             To: perl5-porters@perl.org
+             Subject: [PATCH 5.005_57] fixing eval in the compiler
+             Date: Thu, 27 May 1999 07:56:54 -0700
+             Message-ID: <JDIKFDKKLGHHBAAA@my-deja.com>
+     Branch: cfgperl
+           ! cc_runtime.h scope.h
+____________________________________________________________________________
+[  3490] By: jhi                                   on 1999/05/28  07:47:06
+        Log: From: Andy Dougherty <doughera@lafayette.edu>
+             To: perlbug@perl.com
+             Cc: Jarkko Hietaniemi <jhi@iki.fi>
+             Subject: [PATCH] Configure updates for ISC 4.1
+             Date: Thu, 27 May 1999 15:19:21 -0400 (EDT)
+             Message-Id: <Pine.GSU.4.05.9905271513500.22115-100000@newton.phys>
+     Branch: cfgperl
+           ! Configure config_h.SH
+____________________________________________________________________________
+[  3489] By: jhi                                   on 1999/05/28  07:39:17
+        Log: Integrate from mainperl.
+     Branch: cfgperl
+          !> malloc.c win32/makedef.pl win32/win32.c
+____________________________________________________________________________
+[  3488] By: jhi                                   on 1999/05/27  16:57:19
+        Log: From: Andy Dougherty <doughera@lafayette.edu>
+             To: Perl Porters <perl5-porters@perl.org>
+             Subject: [PATCH] Re: 5.005_57 NOT OK on SunOS 4.1.3
+             Date: Thu, 27 May 1999 12:26:28 -0400 (EDT)
+             Message-Id: <Pine.GSU.4.05.9905271120230.22115-100000@newton.phys>
+     Branch: cfgperl
+           ! Configure config_h.SH hints/sunos_4_1.sh util.c
+____________________________________________________________________________
+[  3487] By: gsar                                  on 1999/05/27  03:56:20
+        Log: make win32_spawnvp() inherit standard handles even when they
+             may be redirected
+     Branch: perl
+           ! win32/win32.c
+____________________________________________________________________________
+[  3486] By: jhi                                   on 1999/05/26  19:55:52
+        Log: From: Andy Dougherty <doughera@lafayette.edu>
+             To: perl5-porters@perl.org
+             Subject: Re: BUG -> [19990526.004] perl5.005_57 error in util.c on sun4-solaris2.6
+             Date: Wed, 26 May 1999 14:49:52 -0400 (EDT)
+             Message-Id: <Pine.GSU.4.05.9905261448310.19172-100000@newton.phys>
+     Branch: cfgperl
+           ! util.c
+____________________________________________________________________________
+[  3485] By: chip                                  on 1999/05/26  17:19:11
+        Log: Look for Linux FILE structure in libio.h, for glibc-2.1.
+     Branch: maint-5.004/perl
+           ! Configure
+____________________________________________________________________________
+[  3484] By: gsar                                  on 1999/05/26  01:56:28
+        Log: fix missing exported symbol
+     Branch: perl
+           ! malloc.c win32/makedef.pl
+____________________________________________________________________________
+[  3483] By: jhi                                   on 1999/05/25  23:08:07
+        Log: Configure -Dopenbsd_distribution to build for the OpenBSD tree.
+             
+             From: "Todd C. Miller" <Todd.Miller@courtesan.com>
+             To: perlbug@perl.com
+             Subject: OpenBSD hints file update
+             Date: Tue, 25 May 1999 12:12:38 -0600 (MDT)
+             Message-Id: <199905251812.MAA06032@xerxes.courtesan.com>
+     Branch: cfgperl
+           ! hints/openbsd.sh
+____________________________________________________________________________
+[  3482] By: jhi                                   on 1999/05/25  23:01:25
+        Log: From: Tom Hughes <tom@compton.nu>
+             To: perl5-porters@perl.org
+             Subject: [PATCH 5.005_57] Make Configure recognise glibc 2.1 stdio
+             Date: Tue, 25 May 1999 23:10:23 +0100
+             Message-ID: <1ed7f10749.tom@compton.compton.nu>
+     Branch: cfgperl
+           ! Configure config_h.SH
+____________________________________________________________________________
+[  3481] By: jhi                                   on 1999/05/25  22:31:50
+        Log: 3479, 3480, 3481 seems logical.
+     Branch: cfgperl
+          !> hints/aix.sh
+____________________________________________________________________________
+[  3480] By: jhi                                   on 1999/05/25  22:13:39
+        Log: The change #3479 wasn't perfect.
+     Branch: perl
+           ! hints/aix.sh
+____________________________________________________________________________
+[  3479] By: jhi                                   on 1999/05/25  21:59:21
+        Log: Cures for _57 in AIX 4.1.5.0.
+             (1) The lddlflags lost its -lc by change #3660
+             (and the politeness of change #3257).
+             (2) optype_size must end up in perl.exp (as PL_optype_size).
+             Added it to perlvars.h, fixed bytecode.pl,
+             regen'ed the relevant headers.
+     Branch: cfgperl
+          ! bytecode.h bytecode.pl byterun.h embed.h embedvar.h objXSUB.h
+           ! perlvars.h
+     Branch: perl
+           ! hints/aix.sh
+____________________________________________________________________________
+[  3478] By: jhi                                   on 1999/05/25  20:13:47
+        Log: Integrate from mainperl.
+     Branch: cfgperl
+          +> pod/perltootc.pod
+          !> (integrate 101 files)
+____________________________________________________________________________
+[  3477] By: gsar                                  on 1999/05/25  10:43:48
+        Log: here be 5.005_57
+     Branch: perl
+           ! Changes MANIFEST Porting/makerel
+          !> Changes5.005
+
+----------------
+Version 5.005_57
+----------------
+
+____________________________________________________________________________
+[  3476] By: gsar                                  on 1999/05/25  09:23:43
+        Log: up patchlevel &c
+     Branch: perl
+          ! Changes patchlevel.h pod/perlhist.pod win32/Makefile
+          ! win32/config_H.bc win32/config_H.gc win32/config_H.vc
+           ! win32/makefile.mk
+____________________________________________________________________________
+[  3475] By: gsar                                  on 1999/05/25  09:14:51
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Tue, 25 May 1999 02:42:23 -0400 (EDT)
+             Message-Id: <199905250642.CAA06208@monk.mps.ohio-state.edu>
+             Subject: [PATCH 5.005_56] REx engine improvements
+     Branch: perl
+          ! embedvar.h mg.c objXSUB.h pp.c pp_ctl.c pp_hot.c regcomp.c
+          ! regexec.c regexp.h t/op/pat.t t/op/re_tests t/op/regexp.t
+           ! thrdvar.h util.c
+____________________________________________________________________________
+[  3474] By: gsar                                  on 1999/05/25  08:39:56
+        Log: test case for change#3470
+     Branch: perl
+           ! t/lib/bigintpm.t
+____________________________________________________________________________
+[  3473] By: gsar                                  on 1999/05/25  08:36:52
+        Log: perlport 1.43 update from Chris Nandor and Tom Christiansen
+     Branch: perl
+           ! Changes pod/perlport.pod
+____________________________________________________________________________
+[  3472] By: gsar                                  on 1999/05/25  08:28:57
+        Log: assorted tweaks
+     Branch: perl
+          ! doio.c iperlsys.h win32/config.bc win32/config.gc
+          ! win32/config.vc win32/config_H.bc win32/config_H.gc
+           ! win32/config_H.vc win32/makedef.pl
+____________________________________________________________________________
+[  3471] By: gsar                                  on 1999/05/25  06:06:04
+        Log: perlref update from Tom Christiansen
+     Branch: perl
+           ! pod/perlref.pod
+____________________________________________________________________________
+[  3470] By: gsar                                  on 1999/05/25  06:03:27
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Mon, 24 May 1999 17:43:56 -0400
+             Message-ID: <19990524174356.A1944@monk.mps.ohio-state.edu>
+             Subject: [PATCH 5.005_*] hv.c calling negative malloc()
+     Branch: perl
+           ! hv.c
+____________________________________________________________________________
+[  3469] By: gsar                                  on 1999/05/25  05:59:22
+        Log: avoid temporary files that have a constant name (from a suggestion
+             by Anthony J. Lill <ajlill@ajlc.waterloo.on.ca>)
+     Branch: perl
+           ! lib/ExtUtils/MM_Unix.pm
+____________________________________________________________________________
+[  3468] By: gsar                                  on 1999/05/25  05:54:29
+        Log: From: pvhp@forte.com (Peter Prymmer)
+             Date: Mon, 24 May 99 11:20:25 PDT
+             Message-Id: <9905241820.AA28071@forte.com>
+             Subject: [PATCH: _56 and _03]EBCDIC %HTML_Escapes for Pod::Text, plus sync patch.
+     Branch: perl
+           ! lib/Pod/Text.pm
+____________________________________________________________________________
+[  3467] By: gsar                                  on 1999/05/25  04:08:50
+        Log: fix glob() bug that resulted in missing symlinks that don't point
+             anywhere
+     Branch: perl
+           ! pp_hot.c
+____________________________________________________________________________
+[  3466] By: gsar                                  on 1999/05/25  03:00:00
+        Log: avoid enumerating @INC contents in diagnostic if @INC was never
+             searched
+     Branch: perl
+           ! pod/perldiag.pod pp_ctl.c
+____________________________________________________________________________
+[  3465] By: gsar                                  on 1999/05/25  02:24:08
+        Log: add caveat about close(PIPE) carelessness
+     Branch: perl
+           ! pod/perlfunc.pod
+____________________________________________________________________________
+[  3464] By: gsar                                  on 1999/05/24  23:55:53
+        Log: fix bogus line numbers for void context warnings
+             (change#2548 was overeager)
+     Branch: perl
+           ! op.c
+____________________________________________________________________________
+[  3463] By: gsar                                  on 1999/05/24  23:31:58
+        Log: change#3455 had a typo
+     Branch: perl
+           ! pp_ctl.c
+____________________________________________________________________________
+[  3462] By: gsar                                  on 1999/05/24  17:32:20
+        Log: more pod updates from Tom Christiansen; regen perltoc
+     Branch: perl
+          ! pod/perl.pod pod/perldelta.pod pod/perlmod.pod pod/perlobj.pod
+           ! pod/perlre.pod pod/perltoc.pod pod/perlvar.pod
+____________________________________________________________________________
+[  3461] By: gsar                                  on 1999/05/24  07:41:32
+        Log: perlmod notes from Damian Conway (via Tom Christiansen)
+     Branch: perl
+           ! pod/perlmod.pod
+____________________________________________________________________________
+[  3460] By: gsar                                  on 1999/05/24  07:24:11
+        Log: major pod update from Tom Christiansen
+     Branch: perl
+           + pod/perltootc.pod
+          ! MANIFEST lib/Pod/Functions.pm pod/Makefile pod/buildtoc
+          ! pod/perl.pod pod/perl5004delta.pod pod/perlcall.pod
+          ! pod/perldata.pod pod/perldebug.pod pod/perldelta.pod
+          ! pod/perldsc.pod pod/perlfunc.pod pod/perlipc.pod
+          ! pod/perllol.pod pod/perlmod.pod pod/perlmodinstall.pod
+          ! pod/perlmodlib.pod pod/perlobj.pod pod/perlop.pod
+          ! pod/perlopentut.pod pod/perlpod.pod pod/perlport.pod
+          ! pod/perlre.pod pod/perlref.pod pod/perlrun.pod pod/perlsec.pod
+          ! pod/perlsub.pod pod/perlsyn.pod pod/perlthrtut.pod
+          ! pod/perltie.pod pod/perltrap.pod pod/perlvar.pod
+           ! pod/perlxs.pod pod/pod2man.PL
+____________________________________________________________________________
+[  3459] By: gsar                                  on 1999/05/24  06:26:48
+        Log: perlfaq update from Tom Christiansen
+     Branch: perl
+          ! pod/perlfaq.pod pod/perlfaq1.pod pod/perlfaq2.pod
+          ! pod/perlfaq3.pod pod/perlfaq4.pod pod/perlfaq5.pod
+          ! pod/perlfaq6.pod pod/perlfaq7.pod pod/perlfaq8.pod
+           ! pod/perlfaq9.pod
+____________________________________________________________________________
+[  3458] By: gsar                                  on 1999/05/24  05:55:11
+        Log: updated to v1.50 from CPAN
+     Branch: perl
+           ! lib/CPAN.pm lib/CPAN/FirstTime.pm lib/CPAN/Nox.pm
+____________________________________________________________________________
+[  3457] By: gsar                                  on 1999/05/24  05:46:20
+        Log: From: Hugo van der Sanden <hv@crypt.compulink.co.uk>
+             Date: Sun, 23 May 1999 16:35:07 +0100
+             Message-Id: <199905231535.QAA00032@crypt.compulink.co.uk>
+             Subject: [PATCH 5.005_56] name PL_in_eval bits
+     Branch: perl
+           ! cop.h op.c perl.c pp_ctl.c toke.c util.c
+____________________________________________________________________________
+[  3456] By: gsar                                  on 1999/05/24  05:18:06
+        Log: make -t mode the default on emacs/dumb terminals
+     Branch: perl
+           ! Changes utils/perldoc.PL
+____________________________________________________________________________
+[  3455] By: gsar                                  on 1999/05/24  05:05:19
+        Log: return 0 rather than "" when scalar grep has nothing to iterate
+             on (brings behavior in line with documentation)
+     Branch: perl
+           ! pp_ctl.c
+____________________________________________________________________________
+[  3454] By: gsar                                  on 1999/05/24  04:52:52
+        Log: From: Tim Jenness <t.jenness@jach.hawaii.edu>
+             Date: Thu, 20 May 1999 13:27:02 -1000
+             Message-Id: <E10kcDN-0007TA-00@lapaki>
+             Subject: Problem with MM_Unix in 5.005_03
+     Branch: perl
+           ! lib/ExtUtils/MM_Unix.pm
+____________________________________________________________________________
+[  3453] By: gsar                                  on 1999/05/24  04:39:49
+        Log: avoid removing duplicates in user-generated warnings
+             From: byron@omix.com (Byron Brummer)
+             Date: Thu, 20 May 1999 04:01:17 -0700 (PDT)
+             Message-Id: <199905201101.EAA91175@thrush.omix.com>
+             Subject: [PATCH] Re: warn buffers/loses output in ?? - 5.005_03
+     Branch: perl
+           ! lib/diagnostics.pm
+____________________________________________________________________________
+[  3452] By: gsar                                  on 1999/05/24  04:23:10
+        Log: straighten some code to avoid NeXT compiler bugs (from
+             Geoff Kuenning <geoff@cs.hmc.edu>)
+     Branch: perl
+           ! pp_ctl.c
+____________________________________________________________________________
+[  3451] By: gsar                                  on 1999/05/24  03:03:05
+        Log: minor logic tweak for reserved word warning
+     Branch: perl
+           ! lib/Test/Harness.pm toke.c
+____________________________________________________________________________
+[  3450] By: gsar                                  on 1999/05/24  02:34:20
+        Log: oops, some files missing in change#3449
+     Branch: perl
+           ! op.c op.h toke.c
+____________________________________________________________________________
+[  3449] By: gsar                                  on 1999/05/24  02:33:12
+        Log: allow '*' prototype to autoquote even barewords that happen to be
+             function names; parens or ampersand continue to force the other
+             interpretation; makes C<sub Foo {'bar'} CORE::GLOBAL::require Foo;>
+             do the right thing, for example
+     Branch: perl
+           ! t/comp/proto.t
+____________________________________________________________________________
+[  3448] By: gsar                                  on 1999/05/24  01:51:24
+        Log: remove vestiges of PL_last_proto
+     Branch: perl
+           ! embedvar.h intrpvar.h objXSUB.h
+____________________________________________________________________________
+[  3447] By: gsar                                  on 1999/05/24  01:49:20
+        Log: redo change#2061 and parts of change#1169 with code in the
+             parser; PL_last_proto hackery gone, strict 'subs' in now
+             implemented in the optimizer where specifying the exceptional
+             cases is much more robust; '*' (bareword) prototype now works
+             reliably when used in second and subsequent arguments
+     Branch: perl
+           ! dump.c embed.h embed.pl objXSUB.h op.c op.h proto.h toke.c
+____________________________________________________________________________
+[  3446] By: gsar                                  on 1999/05/23  05:00:55
+        Log: remove redundant part of change#1169 superceded by change#2061;
+             avoid "future reserved word" warning on prototypical bearwords
+     Branch: perl
+           ! t/lib/fatal.t toke.c
+____________________________________________________________________________
+[  3445] By: gsar                                  on 1999/05/21  23:36:49
+        Log: s/isspace/isSPACE/g and make sure the CRT version is always
+             passed an unsigned char (fixes random occurrence of spaces in
+             arguments containing high-bit chars passed to spawned children,
+             on win32)
+     Branch: perl
+           ! ext/SDBM_File/sdbm/dbe.c win32/perlhost.h win32/win32.c
+____________________________________________________________________________
+[  3444] By: gsar                                  on 1999/05/21  23:08:55
+        Log: integrate Configure changes from cfgperl
+     Branch: perl
+         !> Configure Porting/Glossary Porting/config.sh Porting/config_H
+          !> config_h.SH
+____________________________________________________________________________
+[  3443] By: jhi                                   on 1999/05/21  22:00:56
+        Log: Integrate from mainperl.
+     Branch: cfgperl
+         !> Changes doop.c ext/SDBM_File/sdbm/dba.c
+         !> ext/SDBM_File/sdbm/dbd.c ext/SDBM_File/sdbm/dbe.c os2/os2.c
+         !> perl.h pod/perldiag.pod pod/perlport.pod pp.c t/comp/proto.t
+          !> win32/perlhost.h win32/win32.c x2p/walk.c
+____________________________________________________________________________
+[  3442] By: jhi                                   on 1999/05/21  21:59:46
+        Log: fflush.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+           ! config_h.SH
+____________________________________________________________________________
+[  3441] By: gsar                                  on 1999/05/21  17:48:55
+        Log: integrate cfgperl changes
+     Branch: perl
+         !> Configure Porting/Glossary Porting/config.sh Porting/config_H
+          !> config_h.SH hints/sunos_4_1.sh installperl
+____________________________________________________________________________
+[  3440] By: gsar                                  on 1999/05/21  17:42:49
+        Log: test tweak
+     Branch: perl
+           ! t/comp/proto.t
+____________________________________________________________________________
+[  3439] By: gsar                                  on 1999/05/21  17:31:26
+        Log: fix breakage when neither FFLUSH_ALL nor FFLUSH_NULL are #defined.
+             (Configure fflush(NULL) detection seems broken on Solaris, which
+             is why I hit the problem)
+     Branch: perl
+           ! Changes perl.h
+____________________________________________________________________________
+[  3438] By: gsar                                  on 1999/05/20  16:41:01
+        Log: perlport 1.41 update from Chris Nandor <pudge@pobox.com>
+     Branch: perl
+           ! pod/perlport.pod
+____________________________________________________________________________
+[  3437] By: jhi                                   on 1999/05/20  07:14:39
+        Log: Patches to fflushing in SunOS 4 from Andy Dougherty
+             (via private email).
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+           ! config_h.SH hints/sunos_4_1.sh
+____________________________________________________________________________
+[  3436] By: gsar                                  on 1999/05/20  05:18:26
+        Log: various little nits
+     Branch: perl
+          ! doop.c ext/SDBM_File/sdbm/dba.c ext/SDBM_File/sdbm/dbd.c
+          ! ext/SDBM_File/sdbm/dbe.c os2/os2.c pod/perldiag.pod pp.c
+           ! win32/perlhost.h win32/win32.c x2p/walk.c
+____________________________________________________________________________
+[  3435] By: jhi                                   on 1999/05/18  16:25:49
+        Log: From: Hugo van der Sanden <hv@crypt.compulink.co.uk>
+             To: perl5-porters@perl.org
+             Subject: installperl
+             Date: Fri, 14 May 1999 21:34:58 +0100
+             Message-Id: <199905142034.VAA00865@crypt.compulink.co.uk>
+     Branch: cfgperl
+           ! installperl
+____________________________________________________________________________
+[  3434] By: jhi                                   on 1999/05/17  21:25:54
+        Log: Integrate from mainperl.
+     Branch: cfgperl
+          +> lib/ExtUtils/MM_Cygwin.pm
+           - cygwin32/impure_ptr.c
+         !> MANIFEST README.cygwin32 XSUB.h cygwin32/Makefile.SHs
+         !> cygwin32/perlld.in dosish.h ext/DynaLoader/dl_cygwin32.xs
+         !> ext/POSIX/POSIX.xs gv.c hints/cygwin32.sh installman
+         !> installperl perl.h pod/perldiag.pod pp.c pp_hot.c util.c
+          !> x2p/find2perl.PL
+____________________________________________________________________________
+[  3433] By: gsar                                  on 1999/05/17  09:49:01
+        Log: integrate cfgperl changes into mainline
+     Branch: perl
+         !> Configure INSTALL config_h.SH configure.com embed.h
+         !> ext/Devel/Peek/Peek.xs ext/Socket/Socket.xs global.sym
+         !> hints/dec_osf.sh objXSUB.h perl.h pod/perldiag.pod proto.h
+          !> util.c
+____________________________________________________________________________
+[  3432] By: gsar                                  on 1999/05/17  09:06:45
+        Log: emit more appropriate diagnostic for failed glob (variant
+             of patch suggested by Graham Barr)
+     Branch: perl
+           ! gv.c pod/perldiag.pod pp.c pp_hot.c
+____________________________________________________________________________
+[  3431] By: gsar                                  on 1999/05/17  08:38:09
+        Log: From: "Todd C. Miller" <Todd.Miller@courtesan.com>
+             Date: Thu, 13 May 1999 22:18:43 -0600 (MDT)
+             Message-Id: <199905140418.WAA18826@xerxes.courtesan.com>
+             Subject: find2perl does not grok the 'c' suffix to the -size argument
+     Branch: perl
+           ! x2p/find2perl.PL
+____________________________________________________________________________
+[  3430] By: gsar                                  on 1999/05/17  08:26:21
+        Log: additional cleanups for cygwin32 port
+             From: "Fifer, Eric" <EFifer@sanwaint.com>
+             Date: Wed, 12 May 1999 20:25:54 +0100
+             Message-ID: <71E287AB0D94D111BBD600600849EC8185EDAF@POST>
+             Subject: [PATCH]perl5.005_03 (CORE) cygwin32 port
+     Branch: perl
+           + lib/ExtUtils/MM_Cygwin.pm
+           - cygwin32/impure_ptr.c
+          ! MANIFEST README.cygwin32 XSUB.h cygwin32/Makefile.SHs
+          ! cygwin32/perlld.in dosish.h ext/DynaLoader/dl_cygwin32.xs
+          ! ext/POSIX/POSIX.xs hints/cygwin32.sh installman installperl
+           ! perl.h util.c
+____________________________________________________________________________
+[  3429] By: gsar                                  on 1999/05/17  08:01:04
+        Log: From: Andy Dougherty <doughera@lafayette.edu>
+             Date: Wed, 12 May 1999 11:44:11 -0400 (EDT)
+             Message-Id: <Pine.GSU.4.05.9905121136520.25150-100000@newton.phys>
+             Subject: [PATCH] (Was Re: SunOS4.1 compilation error)
+     Branch: perl
+           ! INSTALL
+____________________________________________________________________________
+[  3428] By: jhi                                   on 1999/05/17  07:03:26
+        Log: Integrate from mainperl modulo the Socket.xs change.
+     Branch: cfgperl
+         !> ext/Socket/Socket.xs op.c win32/include/sys/socket.h
+          !> win32/win32.c win32/win32.h
+____________________________________________________________________________
+[  3427] By: jhi                                   on 1999/05/16  22:09:11
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             To: perl5-porters@perl.org (Mailing list Perl5)
+             Subject: [PATCH 5.005_56] Devel::Peek::mstat not working
+             Date: Sun, 16 May 1999 01:28:18 -0400 (EDT)
+             Message-Id: <199905160528.BAA23376@monk.mps.ohio-state.edu>
+     Branch: cfgperl
+           ! ext/Devel/Peek/Peek.xs
+____________________________________________________________________________
+[  3426] By: jhi                                   on 1999/05/16  22:07:11
+        Log: From: Mark-Jason Dominus <mjd@plover.com>
+             To: perl5-porters@perl.com
+             Subject: DOC PATCH (5.005_55): Error message missing from perldiag.pod
+             Date: Sat, 15 May 1999 12:43:47 -0400
+             Message-ID: <19990515164348.7313.qmail@plover.com>
+     Branch: cfgperl
+           ! pod/perldiag.pod
+____________________________________________________________________________
+[  3425] By: nick                                  on 1999/05/15  15:56:10
+        Log: Mingw32 + w32api-0.1.5 tweaks
+             - now more like other Win32 compilers
+     Branch: perl
+          ! ext/Socket/Socket.xs win32/include/sys/socket.h win32/win32.c
+           ! win32/win32.h
+____________________________________________________________________________
+[  3424] By: nick                                  on 1999/05/14  21:04:22
+        Log: Experimental "slab" allocator for ops.
+             To try it -DPL_OP_SLAB_ALLOC for op.c 
+             This is for proof of concept only, it leaks memory 
+             (ops are not free'd) so don't use in embedded apps.
+             If this minimalist version does not show performance 
+             gain then whole idea is worthless. 
+             Nick see's approx 12% speed up vs perlmalloc running
+             perl -Ilib -MCPAN -e '' 
+             Solaris2.6, gcc-2.8.1 but numbers are not repeatable.
+     Branch: perl
+           ! op.c
+____________________________________________________________________________
+[  3423] By: gsar                                  on 1999/05/14  19:55:04
+        Log: on win32, look for "site/5.XXX/lib" if "site/5.XXXYY/lib" isn't
+             found (brings sitelib intuition in line with privlib)
+     Branch: perl
+           ! win32/win32.c
+____________________________________________________________________________
+[  3422] By: jhi                                   on 1999/05/14  08:08:01
+        Log: From: pvhp@forte.com (Peter Prymmer)
+             To: perl5-porters@perl.org, vmsperl@perl.org
+             Subject: [PATCH: 5.005_56] add config.msg to VMS configure.com
+             Date: Thu, 13 May 99 15:29:57 PDT
+             Message-Id: <9905132229.AA15854@forte.com>
+     Branch: cfgperl
+           ! configure.com
+____________________________________________________________________________
+[  3421] By: jhi                                   on 1999/05/14  07:34:20
+        Log: Integrate from mainperl.
+     Branch: cfgperl
+          !> lib/ExtUtils/MM_Unix.pm win32/win32.c
+____________________________________________________________________________
+[  3420] By: jhi                                   on 1999/05/14  07:33:26
+        Log: Still fflushing.
+     Branch: cfgperl
+           ! Configure config_h.SH util.c
+____________________________________________________________________________
+[  3419] By: gsar                                  on 1999/05/14  03:08:29
+        Log: mortalize string allocations by win32_get_{priv,site}lib()
+             (fixes small memory leak in interpreter)
+     Branch: perl
+           ! win32/win32.c
+____________________________________________________________________________
+[  3418] By: gsar                                  on 1999/05/14  03:06:50
+        Log: make win32_longname() preserve kind of slashes in argument
+     Branch: perl
+           ! win32/win32.c
+____________________________________________________________________________
+[  3417] By: gsar                                  on 1999/05/14  03:04:44
+        Log: canonicalize path for $(FULLPERL) and $(PERL) in MakeMaker
+     Branch: perl
+           ! lib/ExtUtils/MM_Unix.pm
+____________________________________________________________________________
+[  3416] By: jhi                                   on 1999/05/13  21:18:06
+        Log: Integrate from mainperl.
+     Branch: cfgperl
+          !> pp_ctl.c
+____________________________________________________________________________
+[  3415] By: jhi                                   on 1999/05/13  21:16:49
+        Log: Fixes from Andy Dougherty (via private email).
+     Branch: cfgperl
+           ! Configure config_h.SH
+____________________________________________________________________________
+[  3414] By: nick                                  on 1999/05/13  20:04:26
+        Log: valist vs va_list typo
+     Branch: perl
+           ! pp_ctl.c
+____________________________________________________________________________
+[  3413] By: jhi                                   on 1999/05/13  15:04:05
+        Log: From: Andy Dougherty <doughera@lafayette.edu>
+             To: perlbug@perl.com
+             Subject: [PATCH] (Was Re: SunOS4.1 compilation error)
+             Date: Wed, 12 May 1999 11:44:11 -0400 (EDT)
+             Message-Id: <Pine.GSU.4.05.9905121136520.25150-100000@newton.phys>
+     Branch: cfgperl
+           ! INSTALL
+____________________________________________________________________________
+[  3412] By: jhi                                   on 1999/05/13  14:20:17
+        Log: Integrate from mainperl.
+     Branch: cfgperl
+          !> pp_ctl.c
+____________________________________________________________________________
+[  3411] By: gsar                                  on 1999/05/13  14:16:56
+        Log: docatch_body() declaration mismatch
+     Branch: perl
+           ! pp_ctl.c
+____________________________________________________________________________
+[  3410] By: jhi                                   on 1999/05/13  13:51:44
+        Log: Add HAS_MEMCHR and make memchr into a cpp macro if it already isn't.
+     Branch: cfgperl
+           ! Configure config_h.SH perl.h
+____________________________________________________________________________
+[  3409] By: jhi                                   on 1999/05/13  13:31:53
+        Log: Still fflushing strong.
+     Branch: cfgperl
+          ! Configure config_h.SH embed.h global.sym objXSUB.h perl.h
+           ! proto.h util.c
+____________________________________________________________________________
+[  3408] By: jhi                                   on 1999/05/12  14:30:23
+        Log: Integrate from mainperl.
+     Branch: cfgperl
+          !> (integrate 30 files)
+____________________________________________________________________________
+[  3407] By: jhi                                   on 1999/05/12  12:28:31
+        Log: Be tidier with fflush(NULL) testing.
+     Branch: cfgperl
+           ! Configure config_h.SH
+____________________________________________________________________________
+[  3406] By: gsar                                  on 1999/05/12  11:26:03
+        Log: better range-checking on list slices, with test
+             From: Hugo van der Sanden <hv@crypt.compulink.co.uk>
+             Date: Sun, 02 May 1999 17:02:53 +0100
+             Message-Id: <199905021602.RAA13905@crypt.compulink.co.uk>
+             Subject: Re: List slice of undefs returns 0 items 
+     Branch: perl
+           ! pp.c t/op/list.t
+____________________________________________________________________________
+[  3405] By: gsar                                  on 1999/05/12  11:22:27
+        Log: change#3397 needs test tweak
+     Branch: perl
+           ! Changes t/pragma/warn/sv
+____________________________________________________________________________
+[  3404] By: gsar                                  on 1999/05/12  11:07:44
+        Log: typo in change#3397
+     Branch: perl
+           ! doop.c
+____________________________________________________________________________
+[  3403] By: gsar                                  on 1999/05/12  10:49:01
+        Log: From: Stephen Zander <gibreel@pobox.com>
+             Date: 12 May 1999 01:22:31 -0700
+             Message-ID: <87u2tik88o.fsf@pooh.fire-swamp.net>
+             Subject: Re: Test::Harness runs tainted tests with wrong library path
+     Branch: perl
+           ! lib/Test/Harness.pm
+____________________________________________________________________________
+[  3402] By: gsar                                  on 1999/05/12  10:42:06
+        Log: typo in change#3400
+     Branch: perl
+           ! ext/B/B/Deparse.pm
+____________________________________________________________________________
+[  3401] By: jhi                                   on 1999/05/12  10:40:42
+        Log: A better, shinier, and possibly even correctly working
+             reincarnation of #3398.
+     Branch: cfgperl
+           ! Configure config_h.SH
+____________________________________________________________________________
+[  3400] By: gsar                                  on 1999/05/12  10:40:11
+        Log: deparse \&func() as \(&func()) for clarity
+             From: Albert Dvornik <bert@genscan.com>
+             Date: 11 May 1999 13:32:04 -0400
+             Message-ID: <tqk8ufwm0b.fsf@puma.genscan.com>
+             Subject: [PATCH 5.005_56] Deparse and \&func() (was Re: File::Find...)
+     Branch: perl
+           ! ext/B/B/Deparse.pm
+____________________________________________________________________________
+[  3399] By: gsar                                  on 1999/05/12  10:36:02
+        Log: more testsuite smarts (many of them courtesy Ilya)
+     Branch: perl
+          ! lib/Test/Harness.pm t/comp/cpp.t t/io/pipe.t t/lib/db-btree.t
+          ! t/lib/db-hash.t t/lib/db-recno.t t/lib/gdbm.t
+          ! t/lib/io_multihomed.t t/lib/io_pipe.t t/lib/io_sock.t
+          ! t/lib/io_udp.t t/lib/io_unix.t t/lib/ipc_sysv.t t/lib/ndbm.t
+          ! t/lib/odbm.t t/lib/thread.t t/op/exec.t t/op/fork.t
+          ! t/op/grent.t t/op/groups.t t/op/nothread.t t/op/numconvert.t
+           ! t/op/pwent.t
+____________________________________________________________________________
+[  3398] By: jhi                                   on 1999/05/12  09:33:08
+        Log: Detect whether fflush(NULL) works as per change #3352.
+     Branch: cfgperl
+           ! Configure config_h.SH perl.h
+____________________________________________________________________________
+[  3397] By: gsar                                  on 1999/05/12  08:56:03
+        Log: From: jan.dubois@ibm.net (Jan Dubois)
+             Date: Wed, 12 May 1999 01:01:00 +0200
+             Message-ID: <3741b5e8.20386944@smtp1.ibm.net>
+             Subject: [PATCH 5.005_03] chop/chomp modify readonly values
+     Branch: perl
+           ! doop.c
+____________________________________________________________________________
+[  3396] By: gsar                                  on 1999/05/12  08:23:27
+        Log: opendir(D,"x:") on win32 opens cwd() for drive rather than root;
+             stat() behaves similarly
+     Branch: perl
+           ! win32/win32.c
+____________________________________________________________________________
+[  3395] By: jhi                                   on 1999/05/11  22:21:32
+        Log: Redo parts of #3341 and #3358 that #3394 undid.
+     Branch: cfgperl
+           ! Configure config_h.SH
+____________________________________________________________________________
+[  3394] By: jhi                                   on 1999/05/11  22:03:48
+        Log: Add I_NETINET_TCP to help change #3391.
+     Branch: cfgperl
+           ! Configure config_h.SH ext/Socket/Socket.xs
+____________________________________________________________________________
+[  3393] By: jhi                                   on 1999/05/11  21:44:59
+        Log: Integrate from mainperl.
+     Branch: cfgperl
+          !> (integrate 55 files)
+____________________________________________________________________________
+[  3392] By: gsar                                  on 1999/05/11  20:56:43
+        Log: update embedvar.h
+     Branch: perl
+           ! embedvar.h ext/ByteLoader/ByteLoader.pm pod/perldelta.pod
+____________________________________________________________________________
+[  3391] By: gsar                                  on 1999/05/11  16:32:05
+        Log: From: Joshua Pritikin <joshua.pritikin@db.com>
+             Date: Tue, 11 May 1999 11:10:13 -0400 (EDT)
+             Message-ID: <Pine.GSO.4.02.9905111106460.1418-100000@eq1062.wks.na.deuba.com>
+             Subject: Socket IPPROTO_TCP [PATCH 5.005_5x]
+     Branch: perl
+           ! ext/Socket/Socket.pm ext/Socket/Socket.xs
+____________________________________________________________________________
+[  3390] By: gsar                                  on 1999/05/11  15:27:40
+        Log: display more frequent progress messages when STDOUT is a tty
+     Branch: perl
+           ! lib/Test/Harness.pm
+____________________________________________________________________________
+[  3389] By: gsar                                  on 1999/05/11  14:40:58
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Mon, 10 May 1999 02:07:01 -0400 (EDT)
+             Message-Id: <199905100607.CAA26045@monk.mps.ohio-state.edu>
+             Subject: [PATCH 5.005_53] Explanations by Test::Harness
+     Branch: perl
+           ! lib/Test/Harness.pm
+____________________________________________________________________________
+[  3388] By: gsar                                  on 1999/05/11  14:08:14
+        Log: avoid creating spurious subroutine stubs on failed subroutine
+             call and other places of sv_2cv() misuse; fixes problems with
+             failed subroutine calls "hiding" later attempts to lookup methods
+             in base classes
+     Branch: perl
+           ! gv.c perl.c pod/perlguts.pod pp_hot.c sv.c t/op/method.t
+____________________________________________________________________________
+[  3387] By: gsar                                  on 1999/05/11  09:34:13
+        Log: various fixes for clean build and test on win32; configpm broken,
+             needed to open myconfig.SH rather than myconfig; sundry adjustments
+             to bytecode stuff; tweaks to DYNAMIC_ENV_FETCH code to make it
+             work under win32; getenv_sv() changed to getenv_len() since SVs
+             aren't visible in the lower echelons; remove bogus exports from
+             config.sym; PERL_OBJECT-ness for C++ exception support; null out
+             IoDIRP in filter_del() or sv_free() will attempt to close it
+     Branch: perl
+          ! Changes bytecode.pl byterun.c byterun.h configpm embed.h
+          ! embed.pl ext/B/B/Asmdata.pm ext/ByteLoader/ByteLoader.xs
+          ! ext/DynaLoader/dlutils.c global.sym hv.c iperlsys.h objXSUB.h
+          ! op.c perl.c perl.h pp.c pp_ctl.c proto.h scope.c scope.h
+          ! t/io/open.t t/op/magic.t toke.c util.c vms/vms.c vms/vmsish.h
+          ! win32/GenCAPI.pl win32/Makefile win32/config.bc
+          ! win32/config.gc win32/config.vc win32/makedef.pl
+          ! win32/makefile.mk win32/perlhost.h win32/runperl.c
+           ! win32/win32.c win32/win32.h
+____________________________________________________________________________
+[  3386] By: gsar                                  on 1999/05/11  02:49:07
+        Log: gutsupport for C++ exceptions
+             From: Chip Salzenberg <chip@perlsupport.com>
+             Date: Tue, 9 Mar 1999 11:51:57 -0500
+             Message-ID: <19990309115157.E7911@perlsupport.com>
+             Subject: [PATCH 5.005] Flexible Exceptions
+     Branch: perl
+          ! embed.h global.sym objXSUB.h perl.c perl.h pp_ctl.c proto.h
+           ! scope.c scope.h thrdvar.h util.c
+____________________________________________________________________________
+[  3385] By: gsar                                  on 1999/05/10  19:33:36
+        Log: "weak" references internals, still needs perlguts documentation
+             (somewhat modified version of patch suggested by Tuomas J. Lukka
+             <lukka@fas.harvard.edu>)
+     Branch: perl
+          ! dump.c embed.h embed.pl global.sym mg.c objXSUB.h perl.h
+           ! pod/perldiag.pod proto.h sv.c sv.h util.c
+____________________________________________________________________________
+[  3384] By: jhi                                   on 1999/05/10  18:21:43
+        Log: Circumnavigate Digital UNIX 4.0D miniperl core dump
+             (due to QAR 56761) (the bug has been fixed in 4.0E or better)
+     Branch: cfgperl
+           ! INSTALL hints/dec_osf.sh
+____________________________________________________________________________
+[  3381] By: jhi                                   on 1999/05/10  14:39:28
+        Log: Integrate from mainperl.
+     Branch: cfgperl
+         +> cygwin32/Makefile.SHs cygwin32/build-instructions.READFIRST
+         +> cygwin32/build-instructions.charles-wilson
+         +> cygwin32/build-instructions.sebastien-barre
+         +> cygwin32/build-instructions.steven-morlock
+         +> cygwin32/build-instructions.steven-morlock2
+         +> cygwin32/impure_ptr.c cygwin32/ld2.in cygwin32/perlld.in
+         +> ext/ByteLoader/ByteLoader.pm ext/ByteLoader/ByteLoader.xs
+         +> ext/ByteLoader/Makefile.PL pod/Win32.pod t/lib/io_linenum.t
+          +> t/op/numconvert.t utils/perlbc.PL
+          - cygwin32/cw32imp.h cygwin32/gcc2 cygwin32/ld2 cygwin32/perlgcc
+           - cygwin32/perlld
+          !> (integrate 105 files)
+____________________________________________________________________________
+[  3380] By: gsar                                  on 1999/05/10  12:27:14
+        Log: regen regnodes.h
+     Branch: perl
+           ! Changes regnodes.h
+____________________________________________________________________________
+[  3379] By: gsar                                  on 1999/05/10  12:17:26
+        Log: From: jan.dubois@ibm.net (Jan Dubois)
+             Date: Sat, 01 May 1999 22:55:36 +0200
+             Message-ID: <373067e9.56194713@smtp1.ibm.net>
+             Subject: [PATCH 5.005_56] Win32 and VC++ 98 doesn't support CASTI
+     Branch: perl
+          ! pod/perlfunc.pod pod/perlop.pod win32/config.vc
+           ! win32/config_H.vc
+____________________________________________________________________________
+[  3378] By: gsar                                  on 1999/05/10  12:07:13
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Fri, 30 Apr 1999 22:26:09 -0400 (EDT)
+             Message-Id: <199905010226.WAA19127@monk.mps.ohio-state.edu>
+             Subject: [PATCH 5.005_56] Self-consistent numeric conversion again
+     Branch: perl
+           + t/op/numconvert.t
+          ! MANIFEST doio.c dump.c perl.h pp.c pp_hot.c sv.c sv.h toke.c
+           ! util.c
+____________________________________________________________________________
+[  3377] By: gsar                                  on 1999/05/10  11:39:48
+        Log: pp_modulo comment tweak from Ilya
+     Branch: perl
+           ! pp.c
+____________________________________________________________________________
+[  3376] By: gsar                                  on 1999/05/10  11:30:40
+        Log: From: Joshua Pritikin <joshua.pritikin@db.com>
+             Date: Fri, 7 May 1999 11:31:00 -0400 (EDT)
+             Message-ID: <Pine.GSO.4.02.9905071127100.1449-100000@eq1062.wks.na.deuba.com>
+             Subject: Test.pm update [PATCH _56]
+     Branch: perl
+           ! lib/Test.pm
+____________________________________________________________________________
+[  3375] By: gsar                                  on 1999/05/10  11:28:30
+        Log: From: jan.dubois@ibm.net (Jan Dubois)
+             Date: Fri, 07 May 1999 00:59:54 +0200
+             Message-ID: <373318ae.19292461@smtp1.ibm.net>
+             Subject: Re: Using existing memory for an SV's PV 
+     Branch: perl
+           ! sv.c
+____________________________________________________________________________
+[  3374] By: gsar                                  on 1999/05/10  11:23:44
+        Log: From: jan.dubois@ibm.net (Jan Dubois)
+             Date: Fri, 07 May 1999 00:59:52 +0200
+             Message-ID: <37321800.19118320@smtp1.ibm.net>
+             Subject: [PATCH 5.005_56] Fix -Dm memory debugging for PERL_OBJECT
+     Branch: perl
+           ! perl.h
+____________________________________________________________________________
+[  3373] By: gsar                                  on 1999/05/10  11:22:10
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Thu, 6 May 1999 18:17:28 -0400
+             Message-ID: <19990506181728.A12433@monk.mps.ohio-state.edu>
+             Subject: Re: [PATCH 5.005_56] Make open(F,"command |") return correct err(no)
+     Branch: perl
+          ! doio.c embed.h global.sym objXSUB.h pod/perldiag.pod proto.h
+           ! util.c
+____________________________________________________________________________
+[  3372] By: gsar                                  on 1999/05/10  10:57:49
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Thu, 6 May 1999 01:21:05 -0400 (EDT)
+             Message-Id: <199905060521.BAA03485@monk.mps.ohio-state.edu>
+             Subject: [PATCH 5.005_56] Cosmetic: data-driven REx-dump
+     Branch: perl
+           ! regcomp.c regcomp.pl
+____________________________________________________________________________
+[  3371] By: gsar                                  on 1999/05/10  10:54:01
+        Log: From: lane@duphy4.physics.drexel.edu
+             Date: Tue, 04 May 1999 10:19:25 -0700
+             Message-Id: <3.0.6.32.19990504101925.02ecde30@ous.edu>
+             Subject: [PATCH 5.005.56] pod->html VMS fixes
+     Branch: perl
+           ! installhtml lib/Pod/Html.pm
+____________________________________________________________________________
+[  3370] By: gsar                                  on 1999/05/10  10:45:52
+        Log: testsuite nits
+     Branch: perl
+           ! t/lib/io_linenum.t t/op/filetest.t
+____________________________________________________________________________
+[  3369] By: gsar                                  on 1999/05/10  10:35:22
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Mon, 3 May 1999 22:38:50 -0400 (EDT)
+             Message-Id: <199905040238.WAA01865@monk.mps.ohio-state.edu>
+             Subject: [PATCH 5.005_53] Quickier thread-specific data on OS/2
+     Branch: perl
+           ! os2/os2ish.h os2/os2thread.h
+____________________________________________________________________________
+[  3368] By: gsar                                  on 1999/05/10  10:00:11
+        Log: From: Albert Dvornik <bert@genscan.com>
+             Date: 03 May 1999 12:20:57 -0400
+             Message-ID: <tqlnf6gm52.fsf@puma.genscan.com>
+             Subject: [PATCH 5.005_56] do_sv_dump does dump (core) on IO handles
+     Branch: perl
+           ! dump.c
+____________________________________________________________________________
+[  3367] By: gsar                                  on 1999/05/10  09:55:51
+        Log: shadow password support for Solaris (needs Configure help to
+             determine HAS_GETSPENT)
+             From: "Patrick O'Brien" <pdo@cs.umd.edu>
+             Date: Sat, 01 May 1999 19:41:17 -0400
+             Message-Id: <199905012341.TAA23989@optimus.cs.umd.edu>
+             Subject: getpwent() under solaris
+     Branch: perl
+           ! pp_sys.c
+____________________________________________________________________________
+[  3366] By: gsar                                  on 1999/05/10  09:45:58
+        Log: From: jan.dubois@ibm.net (Jan Dubois)
+             Date: Sat, 01 May 1999 23:45:47 +0200
+             Message-ID: <373373fb.59284266@smtp1.ibm.net>
+             Subject: [PATCH 5.005_56] Add POLLUTE=1 option to MakeMaker
+     Branch: perl
+          ! lib/ExtUtils/MM_Unix.pm lib/ExtUtils/MakeMaker.pm
+           ! pod/perldelta.pod
+____________________________________________________________________________
+[  3365] By: gsar                                  on 1999/05/10  09:34:22
+        Log: test suite and fix input_line_number()
+             From: Paul Johnson <pjcj@transeda.com>
+             Date: Thu, 29 Apr 1999 06:28:14 +0100
+             Message-ID: <19990429062814.A17906@west-tip.transeda.com>
+             Subject: [PATCH] IO::Handle 1.20 (was Re: FAIL Gedcom-1.01 i86pc-solaris 2.6)
+     Branch: perl
+           + t/lib/io_linenum.t
+           ! MANIFEST ext/IO/lib/IO/Handle.pm
+____________________________________________________________________________
+[  3364] By: gsar                                  on 1999/05/10  09:20:56
+        Log: fix overeager [:foo:] parsing
+             From: Hugo van der Sanden <hv@crypt.compulink.co.uk>
+             Date: Fri, 30 Apr 1999 09:26:18 +0100
+             Message-Id: <199904300826.JAA01257@crypt.compulink.co.uk>
+             Subject: [PATCH 5.005_{56,03}] Re: Regular expression difference b/n 5.004 & 5.005 
+     Branch: perl
+           ! regcomp.c t/op/re_tests
+____________________________________________________________________________
+[  3363] By: gsar                                  on 1999/05/10  09:09:21
+        Log: documentation for Win32 builtins (somewhat modified)
+             From: jan.dubois@ibm.net (Jan Dubois)
+             Date: Tue, 30 Mar 1999 08:05:03 +0200
+             Message-ID: <37006783.1926460@smtp1.ibm.net>
+             Subject: Re: Issues with build 509 
+     Branch: perl
+           + pod/Win32.pod
+           ! MANIFEST
+____________________________________________________________________________
+[  3362] By: gsar                                  on 1999/05/10  08:22:07
+        Log: provide File::Copy::syscopy() via Win32::CopyFile() on win32
+     Branch: perl
+           ! lib/File/Copy.pm win32/win32.c
+____________________________________________________________________________
+[  3361] By: gsar                                  on 1999/05/10  08:11:29
+        Log: escape ampersands in <pre> sections
+     Branch: perl
+           ! Changes lib/Pod/Html.pm
+____________________________________________________________________________
+[  3360] By: gsar                                  on 1999/05/10  08:04:14
+        Log: AIX hints enhancements (threads build, SOCKS support)
+             From: "David R. Favor" <dfavor@austin.ibm.com>
+             Date: Wed, 28 Apr 1999 08:45:28 -0500
+             Message-ID: <372710F8.B1F73BEB@austin.ibm.com>
+             Subject: Working build for AIX + gcc + threading
+     Branch: perl
+           ! hints/aix.sh
+____________________________________________________________________________
+[  3359] By: gsar                                  on 1999/05/10  07:49:26
+        Log: more Compiler patches from Vishal Bhatia <vishalb@my-dejanews.com>
+             Date: Tue, 27 Apr 1999 23:47:24 PDT
+             Message-ID: <19990428064724.95244.qmail@hotmail.com>
+             Subject: [PATCH 5.005_56] Saving Tied hashes ( C.pm)
+             --
+             Date: Thu, 29 Apr 1999 18:21:06 -0700
+             Message-ID: <GEFPBFDJADFJBAAA@my-dejanews.com>
+             Subject: [PATCH 5.005_56] double constants ( C.pm)
+             --
+             Date: Mon, 03 May 1999 20:21:31 PDT
+             Message-ID: <19990504032131.81113.qmail@hotmail.com>
+             Subject: [PATCH 5.005_56] Overloading implementation ( Compiler)
+             --
+             Date: Thu, 06 May 1999 17:57:09 -0700
+             Message-ID: <FCJELBLAJBOBAAAA@my-dejanews.com>
+             Subject: Stash.pm
+     Branch: perl
+          ! ext/B/B.pm ext/B/B.xs ext/B/B/Bblock.pm ext/B/B/C.pm
+           ! ext/B/B/CC.pm ext/B/B/Stash.pm t/harness
+____________________________________________________________________________
+[  3358] By: gsar                                  on 1999/05/10  04:39:15
+        Log: cygwin32 update (untested adaptation of patch against 5.005_03)
+             From: alexander smishlajev <als@turnhere.com>
+             Date: Sun, 25 Apr 1999 14:58:29 +0300
+             Message-ID: <37230365.5F68B460@turnhere.com>
+             Subject: [PATCH]5.005_03 (CORE) cygwin32 port
+     Branch: perl
+          + cygwin32/Makefile.SHs cygwin32/build-instructions.READFIRST
+          + cygwin32/build-instructions.charles-wilson
+          + cygwin32/build-instructions.sebastien-barre
+          + cygwin32/build-instructions.steven-morlock
+          + cygwin32/build-instructions.steven-morlock2
+           + cygwin32/impure_ptr.c cygwin32/ld2.in cygwin32/perlld.in
+          - cygwin32/cw32imp.h cygwin32/gcc2 cygwin32/ld2 cygwin32/perlgcc
+           - cygwin32/perlld
+          ! Configure EXTERN.h MANIFEST Makefile.SH README.cygwin32 XSUB.h
+          ! cflags.SH config_h.SH dosish.h ext/POSIX/Makefile.PL
+          ! ext/SDBM_File/sdbm/pair.c hints/cygwin32.sh installperl
+          ! lib/Cwd.pm lib/ExtUtils/MakeMaker.pm lib/perl5db.pl
+          ! makedepend.SH perl.h perlvars.h pp_hot.c pp_sys.c regcomp.c
+           ! t/io/fs.t t/io/tell.t t/lib/anydbm.t t/op/stat.t util.c
+____________________________________________________________________________
+[  3357] By: gsar                                  on 1999/05/10  04:07:07
+        Log: applied suggested patch, modulo already applied parts
+             From: Charles Bailey <BAILEY@newman.upenn.edu>
+             Date: Sat, 24 Apr 1999 20:12:43 -0400 (EDT)
+             Message-id: <01JAF9UAV9XG002O0W@mail.newman.upenn.edu>
+             Subject: [Patch 5.005_56] VMS consolidated patch #2
+     Branch: perl
+          ! configure.com t/op/filetest.t t/op/taint.t t/pragma/warn/doio
+          ! t/pragma/warn/mg t/pragma/warn/pp_sys t/pragma/warn/sv
+          ! vms/descrip_mms.template vms/ext/vmsish.t vms/perlvms.pod
+           ! vms/subconfigure.com vms/test.com vms/vms.c
+____________________________________________________________________________
+[  3356] By: gsar                                  on 1999/05/10  03:48:08
+        Log: applied suggested patch, with win32 and PERL_OBJECT additions
+             From: Tom Hughes <tom@compton.nu>
+             Date: Sat, 24 Apr 1999 18:11:59 +0100
+             Message-ID: <609bdff748.tom@compton.compton.nu>
+             Subject: ByteLoader patch
+     Branch: perl
+          + ext/ByteLoader/ByteLoader.pm ext/ByteLoader/ByteLoader.xs
+           + ext/ByteLoader/Makefile.PL utils/perlbc.PL
+          ! MANIFEST bytecode.h bytecode.pl byterun.c byterun.h embed.h
+          ! embed.pl ext/B/B.xs ext/B/B/Asmdata.pm ext/B/B/Bytecode.pm
+          ! ext/B/B/Debug.pm objXSUB.h op.c pp_ctl.c proto.h
+           ! utils/Makefile win32/Makefile win32/makefile.mk
+____________________________________________________________________________
+[  3355] By: gsar                                  on 1999/05/10  03:22:49
+        Log: document 'test' attribute (from Andreas Koenig)
+     Branch: perl
+           ! lib/ExtUtils/MakeMaker.pm
+____________________________________________________________________________
+[  3354] By: gsar                                  on 1999/05/10  03:12:37
+        Log: From: pmarquess@bfsec.bt.co.uk
+             Date: Thu, 22 Apr 1999 23:12:08 +0100
+             Message-ID: <5104D4DBC598D211B5FE0000F8FE7EB29C6B45@mbtlipnt02.btlabs.bt.co.uk>
+             Subject: PATCH for small bug in scan_bin
+     Branch: perl
+           ! util.c
+____________________________________________________________________________
+[  3353] By: gsar                                  on 1999/05/10  02:39:33
+        Log: more bulletproof workaround for mangled paths (updates changes#3345,3350);
+             provide Win32::GetLongPathName() to complement Win32::GetShortPathName()
+     Branch: perl
+          ! t/op/magic.t win32/makedef.pl win32/runperl.c win32/win32.c
+           ! win32/win32iop.h
+____________________________________________________________________________
+[  3352] By: gsar                                  on 1999/05/09  22:47:39
+        Log: flush all open output buffers before fork(), exec(), system, qx//
+             and pipe open() operations, simplifying buffering headaches faced
+             by users; uses fflush(NULL), which may need Configure test
+     Branch: perl
+          ! perl.h pod/perldelta.pod pod/perlfunc.pod pod/perlipc.pod
+           ! pp_sys.c util.c vmesa/vmesa.c vms/vms.c win32/win32.c
+____________________________________________________________________________
+[  3351] By: gsar                                  on 1999/05/09  21:11:51
+        Log: perlcc on win32 (correct version of fix suggested by Jean-Louis
+             Leroy <jll@skynet.be>)
+     Branch: perl
+           ! utils/perlcc.PL
+____________________________________________________________________________
+[  3350] By: gsar                                  on 1999/05/09  20:39:11
+        Log: normalize $^X to full pathname on win32
+     Branch: perl
+           ! win32/runperl.c
+____________________________________________________________________________
+[  3349] By: gsar                                  on 1999/05/09  20:23:07
+        Log: allow readline($globref), <$globref> already works
+     Branch: perl
+           ! pp_hot.c
+____________________________________________________________________________
+[  3348] By: gsar                                  on 1999/05/09  20:00:09
+        Log: perldoc cleanups (variant of changes suggested by Christian Lemburg
+             <lemburg@online-club.de>)
+     Branch: perl
+           ! utils/perldoc.PL
+____________________________________________________________________________
+[  3347] By: gsar                                  on 1999/05/09  18:47:21
+        Log: additions to Thread.pm docs from Tuomas J. Lukka
+             <lukka@fas.harvard.edu>
+     Branch: perl
+           ! ext/Thread/Thread.pm
+____________________________________________________________________________
+[  3346] By: gsar                                  on 1999/05/09  18:38:00
+        Log: From: Stephen McCamant <smccam@uclink4.berkeley.edu>
+             Date: Sat, 17 Apr 1999 02:46:13 -0700 (PDT)
+             Message-ID: <14103.57454.614253.598264@fre-76-120.reshall.berkeley.edu>
+             Subject: [PATCH _56] Re: pdt: Perl Development Tools? 
+     Branch: perl
+           ! ext/B/B/Xref.pm
+____________________________________________________________________________
+[  3345] By: gsar                                  on 1999/05/09  18:22:43
+        Log: work around mangled archname on win32 while finding privlib/sitelib;
+             normalize lib paths to forward slashes internally
+     Branch: perl
+           ! win32/win32.c
+____________________________________________________________________________
+[  3344] By: gsar                                  on 1999/05/09  03:20:06
+        Log: fix typo in dbm filters that caused odbm.t to fail
+     Branch: perl
+           ! ext/ODBM_File/ODBM_File.xs t/lib/odbm.t
+____________________________________________________________________________
+[  3343] By: gsar                                  on 1999/05/09  02:02:59
+        Log: tweak test totals
+     Branch: perl
+           ! Changes t/lib/tie-stdhandle.t
+____________________________________________________________________________
+[  3342] By: gsar                                  on 1999/05/09  01:42:06
+        Log: import list propagation busted (pointed out by Ton Hospel
+             <thospel@mail.dma.be>)
+     Branch: perl
+           ! lib/autouse.pm
+____________________________________________________________________________
+[  3341] By: gsar                                  on 1999/05/09  00:54:18
+        Log: hpux needs {SHLIB_PATH,LDOPTS} rather than LD_{LIBRARY,RUN}_PATH
+             (as suggested by Eric Boehm <boehm@nortelnetworks.com>)
+     Branch: perl
+           ! Configure Makefile.SH
+____________________________________________________________________________
+[  3340] By: gsar                                  on 1999/05/09  00:40:41
+        Log: generate manpages for newly added utils
+     Branch: perl
+           ! installman
+____________________________________________________________________________
+[  3339] By: gsar                                  on 1999/05/09  00:33:50
+        Log: From: Hugo van der Sanden <hv@crypt.compulink.co.uk>
+             Date: Sun, 02 May 1999 17:59:24 +0100
+             Message-Id: <199905021659.RAA14016@crypt.compulink.co.uk>
+             Subject: [PATCH] Re: ptr to realloced memory in yylex
+     Branch: perl
+           ! toke.c
+____________________________________________________________________________
+[  3338] By: jhi                                   on 1999/05/08  22:40:29
+        Log: Remove CONFIG item, add Digital UNIX 'ld' bug.
+     Branch: cfgperl
+           ! INSTALL
+____________________________________________________________________________
+[  3337] By: jhi                                   on 1999/05/08  22:22:26
+        Log: Integrate from mainperl.
+     Branch: cfgperl
+          +> pod/perldbmfilter.pod t/io/open.t t/lib/tie-stdhandle.t
+          !> (integrate 54 files)
+____________________________________________________________________________
+[  3336] By: gsar                                  on 1999/05/08  21:48:22
+        Log: make perldoc -f grok nested =items
+     Branch: perl
+           ! utils/perldoc.PL
+____________________________________________________________________________
+[  3335] By: gsar                                  on 1999/05/08  19:48:11
+        Log: allow AV/HV dereferences on pseudohashes ($ph->{foo}[1], etc.)
+     Branch: perl
+           ! op.c t/lib/fields.t
+____________________________________________________________________________
+[  3334] By: gsar                                  on 1999/05/08  19:09:41
+        Log: update test totals
+     Branch: perl
+           ! t/lib/bigintpm.t
+____________________________________________________________________________
+[  3333] By: gsar                                  on 1999/05/08  16:56:02
+        Log: mention unpack('pP',...) footshot (from Albert Dvornik <bert@genscan.com>)
+     Branch: perl
+           ! pod/perlfunc.pod
+____________________________________________________________________________
+[  3332] By: gsar                                  on 1999/05/08  16:46:44
+        Log: applied suggested patch, added tests
+             From: William Mann <wmann@avici.com>
+             Date: Mon, 12 Apr 1999 12:25:22 -0400 (EDT)
+             Message-Id: <199904121625.MAA00983@hwsrv1.avici.com>
+             Subject: BigInt.pm extensions for logical operations
+     Branch: perl
+           ! lib/Math/BigInt.pm pod/perldelta.pod t/lib/bigintpm.t
+____________________________________________________________________________
+[  3331] By: gsar                                  on 1999/05/08  16:09:33
+        Log: avoid temporary files named 'tmp'
+     Branch: perl
+           ! Makefile.SH pp.c
+____________________________________________________________________________
+[  3330] By: nick                                  on 1999/05/08  14:16:30
+        Log: Implement OPEN, EOF, SEEK, TELL, BINMODE and FILENO as TIEHANDLE methods.
+             Provide Tie::StdHandle
+             Basic update of docs.
+     Branch: perl
+           + t/lib/tie-stdhandle.t
+           ! lib/Tie/Handle.pm pod/perltie.pod pp_sys.c
+____________________________________________________________________________
+[  3329] By: nick                                  on 1999/05/08  12:03:45
+        Log: Tweaks to open(my $fh,...) stuff
+     Branch: perl
+           ! op.c pp.c pp_sys.c t/io/open.t
+____________________________________________________________________________
+[  3328] By: nick                                  on 1999/05/08  11:18:42
+        Log: Bring SDBM_File.xs into line with new typemap
+     Branch: perl
+           ! ext/SDBM_File/SDBM_File.xs
+____________________________________________________________________________
+[  3327] By: gsar                                  on 1999/05/08  00:07:11
+        Log: add test case for AUTOLOAD reentrancy fix in change#3279
+     Branch: perl
+           ! t/lib/autoloader.t
+____________________________________________________________________________
+[  3326] By: nick                                  on 1999/05/07  21:24:50
+        Log: Implement open( my $fh, ...) and similar.
+             Set flag in op.c for "constructor ops"
+             In pp_rv2gv, if flag is set and arg is PADSV and uninit
+             vivify as reference to a detached GV.
+             (Name of GV is the pad name.)
+             This scheme should "just work" for pipe/socket etc. too.
+             
+             #if 0 out the open(FH,undef) for now.
+             Change t/io/open.t to test open(my $fh,...)
+     Branch: perl
+           ! op.c pp.c pp_sys.c t/io/open.t
+____________________________________________________________________________
+[  3325] By: nick                                  on 1999/05/07  21:18:42
+        Log: Correct SvLEN vs SvCUR  which leads to odd "chunk" vs "line" in mess().
+     Branch: perl
+           ! util.c
+____________________________________________________________________________
+[  3324] By: gsar                                  on 1999/05/07  20:28:31
+        Log: avoid using PL_sv_mutex in condpair_magic() (avoids hangs when
+             intervening code has to allocate SVs)
+     Branch: perl
+           ! util.c
+____________________________________________________________________________
+[  3323] By: gsar                                  on 1999/05/07  19:45:08
+        Log: allow line numbers to show in diagnostics during global destruction
+     Branch: perl
+           ! util.c
+____________________________________________________________________________
+[  3322] By: gsar                                  on 1999/05/07  09:38:11
+        Log: From: Dan Sugalski <sugalskd@ous.edu>
+             Date: Fri, 09 Apr 1999 16:16:39 -0700
+             Message-Id: <3.0.6.32.19990409161639.02ea1050@ous.edu>
+             Subject: [PATCH 5.005_03]Bug in MM_VMS.PM
+     Branch: perl
+           ! lib/ExtUtils/MM_VMS.pm
+____________________________________________________________________________
+[  3321] By: gsar                                  on 1999/05/07  09:08:23
+        Log: From: kwzh@gnu.org (Karl Heuer)
+             Date: Wed, 7 Apr 1999 23:58:58 -0400
+             Message-Id: <199904080358.XAA01192@mescaline.gnu.org>
+             Subject: [perl-5.005.02] detect lack of /dev/tty
+     Branch: perl
+           ! Makefile.SH
+____________________________________________________________________________
+[  3320] By: gsar                                  on 1999/05/07  08:52:14
+        Log: allow distinct prefix for versioned executables
+             From: Roderick Schertler <roderick@argon.org>
+             Date: Wed, 07 Apr 1999 15:34:56 -0400
+             Message-ID: <3003.923513696@eeyore.ibcinc.com>
+             Subject: perl55.00503 -> perl5.00503 patch for installperl
+     Branch: perl
+           ! INSTALL installperl
+____________________________________________________________________________
+[  3319] By: gsar                                  on 1999/05/07  08:07:02
+        Log: From: Dan Sugalski <sugalskd@osshe.edu>
+             Date: Mon, 05 Apr 1999 15:38:42 -0700
+             Message-Id: <3.0.6.32.19990405153842.0367b650@ous.edu>
+             Subject: Re: chomp fails with $/ in fixed-length record mode
+             --
+             From: Roderick Schertler <roderick@argon.org>
+             Date: Tue, 06 Apr 1999 21:11:37 -0400
+             Message-ID: <2795.923447497@eeyore.ibcinc.com>
+             Subject: Re: chomp fails with $/ in fixed-length record mode
+     Branch: perl
+           ! doop.c pod/perlfunc.pod t/op/chop.t
+____________________________________________________________________________
+[  3318] By: gsar                                  on 1999/05/07  07:56:35
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Tue, 6 Apr 1999 01:40:36 -0400
+             Message-ID: <19990406014035.A1238@monk.mps.ohio-state.edu>
+             Subject: [PATCH 5.005_*] Make % use fmod()
+     Branch: perl
+           ! pp.c t/op/arith.t
+____________________________________________________________________________
+[  3317] By: gsar                                  on 1999/05/07  04:18:11
+        Log: DBM Filters (via private mail)
+             From: pmarquess@bfsec.bt.co.uk
+             Date: Sun, 18 Apr 1999 21:05:52 +0100
+             Message-Id: <199904182009.NAA19152@activestate.com>
+             Subject: DBM Filters
+     Branch: perl
+           + pod/perldbmfilter.pod
+          ! MANIFEST ext/DB_File/Changes ext/DB_File/DB_File.pm
+          ! ext/DB_File/DB_File.xs ext/DB_File/typemap
+          ! ext/GDBM_File/GDBM_File.pm ext/GDBM_File/GDBM_File.xs
+          ! ext/GDBM_File/typemap ext/NDBM_File/NDBM_File.pm
+          ! ext/NDBM_File/NDBM_File.xs ext/NDBM_File/typemap
+          ! ext/ODBM_File/ODBM_File.pm ext/ODBM_File/ODBM_File.xs
+          ! ext/ODBM_File/typemap ext/SDBM_File/SDBM_File.pm
+          ! ext/SDBM_File/SDBM_File.xs ext/SDBM_File/typemap
+          ! lib/AnyDBM_File.pm pod/Makefile pod/buildtoc pod/perl.pod
+          ! pod/perldelta.pod t/lib/db-btree.t t/lib/db-hash.t
+          ! t/lib/db-recno.t t/lib/gdbm.t t/lib/ndbm.t t/lib/odbm.t
+           ! t/lib/sdbm.t
+____________________________________________________________________________
+[  3316] By: gsar                                  on 1999/05/07  03:28:53
+        Log: avoid negative return value from Win32::GetTickCount()
+             From: jan.dubois@ibm.net (Jan Dubois)
+             Date: Sat, 03 Apr 1999 19:04:18 +0200
+             Message-ID: <37084742.22824479@smtp1.ibm.net>
+             Subject: Re: Win32::GetTickCount
+     Branch: perl
+           ! win32/win32.c
+____________________________________________________________________________
+[  3314] By: gsar                                  on 1999/05/06  08:01:23
+        Log: compiler fixes from Vishal Bhatia <vishalb@hotmail.com>
+             Date: Tue, 30 Mar 1999 23:40:34 PST
+             Message-ID: <19990331074034.6117.qmail@hotmail.com>
+             Subject: [PATCH 5.005_56] pp_entersub and pp_leavewrite(CC.pm)
+             --
+             Date: Wed, 07 Apr 1999 00:28:23 -0800
+             Message-ID: <FGBNLNPOEELFAAAA@my-dejanews.com>
+             Subject: [PATCH 5.005_56] function prototypes(B.pm)
+             --
+             Date: Thu, 22 Apr 1999 23:40:52 -0700
+             Message-ID: <OEAOMKBMLDADCAAA@my-dejanews.com>
+             Subject: [PATCH 5.005_56 ] discarding worthless padsvs
+             --
+             Date: Tue, 27 Apr 1999 01:14:49 PDT
+             Message-ID: <19990427081449.28615.qmail@hotmail.com>
+             Subject: [PATCH 5.005_56] pp_ncmp implementation ( CC.pm)
+     Branch: perl
+          ! ext/B/B.pm ext/B/B/CC.pm ext/B/B/Stackobj.pm t/op/gv.t
+           ! t/op/ref.t
+____________________________________________________________________________
+[  3313] By: jhi                                   on 1999/05/06  07:59:52
+        Log: Integrate from mainperl.
+     Branch: cfgperl
+          !> (integrate 33 files)
+____________________________________________________________________________
+[  3312] By: gsar                                  on 1999/05/06  07:11:50
+        Log: add Ethiopic section to unicode master database (from Ken
+             Whistler <kenw@sybase.com>)
+     Branch: perl
+           ! lib/unicode/UnicodeData-Latest.txt
+____________________________________________________________________________
+[  3311] By: gsar                                  on 1999/05/06  05:37:55
+        Log: From: Damon Atkins <n107844@sysmgtdev.nabaus.com.au>
+             Date: Tue, 30 Mar 1999 11:26:11 +1000 (EST)
+             Message-Id: <199903300126.LAA20870@sysmgtdev.nabaus.com.au>
+             Subject: Largefiles for Solaris
+     Branch: perl
+           ! hints/solaris_2.sh
+____________________________________________________________________________
+[  3310] By: gsar                                  on 1999/05/06  05:14:35
+        Log: emit more accurate diagnostic for syntax errors involving <>
+             within eval""
+     Branch: perl
+           ! toke.c utils/perldoc.PL
+____________________________________________________________________________
+[  3309] By: gsar                                  on 1999/05/06  04:36:31
+        Log: additional test for IPC::Open3 (courtesy RonaldWS@aol.com)
+     Branch: perl
+           ! t/lib/open3.t
+____________________________________________________________________________
+[  3308] By: gsar                                  on 1999/05/06  03:19:16
+        Log: applied first part of suggested patch (bug described cannot be
+             reproduced any longer, so the second inconclusive part has not
+             been applied)
+             From: Hugo van der Sanden <hv@crypt.compulink.co.uk>
+             Date: Sun, 28 Mar 1999 04:51:34 +0100
+             Message-Id: <199903280351.EAA20430@crypt.compulink.co.uk>
+             Subject: [PATCH 5.005_56] Re: A core dump 
+     Branch: perl
+           ! toke.c
+____________________________________________________________________________
+[  3307] By: gsar                                  on 1999/05/06  01:56:06
+        Log: fix bogus OPf_REF context in C<sort BLOCK @foo> (extension of
+             change#3180)
+     Branch: perl
+           ! op.c
+____________________________________________________________________________
+[  3306] By: gsar                                  on 1999/05/05  17:17:34
+        Log: applied non-conflicting parts of suggested patch
+             From: Charles Bailey <BAILEY@newman.upenn.edu>
+             Date: Sat, 27 Mar 1999 00:16:51 -0400 (EDT)
+             Message-id: <01J9AZY8I2PW001O2S@mail.newman.upenn.edu>
+             Subject: [Patch 5.005_56] Revised VMS patch
+     Branch: perl
+          ! Changes ext/B/defsubs.h.PL hv.c iperlsys.h perl.c
+           ! pod/perldiag.pod proto.h util.c vms/perlvms.pod vms/vms.c
+____________________________________________________________________________
+[  3305] By: gsar                                  on 1999/05/05  16:20:19
+        Log: make perldoc use backslashed pathnames within system() on win32
+     Branch: perl
+           ! pod/perldiag.pod pod/perlthrtut.pod utils/perldoc.PL
+____________________________________________________________________________
+[  3304] By: gsar                                  on 1999/05/05  07:29:43
+        Log: upgrade Pod::Parser to v1.081 from CPAN
+     Branch: perl
+          ! lib/Pod/Checker.pm lib/Pod/InputObjects.pm lib/Pod/Parser.pm
+          ! lib/Pod/PlainText.pm lib/Pod/Select.pm lib/Pod/Usage.pm
+           ! t/pod/special_seqs.t t/pod/special_seqs.xr t/pod/testp2pt.pl
+____________________________________________________________________________
+[  3303] By: gsar                                  on 1999/05/05  07:02:07
+        Log: From: Andy Dougherty <doughera@lafayette.edu>
+             Date: Fri, 19 Mar 1999 12:31:35 -0500 (EST)
+             Message-Id: <Pine.GSU.4.05.9903191208250.8899-100000@newton.phys>
+             Subject: [PATCH 5.005_03-MT3] INSTALL patches
+     Branch: perl
+           ! INSTALL
+____________________________________________________________________________
+[  3302] By: gsar                                  on 1999/05/05  06:55:21
+        Log: load base packages based on nonexistent $VERSION
+             From: andreas.koenig@anima.de (Andreas J. Koenig)
+             Date: 19 Mar 1999 06:00:28 +0100
+             Message-ID: <sfcsob2m5ub.fsf@dubravka.in-berlin.de>
+             Subject: Re: base.pm flaw
+     Branch: perl
+           ! lib/base.pm lib/locale.pm
+____________________________________________________________________________
+[  3301] By: gsar                                  on 1999/05/04  05:41:08
+        Log: pod2man outputs switched date and revision label (fix suggested by
+             EthanSasiela@mede.com)
+     Branch: perl
+           ! pod/pod2man.PL
+____________________________________________________________________________
+[  3300] By: gsar                                  on 1999/05/03  18:48:25
+        Log: adjust win32_stat() to cope with FindFirstFile() and stat() bugs
+             (makes opendir(D,"c:") work reliably)
+     Branch: perl
+           ! win32/win32.c
+____________________________________________________________________________
+[  3299] By: gsar                                  on 1999/05/02  19:39:55
+        Log: add test case for change#3298
+     Branch: perl
+           ! sv.c t/op/readdir.t
+____________________________________________________________________________
+[  3298] By: gsar                                  on 1999/05/02  19:24:41
+        Log: close directory handles properly when localized
+     Branch: perl
+           ! sv.c
+____________________________________________________________________________
+[  3297] By: jhi                                   on 1999/04/30  11:42:14
+        Log: Integrate from mainperl.
+     Branch: cfgperl
+         !> Changes config_h.SH configure.com lib/AutoLoader.pm
+         !> lib/AutoSplit.pm lib/File/Path.pm pod/perlre.pod pp.c pp_ctl.c
+         !> pp_sys.c proto.h regcomp.c t/op/die.t t/op/ref.t util.c
+         !> vms/descrip_mms.template vms/gen_shrfls.pl vms/munchconfig.c
+          !> vms/subconfigure.com win32/win32.c
+____________________________________________________________________________
+[  3293] By: chip                                  on 1999/04/29  18:50:49
+        Log: Fix shebang lines.
+     Branch: maint-5.004/perl
+          ! Porting/p4d2p h2pl/mksizes pod/checkpods.PL pod/pod2html.PL
+          ! pod/pod2latex.PL pod/pod2man.PL pod/pod2text.PL utils/c2ph.PL
+          ! utils/h2ph.PL utils/h2xs.PL utils/perlbug.PL utils/perldoc.PL
+          ! utils/pl2pm.PL utils/splain.PL win32/bin/search.pl
+           ! x2p/find2perl.PL x2p/s2p.PL
+____________________________________________________________________________
+[  3284] By: gsar                                  on 1999/04/27  00:48:42
+        Log: integrate change#3279 from maint-5.004
+     Branch: perl
+           ! lib/AutoLoader.pm
+____________________________________________________________________________
+[  3279] By: chip                                  on 1999/04/26  23:09:26
+        Log: Make &AutoLoad::AUTOLOAD reentrant.
+     Branch: maint-5.004/perl
+           ! lib/AutoLoader.pm
+____________________________________________________________________________
+[  3276] By: chip                                  on 1999/04/26  22:34:36
+        Log: Make porting scripts executable.
+     Branch: maint-5.004/perl
+          ! Changes Porting/genlog Porting/makerel Porting/p4desc
+           ! Porting/patchls
+____________________________________________________________________________
+[  3274] By: gsar                                  on 1999/04/26  17:30:31
+        Log: allow embedded null characters in diagnostics
+     Branch: perl
+           ! pp_ctl.c pp_sys.c proto.h regcomp.c t/op/die.t util.c
+____________________________________________________________________________
+[  3273] By: gsar                                  on 1999/04/26  08:27:22
+        Log: hand-applied conflicting parts of suggested patch
+             From: Charles Bailey <BAILEY@newman.upenn.edu>
+             Date: Wed, 17 Mar 1999 23:55:23 -0400 (EDT)
+             Message-id: <01J8YELSL7WK001E7S@mail.newman.upenn.edu>
+             Subject: [PATCH 5.005_56] VMS configuration/build
+     Branch: perl
+          ! configure.com vms/descrip_mms.template vms/gen_shrfls.pl
+           ! vms/munchconfig.c vms/subconfigure.com
+____________________________________________________________________________
+[  3272] By: gsar                                  on 1999/04/26  08:25:41
+        Log: update Changes; tweak minor regressions
+     Branch: perl
+           ! Changes lib/AutoSplit.pm lib/File/Path.pm
+____________________________________________________________________________
+[  3271] By: gsar                                  on 1999/04/26  07:52:51
+        Log: integrate change#3229 from maint-5.004
+     Branch: perl
+           ! pp_ctl.c util.c
+____________________________________________________________________________
+[  3270] By: gsar                                  on 1999/04/25  22:58:27
+        Log: fix buggy reference count on refs to SVs with autoviv magic
+             (resulted in C<my @a; $a[1] = 1; print \$_ for @a> and Data::Dumper
+             accessing free()d memory)
+     Branch: perl
+           ! pp.c t/op/ref.t
+____________________________________________________________________________
+[  3269] By: gsar                                  on 1999/04/24  17:07:55
+        Log: fix bug in change#3123 (off-by-one, caused C<qx[noargs]> to fail
+             on win32)
+     Branch: perl
+           ! win32/win32.c
+____________________________________________________________________________
+[  3268] By: gsar                                  on 1999/04/24  16:38:25
+        Log: kill dup hunk
+     Branch: perl
+           ! config_h.SH
+____________________________________________________________________________
+[  3267] By: gsar                                  on 1999/04/24  16:35:57
+        Log: integrate cfgperl changes into mainline
+     Branch: perl
+          +> myconfig.SH
+           - myconfig
+           ! pod/perlre.pod
+          !> (integrate 38 files)
+____________________________________________________________________________
+[  3266] By: jhi                                   on 1999/04/23  18:42:44
+        Log: From: "Kurt D. Starsinic" <kstar@chapin.edu>
+             To: perl5-porters@perl.org, Jarkko Hietaniemi <jhi@iki.fi>,
+             Graham Barr <gbarr@pobox.com>, Gurusamy Sarathy <gsar@activestate.com>
+             Cc: Lionel Cons <lionel.cons@cern.ch>,
+             Ilya Zakharevich <ilya@math.ohio-state.edu>,
+             David Hayes <david@bdel.com>
+             Subject: [PATCH] h2ph
+             Date: Fri, 23 Apr 1999 12:37:23 -0400
+             Message-ID: <19990423123723.A49550@O2.chapin.edu>
+     Branch: cfgperl
+           ! utils/h2ph.PL
+____________________________________________________________________________
+[  3265] By: jhi                                   on 1999/04/21  18:17:12
+        Log: From: lane@duphy4.physics.drexel.edu (by way of Dan Sugalski <sugalskd@ous.edu>)
+             To: perlbug@perl.org
+             Subject: [PATCH Perl 5.005.56] descrip_mms.template installed files fix
+             Date: Wed, 21 Apr 1999 08:17:54 -0700
+             Message-Id: <3.0.6.32.19990421081754.03127b60@ous.edu>
+     Branch: cfgperl
+           ! vms/descrip_mms.template
+____________________________________________________________________________
+[  3264] By: jhi                                   on 1999/04/20  08:50:54
+        Log: From: Andy Dougherty <doughera@lafayette.edu>
+             To: The Perl Porters Mailing List <perl5-porters@perl.org>
+             Subject: [PATCH 5.005_56] Re: 5.006 Todo
+             Date: Mon, 19 Apr 1999 16:27:07 -0400 (EDT)
+             Message-Id: <Pine.GSU.4.05.9904191623470.7838-100000@newton.phys>
+     Branch: cfgperl
+           ! Porting/pumpkin.pod
+____________________________________________________________________________
+[  3263] By: jhi                                   on 1999/04/20  08:05:01
+        Log: From: Chip Salzenberg <chip@perlsupport.com>
+             To: Perl 5 Porters <perl5-porters@perl.org>
+             Subject: [PATCH 5.005_56] Configure: $sig_count
+             Date: Sun, 18 Apr 1999 17:54:36 -0400
+             Message-ID: <19990418175436.A27496@perlsupport.com>
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+           ! config_h.SH
+____________________________________________________________________________
+[  3262] By: jhi                                   on 1999/04/19  18:23:50
+        Log: Subject: PATCH wrong faq reference in perlbook.pod
+             From: Robin Barker <rmb1@cise.npl.co.uk>
+             To: perlbug@perl.com
+             Date: Fri, 9 Apr 1999 16:05:23 +0100 (BST)
+             Message-Id: <199904091505.QAA03757@cyclone.cise.npl.co.uk>
+     Branch: cfgperl
+           ! pod/perlbook.pod
+____________________________________________________________________________
+[  3261] By: jhi                                   on 1999/04/15  13:59:04
+        Log: From: Andy Dougherty <doughera@lafayette.edu>
+             To: Hugo van der Sanden <hugo@corp.netcom.net.uk>
+             Cc: Perl Porters <perl5-porters@perl.org>
+             Subject: [PATCH] Re: 5.005_03 and gcc, GNU ld under Solaris 2.6
+             Date: Wed, 14 Apr 1999 17:07:43 -0400 (EDT)
+             Message-Id: <Pine.GSU.4.05.9904141658290.4262-100000@newton.phys>
+     Branch: cfgperl
+           ! hints/solaris_2.sh
+____________________________________________________________________________
+[  3260] By: jhi                                   on 1999/04/15  13:56:53
+        Log: From: Tom Christiansen <tchrist@jhereg.perl.com>
+             To: pumpkings@jhereg.perl.com
+             Subject: PATCH: 5.005_56: perldata.pod (UPDATE)
+             Date: Thu, 15 Apr 1999 07:13:41 -0600
+             Message-Id: <199904151313.HAA07682@jhereg.perl.com>
+     Branch: cfgperl
+           ! pod/perldata.pod
+____________________________________________________________________________
+[  3259] By: jhi                                   on 1999/04/13  23:12:52
+        Log: LDLIBPTH also on 'clean' targets.
+     Branch: cfgperl
+           ! Makefile.SH
+____________________________________________________________________________
+[  3258] By: jhi                                   on 1999/04/13  21:38:46
+        Log: Add information about the two DEC C compiler optimizer bugs
+             (what patch levels of the compilers fix them).
+     Branch: cfgperl
+           ! pp.c t/op/repeat.t
+____________________________________________________________________________
+[  3257] By: jhi                                   on 1999/04/13  14:25:08
+        Log: Be polite about ccdlflags and lddflags, too.
+             Avoid Perl's malloc only when threaded.
+     Branch: cfgperl
+           ! hints/aix.sh
+____________________________________________________________________________
+[  3256] By: jhi                                   on 1999/04/13  10:21:33
+        Log: Croak if no known ways to semctl() (don't assume union semun).
+     Branch: cfgperl
+           ! doio.c perl.h
+____________________________________________________________________________
+[  3255] By: jhi                                   on 1999/04/13  09:10:26
+        Log: From: Dan Sugalski <sugalskd@osshe.edu>
+             To: perl5-porters@perl.org, vmsperl@perl.org
+             Subject: [Patch 5.005/5.006]Another MM_VMS.pm patch
+             Date: Mon, 12 Apr 1999 13:36:48 -0700
+             Message-Id: <3.0.6.32.19990412133648.030e7ec0@ous.edu>
+     Branch: cfgperl
+           ! lib/ExtUtils/MM_VMS.pm
+____________________________________________________________________________
+[  3254] By: jhi                                   on 1999/04/13  06:56:26
+        Log: From: "Todd C. Miller" <Todd.Miller@courtesan.com>
+             To: perlbug@perl.com
+             Subject: Update for OpenBSD hints
+             Date: Mon, 12 Apr 1999 23:12:22 -0600 (MDT)
+             Message-Id: <199904130512.XAA27712@xerxes.courtesan.com>
+     Branch: cfgperl
+           ! hints/openbsd.sh
+____________________________________________________________________________
+[  3229] By: chip                                  on 1999/04/13  04:04:14
+        Log: Preserve errno from importunities of sfio.
+     Branch: maint-5.004/perl
+           ! pp_ctl.c util.c
+____________________________________________________________________________
+[  3226] By: jhi                                   on 1999/04/11  12:52:26
+        Log: If both ways to call semctl are broken,   skip the tests.
+     Branch: cfgperl
+           ! t/lib/ipc_sysv.t
+____________________________________________________________________________
+[  3225] By: jhi                                   on 1999/04/10  22:27:28
+        Log: From: Andy Dougherty <doughera@lafayette.edu>
+             To: dsembr01@ox.slug.louisville.edu
+             Cc: perlbug@perl.com
+             Subject: [PATCH 5.004_05 5.005_03 5.005_56] Re: Misspelled macro in ext/POSIX/POSIX.xs?
+             Date: Fri, 9 Apr 1999 16:58:08 -0400 (EDT)
+             Message-Id: <Pine.GSU.4.05.9904091648570.894-100000@newton.phys>
+     Branch: cfgperl
+           ! ext/POSIX/POSIX.xs
+____________________________________________________________________________
+[  3224] By: jhi                                   on 1999/04/09  18:50:32
+        Log: From: Andy Dougherty <doughera@lafayette.edu>
+             To: Perl Porters <perl5-porters@perl.org>
+             Subject: [PATCH 5.005_56] Re: prefix= in hints
+             Date: Fri, 9 Apr 1999 14:54:18 -0400 (EDT)
+             Message-Id: <Pine.GSU.4.05.9904091445280.894-100000@newton.phys>
+             
+             (Overrides change #3204 from Kurt)
+     Branch: cfgperl
+           ! hints/linux.sh
+____________________________________________________________________________
+[  3223] By: jhi                                   on 1999/04/09  18:37:55
+        Log: Understand Apollo's //node notation.
+             
+             From: Johann Klasek <jk@auto.tuwien.ac.at>
+             To: jhi@iki.fi
+             Subject: Re: DomainPerl
+             Date: Fri, 9 Apr 1999 18:21:37 +0200
+             Message-ID: <19990409182137.A2299@euklid.auto.tuwien.ac.at>
+     Branch: cfgperl
+           ! lib/Cwd.pm
+____________________________________________________________________________
+[  3220] By: jhi                                   on 1999/04/04  16:33:49
+        Log: Integrate from mainperl.
+     Branch: cfgperl
+          !> (integrate 39 files)
+____________________________________________________________________________
+[  3219] By: gsar                                  on 1999/04/04  02:48:17
+        Log: tweak previous change
+     Branch: maint-5.005/perl
+           ! win32/win32.c
+____________________________________________________________________________
+[  3218] By: gsar                                  on 1999/04/04  02:44:47
+        Log: be careful about extending the stack for the Win32:: builtins
+     Branch: maint-5.005/perl
+           ! win32/win32.c
+____________________________________________________________________________
+[  3217] By: gsar                                  on 1999/04/04  01:59:26
+        Log: correct places that said newSVpv() when they meant newSVpvn()
+     Branch: perl
+          ! XSUB.h dump.c ext/B/B.xs ext/B/defsubs.h.PL
+          ! ext/DB_File/DB_File.xs ext/DynaLoader/dl_vms.xs
+          ! ext/IPC/SysV/SysV.xs ext/Opcode/Opcode.xs ext/POSIX/POSIX.xs
+          ! ext/Socket/Socket.xs ext/attrs/attrs.xs gv.c hv.c hv.h
+          ! jpl/JNI/JNI.xs mg.c op.c perl.c pod/perlguts.pod pp.c pp_ctl.c
+          ! pp_sys.c regcomp.c toke.c util.c win32/dl_win32.xs
+           ! win32/win32.c
+____________________________________________________________________________
+[  3216] By: gsar                                  on 1999/04/03  23:58:27
+        Log: avoid duplicate code
+     Branch: perl
+           ! sv.c
+____________________________________________________________________________
+[  3215] By: gsar                                  on 1999/04/03  23:14:34
+        Log: grow PL_tmps_stack more efficiently; make it more amenable to
+             STRESS_REALLOC testing
+     Branch: perl
+          ! embed.h embed.pl global.sym objXSUB.h pp.h proto.h scope.c
+           ! sv.c
+____________________________________________________________________________
+[  3214] By: gsar                                  on 1999/04/03  21:01:09
+        Log: scrounge and save three extra branches in pp_entersub()
+     Branch: perl
+           ! cv.h pp_ctl.c pp_hot.c
+____________________________________________________________________________
+[  3213] By: gsar                                  on 1999/04/03  17:43:23
+        Log: remove duplicate code and an extra branch in sv_setsv() and
+             other hot code by making SvTHINKFIRST() think about FAKE SVs
+     Branch: perl
+          ! doio.c embed.h embed.pl global.sym objXSUB.h pp.c pp_hot.c
+           ! proto.h scope.c sv.c sv.h
+____________________________________________________________________________
+[  3212] By: jhi                                   on 1999/04/03  16:20:09
+        Log: Fix up some _t nits (Pid_t, Gid_t, Uid_t, etc. instead of int).
+             
+             From: John Bley <jbb6@acpub.duke.edu>
+             To: perlbug@perl.org
+             Subject: [PATCH]5.005_03 (CORE) Fix some _t nits
+             Date: Thu, 1 Apr 1999 02:01:47 -0500 (EST)
+             Message-ID: <Pine.SOL.3.91.990401015805.21458A-100000@soc13.acpub.duke.edu>
+     Branch: cfgperl
+           ! doio.c pp_sys.c
+____________________________________________________________________________
+[  3211] By: jhi                                   on 1999/04/03  13:27:26
+        Log: Change #3210 was rather unportable.  This is better.
+     Branch: cfgperl
+           ! Configure config_h.SH
+____________________________________________________________________________
+[  3210] By: jhi                                   on 1999/04/03  13:16:20
+        Log: Avoid Digital UNIX' ksh.
+             
+             From: Jarkko Hietaniemi <jhi@iki.fi> 
+             To: Henrik Tougaard <ht000@siberut.foa.dk> 
+             Cc: perlbug@perl.com, ht000@foa.dk 
+             Subject: Re: Not OK perl5.005_03-MAINT_TRIAL_4
+             Date: Wed, 27 Jan 1999 16:52:33 +0200 (EET) 
+             Message-ID: <13999.10289.319422.239987@alpha.hut.fi> 
+     Branch: cfgperl
+           ! Configure config_h.SH
+____________________________________________________________________________
+[  3209] By: jhi                                   on 1999/04/03  12:49:04
+        Log: Integrate from mainperl.
+     Branch: cfgperl
+          !> Changes Makefile.SH README installperl t/lib/bigfloatpm.t
+____________________________________________________________________________
+[  3208] By: jhi                                   on 1999/04/03  12:27:24
+        Log: Add -mabi=64 to ccflags for 64-bit IRIX gcc.
+             
+             From: Lionel Cons <lionel.cons@cern.ch>
+             To: jhi@iki.fi
+             Cc: perlbug@perl.com, kstar@isinet.com,
+             Philippe Defert <philippe.defert@cern.ch>
+             Subject: Re: Not OK: perl 5.00503 on IP27-irix 6.5 (UNINSTALLED)
+             Date: Thu, 1 Apr 1999 14:05:28 +0200 (METDST)
+             Message-Id: <199904011205.OAA11380@mercury.cern.ch>
+     Branch: cfgperl
+           ! hints/irix_6.sh
+____________________________________________________________________________
+[  3207] By: jhi                                   on 1999/04/03  12:20:21
+        Log: Be polite about usemymalloc.
+     Branch: cfgperl
+           ! hints/aix.sh
+____________________________________________________________________________
+[  3206] By: gsar                                  on 1999/04/02  23:31:59
+        Log: a typo in change#3205
+     Branch: perl
+           ! t/lib/bigfloatpm.t
+____________________________________________________________________________
+[  3205] By: gsar                                  on 1999/04/02  23:20:31
+        Log: make testsuite reflect change#3157  (Math::BigFloat->new now
+             returns NaNs faithfully)
+     Branch: perl
+           ! t/lib/bigfloatpm.t
+____________________________________________________________________________
+[  3204] By: jhi                                   on 1999/04/02  22:03:23
+        Log: On -Uinstallusrbinperl and no -Dprefix, set prefix to /usr/local.
+             
+             From: "Kurt D. Starsinic" <kstar@chapin.edu>
+             To: perl5-porters@perl.org
+             Subject: linux hints nit
+             Date: Fri, 2 Apr 1999 16:49:47 -0500
+             Message-ID: <19990402164947.E80926@O2.chapin.edu>
+     Branch: cfgperl
+           ! hints/linux.sh
+____________________________________________________________________________
+[  3203] By: jhi                                   on 1999/04/02  22:00:56
+        Log: Display exact glibc version in Linux. 
+             
+             From: Andy Dougherty <doughera@lafayette.edu>
+             To: Perl Porters <perl5-porters@perl.org>
+             Subject: Displaying glibc version on Linux
+             Date: Mon, 29 Mar 1999 15:04:26 -0500 (EST)
+             Message-Id: <Pine.GSU.4.05.9903291417370.15335-100000@newton.phys>
+     Branch: cfgperl
+           ! hints/linux.sh
+____________________________________________________________________________
+[  3202] By: gsar                                  on 1999/04/02  21:23:18
+        Log: various little goofs
+     Branch: perl
+           ! Changes Makefile.SH README installperl
+____________________________________________________________________________
+[  3201] By: jhi                                   on 1999/04/02  13:13:39
+        Log: Configure regen.
+             
+             Add llseek + offset_t probing.
+             Change CONFIG to CONFIGDOTSH.
+             'unset foo' is unportable, use foo=''.
+     Branch: cfgperl
+          ! Configure Makefile.SH Policy_sh.SH cflags.SH config_h.SH
+          ! configpm makeaperl.SH makedepend.SH makedir.SH myconfig.SH
+           ! perl_exp.SH writemain.SH
+____________________________________________________________________________
+[  3200] By: jhi                                   on 1999/04/02  12:06:22
+        Log: Introduce myconfig.SH.
+             
+             From: Andy Dougherty <doughera@lafayette.edu>
+             To: Jarkko Hietaniemi <jhi@iki.fi>
+             Cc: Nick Ing-Simmons <nik@tiuk.ti.com>, Perl Porters <perl5-porters@perl.org>
+             Subject: [PATCH] myconfig.SH (was Re: perl install bug on AIX 4.3.1.0)
+             Date: Tue, 30 Mar 1999 12:41:29 -0500 (EST)
+             Message-Id: <Pine.GSU.4.05.9903301222280.15987-100000@newton.phys>
+     Branch: cfgperl
+           + myconfig.SH
+           - myconfig
+           ! MANIFEST
+____________________________________________________________________________
+[  3195] By: jhi                                   on 1999/03/28  16:42:54
+        Log: Update perlhist on 5_03.
+     Branch: maint-5.005/perl
+           ! pod/perlhist.pod
+____________________________________________________________________________
+[  3194] By: jhi                                   on 1999/03/28  12:30:01
+        Log: Integrate from mainperl.
+     Branch: cfgperl
+          +> t/op/grep.t
+          ! lib/Math/BigFloat.pm lib/Math/BigInt.pm lib/bigfloat.pl
+           ! t/lib/bigintpm.t
+         !> MANIFEST Porting/p4desc ext/Thread/Thread.xs op.c
+          !> t/lib/thread.t
+____________________________________________________________________________
+[  3189] By: gsar                                  on 1999/03/28  08:22:00
+        Log: various pod niggles
+     Branch: maint-5.005/perl
+          ! pod/perl.pod pod/perldebug.pod pod/perldiag.pod
+           ! pod/perlfunc.pod pod/perlhist.pod
+____________________________________________________________________________
+[  3187] By: gsar                                  on 1999/03/28  07:31:16
+        Log: regularize CAPI declarations (CAPI extensions now build under
+             the Borland compiler)
+     Branch: maint-5.005/perl
+           ! win32/GenCAPI.pl
+____________________________________________________________________________
+[  3186] By: gsar                                  on 1999/03/28  07:26:33
+        Log: ensure XS_LOCKS stuff happens *before* XSUB is entered under
+             -DPERL_CAPI
+     Branch: maint-5.005/perl
+           ! XSlock.h win32/GenCAPI.pl win32/Makefile win32/makefile.mk
+____________________________________________________________________________
+[  3183] By: gsar                                  on 1999/03/28  06:00:46
+        Log: update p4 utility to ignore non-text files
+     Branch: perl
+           ! Porting/p4desc
+____________________________________________________________________________
+[  3181] By: gsar                                  on 1999/03/28  03:37:23
+        Log: integrate change#3179 from maint-5.005
+     Branch: perl
+          !> ext/Thread/Thread.xs t/lib/thread.t
+____________________________________________________________________________
+[  3180] By: gsar                                  on 1999/03/28  02:28:20
+        Log: fix bogus OPf_REF context for the BLOCK in C<grep BLOCK @foo>
+             (sometimes caused bizarreness in the BLOCK)
+     Branch: perl
+           + t/op/grep.t
+           ! MANIFEST op.c
+____________________________________________________________________________
+[  3179] By: gsar                                  on 1999/03/28  02:14:04
+        Log: fix thread segfault when passing large number of arguments to child
+             a la C<Thread->new($foo, 1..1000)>
+     Branch: maint-5.005/perl
+           ! ext/Thread/Thread.xs t/lib/thread.t
+____________________________________________________________________________
+[  3178] By: gbarr                                 on 1999/03/28  01:39:23
+        Log: fix $Config{'usethreads'} typo in perlthrtut
+             
+             From: Ian Maloney <szhmf9@wsblob.ubs.com>
+             Date: Thu, 25 Mar 1999 16:40:14 +0100 (MET)
+             Message-Id: <199903251540.QAA02439@wsblob.>
+             Subject: perlthrtut documentation error
+     Branch: maint-5.005/perl
+           ! pod/perlthrtut.pod
+____________________________________________________________________________
+[  3173] By: gbarr                                 on 1999/03/27  18:19:47
+        Log: Update Test.pm to VERSION 1.122 from CPAN
+     Branch: maint-5.005/perl
+           ! lib/Test.pm
+____________________________________________________________________________
+[  3171] By: jhi                                   on 1999/03/26  22:38:28
+        Log: Integrate from mainperl.
+     Branch: cfgperl
+          !> (integrate 37 files)
+____________________________________________________________________________
+[  3170] By: gsar                                  on 1999/03/26  01:30:25
+        Log: specify type of bracket in "Unmatched bracket" diagnostic;
+             prefer 'brace' or 'curly bracket' over 'curly brace'
+     Branch: perl
+          ! pod/perldiag.pod pod/perlreftut.pod pod/perlstyle.pod
+           ! t/op/misc.t t/op/re_tests toke.c
+____________________________________________________________________________
+[  3169] By: gsar                                  on 1999/03/26  00:50:51
+        Log: better description of "Integer overflow" diagnostic
+     Branch: perl
+           ! pod/perldiag.pod
+____________________________________________________________________________
+[  3168] By: gsar                                  on 1999/03/25  11:02:46
+        Log: applied needful parts of suggested patch
+             From: "Vishal Bhatia" <vishalb@my-dejanews.com>
+             Date: Tue, 23 Mar 1999 16:21:43 -0800
+             Message-ID: <OOOKJGFMLFLHBAAA@my-dejanews.com>
+             Subject: [PATCH 5.005_56] pp_formline correction
+     Branch: perl
+           ! ext/B/B/Bblock.pm ext/B/B/CC.pm
+____________________________________________________________________________
+[  3167] By: gsar                                  on 1999/03/25  10:39:02
+        Log: clarify what a "comment" means (due to Mark-Jason Dominus
+             <mjd@plover.com>)
+     Branch: perl
+           ! pod/perlsyn.pod
+____________________________________________________________________________
+[  3166] By: gsar                                  on 1999/03/25  10:33:18
+        Log: describe current behavior on local($foo{nothere}) (suggested by
+             Lionel Cons <lionel.cons@cern.ch>)
+     Branch: perl
+           ! pod/perlsub.pod
+____________________________________________________________________________
+[  3165] By: gsar                                  on 1999/03/25  06:21:05
+        Log: fix refcnt on PL_main_cv (variant of suggestion by Vishal Bhatia
+             <vishalb@hotmail.com>)
+     Branch: perl
+           ! ext/B/B/C.pm
+____________________________________________________________________________
+[  3164] By: gsar                                  on 1999/03/25  06:17:27
+        Log: From: Stephen McCamant <smccam@uclink4.berkeley.edu>
+             Date: Tue, 23 Mar 1999 17:47:04 -0800 (PST)
+             Message-ID: <14072.16859.154428.241373@fre-76-120.reshall.berkeley.edu>
+             Subject: [PATCH _56] Compiler needs to know about utf8 SVOP tr///s
+     Branch: perl
+           ! ext/B/B.xs op.h opcode.pl
+____________________________________________________________________________
+[  3163] By: gsar                                  on 1999/03/25  06:15:49
+        Log: B::Deparse update from Stephen McCamant <smccam@uclink4.berkeley.edu>
+             Date: Tue, 23 Mar 1999 02:41:34 -0800 (PST)
+             Message-ID: <14071.27445.867782.852353@fre-76-120.reshall.berkeley.edu>
+             Subject: [PATCH _56] B::Deparse 0.57
+             --
+             Date: Tue, 23 Mar 1999 13:08:12 -0800 (PST)
+             Message-ID: <14072.502.107712.175179@fre-76-120.reshall.berkeley.edu>
+             Subject: Re: [PATCH _56] B::Deparse 0.57 
+     Branch: perl
+           ! AUTHORS MAINTAIN ext/B/B/Deparse.pm
+____________________________________________________________________________
+[  3162] By: gsar                                  on 1999/03/25  06:11:46
+        Log: fix a few places that said 'int', but meant 'STRLEN'
+     Branch: perl
+           ! pod/perlguts.pod proto.h sv.c
+____________________________________________________________________________
+[  3161] By: gsar                                  on 1999/03/25  06:01:18
+        Log: From: Russ Allbery <rra@stanford.edu>
+             Date: 22 Mar 1999 04:26:26 -0800
+             Message-ID: <yl4sndr9ql.fsf@windlord.stanford.edu>
+             Subject: [5.005_56] Add EXISTS to SDBM_File and libsdbm
+     Branch: perl
+          ! ext/SDBM_File/SDBM_File.xs ext/SDBM_File/sdbm/README.too
+          ! ext/SDBM_File/sdbm/pair.c ext/SDBM_File/sdbm/pair.h
+          ! ext/SDBM_File/sdbm/sdbm.3 ext/SDBM_File/sdbm/sdbm.c
+           ! ext/SDBM_File/sdbm/sdbm.h pod/perldelta.pod t/lib/sdbm.t
+____________________________________________________________________________
+[  3160] By: gsar                                  on 1999/03/25  02:26:31
+        Log: better description of OP_UNSTACK (s/unstack/iteration finalizer/)
+     Branch: perl
+           ! opcode.h opcode.pl
+____________________________________________________________________________
+[  3159] By: gsar                                  on 1999/03/25  02:18:17
+        Log: add statement-modifier loops to :base_loop class
+     Branch: perl
+           ! ext/Opcode/Opcode.pm
+____________________________________________________________________________
+[  3158] By: gsar                                  on 1999/03/25  00:36:57
+        Log: integrate changes#3105,3130,3154 from maint-5.005
+     Branch: perl
+          !> Configure INSTALL hints/dec_osf.sh hints/netbsd.sh
+____________________________________________________________________________
+[  3157] By: gsar                                  on 1999/03/25  00:24:17
+        Log: remove bogus panic()
+     Branch: perl
+           ! Changes lib/Math/BigFloat.pm
+____________________________________________________________________________
+[  3156] By: jhi                                   on 1999/03/24  22:43:43
+        Log: Integrate from mainperl.
+     Branch: cfgperl
+          +> (branch 38 files)
+          !> (integrate 68 files)
+____________________________________________________________________________
+[  3155] By: jhi                                   on 1999/03/24  22:12:17
+        Log: Configure regenerated because of changes #3130/#3154 and #3147.
+     Branch: cfgperl
+           ! Configure config_h.SH
+____________________________________________________________________________
+[  3154] By: jhi                                   on 1999/03/24  21:40:51
+        Log: Reword the shared library search path (LD_LIBRARY_PATH) info
+             based on suggestions from Andy Dougherty.
+     Branch: maint-5.005/perl
+           ! INSTALL
+____________________________________________________________________________
+[  3153] By: gsar                                  on 1999/03/24  10:38:05
+        Log: applied suggested patch, modulo superceded parts
+             From: Charles Bailey <BAILEY@newman.upenn.edu>
+             Date: Thu, 18 Mar 1999 00:10:44 -0400 (EDT)
+             Message-id: <01J8YFGIHW2W001E7S@mail.newman.upenn.edu>
+             Subject: [PATCH 5.005_56] Miscellaneous VMS-specific fixes
+     Branch: perl
+          ! lib/ExtUtils/Liblist.pm lib/ExtUtils/MM_VMS.pm
+          ! t/comp/require.t t/op/lex_assign.t t/op/taint.t
+          ! utils/perldoc.PL vms/ext/Stdio/Stdio.pm vms/ext/Stdio/Stdio.xs
+           ! vms/ext/Stdio/test.pl vms/test.com vms/vmsish.h
+____________________________________________________________________________
+[  3152] By: gsar                                  on 1999/03/24  10:30:51
+        Log: applied suggested patch, modulo superceded parts
+             From: Charles Bailey <BAILEY@newman.upenn.edu>
+             Date: Thu, 18 Mar 1999 00:04:31 -0400 (EDT)
+             Message-id: <01J8YF0EOWLU001E7S@mail.newman.upenn.edu>
+             Subject: [PATCH 5.005_56] Miscellaneous small fixes
+     Branch: perl
+          ! ext/B/defsubs.h.PL ext/re/re.pm lib/ExtUtils/MM_Unix.pm
+           ! lib/File/Basename.pm
+____________________________________________________________________________
+[  3151] By: gsar                                  on 1999/03/24  10:15:00
+        Log: doc tweak suggested by M.J.T. Guy <mjtg@cus.cam.ac.uk>
+     Branch: perl
+           ! pod/perlop.pod
+____________________________________________________________________________
+[  3150] By: gsar                                  on 1999/03/24  10:09:13
+        Log: missing integration in previous change
+     Branch: perl
+          !> README.apollo
+____________________________________________________________________________
+[  3149] By: gsar                                  on 1999/03/24  10:06:44
+        Log: integrate changes#3116,3119 from maint-5.005
+     Branch: perl
+           + README.apollo
+          +> apollo/netinet/in.h
+          !> MANIFEST hints/apollo.sh t/lib/io_udp.t
+____________________________________________________________________________
+[  3148] By: gsar                                  on 1999/03/24  10:01:56
+        Log: integrate changes#3091-3094 from maint-5.005
+     Branch: perl
+         !> README.hurd vms/subconfigure.com vos/config.h
+          !> vos/config_h.SH_orig
+____________________________________________________________________________
+[  3147] By: gsar                                  on 1999/03/24  09:31:49
+        Log: warn about newfangled vfork() caveats
+     Branch: perl
+           ! Configure
+____________________________________________________________________________
+[  3146] By: jhi                                   on 1999/03/24  09:20:14
+        Log: Bring in changes #2808 and #2812 (from mainline perl)
+             that enhance the perlbug checklist.
+     Branch: maint-5.005/perl
+           ! utils/perlbug.PL
+____________________________________________________________________________
+[  3145] By: gsar                                  on 1999/03/24  08:37:02
+        Log: integrate change#3115 from maint-5.005
+     Branch: perl
+         !> ext/DB_File/Changes ext/DB_File/DB_File.pm
+          !> ext/DB_File/DB_File.xs ext/DB_File/typemap
+____________________________________________________________________________
+[  3144] By: gsar                                  on 1999/03/24  08:33:59
+        Log: add note about map in scalar context
+     Branch: perl
+           ! pod/perlfunc.pod
+____________________________________________________________________________
+[  3143] By: gsar                                  on 1999/03/24  08:25:59
+        Log: doc tweak
+     Branch: perl
+           ! lib/Time/Local.pm
+____________________________________________________________________________
+[  3142] By: gsar                                  on 1999/03/24  08:20:37
+        Log: applied suggested patch, modulo bogus hunk
+             From: "Vishal Bhatia" <vishalb@hotmail.com>
+             Date: Thu, 11 Mar 1999 07:40:27 PST
+             Message-ID: <19990311154027.25891.qmail@hotmail.com>
+             Subject: [PATCH 5.005_56] Minor fixes in perlcc
+     Branch: perl
+           ! ext/B/B/C.pm ext/B/B/CC.pm utils/perlcc.PL
+____________________________________________________________________________
+[  3141] By: gsar                                  on 1999/03/24  08:06:12
+        Log: integrate change#3104 from maint-5.005
+     Branch: perl
+          !> README.os390 t/lib/posix.t
+____________________________________________________________________________
+[  3140] By: gsar                                  on 1999/03/24  06:34:56
+        Log: fix failure of C<&locked_sub;> under -Dusethreads
+     Branch: perl
+           ! pp_hot.c t/lib/thread.t
+____________________________________________________________________________
+[  3139] By: gsar                                  on 1999/03/24  05:52:00
+        Log: debugger tweak (wasn't printing a newline after recalled commands)
+     Branch: perl
+           ! lib/perl5db.pl
+____________________________________________________________________________
+[  3138] By: gsar                                  on 1999/03/24  05:33:28
+        Log: document OO exceptions (based on a suggestion by Andreas Koenig
+             <andreas.koenig@anima.de>)
+     Branch: perl
+           ! pod/perlfunc.pod
+____________________________________________________________________________
+[  3137] By: gsar                                  on 1999/03/24  02:50:20
+        Log: better "Illegal %s digit ignored" warnings
+     Branch: perl
+          ! MANIFEST pod/perldiag.pod pod/perlfunc.pod t/pragma/warn/util
+           ! toke.c util.c
+____________________________________________________________________________
+[  3136] By: gsar                                  on 1999/03/24  02:26:38
+        Log: fix off-by-one that resulted in misparse of C</[\x{80}-\x{81}]/>
+     Branch: perl
+           + t/pragma/utf8.t
+           ! regcomp.c
+____________________________________________________________________________
+[  3135] By: gsar                                  on 1999/03/24  01:29:09
+        Log: flip release & version in win32_uname()
+     Branch: perl
+           ! win32/win32.c
+____________________________________________________________________________
+[  3134] By: gsar                                  on 1999/03/24  01:08:33
+        Log: support POSIX::uname() via win32_uname()
+     Branch: perl
+          ! XSUB.h iperlsys.h win32/GenCAPI.pl win32/config.bc
+          ! win32/config.gc win32/config.vc win32/config_H.bc
+          ! win32/config_H.gc win32/config_H.vc win32/makedef.pl
+           ! win32/perlhost.h win32/win32.c win32/win32.h win32/win32iop.h
+____________________________________________________________________________
+[  3133] By: gsar                                  on 1999/03/23  22:20:10
+        Log: From: jan.dubois@ibm.net (Jan Dubois)
+             Date: Sat, 06 Mar 1999 21:42:56 +0100
+             Message-ID: <36e49281.50337171@smtp1.ibm.net>
+             Subject: [PATCH 5.005_56] perldelta.pod changes for Win32::* functions
+     Branch: perl
+           ! pod/perldelta.pod
+____________________________________________________________________________
+[  3132] By: gsar                                  on 1999/03/23  22:17:45
+        Log: File::Spec fixes from Jan Dubois <jan.dubois@ibm.net>
+             Date: Sat, 06 Mar 1999 17:50:49 +0100
+             Message-ID: <36e25209.33833760@smtp1.ibm.net>
+             Subject: [PATCH 5.005_56] Fixes for File::Spec::Functions.pm
+             --
+             Date: Sat, 06 Mar 1999 18:15:00 +0100
+             Message-ID: <36e36222.37954195@smtp1.ibm.net>
+             Subject: [PATCH 5.005_56] Fix for File::Spec::Win32.pm
+     Branch: perl
+           + t/lib/filefunc.t
+          ! MANIFEST lib/File/Spec/Functions.pm lib/File/Spec/Win32.pm
+           ! pod/perldelta.pod pod/perlmodlib.pod
+____________________________________________________________________________
+[  3131] By: gsar                                  on 1999/03/23  22:07:59
+        Log: integrate cfgperl changes into mainline
+     Branch: perl
+          +> ext/DynaLoader/dl_rhapsody.xs hints/rhapsody.sh
+         !> Configure Makefile.SH config_h.SH configure.gnu handy.h
+         !> installperl malloc.c perl.c perl.h pod/perl.pod
+          !> pod/perldelta.pod pp_sys.c t/op/stat.t x2p/util.c
+____________________________________________________________________________
+[  3130] By: jhi                                   on 1999/03/23  22:02:23
+        Log: Don't use config.msg to remind about the
+             LD_LIBRARY_PATH because Makefile.SH takes
+             care of that.
+             
+             Use shrplib in DEC O^W^Digital U^W^WTru64 UNIX.
+             This used to be the default but in some MT or another it
+             was dropped because of some transient error or another.
+     Branch: maint-5.005/perl
+           ! Configure hints/dec_osf.sh
+____________________________________________________________________________
+[  3129] By: gsar                                  on 1999/03/23  21:38:03
+        Log: add Pod-Parser-1.08 (verbatim module =include tests elided owing
+             to size   and better maintainability)
+     Branch: perl
+          + lib/Pod/Checker.pm lib/Pod/InputObjects.pm lib/Pod/Parser.pm
+          + lib/Pod/PlainText.pm lib/Pod/Select.pm lib/Pod/Usage.pm
+          + pod/pod2usage.PL pod/podchecker.PL pod/podselect.PL
+          + t/pod/emptycmd.t t/pod/emptycmd.xr t/pod/for.t t/pod/for.xr
+          + t/pod/headings.t t/pod/headings.xr t/pod/include.t
+          + t/pod/include.xr t/pod/included.t t/pod/included.xr
+          + t/pod/lref.t t/pod/lref.xr t/pod/nested_items.t
+          + t/pod/nested_items.xr t/pod/nested_seqs.t t/pod/nested_seqs.xr
+          + t/pod/oneline_cmds.t t/pod/oneline_cmds.xr t/pod/poderrs.t
+          + t/pod/poderrs.xr t/pod/special_seqs.t t/pod/special_seqs.xr
+           + t/pod/testcmp.pl t/pod/testp2pt.pl t/pod/testpchk.pl
+          ! AUTHORS MAINTAIN MANIFEST installperl pod/Makefile
+           ! win32/Makefile win32/makefile.mk win32/pod.mak
+____________________________________________________________________________
+[  3128] By: jhi                                   on 1999/03/23  10:14:54
+        Log: Integrate from mainperl.
+     Branch: cfgperl
+          !> (integrate 46 files)
+____________________________________________________________________________
+[  3127] By: gsar                                  on 1999/03/23  06:57:30
+        Log: From: Tim Witham - FES <twitham@pcocd2.intel.com>
+             Date: Thu, 4 Mar 1999 10:54:01 -0800
+             Message-Id: <9903041854.AA46868@frc0000>
+             Subject: patch for useless Math::BigInt warnings
+     Branch: perl
+           ! lib/Math/BigInt.pm
+____________________________________________________________________________
+[  3126] By: gsar                                  on 1999/03/23  05:54:37
+        Log: avoid literal 'undef' in $lddlflags under `Configure -Uoptimize`
+             From: "Kurt D. Starsinic" <kstar@chapin.edu>
+             Date: Fri, 19 Feb 1999 15:47:59 -0500
+             Message-ID: <19990219154759.A32350@O2.chapin.edu>
+             Subject: [PATCH] OSF/1 hints
+     Branch: perl
+           ! hints/dec_osf.sh
+____________________________________________________________________________
+[  3125] By: gsar                                  on 1999/03/23  00:56:38
+        Log: avoid typeglob persistence in pp_readline()
+     Branch: perl
+           ! sv.c t/op/gv.t
+____________________________________________________________________________
+[  3124] By: gsar                                  on 1999/03/22  21:12:23
+        Log: update copyright years
+     Branch: perl
+          ! Changes EXTERN.h INTERN.h av.c av.h bytecode.pl cop.h cv.h
+          ! deb.c doio.c doop.c dump.c form.h gv.c gv.h handy.h hv.c hv.h
+          ! malloc.c mg.c mg.h op.c op.h perl.c perl.h perlio.c pp.c pp.h
+          ! pp_ctl.c pp_hot.c pp_sys.c regcomp.c regexec.c run.c scope.c
+           ! sv.c sv.h toke.c utf8.c utf8.h util.c
+____________________________________________________________________________
+[  3123] By: gsar                                  on 1999/03/22  07:07:06
+        Log: implement win32_spawnvp() internally, making it return true PIDs
+             for asynchronous spawns; fix win32_kill() to always deal with
+             PIDs
+     Branch: perl
+           ! win32/win32.c win32/win32.h
+____________________________________________________________________________
+[  3122] By: jhi                                   on 1999/03/19  21:12:14
+        Log: Describe the new Benchmark feature in more detail.
+     Branch: cfgperl
+           ! pod/perldelta.pod
+     Branch: maint-5.005/perl
+           ! pod/perldelta.pod
+____________________________________________________________________________
+[  3121] By: jhi                                   on 1999/03/19  08:16:12
+        Log: AVAILABILITY tuning.
+     Branch: cfgperl
+           ! pod/perl.pod
+     Branch: maint-5.005/perl
+           ! pod/perl.pod
+____________________________________________________________________________
+[  3120] By: jhi                                   on 1999/03/17  14:52:17
+        Log: Rhapsody change assumed too much.
+     Branch: cfgperl
+           ! t/op/stat.t
+____________________________________________________________________________
+[  3119] By: jhi                                   on 1999/03/17  14:33:43
+        Log: More Apollo fixes.
+     Branch: maint-5.005/perl
+           ! README.apollo hints/apollo.sh t/lib/io_udp.t
+____________________________________________________________________________
+[  3118] By: jhi                                   on 1999/03/16  17:23:39
+        Log: Nada.
+     Branch: maint-5.005/perl
+           ! README.apollo
+____________________________________________________________________________
+[  3117] By: jhi                                   on 1999/03/16  17:18:49
+        Log: Apollo DomainOS AVAILABILITY.
+     Branch: cfgperl
+           ! pod/perl.pod
+     Branch: maint-5.005/perl
+           ! pod/perl.pod
+____________________________________________________________________________
+[  3116] By: jhi                                   on 1999/03/16  17:14:00
+        Log: Apollo DomainOS patch
+             From: Johann Klasek <jk@auto.tuwien.ac.at>
+             Subject: Re: DomainPerl
+             Date: Tue, 16 Mar 1999 17:46:32 +0100
+             Message-ID: <19990316174632.A19759@euklid.auto.tuwien.ac.at>
+     Branch: maint-5.005/perl
+           + README.apollo apollo/netinet/in.h
+           ! MANIFEST hints/apollo.sh
+____________________________________________________________________________
+[  3115] By: jhi                                   on 1999/03/16  14:23:54
+        Log: From: Paul Marquess <pmarquess@bfsec.bt.co.uk>
+             To: Gurusamy Sarathy <gsar@activestate.com>,
+             Graham Barr <gbarr@pobox.com>
+             Cc: Perl5 Porters <perl5-porters@perl.org>,
+             "Paul.Marquess" <Paul.Marquess@btinternet.com>
+             Subject: [PATCH 5.005_56 & 5.005_03_T6] Upgrade DB_File to version 1.65
+             Date: Sun, 14 Mar 1999 14:43:57 -0000
+             Message-Id: <199903141841.NAA17040@defender.perl.org>
+     Branch: maint-5.005/perl
+          ! ext/DB_File/Changes ext/DB_File/DB_File.pm
+           ! ext/DB_File/DB_File.xs ext/DB_File/typemap
+____________________________________________________________________________
+[  3114] By: jhi                                   on 1999/03/16  12:42:20
+        Log: Mention Rhapsody in 5.005_5X perldelta,
+             and in Rhapsody and Netware in 5.005_0X and 5.005_5X
+             *planned* AVAILABILITY.
+     Branch: cfgperl
+           ! pod/perl.pod pod/perldelta.pod
+     Branch: maint-5.005/perl
+           ! pod/perl.pod
+____________________________________________________________________________
+[  3113] By: jhi                                   on 1999/03/16  10:38:53
+        Log: perldelta niggling.
+     Branch: cfgperl
+           ! pod/perldelta.pod
+     Branch: maint-5.005/perl
+           ! pod/perldelta.pod
+____________________________________________________________________________
+[  3112] By: jhi                                   on 1999/03/16  10:35:21
+        Log: Integrate from mainperl.
+     Branch: cfgperl
+         !> lib/unicode/MakeEthiopicSyllables.PL pod/perldelta.pod
+          !> pod/perlhist.pod pod/perlmodinstall.pod pod/perltodo.pod
+____________________________________________________________________________
+[  3111] By: jhi                                   on 1999/03/16  10:28:10
+        Log: AVAILABILITY update: still mention PowerUX,
+             Novell Netware now has sources available.
+     Branch: cfgperl
+           ! pod/perl.pod
+     Branch: maint-5.005/perl
+           ! pod/perl.pod
+____________________________________________________________________________
+[  3110] By: gsar                                  on 1999/03/16  04:34:23
+        Log: sundry pod niggles
+     Branch: perl
+          ! lib/unicode/MakeEthiopicSyllables.PL pod/perldelta.pod
+           ! pod/perlhist.pod pod/perlmodinstall.pod pod/perltodo.pod
+____________________________________________________________________________
+[  3109] By: jhi                                   on 1999/03/15  17:00:11
+        Log: Integrate from mainperl.
+     Branch: cfgperl
+         +> lib/unicode/EthiopicSyllables.txt lib/unicode/In/Ethiopic.pl
+         +> lib/unicode/Is/Syllable.pl
+         +> lib/unicode/MakeEthiopicSyllables.PL
+          +> lib/unicode/README.Ethiopic
+         !> AUTHORS MAINTAIN MANIFEST lib/unicode/Block.pl
+         !> lib/unicode/Category.pl lib/unicode/Is/Alnum.pl
+         !> lib/unicode/Is/Alpha.pl lib/unicode/Is/Digit.pl
+         !> lib/unicode/Is/L.pl lib/unicode/Is/Lo.pl lib/unicode/Is/N.pl
+         !> lib/unicode/Is/Nd.pl lib/unicode/Is/No.pl lib/unicode/Is/P.pl
+         !> lib/unicode/Is/Po.pl lib/unicode/Is/Space.pl
+         !> lib/unicode/Is/Z.pl lib/unicode/Is/Zs.pl lib/unicode/Makefile
+          !> lib/unicode/Name.pl lib/unicode/Number.pl op.c
+____________________________________________________________________________
+[  3108] By: jhi                                   on 1999/03/15  16:58:12
+        Log: First pass of integrating the Rhapsody port,
+             
+             From: Wilfredo Sanchez <wsanchez@apple.com> 
+             Subject: Keeping the world in sync.
+             Reply-To: wsanchez@apple.com 
+             To: perlbug@perl.com 
+             Date: Fri, 13 Nov 1998 17:11:30 -0800 
+             Message-Id: <199811140111.RAA41784@scv4.apple.com> 
+     Branch: cfgperl
+           + ext/DynaLoader/dl_rhapsody.xs hints/rhapsody.sh
+          ! Configure Makefile.SH config_h.SH configure.gnu handy.h
+          ! installperl malloc.c perl.c perl.h pp_sys.c t/op/stat.t
+           ! x2p/util.c
+____________________________________________________________________________
+[  3107] By: gsar                                  on 1999/03/15  03:22:10
+        Log: applied suggested patch (mailed to perl-unicode@perl.org) with minor tweaks
+             From: Daniel Yacob <dmulholl@cs.indiana.edu>
+             Date: Tue, 23 Feb 1999 16:13:42 -0500 (EST)
+             Message-Id: <199902232113.QAA26135@drum.cs.indiana.edu>
+             Subject: ../lib/unicode/ Unicode 3.0 Extensions for Ethiopic
+     Branch: perl
+          + lib/unicode/EthiopicSyllables.txt lib/unicode/In/Ethiopic.pl
+          + lib/unicode/Is/Syllable.pl
+          + lib/unicode/MakeEthiopicSyllables.PL
+           + lib/unicode/README.Ethiopic
+          ! AUTHORS MAINTAIN MANIFEST lib/unicode/Block.pl
+          ! lib/unicode/Category.pl lib/unicode/Is/Alnum.pl
+          ! lib/unicode/Is/Alpha.pl lib/unicode/Is/Digit.pl
+          ! lib/unicode/Is/L.pl lib/unicode/Is/Lo.pl lib/unicode/Is/N.pl
+          ! lib/unicode/Is/Nd.pl lib/unicode/Is/No.pl lib/unicode/Is/P.pl
+          ! lib/unicode/Is/Po.pl lib/unicode/Is/Space.pl
+          ! lib/unicode/Is/Z.pl lib/unicode/Is/Zs.pl lib/unicode/Makefile
+           ! lib/unicode/Name.pl lib/unicode/Number.pl
+____________________________________________________________________________
+[  3106] By: gsar                                  on 1999/03/12  20:35:36
+        Log: change#3067 failed package.t due to needless creation of $a and $b;
+             fixed to do that only for C<sort BLOCK|CODE @foo>, not C<sort(@foo)>
+     Branch: perl
+           ! op.c
+____________________________________________________________________________
+[  3105] By: jhi                                   on 1999/03/12  15:54:57
+        Log: Recognize the NetBSD packages collection.
+     Branch: maint-5.005/perl
+           ! hints/netbsd.sh
+____________________________________________________________________________
+[  3104] By: jhi                                   on 1999/03/12  09:07:04
+        Log: From: pvhp@forte.com (Peter Prymmer)
+             To: jhi@iki.fi, perl-mvs@perl.org, perlbug@perl.com
+             Subject: [PATCH MT6,_56] was Re: Not OK: perl 5.00503 +MAINT_TRIAL_6 on os390 06.00 (UNINSTALLED)
+             Date: Thu, 11 Mar 99 14:24:54 PST
+             Message-Id: <9903112224.AA24346@forte.com>
+     Branch: maint-5.005/perl
+           ! README.os390 t/lib/posix.t
+____________________________________________________________________________
+[  3103] By: jhi                                   on 1999/03/10  11:07:46
+        Log: Integrate from mainperl.
+     Branch: cfgperl
+         !> Changes embed.h embed.pl embedvar.h global.sym objXSUB.h op.c
+         !> perl.c perl.h pod/perldelta.pod pod/pod2man.PL t/base/lex.t
+          !> t/pragma/warn/1global toke.c win32/makedef.pl
+____________________________________________________________________________
+[  3102] By: jhi                                   on 1999/03/10  11:01:20
+        Log: From: pvhp@forte.com (Peter Prymmer)
+             To: perl5-porters@perl.org
+             Subject: [5.005_03-MT6]Patch: time passes
+             Date: Tue, 9 Mar 99 18:42:17 PST
+             Message-Id: <9903100242.AA29057@forte.com>
+     Branch: maint-5.005/perl
+           ! perl.c
+____________________________________________________________________________
+[  3101] By: jhi                                   on 1999/03/10  10:30:15
+        Log: From: Mark-Jason Dominus <mjd@plover.com>
+             To: perl5-porters@perl.com
+             Subject: Minor fix to perlfunc.pod
+             Date: Mon, 08 Mar 1999 20:05:53 -0500
+             Message-ID: <19990309010553.13757.qmail@plover.com>
+     Branch: maint-5.005/perl
+           ! pod/perlfunc.pod
+____________________________________________________________________________
+[  3100] By: gsar                                  on 1999/03/09  23:04:44
+        Log: change#3060 had the wrong quotes
+     Branch: perl
+           ! pod/pod2man.PL
+____________________________________________________________________________
+[  3099] By: jhi                                   on 1999/03/09  12:52:21
+        Log: d_uname was broken (probably since _53), reported by
+             
+             From: Alan Burlison <Alan.Burlison@uk.sun.com>
+             To: p5p <perl5-porters@perl.org>, Gurusamy Sarathy <gsar@umich.edu>,
+             cpan-testers@perl.org
+             Subject: Not OK: perl 5.00556 on sun4-solaris 2.6
+             Date: Mon, 08 Mar 1999 13:22:31 +0000
+             Message-ID: <36E3CF17.EA1FEDAA@uk.sun.com>
+             
+             and
+             
+             From: lvirden@cas.org (Larry W. Virden)
+             To: perlbug@perl.com
+             Subject: configure not correctly identifying uname posix compatibility
+             Date: Mon, 8 Mar 1999 06:36:16 -0500 (EST)
+             Message-Id: <199903081136.GAA23682@cas.org>
+     Branch: cfgperl
+           ! Configure config_h.SH
+____________________________________________________________________________
+[  3098] By: gsar                                  on 1999/03/09  03:16:07
+        Log: fix parsing of here documents in C<eval 's/.../<<FOO/e'>
+     Branch: perl
+           ! op.c perl.h pod/perldelta.pod t/base/lex.t toke.c
+____________________________________________________________________________
+[  3097] By: gsar                                  on 1999/03/09  02:50:43
+        Log: use yyerror() instead of croak() so that compile-time failures in
+             my(LIST) don't confuse globals with lexicals
+     Branch: perl
+           ! op.c toke.c
+____________________________________________________________________________
+[  3096] By: gsar                                  on 1999/03/09  02:47:36
+        Log: adjust testsuite for change#3067
+     Branch: perl
+           ! t/pragma/warn/1global
+____________________________________________________________________________
+[  3095] By: gsar                                  on 1999/03/08  21:04:48
+        Log: remove bogus symbols from global.sym
+     Branch: perl
+          ! Changes embed.h embed.pl embedvar.h global.sym objXSUB.h
+           ! perl.h win32/makedef.pl
+____________________________________________________________________________
+[  3094] By: jhi                                   on 1999/03/06  16:16:15
+        Log: From: Mark Kettenis <kettenis@wins.uva.nl>
+             To: jhi@iki.fi
+             Subject: Oops
+             Date: Sat, 6 Mar 1999 17:15:35 +0100 (CET)
+             Message-Id: <199903061615.RAA00207@delius.kettenis.nl>
+     Branch: maint-5.005/perl
+           ! README.hurd
+____________________________________________________________________________
+[  3093] By: jhi                                   on 1999/03/06  15:59:46
+        Log: From: Mark Kettenis <kettenis@wins.uva.nl>
+             To: jhi@iki.fi
+             Subject: New Hurd README
+             Date: Sat, 6 Mar 1999 16:46:12 +0100 (CET)
+             Message-Id: <199903061601.RAA00185@delius.kettenis.nl>
+     Branch: maint-5.005/perl
+           ! README.hurd
+____________________________________________________________________________
+[  3092] By: jhi                                   on 1999/03/06  12:52:06
+        Log: From: Paul_Green@stratus.com
+             To: perl5-porters@perl.org
+             Cc: jhi@iki.fi, Paul_Green@stratus.com
+             Subject: [PATCH 5.005_03-MAINT_TRIAL_6]: platform: vos -- updates to VOS port of Perl5
+             Date: Fri, 5 Mar 1999 18:08:49 -0500 
+             Message-ID: <1D1A4EF7AD4DD211A80D00A0C9D7DB665A035A@exna1.stratus.com>
+     Branch: maint-5.005/perl
+           ! vos/config.h vos/config_h.SH_orig
+____________________________________________________________________________
+[  3091] By: jhi                                   on 1999/03/06  12:42:21
+        Log: From: Dan Sugalski <sugalskd@osshe.edu>
+             To: perl5-porters@perl.org, vmsperl@perl.org
+             Subject: [PATCH 5.005_03-MT6]VMS build patch
+             Date: Fri, 05 Mar 1999 12:36:19 -0800
+             Message-Id: <3.0.6.32.19990305123619.02d326a0@ous.edu>
+     Branch: maint-5.005/perl
+           ! vms/subconfigure.com
+____________________________________________________________________________
+[  3090] By: gsar                                  on 1999/03/06  04:40:03
+        Log: integrate change#3089 from mainline
+             
+             tolerate CRs after options
+     Branch: maint-5.005/perl
+          !> perl.c
+____________________________________________________________________________
+[  3089] By: gsar                                  on 1999/03/06  04:30:40
+        Log: tolerate CRs after options
+     Branch: perl
+           ! perl.c
+____________________________________________________________________________
+[  3088] By: jhi                                   on 1999/03/05  12:49:01
+        Log: Integrate from mainperl.
+     Branch: cfgperl
+          +> README.hurd
+          !> MANIFEST ext/Errno/Errno_pm.PL t/lib/io_sock.t
+____________________________________________________________________________
+[  3087] By: gsar                                  on 1999/03/05  06:41:16
+        Log: adjust timeouts to accomodate slow/busy systems
+     Branch: perl
+           ! t/lib/io_sock.t
+____________________________________________________________________________
+[  3083] By: gsar                                  on 1999/03/05  01:32:47
+        Log: integrate change#3081 from maint-5.005
+     Branch: perl
+          !> ext/Errno/Errno_pm.PL
+____________________________________________________________________________
+[  3082] By: gsar                                  on 1999/03/05  01:31:06
+        Log: integrate change#2904 from maint-5.005
+     Branch: perl
+          +> README.hurd
+          !> MANIFEST
+____________________________________________________________________________
+[  3081] By: gsar                                  on 1999/03/05  00:14:33
+        Log: protect against doubled backslashes
+     Branch: maint-5.005/perl
+           ! ext/Errno/Errno_pm.PL
+____________________________________________________________________________
+[  3077] By: jhi                                   on 1999/03/04  08:10:13
+        Log: Integrate from mainperl.
+     Branch: cfgperl
+          +> ext/B/B/Stash.pm
+         !> MANIFEST README.hpux cc_runtime.h config_h.SH ext/B/B/C.pm
+         !> ext/B/B/CC.pm gv.c lib/File/Compare.pm lib/Test/Harness.pm
+         !> op.c pod/perldelta.pod pod/perlfunc.pod pod/pod2man.PL
+          !> t/lib/bigfloatpm.t t/lib/io_sock.t utils/perlcc.PL
+____________________________________________________________________________
+[  3076] By: jhi                                   on 1999/03/04  08:07:59
+        Log: Regen config_h.SH once more because of *size, 
+             noticed by
+             
+             From: Hans Mulder <hansm@icgned.icgroup.nl>
+             To: Jarkko Hietaniemi <jhi@iki.fi>
+             Cc: perl5-porters@perl.org
+             Subject: [PATCH for _56] LONGSIZE used before it is set in config.h
+             Date: Thu,  4 Mar 99 00:10:45 +0100
+             Message-Id: <9903032317.AA23021@icgned.icgroup.nl>
+     Branch: cfgperl
+           ! Configure config_h.SH
+____________________________________________________________________________
+[  3068] By: gsar                                  on 1999/03/04  05:48:03
+        Log: From: Hans Mulder <hansm@icgned.icgroup.nl>
+             Date: Thu,  4 Mar 99 00:10:45 +0100
+             Message-Id: <9903032317.AA23021@icgned.icgroup.nl>
+             Subject: [PATCH for _56] LONGSIZE used before it is set in config.h
+     Branch: perl
+           ! config_h.SH
+____________________________________________________________________________
+[  3067] By: gsar                                  on 1999/03/04  05:44:32
+        Log: exempt $foo::a,$foo::b from warnings only if sort() was seen in package foo
+             From: Graham Barr <gbarr@ti.com>
+             Date: Wed, 3 Mar 1999 17:23:56 -0600
+             Message-ID: <19990303172356.F7442@dal.asp.ti.com>
+             Subject: Re: 'use strict' doesn't work for one-letter variables
+     Branch: perl
+           ! gv.c op.c
+____________________________________________________________________________
+[  3066] By: gsar                                  on 1999/03/04  05:20:50
+        Log: updates to compiler modules
+             From: "Vishal Bhatia" <vishalb@hotmail.com>
+             Date: Tue, 02 Mar 1999 23:27:25 PST
+             Message-ID: <19990303072725.779.qmail@hotmail.com>
+             Subject: PATCH 5.005_56 + Test procedure
+     Branch: perl
+           + ext/B/B/Stash.pm
+          ! MANIFEST cc_runtime.h ext/B/B/C.pm ext/B/B/CC.pm
+           ! lib/Test/Harness.pm utils/perlcc.PL
+____________________________________________________________________________
+[  3065] By: gsar                                  on 1999/03/04  05:03:30
+        Log: more s/s_/s!/ etc.
+     Branch: perl
+           ! pod/perldelta.pod pod/perlfunc.pod
+____________________________________________________________________________
+[  3064] By: gsar                                  on 1999/03/04  04:50:45
+        Log: integrate cfgperl contents into mainline
+     Branch: perl
+         !> Configure README.vms bytecode.h config_h.SH configure.com
+         !> ext/B/defsubs.h.PL hints/hpux.sh pod/perldelta.pod
+         !> pod/perldiag.pod pp.c t/lib/ipc_sysv.t t/op/pack.t thread.h
+          !> vms/ext/vmsish.pm vms/subconfigure.com vms/vms.c vms/vmsish.h
+____________________________________________________________________________
+[  3063] By: gsar                                  on 1999/03/04  04:44:13
+        Log: HP-UX has yet another spelling for /NaNQ?/
+     Branch: perl
+           ! t/lib/bigfloatpm.t
+____________________________________________________________________________
+[  3062] By: gsar                                  on 1999/03/04  04:36:08
+        Log: error-check for accept() test
+     Branch: perl
+           ! t/lib/io_sock.t
+____________________________________________________________________________
+[  3061] By: gsar                                  on 1999/03/04  03:40:25
+        Log: allow custom comparison function in File::Compare::compare_text()
+             From: jan.dubois@ibm.net (Jan Dubois)
+             Date: Fri, 26 Feb 1999 21:56:09 +0100
+             Message-ID: <36db0838.8805651@smtp1.ibm.net>
+             Subject: Re: PodParser 1.07 (was: RE: C<stuff()> vs stuff()) 
+     Branch: perl
+           ! lib/File/Compare.pm
+____________________________________________________________________________
+[  3060] By: gsar                                  on 1999/03/04  03:37:38
+        Log: better version of change#3038
+             From: abigail@fnx.com
+             Date: Mon, 1 Mar 1999 14:11:36 -0500 (EST)
+             Message-ID: <19990301191136.5557.qmail@alexandra.wayne.fnx.com>
+             Subject: Re: [PATCH 5.005_03 TRIAL-5 pod/pod2man.PL] Recognize -> and => inside
+     Branch: perl
+           ! pod/pod2man.PL
+____________________________________________________________________________
+[  3058] By: jhi                                   on 1999/03/03  22:30:40
+        Log: Configure regen to
+             (1) match maint-5.005 patches #3056 and #3057
+             (2) better version of PHOSTNAME of #3050
+             (3) the crosscompile/multiarch config_h.SH trouble solved for now
+     Branch: cfgperl
+           ! Configure config_h.SH
+____________________________________________________________________________
+[  3054] By: jhi                                   on 1999/03/03  09:57:59
+        Log: Change #3053 missed perldelta.
+     Branch: cfgperl
+           ! pod/perldelta.pod
+____________________________________________________________________________
+[  3053] By: jhi                                   on 1999/03/03  08:29:43
+        Log: Use '!' to mark native integer packings instead of '_'.
+     Branch: cfgperl
+           ! pod/perldiag.pod pp.c t/lib/ipc_sysv.t t/op/pack.t
+____________________________________________________________________________
+[  3052] By: jhi                                   on 1999/03/02  23:12:36
+        Log: The HP-UX threads patch (change #3028) is needed also here.
+     Branch: cfgperl
+           ! hints/hpux.sh thread.h
+____________________________________________________________________________
+[  3051] By: jhi                                   on 1999/03/02  08:24:52
+        Log: From: Dan Sugalski <sugalskd@osshe.edu>
+             To: perl5-porters@perl.org, vmsperl@perl.org
+             Subject: [PATCH 5.005_0x and 5.005_5x]Minor update to README.VMS
+             Date: Mon, 01 Mar 1999 16:10:57 -0800
+             Message-Id: <3.0.6.32.19990301161057.03b1fc00@ous.edu>
+     Branch: cfgperl
+           ! README.vms
+     Branch: maint-5.005/perl
+           ! README.vms
+____________________________________________________________________________
+[  3050] By: jhi                                   on 1999/03/02  08:22:29
+        Log: From: Dan Sugalski <sugalskd@osshe.edu>
+             To: perl5-porters@perl.org, vmsperl@perl.org
+             Subject: [PATCH5.005_56]Diffs to get 5.005_56 building on VMS
+             Date: Mon, 01 Mar 1999 16:06:29 -0800
+             Message-Id: <3.0.6.32.19990301160629.02e09ec0@ous.edu>
+             
+             From: Dan Sugalski <sugalskd@osshe.edu>
+             To: perl5-porters@perl.org, vmsperl@perl.org
+             Subject: [PATCH 5.005_56]vmsish.pm patch
+             Date: Mon, 01 Mar 1999 20:19:04 -0800
+             Message-Id: <3.0.6.32.19990301201904.02cff460@ous.edu>
+             
+             plus Configure regen containing a "solution" to the
+             crosscompile/multiarch problem.
+     Branch: cfgperl
+          ! Configure config_h.SH configure.com ext/B/defsubs.h.PL
+           ! vms/ext/vmsish.pm vms/subconfigure.com vms/vms.c vms/vmsish.h
+____________________________________________________________________________
+[  3049] By: jhi                                   on 1999/03/02  07:34:21
+        Log: From: Spider Boardman <spider@leggy.zk3.dec.com>
+             To: perl5-porters@perl.org
+             Subject: [PATCH] Eliminate (valid) warning in byterun.c
+             Date: Mon, 01 Mar 1999 17:27:59 -0500
+             Message-Id: <199903012227.RAA00181@leggy.zk3.dec.com>
+     Branch: cfgperl
+           ! bytecode.h
+     Branch: maint-5.005/perl
+           ! bytecode.h
+____________________________________________________________________________
+[  3048] By: gsar                                  on 1999/03/02  06:41:21
+        Log: updated HP-UX notes from Jeff Okamoto <okamoto@xfiles.intercon.hp.com>
+     Branch: perl
+           ! MANIFEST README.hpux
+____________________________________________________________________________
+[  3047] By: jhi                                   on 1999/03/01  06:34:43
+        Log: Integrate from mainperl.
+     Branch: cfgperl
+          +> README.hpux lib/File/Spec/Functions.pm
+          !> (integrate 28 files)
+____________________________________________________________________________
+[  3046] By: gsar                                  on 1999/03/01  05:34:28
+        Log: this is 5.005_56
+     Branch: perl
+           ! Changes
+
+----------------
+Version 5.005_56
+----------------
+
+____________________________________________________________________________
+[  3045] By: gsar                                  on 1999/03/01  03:32:30
+        Log: destroy PL_svref_mutex in perl_destruct()
+     Branch: perl
+           ! perl.c
+____________________________________________________________________________
+[  3044] By: gsar                                  on 1999/03/01  00:38:50
+        Log: up patchlevel &c.
+     Branch: perl
+          ! Changes patchlevel.h pod/perlhist.pod win32/Makefile
+          ! win32/config_H.bc win32/config_H.gc win32/config_H.vc
+           ! win32/makefile.mk
+____________________________________________________________________________
+[  3043] By: gsar                                  on 1999/03/01  00:14:15
+        Log: integrate cfgperl contents into mainline
+     Branch: perl
+           ! pod/perldelta.pod
+          !> Configure config_h.SH
+____________________________________________________________________________
+[  3042] By: gsar                                  on 1999/02/28  23:55:08
+        Log: slightly edited version of suggested patch
+             From: jan.dubois@ibm.net (Jan Dubois)
+             Date: Mon, 01 Mar 1999 00:32:05 +0100
+             Message-ID: <36dbcf2c.12325433@smtp1.ibm.net>
+             Subject: Re: [PATCH 5.005_55] Cleanup of File::Spec module
+     Branch: perl
+           + lib/File/Spec/Functions.pm
+           ! MANIFEST lib/File/Spec.pm
+____________________________________________________________________________
+[  3041] By: gsar                                  on 1999/02/28  22:47:19
+        Log: fix subtle bug in eval'' testsuite
+     Branch: perl
+           ! t/op/eval.t
+____________________________________________________________________________
+[  3040] By: gsar                                  on 1999/02/28  22:46:24
+        Log: avoid literal control characters in change#3039
+     Branch: perl
+           ! t/base/lex.t
+____________________________________________________________________________
+[  3039] By: gsar                                  on 1999/02/28  21:47:18
+        Log: todo item: permit extended control variables a la ${^Foo} (patch
+             courtesy Mark-Jason Dominus <mjd@plover.com>)
+     Branch: perl
+          ! op.c pod/perldelta.pod pod/perltodo.pod pod/perlvar.pod
+           ! t/base/lex.t toke.c
+____________________________________________________________________________
+[  3038] By: gsar                                  on 1999/02/28  21:21:05
+        Log: From: abigail@fnx.com
+             Date: Sun, 28 Feb 1999 10:59:16 -0500 (EST)
+             Message-ID: <19990228155916.14496.qmail@alexandra.wayne.fnx.com>
+             Subject: Recognize -> and => inside [A-Z]<> sequences.
+     Branch: perl
+           ! pod/pod2man.PL
+____________________________________________________________________________
+[  3037] By: gsar                                  on 1999/02/28  21:12:22
+        Log: fix longstanding bug: searches for lexicals originating within eval''
+             weren't stopping at the subroutine boundary correctly
+     Branch: perl
+           ! op.c proto.h t/op/eval.t
+____________________________________________________________________________
+[  3036] By: gsar                                  on 1999/02/28  20:02:29
+        Log: revert parts of change#2990 to preserve predictable usage of Win32::Foo()
+             as stacked list values
+             From: jan.dubois@ibm.net (Jan Dubois)
+             Date: Sat, 27 Feb 1999 18:24:17 +0100
+             Message-ID: <36e22849.36531259@smtp1.ibm.net>
+             Subject: Re: resend [PATCH 5.005_55] Various win32/win32.c cleanup 
+     Branch: perl
+           ! win32/win32.c
+____________________________________________________________________________
+[  3035] By: gsar                                  on 1999/02/28  19:48:54
+        Log: remove superfluous stack_sp decl
+     Branch: perl
+           ! jpl/JNI/JNI.xs
+____________________________________________________________________________
+[  3034] By: gsar                                  on 1999/02/28  19:34:58
+        Log: s/print STDERR/warn/ suggested by abigail@fnx.com; add $VERSION
+     Branch: perl
+           ! lib/Getopt/Std.pm
+____________________________________________________________________________
+[  3033] By: gsar                                  on 1999/02/28  19:23:41
+        Log: add File::Compare::compare_text()
+             From: jan.dubois@ibm.net (Jan Dubois)
+             Date: Fri, 26 Feb 1999 00:20:41 +0100
+             Message-ID: <36dcd8ab.20195659@smtp1.ibm.net>
+             Subject: Re: PodParser 1.07 (was: RE: C<stuff()> vs stuff()) 
+     Branch: perl
+           ! lib/File/Compare.pm pod/perltodo.pod
+____________________________________________________________________________
+[  3032] By: gsar                                  on 1999/02/28  19:01:33
+        Log: add README.hpux
+     Branch: perl
+           + README.hpux
+           ! MAINTAIN MANIFEST
+____________________________________________________________________________
+[  3031] By: gsar                                  on 1999/02/28  18:49:08
+        Log: avoid escaping &amp; et al multiple times (variant of fix suggested by
+             James Cromie <jcromie@fossil.uswc.uswest.com>
+     Branch: perl
+           ! lib/Pod/Html.pm
+____________________________________________________________________________
+[  3030] By: gsar                                  on 1999/02/28  18:35:09
+        Log: From: jan.dubois@ibm.net (Jan Dubois)
+             Date: Wed, 24 Feb 1999 22:34:56 +0100
+             Message-ID: <36d86f1e.11495549@smtp1.ibm.net>
+             Subject: [PATCH 5.005_55] Test::Harness setting $ENV{HARNESS_ACTIVE}
+     Branch: perl
+           ! lib/Test/Harness.pm
+____________________________________________________________________________
+[  3029] By: gsar                                  on 1999/02/28  18:28:18
+        Log: add note about env pollution
+     Branch: perl
+           ! INSTALL pod/perltodo.pod
+____________________________________________________________________________
+[  3028] By: jhi                                   on 1999/02/26  14:40:00
+        Log: HP-UX 11 threads.
+             
+             From: Jeff Okamoto <okamoto@xfiles.intercon.hp.com>
+             To: perl5-porters@perl.org
+             Cc: jhi@cc.hut.fi
+             Subject: Maint 5 and _54 with threading on HP-UX 11.00
+             Date: Wed, 3 Feb 1999 12:57:18 -0800 (PST)
+             Message-Id: <199902032057.MAA10218@xfiles.intercon.hp.com>
+             
+             NOTE from jhi: the hpux hints could still be more robust by
+             disabling gdbm when necessary.
+             
+             Currently if there's a libgdbm.sl (gdbm 1.7.3) which is pre-11,
+             linking -lgdbm -lpthread creates an executable that instantly
+             core dumps on a pthreads internal panic:
+             
+             ./gdpt
+             
+             Pthread internal error: message: __libc_reinit() failed, file: ../pthreads/pthread.c, line: 1096
+             Return Pointer is 0xc082bf33
+             17639 quit (core dumped)  ./gdpt
+             
+             You don't have to *use* either gdbm or pthreads in the executable,
+             just linking them together is enough.  Workaround is to recompile
+             the GDBM under HP-UX 11, that makes the problem go away.
+     Branch: maint-5.005/perl
+           ! hints/hpux.sh thread.h
+____________________________________________________________________________
+[  3025] By: jhi                                   on 1999/02/25  20:41:07
+        Log: Temporary workaround for the config_h.SH versus
+             crosscompile and multiarch plus introduce 'rt'
+             to $libswanted: in UNIX98 sched_yield() lives there.
+     Branch: cfgperl
+           ! Configure config_h.SH
+____________________________________________________________________________
+[  3024] By: jhi                                   on 1999/02/24  12:54:59
+        Log: Integrate from mainperl.
+     Branch: cfgperl
+          +> t/lib/fatal.t
+          !> (integrate 44 files)
+____________________________________________________________________________
+[  3023] By: gsar                                  on 1999/02/24  07:02:12
+        Log: integrate cfgperl contents
+     Branch: perl
+          !> (integrate 30 files)
+____________________________________________________________________________
+[  3022] By: gsar                                  on 1999/02/24  05:59:47
+        Log: From: Daniel Grisinger <dgris@moiraine.dimensional.com>
+             Date: 23 Feb 1999 17:53:22 -0700
+             Message-ID: <m3g17w62rh.fsf@moiraine.dimensional.com>
+             Subject: [PATCH: _55] perldoc -q broken
+     Branch: perl
+           ! utils/perldoc.PL
+____________________________________________________________________________
+[  3021] By: gsar                                  on 1999/02/24  05:51:53
+        Log: ansify perlio.c, fix PerlIO-ish typos
+     Branch: perl
+          ! ext/DynaLoader/dl_beos.xs ext/DynaLoader/dl_cygwin32.xs
+           ! iperlsys.h perlio.c
+____________________________________________________________________________
+[  3020] By: gsar                                  on 1999/02/24  05:28:06
+        Log: adjust a Perl_malloc() flag for NeXT
+             From: Hans Mulder <hansm@icgned.icgroup.nl>
+             Date: Tue, 23 Feb 99 00:26:25 +0100
+             Message-Id: <9902222329.AA17516@icgned.icgroup.nl>
+             Subject: [PATCH for _55] MUTEX_INIT_CALLS_MALLOC no longer necessary
+     Branch: perl
+           ! perl.h
+____________________________________________________________________________
+[  3019] By: gsar                                  on 1999/02/24  05:19:42
+        Log: perltodo adjustments from Joshua Pritikin <joshua.pritikin@db.com>
+     Branch: perl
+           ! pod/perltodo.pod
+____________________________________________________________________________
+[  3018] By: gsar                                  on 1999/02/24  04:15:18
+        Log: From: Joshua Pritikin <joshua.pritikin@db.com>
+             Date: Mon, 22 Feb 1999 11:29:09 -0500 (EST)
+             Message-ID: <Pine.GSO.4.02.9902221128200.500-100000@eq1062.wks.na.deuba.com>
+             Subject: improved error message [PATCH _55] [RESEND]
+     Branch: perl
+           ! sv.c
+____________________________________________________________________________
+[  3017] By: gsar                                  on 1999/02/24  03:50:34
+        Log: From: Tom Christiansen <tchrist@jhereg.perl.com>
+             Date: Sun, 21 Feb 1999 20:02:18 -0700
+             Message-Id: <199902220302.UAA09981@jhereg.perl.com>
+             Subject: perlfunc updates (against 55)
+     Branch: perl
+           ! pod/perlfunc.pod
+____________________________________________________________________________
+[  3016] By: gsar                                  on 1999/02/24  03:17:05
+        Log: testsuite adjustments
+             From: "M.J.T. Guy" <mjtg@cus.cam.ac.uk>
+             Date: Sat, 20 Feb 1999 15:24:57 +0000
+             Message-Id: <E10EEH3-0003Wf-00@taurus.cus.cam.ac.uk>
+             Subject: Not quite OK: perl5.005_55 on SunOS 4.1.3 / gcc
+     Branch: perl
+           ! t/lib/io_sock.t t/op/lex_assign.t
+____________________________________________________________________________
+[  3015] By: gsar                                  on 1999/02/24  02:54:47
+        Log: avoid modifying readonly values from qw()
+     Branch: perl
+           ! lib/ExtUtils/MM_Unix.pm
+____________________________________________________________________________
+[  3014] By: gsar                                  on 1999/02/24  02:49:04
+        Log: more "correct" utbuf for utime()
+     Branch: perl
+           ! doio.c
+____________________________________________________________________________
+[  3013] By: jhi                                   on 1999/02/22  19:27:44
+        Log: Fix MacPerl version, change PowerUX to PowerMAX.
+             
+             From: Chris Nandor <pudge@pobox.com>
+             To: jhi@iki.fi
+             Cc: perl5-porters@perl.org
+             Subject: Re: perl current availability as documented by perl.pod
+             Date: Sun, 21 Feb 1999 11:06:03 -0500
+             Message-Id: <v04020a07b2f5df60c9e3@[192.168.0.77]>
+             
+             From: Tom Horsley <Tom.Horsley@mail.ccur.com>
+             To: jhi@iki.fi
+             Cc: perl5-porters@perl.org
+             Subject: Re: perl current availability as documented by perl.pod
+             Date: Mon, 22 Feb 1999 13:08:30 GMT
+             Message-Id: <199902221308.NAA19971@cleo.ccur.com>
+     Branch: cfgperl
+           ! pod/perl.pod
+     Branch: maint-5.005/perl
+           ! pod/perl.pod
+____________________________________________________________________________
+[  3012] By: jhi                                   on 1999/02/22  10:26:11
+        Log: Snapshot the cross-compilation/multiarchitecture stuff
+             (currently broken in next)
+     Branch: cfgperl
+           ! Configure config_h.SH pp.c
+____________________________________________________________________________
+[  3011] By: jhi                                   on 1999/02/22  10:24:51
+        Log: From: pmarquess@bfsec.bt.co.uk (Paul Marquess)
+             To: gsar@activestate.com (Gurusamy Sarathy)
+             Cc: perl5-porters@perl.org (Perl5 Porters)
+             Subject: [PATCH 5.005_55] DB_File 1.64 patch
+             Date: Mon, 22 Feb 1999 10:07:00 +0000 (GMT)
+             Message-Id: <9902221007.AA17751@claudius.bfsec.bt.co.uk>
+     Branch: cfgperl
+          ! ext/DB_File/Changes ext/DB_File/DB_File.pm
+           ! ext/DB_File/DB_File.xs ext/DB_File/typemap t/lib/db-recno.t
+____________________________________________________________________________
+[  3009] By: jhi                                   on 1999/02/22  09:14:26
+        Log: Scratch #3008 and introduce $crosscompile and $multiarch
+             also in non-Configure lands.
+     Branch: cfgperl
+          ! Configure config_h.SH hints/next_3.sh hints/next_3_0.sh
+          ! hints/next_4.sh vms/subconfigure.com win32/config.bc
+          ! win32/config.gc win32/config.vc win32/config_H.bc
+           ! win32/config_H.gc win32/config_H.vc
+____________________________________________________________________________
+[  3008] By: jhi                                   on 1999/02/22  08:58:04
+        Log: Add -DMULTIARCH (see change #3006).
+     Branch: cfgperl
+           ! hints/next_3.sh hints/next_3_0.sh hints/next_4.sh
+____________________________________________________________________________
+[  3007] By: jhi                                   on 1999/02/22  08:54:06
+        Log: Undo the references to local{lib,arch} introduced by #3006.
+     Branch: cfgperl
+           ! Configure config_h.SH
+____________________________________________________________________________
+[  3006] By: jhi                                   on 1999/02/22  08:43:50
+        Log: From: hansm@icgned.icgroup.nl
+             To: perlbug@perl.com
+             Subject: Not OK: perl 5.00555 on OPENSTEP-Mach-thread 4_2 (UNINSTALLED)
+             Date: Sun, 21 Feb 1999 22:58:55 +0100
+             Reply-To: hansmu@xs4all.nl
+             Message-Id: <9902212201.AA13386@icgned.icgroup.nl>
+             
+             plus other Configure changes: prepare for cross-compilation/
+             multiarchitecture builds.
+     Branch: cfgperl
+           ! Configure config_h.SH
+____________________________________________________________________________
+[  3005] By: jhi                                   on 1999/02/22  08:35:30
+        Log: Configure/Perl knew how to look for use Mach cthreads
+             but Configure didn't let them to be used ($osname 'next').
+     Branch: cfgperl
+           ! Configure config_h.SH
+     Branch: maint-5.005/perl
+           ! Configure
+____________________________________________________________________________
+[  3004] By: jhi                                   on 1999/02/21  15:46:02
+        Log: Update Acorn AVAILABILITY.
+     Branch: cfgperl
+           ! pod/perl.pod
+     Branch: maint-5.005/perl
+           ! pod/perl.pod
+____________________________________________________________________________
+[  3003] By: jhi                                   on 1999/02/21  14:50:42
+        Log: From: rjk@linguist.dartmouth.edu (Ronald J. Kimball)
+             To: perl5-porters@perl.org (Perl 5 Porters)
+             Subject: PATCH: perlref.pod - symbolic ref example
+             Date: Sat, 20 Feb 1999 17:32:11 -0500 (EST)
+             Message-Id: <199902202232.RAA62306@linguist.dartmouth.edu>
+     Branch: cfgperl
+           ! pod/perlref.pod
+     Branch: maint-5.005/perl
+           ! pod/perlref.pod
+____________________________________________________________________________
+[  3002] By: jhi                                   on 1999/02/21  14:35:22
+        Log: Sync cfgperl with maint-5.005 change #3000.
+     Branch: cfgperl
+           ! pod/perlfunc.pod t/op/pack.t
+____________________________________________________________________________
+[  2999] By: gsar                                  on 1999/02/20  22:48:30
+        Log: From:    John Bley <jbb6@acpub.duke.edu>
+             Date:    Sat, 20 Feb 1999 16:02:34 EST
+             Message-Id: <Pine.SOL.3.91.990220155832.9913A-100000@soc11.acpub.duke.edu>
+             Subject: [PATCH]5.005_55 (CORE) Sparse intializer in regcomp.c
+     Branch: perl
+           ! regcomp.c
+____________________________________________________________________________
+[  2998] By: jhi                                   on 1999/02/20  14:13:06
+        Log: Enhanced the endianness description.
+     Branch: cfgperl
+           ! pod/perlfunc.pod
+____________________________________________________________________________
+[  2996] By: jhi                                   on 1999/02/20  13:55:41
+        Log: Glossary now mostly fixed.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+           ! config_h.SH
+____________________________________________________________________________
+[  2994] By: jhi                                   on 1999/02/20  11:58:33
+        Log: Perldeltify GNU/Hurd.
+     Branch: cfgperl
+           ! pod/perldelta.pod
+____________________________________________________________________________
+[  2993] By: gsar                                  on 1999/02/20  00:59:10
+        Log: fix typo in Perl_sbrk()
+             From: hansm@icgned.icgroup.nl
+             Date: Fri, 19 Feb 1999 23:19:31 +0100
+             Message-Id: <9902192221.AA07213@icgned.icgroup.nl>
+             Subject: Not OK: perl 5.00555 on OPENSTEP-Mach 4_2 (UNINSTALLED)
+     Branch: perl
+           ! malloc.c
+____________________________________________________________________________
+[  2992] By: gsar                                  on 1999/02/20  00:51:08
+        Log: integrate change#2980 from maint-5.005
+     Branch: perl
+          !> utils/h2xs.PL
+____________________________________________________________________________
+[  2991] By: gsar                                  on 1999/02/20  00:34:01
+        Log: From: Hugo van der Sanden <hv@crypt.compulink.co.uk>
+             Date: Thu, 18 Feb 1999 18:51:38 +0000
+             Message-Id: <199902181851.SAA14018@crypt.compulink.co.uk>
+             Subject: [PATCH 5.005_55] test failures with MIME-tools-4.122 and perl 5.005_55 
+     Branch: perl
+           ! pp_hot.c t/op/pat.t
+____________________________________________________________________________
+[  2990] By: gsar                                  on 1999/02/20  00:30:48
+        Log: From: jan.dubois@ibm.net (Jan Dubois)
+             Date: Thu, 18 Feb 1999 19:14:07 +0100
+             Message-ID: <36d15809.40853323@smtp1.ibm.net>
+             Subject: resend [PATCH 5.005_55] Various win32/win32.c cleanup
+     Branch: perl
+           ! win32/win32.c
+____________________________________________________________________________
+[  2989] By: gsar                                  on 1999/02/20  00:27:01
+        Log: do poll() emulation unless HAS_POLL && I_POLL
+     Branch: perl
+           ! ext/IO/poll.h
+____________________________________________________________________________
+[  2988] By: gsar                                  on 1999/02/19  23:52:12
+        Log: tweak RE for NaNQ? recognition
+     Branch: perl
+           ! t/lib/bigfloatpm.t
+____________________________________________________________________________
+[  2987] By: gsar                                  on 1999/02/19  23:29:59
+        Log: mention C<use utf8> and C<use warning> in perldelta
+     Branch: perl
+           ! pod/perldelta.pod
+____________________________________________________________________________
+[  2985] By: jhi                                   on 1999/02/19  20:43:19
+        Log: pack/unpack better in (network-)short-non-16-bits and
+             (network-)long-non-32-bits systems such as Cray C90.
+     Branch: cfgperl
+           ! perl.h pp.c t/op/pack.t
+____________________________________________________________________________
+[  2984] By: jhi                                   on 1999/02/19  20:38:54
+        Log: Regen Configure.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+           ! perl.c
+____________________________________________________________________________
+[  2982] By: jhi                                   on 1999/02/19  19:51:49
+        Log: Configure update: fstatvfs/fstafs/getmntent/hasmntopt were
+             not probed for and        
+             
+             From: "Kurt D. Starsinic" <kstar@chapin.edu>
+             To: Chaim Frenkel <chaimf@pobox.com>,
+             Russ Allbery <rra@stanford.edu>,
+             Jarkko Hietaniemi <jhi@iki.fi>,
+             Gurusamy Sarathy <gsar@activestate.com>,
+             Graham Barr <gbarr@pobox.com>
+             Cc: bdensch@ameritech.net, perlbug@perl.com
+             Subject: [PATCH] Re: Solaris 7 for Intel
+             Message-ID: <19990219124404.A30182@O2.chapin.edu>
+             
+             Glossary is still missing some terms because
+             mkglossary is misbehaving (change #2981 updated
+             Glossary manually)
+     Branch: cfgperl
+          ! Configure Makefile.SH Porting/Glossary Porting/config.sh
+           ! Porting/config_H
+____________________________________________________________________________
+[  2980] By: gbarr                                 on 1999/02/19  16:06:53
+        Log: Make result of h2xs work when user adds C<use strict>
+     Branch: maint-5.005/perl
+           ! utils/h2xs.PL
+____________________________________________________________________________
+[  2979] By: gsar                                  on 1999/02/19  05:24:29
+        Log: doc for change#2978
+     Branch: perl
+           ! pod/perlsub.pod
+____________________________________________________________________________
+[  2978] By: gsar                                  on 1999/02/19  05:08:29
+        Log: bring '*' prototype closer to how it behaves internally
+     Branch: perl
+           + t/lib/fatal.t
+           ! MANIFEST lib/Fatal.pm op.c t/comp/proto.t
+____________________________________________________________________________
+[  2977] By: gsar                                  on 1999/02/19  02:50:31
+        Log: stem leakage of perly.h #defines #ifndef PERL_CORE
+     Branch: perl
+           ! perly.h
+____________________________________________________________________________
+[  2975] By: gsar                                  on 1999/02/18  21:41:57
+        Log: distinguish eval'' from BEGIN|INIT|END CVs (fixes buggy propagation
+             of lexical searches in BEGIN|INIT|END)
+     Branch: perl
+          ! cop.h cv.h op.c perly.c perly.y pp_ctl.c t/op/misc.t
+           ! vms/perly_c.vms
+____________________________________________________________________________
+[  2974] By: gsar                                  on 1999/02/18  21:03:06
+        Log: missing PERL_POLLUTE_MALLOC
+     Branch: perl
+           ! ext/SDBM_File/sdbm/sdbm.h
+____________________________________________________________________________
+[  2973] By: gsar                                  on 1999/02/18  17:10:49
+        Log: From:    Andy Dougherty <doughera@lafayette.edu>
+             Date:    Wed, 17 Feb 1999 17:22:50 EST
+             Message-Id: <Pine.GSU.4.05.9902171720490.17243-100000@newton.phys>
+             Subject: [PATCH 5.005_xx] dotsh.pl triggers new warnings
+     Branch: perl
+           ! lib/dotsh.pl
+____________________________________________________________________________
+[  2972] By: gsar                                  on 1999/02/18  17:04:12
+        Log: s/#defined/#define/
+     Branch: perl
+           ! ext/Data/Dumper/Dumper.xs
+____________________________________________________________________________
+[  2970] By: gsar                                  on 1999/02/18  03:26:43
+        Log: ensure is data malloc()ed by GDBM is free()d (not Perl_mfree()d)
+     Branch: perl
+          ! ext/GDBM_File/GDBM_File.pm ext/GDBM_File/GDBM_File.xs
+           ! ext/GDBM_File/typemap
+____________________________________________________________________________
+[  2969] By: gsar                                  on 1999/02/17  23:30:47
+        Log: correct slurp mode doc
+     Branch: perl
+           ! pod/perlfunc.pod pod/perlop.pod
+____________________________________________________________________________
+[  2968] By: jhi                                   on 1999/02/17  23:15:49
+        Log: Ultrix hints update.
+             
+             From: Spider Boardman <spider@zk3.dec.com>
+             To: perlbug@perl.com
+             Subject: Not OK: perl 5.00555 on RISC-ultrix 4.4 (UNINSTALLED)
+             Date: Tue, 16 Feb 1999 23:04:28 -0500
+             Message-Id: <9902170404.AA11036@abyss.zk3.dec.com>
+     Branch: cfgperl
+           ! hints/ultrix_4.sh
+____________________________________________________________________________
+[  2966] By: jhi                                   on 1999/02/17  23:09:21
+        Log: Change #2965 wiped out some Sarathy's _55 changes.
+             Now unwiped.
+     Branch: cfgperl
+           ! Configure pp.c t/op/pack.t
+____________________________________________________________________________
+[  2965] By: jhi                                   on 1999/02/17  23:00:04
+        Log: Configure tweaks.
+             
+             Fix the Unixware/SCO uname scan:
+             
+             From: Tom Hughes <thh@cyberscience.com>
+             To: perlbug@perl.com
+             Subject: Not OK: perl 5.00555 on i386-svr4 [actually Unixware 2.1] (UNINSTALLED)
+             Date: 17 Feb 1999 15:34:15 +0000    
+             Message-ID: <yekg185nix4.fsf@elva.cyberscience.com>
+             
+             AIX syscalls.exp scan: the syscall might be marked 32, 3264, or 64
+             
+             From: Joe Buehler <jhpb@hekimian.com>
+             To: perl5-porters@perl.org
+             Subject: setsid not detected by perl 5.005_02 configure under AIX 4.3
+             Date: 12 Feb 1999 11:25:21 -0500
+             Message-ID: <yd3lni3613i.fsf@ganymede.hekimian.com>
+             
+             Make the pthreads joinable constant scan to output to fd 4, not 2.
+     Branch: cfgperl
+           ! Configure
+____________________________________________________________________________
+[  2964] By: gsar                                  on 1999/02/17  21:30:07
+        Log: From: Tom Christiansen <tchrist@jhereg.perl.com>
+             Date: Wed, 17 Feb 1999 06:53:13 -0700
+             Message-Id: <199902171353.GAA15682@jhereg.perl.com>
+             Subject: PATCH: lib/Pod/Functions.pm for perl5.005_55
+     Branch: perl
+           ! lib/Pod/Functions.pm
+____________________________________________________________________________
+[  2963] By: gsar                                  on 1999/02/17  21:18:21
+        Log: fix comppad handling for failures in eval 'qr/(?p{...})/'
+             From: Hugo van der Sanden <hv@crypt.compulink.co.uk>
+             Date: Wed, 17 Feb 1999 10:06:01 +0000
+             Message-Id: <199902171006.KAA10204@crypt.compulink.co.uk>
+             Subject: Re: [5.005_53] panic: pad_free curpad 
+     Branch: perl
+           ! regcomp.c regexec.c t/op/misc.t
+____________________________________________________________________________
+[  2962] By: gsar                                  on 1999/02/16  21:26:28
+        Log: NaNQ? tweak
+     Branch: perl
+           ! t/lib/bigfloatpm.t
+____________________________________________________________________________
+[  2961] By: jhi                                   on 1999/02/16  19:26:38
+        Log: Integrate from mainperl.
+     Branch: cfgperl
+          !> (integrate 37 files)
+____________________________________________________________________________
+[  2960] By: gsar                                  on 1999/02/16  18:04:29
+        Log: undo change#2465 (qw[] is a real list now)
+     Branch: perl
+           ! pod/perlop.pod
+____________________________________________________________________________
+[  2959] By: gsar                                  on 1999/02/16  07:09:33
+        Log: this was 5.005_55
+     Branch: perl
+           ! Changes
+
+----------------
+Version 5.005_55
+----------------
+
+____________________________________________________________________________
+[  2958] By: gsar                                  on 1999/02/16  06:18:27
+        Log: integrate change#2852 from maint-5.005; integrate cfgperl contents;
+             elide dups and non-dependents from Changes
+     Branch: perl
+           ! Changes pod/perlhist.pod
+         !> Configure INSTALL README.threads doio.c ext/IPC/SysV/SysV.xs
+         !> hints/ultrix_4.sh pod/perl.pod pod/perlfunc.pod
+          !> pod/perlport.pod pp.c t/op/pack.t
+____________________________________________________________________________
+[  2957] By: gsar                                  on 1999/02/16  04:09:47
+        Log: propagate PERL_VERSION everywhere, add to pod
+     Branch: perl
+          ! Configure configpm configure.com ext/B/B/C.pm ext/B/byteperl.c
+          ! ext/DB_File/DB_File.xs ext/Data/Dumper/Dumper.xs ext/IO/IO.xs
+          ! hints/freebsd.sh hints/os2.sh installman installperl myconfig
+          ! os2/Makefile.SHs os2/os2.c patchlevel.h perl.c perl.h
+          ! plan9/genconfig.pl plan9/myconfig.plan9 plan9/versnum
+          ! pod/perldebug.pod pod/perldelta.pod vms/genconfig.pl
+          ! vms/myconfig.com vms/subconfigure.com win32/config.bc
+          ! win32/config.gc win32/config.vc win32/config_sh.PL
+           ! win32/win32.c x2p/a2py.c
+____________________________________________________________________________
+[  2955] By: jhi                                   on 1999/02/15  16:15:03
+        Log: The pack tests now better in C90 (after the packnative patches).
+     Branch: cfgperl
+           ! t/op/pack.t
+____________________________________________________________________________
+[  2954] By: gsar                                  on 1999/02/15  14:11:50
+        Log: tweak Configure to follow new PERL_VERSION etc.
+     Branch: perl
+           ! Configure patchlevel.h pod/perlhist.pod
+____________________________________________________________________________
+[  2953] By: jhi                                   on 1999/02/15  14:02:21
+        Log: Integrate from mainperl.
+     Branch: cfgperl
+          !> MANIFEST Porting/makerel
+____________________________________________________________________________
+[  2952] By: jhi                                   on 1999/02/15  13:50:07
+        Log: Enhance the packnative patch: use the packnative code
+             only if required.  Also added hefty testing (hopefully
+             I didn't assume too much...).  Tested on alpha, ix86, sparc.
+     Branch: cfgperl
+           ! pod/perlfunc.pod pp.c t/op/pack.t
+____________________________________________________________________________
+[  2951] By: jhi                                   on 1999/02/15  13:46:56
+        Log: AVAILABILITY from 5.005_03-tobe, will of course
+             require updating when 5.006 comes out.
+     Branch: cfgperl
+           ! pod/perl.pod
+____________________________________________________________________________
+[  2949] By: gsar                                  on 1999/02/15  13:28:51
+        Log: will this be it for 5.005_55?
+     Branch: perl
+           ! MANIFEST Porting/makerel
+____________________________________________________________________________
+[  2948] By: jhi                                   on 1999/02/15  13:23:52
+        Log: Integrate from mainperl.
+     Branch: cfgperl
+         !> Changes Makefile.SH ext/B/B/C.pm patchlevel.h perl.h
+         !> pod/perldiag.pod pod/perlembed.pod pod/perlfaq3.pod
+         !> pod/perlfaq4.pod pod/perlfaq9.pod pod/perlmodinstall.pod
+         !> pod/perlmodlib.pod pod/perltoc.pod t/io/argv.t
+         !> t/lib/bigfloatpm.t t/lib/h2ph.t win32/Makefile win32/config.bc
+         !> win32/config.gc win32/config.vc win32/config_H.bc
+          !> win32/config_H.gc win32/config_H.vc win32/makefile.mk
+____________________________________________________________________________
+[  2947] By: jhi                                   on 1999/02/15  13:20:41
+        Log: perlport.pod 1.39 from Chris.
+     Branch: cfgperl
+           ! pod/perlport.pod
+____________________________________________________________________________
+[  2946] By: jhi                                   on 1999/02/15  13:09:58
+        Log: Import Ultrix update, change #2864, 
+             
+             From: Spider Boardman <spider@zk3.dec.com>
+             To: perlbug@perl.com
+             Subject: Not OK: perl 5.00503 +MAINT_TRIAL_5 on RISC-ultrix 4.4 (UNINSTALLED)
+             Date: Wed, 10 Feb 1999 23:33:31 -0500
+             Message-Id: <9902110433.AA12816@abyss.zk3.dec.com>
+     Branch: cfgperl
+           ! doio.c ext/IPC/SysV/SysV.xs hints/ultrix_4.sh
+____________________________________________________________________________
+[  2945] By: jhi                                   on 1999/02/15  13:04:50
+        Log: OpenBSD sparc SHMLBA.
+     Branch: cfgperl
+           ! ext/IPC/SysV/SysV.xs
+____________________________________________________________________________
+[  2944] By: gsar                                  on 1999/02/15  12:09:52
+        Log: update win32/config* stuff, Changes
+     Branch: perl
+          ! Changes win32/Makefile win32/config.bc win32/config.gc
+          ! win32/config.vc win32/config_H.bc win32/config_H.gc
+           ! win32/config_H.vc win32/makefile.mk
+____________________________________________________________________________
+[  2943] By: gsar                                  on 1999/02/15  11:54:08
+        Log: #include patchlevel.h by default, provide
+             PERL_{REVISION,VERSION,SUBVERSION}
+     Branch: perl
+           ! patchlevel.h perl.h
+____________________________________________________________________________
+[  2942] By: gsar                                  on 1999/02/15  10:26:59
+        Log: allow /0|NaN/ on some bigfloatpm.t tests for portability; other
+             misc fixes
+     Branch: perl
+           ! Makefile.SH t/io/argv.t t/lib/bigfloatpm.t t/lib/h2ph.t
+____________________________________________________________________________
+[  2941] By: gsar                                  on 1999/02/15  10:24:37
+        Log: broken URLs fixed (from Michael G Schwern <schwern@pobox.com>)
+             Message-ID: <19990207002851.B9185@toldyouso.com>
+             Message-ID: <19990207212152.A9765@toldyouso.com>
+             Message-ID: <19990207212041.A9622@toldyouso.com>
+             Message-ID: <19990207213127.A10244@toldyouso.com>
+             Message-ID: <19990207212559.A9950@toldyouso.com>
+             Message-ID: <19990207212842.A9994@toldyouso.com>
+             Message-ID: <19990207212500.A9860@toldyouso.com>
+             Message-ID: <19990207213013.A10105@toldyouso.com>
+     Branch: perl
+          ! pod/perldiag.pod pod/perlembed.pod pod/perlfaq3.pod
+          ! pod/perlfaq4.pod pod/perlfaq9.pod pod/perlmodinstall.pod
+           ! pod/perlmodlib.pod pod/perltoc.pod
+____________________________________________________________________________
+[  2940] By: gsar                                  on 1999/02/15  10:07:08
+        Log: enable dynaloading in C.pm-compiled programs (non-conflicting part
+             of suggested patch)
+             From: "Vishal Bhatia" <vishalb@my-dejanews.com>
+             Date: Mon, 08 Feb 1999 01:14:41 -0000
+             Message-ID: <DHIDFFOPMEFDBAAA@my-dejanews.com>
+             Subject: [PATCH 5.005_54] some pending C.pm stuff 
+     Branch: perl
+           ! ext/B/B/C.pm
+____________________________________________________________________________
+[  2939] By: jhi                                   on 1999/02/15  08:40:18
+        Log: Integrate from mainperl.
+     Branch: cfgperl
+          +> t/lib/bigfloat.t t/lib/bigfloatpm.t
+           - lib/File/PathConvert.pm
+          !> (integrate 81 files)
+____________________________________________________________________________
+[  2938] By: gsar                                  on 1999/02/15  06:56:39
+        Log: change#2839 was bogus, redo
+     Branch: perl
+          !> t/lib/h2ph.pht
+____________________________________________________________________________
+[  2937] By: gsar                                  on 1999/02/15  06:38:15
+        Log: support Win32::GetFullPathName() and Win32::SetLastError()
+             From: jan.dubois@ibm.net (Jan Dubois)
+             Date: Tue, 09 Feb 1999 22:27:31 +0100
+             Message-ID: <36c1a2ed.8007554@smtp1.ibm.net>
+             Subject: [PATCH _54] Win32::GetFullPathName (Re: File::Spec::Win32 and UNCs)
+     Branch: perl
+           ! win32/win32.c
+____________________________________________________________________________
+[  2936] By: gsar                                  on 1999/02/15  06:26:39
+        Log: support native integers, pack("L_",...) etc. (via private mail)
+             From: Jarkko Hietaniemi <jhi@iki.fi>
+             Date: Wed, 10 Feb 1999 00:04:52 +0200 (EET)
+             Message-Id: <199902092204.AAA29065@alpha.hut.fi>
+             Subject: the "packnative" patch
+     Branch: perl
+          ! pod/perldelta.pod pod/perldiag.pod pod/perlfunc.pod pp.c
+           ! t/lib/ipc_sysv.t t/op/pack.t
+____________________________________________________________________________
+[  2935] By: gsar                                  on 1999/02/15  06:04:02
+        Log: From: Michael G Schwern <schwern@pobox.com>
+             Date: Tue, 9 Feb 1999 04:13:12 -0500
+             Message-ID: <19990209041312.A15788@toldyouso.com>
+             Subject: [PATCH]5.005_03-MAINT_TRIAL_5 utils/h2xs fixing -A & more
+     Branch: perl
+           ! utils/h2xs.PL
+____________________________________________________________________________
+[  2934] By: gsar                                  on 1999/02/15  05:30:13
+        Log: fix bugs in the handling of negative numbers, among other things
+             From: Steven Knight <knight@theopera.baldmt.citilink.com>
+             Date: Mon, 8 Feb 1999 01:16:24 -0600
+             Message-Id: <199902080716.BAA24652@theopera.baldmt.citilink.com>
+             Subject: Math::BigFloat and Math::BigInt
+     Branch: perl
+           + t/lib/bigfloat.t t/lib/bigfloatpm.t
+          ! lib/Math/BigFloat.pm lib/Math/BigInt.pm lib/bigfloat.pl
+           ! t/lib/bigintpm.t
+____________________________________________________________________________
+[  2933] By: gsar                                  on 1999/02/15  04:57:52
+        Log: From: "J. van Krieken" <John.van.Krieken@ATComputing.nl>
+             Date: Thu, 4 Feb 1999 17:25:25 +0100 (MET)
+             Message-Id: <199902041625.RAA14489@atcmpg.ATComputing.nl>
+             Subject: s2p incorrectly handles hold space commands
+     Branch: perl
+           ! x2p/s2p.PL
+____________________________________________________________________________
+[  2932] By: gsar                                  on 1999/02/15  04:45:55
+        Log: clarify what a "line" is
+     Branch: perl
+           ! pod/perlfunc.pod pod/perlvar.pod
+____________________________________________________________________________
+[  2931] By: gsar                                  on 1999/02/15  04:23:29
+        Log: backout change#2811 and add newer version based on File::Spec
+             From: Barrie Slaymaker <rbs@telerama.com>
+             Date: Thu, 11 Feb 1999 16:29:24 -0500
+             Message-ID: <36C34BB4.A62090E0@telerama.com>
+             Subject: [PATCH]5.005_54 (pod2html) Relative URLs using new File::Spec
+     Branch: perl
+           - lib/File/PathConvert.pm
+           ! MANIFEST installhtml lib/Pod/Html.pm
+____________________________________________________________________________
+[  2930] By: gsar                                  on 1999/02/15  04:16:25
+        Log: From: Barrie Slaymaker <rbs@telerama.com>
+             Date: Thu, 11 Feb 1999 19:39:48 -0500
+             Message-ID: <36C37854.707D139@telerama.com>
+             Subject: [PATCH] 5.005_54 #2 Merging File::PathConvert in to File::Spec
+     Branch: perl
+           ! lib/File/Spec/Unix.pm lib/File/Spec/Win32.pm
+____________________________________________________________________________
+[  2929] By: gsar                                  on 1999/02/15  04:06:50
+        Log: patches suggested by John Bley <jbb6@acpub.duke.edu> (with minor edits)
+             Date: Wed, 3 Feb 1999 05:24:55 -0500 (EST)
+             Message-ID: <Pine.SOL.3.91.990203051924.302A-100000@soc11.acpub.duke.edu>
+             Subject: [PATCH]5.005_54 (DOC) fix many typos
+             --
+             Date: Wed, 3 Feb 1999 08:53:53 -0500 (EST)
+             Message-ID: <Pine.SOL.3.91.990203085157.895A-100000@soc11.acpub.duke.edu>
+             Subject: [PATCH]5.005_54 (DOC) typos
+     Branch: perl
+          ! pod/perl5004delta.pod pod/perl5005delta.pod pod/perlcall.pod
+          ! pod/perldebug.pod pod/perlfaq1.pod pod/perlfaq2.pod
+          ! pod/perlfaq3.pod pod/perlfaq4.pod pod/perlfaq5.pod
+          ! pod/perlfaq6.pod pod/perlfaq7.pod pod/perlfaq8.pod
+          ! pod/perlfaq9.pod pod/perlfunc.pod pod/perlguts.pod
+          ! pod/perllol.pod pod/perlmod.pod pod/perlref.pod
+          ! pod/perlrun.pod pod/perlsub.pod pod/perltoc.pod
+           ! pod/perlvar.pod pod/perlxs.pod
+____________________________________________________________________________
+[  2928] By: gsar                                  on 1999/02/15  03:39:53
+        Log: allow the Carp routines to pass through exception objects
+     Branch: perl
+           ! lib/Carp.pm
+____________________________________________________________________________
+[  2927] By: gsar                                  on 1999/02/15  03:22:57
+        Log: mention Proc::Daemon (suggested by Michael G Schwern <schwern@pobox.com>)
+     Branch: perl
+           ! pod/perlfaq8.pod
+____________________________________________________________________________
+[  2926] By: gsar                                  on 1999/02/15  03:19:39
+        Log: integrate h2ph.PL fixes from change#2809 (change#2838 was supposed to
+             have done that, but didn't)
+     Branch: perl
+          !> utils/h2ph.PL
+____________________________________________________________________________
+[  2925] By: gsar                                  on 1999/02/15  03:17:01
+        Log: integrate cfgperl changes into mainline
+     Branch: perl
+           ! Changes
+         !> Configure Porting/Glossary Porting/config.sh Porting/config_H
+         !> config_h.SH hints/openbsd.sh hints/ultrix_4.sh
+         !> pod/perlport.pod t/lib/h2ph.pht utils/h2ph.PL
+          !> vms/subconfigure.com
+____________________________________________________________________________
+[  2924] By: gsar                                  on 1999/02/15  03:07:08
+        Log: add const qualifier to most char* prototypes, handle ripple effect
+     Branch: perl
+          ! gv.c hv.c hv.h mg.c op.c perl.c pod/perlguts.pod proto.h sv.c
+           ! universal.c util.c
+____________________________________________________________________________
+[  2923] By: gsar                                  on 1999/02/15  01:04:30
+        Log: From: Hugo van der Sanden <hv@crypt.compulink.co.uk>
+             Date: Thu, 04 Feb 1999 02:37:31 +0000
+             Message-Id: <199902040237.CAA03255@crypt.compulink.co.uk>
+             Subject: [PATCH 5.005_54] Re: .. misinterpreted as flipflop 
+     Branch: perl
+           ! pp_ctl.c t/op/range.t
+____________________________________________________________________________
+[  2922] By: gsar                                  on 1999/02/15  00:24:34
+        Log: From: Hugo van der Sanden <hv@crypt.compulink.co.uk>
+             Date: Sun, 31 Jan 1999 01:50:06 +0000
+             Message-Id: <199901310150.BAA16299@crypt.compulink.co.uk>
+             Subject: [PATCH 5.005_03t4] regexp flags bug
+     Branch: perl
+           ! regcomp.c t/op/re_tests
+____________________________________________________________________________
+[  2921] By: gsar                                  on 1999/02/15  00:13:02
+        Log: use New() et al., rather than safemalloc() et al.
+             From: jan.dubois@ibm.net (Jan Dubois)
+             Date: Fri, 29 Jan 1999 23:27:22 +0100
+             Message-ID: <36bd33f2.51029616@smtp1.ibm.net>
+             Subject: [PATCH _03-MT5] POSIX.xs memory API
+     Branch: perl
+           ! ext/POSIX/POSIX.xs
+____________________________________________________________________________
+[  2920] By: gsar                                  on 1999/02/15  00:05:33
+        Log: tweak READ() docs to mention $buffer must be altered by reference
+     Branch: perl
+           ! pod/perltie.pod
+____________________________________________________________________________
+[  2919] By: gsar                                  on 1999/02/14  23:50:39
+        Log: applied suggested patch, with several language/readability tweaks
+             From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Fri, 29 Jan 1999 00:25:02 -0500
+             Message-ID: <19990129002502.C2898@monk.mps.ohio-state.edu>
+             Subject: Re: [PATCH 5.005_*] Better parsing docs
+     Branch: perl
+           ! pod/perlop.pod
+____________________________________________________________________________
+[  2918] By: gsar                                  on 1999/02/14  23:20:42
+        Log: several bug fixes; now croak()s when date exceeds integer limits (instead
+             of silently returning bogus values)
+             From: Peter Chines <pchines@nhgri.nih.gov>
+             Date: Wed, 27 Jan 1999 16:11:31 -0500
+             Message-Id: <199901272117.QAA21458@kronos.nhgri.nih.gov>
+             Subject: Time::Local
+     Branch: perl
+           ! lib/Time/Local.pm pod/perldelta.pod
+____________________________________________________________________________
+[  2917] By: gsar                                  on 1999/02/14  11:21:43
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Thu, 28 Jan 1999 10:02:20 -0500
+             Message-ID: <19990128100220.A1321@monk.mps.ohio-state.edu>
+             Subject: Re: [PATCH 5.005_53] Better perldoc
+     Branch: perl
+           ! utils/perldoc.PL
+____________________________________________________________________________
+[  2916] By: gsar                                  on 1999/02/14  10:59:38
+        Log: back out change#2751, apply updated version 
+             From: jan.dubois@ibm.net (Jan Dubois)
+             Date: Sat, 06 Feb 1999 01:06:29 +0100
+             Message-ID: <36bc844c.18763049@smtp1.ibm.net>
+             Subject: [PATCH] Cleanup of File::Spec module
+     Branch: perl
+          ! lib/File/Spec.pm lib/File/Spec/Mac.pm lib/File/Spec/OS2.pm
+          ! lib/File/Spec/Unix.pm lib/File/Spec/VMS.pm
+           ! lib/File/Spec/Win32.pm
+____________________________________________________________________________
+[  2915] By: gsar                                  on 1999/02/14  10:48:01
+        Log: tweak select() test
+     Branch: perl
+           ! pod/perlipc.pod t/op/fh.t
+____________________________________________________________________________
+[  2914] By: gsar                                  on 1999/02/14  10:25:55
+        Log: allow C<select('foo')> to autovivify *foo (SelectSaver expects that)
+     Branch: perl
+           ! op.c pod/perldiag.pod pp_sys.c t/op/misc.t
+____________________________________________________________________________
+[  2913] By: gsar                                  on 1999/02/14  10:03:51
+        Log: From: Kenneth Albanowski <kjahds@kjahds.com>
+             Date: Sat, 23 Jan 1999 21:52:15 -0500 (EST)
+             Message-ID: <Pine.LNX.3.93.990123212857.446B-100000@kjahds.kjahds.com>
+             Subject: Re: SvOPV() or SvPV_nolen() or ...
+     Branch: perl
+           ! pod/perlguts.pod
+____________________________________________________________________________
+[  2912] By: gsar                                  on 1999/02/14  09:57:29
+        Log: provide SvPV_nolen(sv) to avoid use of PL_na
+             From: jan.dubois@ibm.net (Jan Dubois)
+             Date: Sun, 24 Jan 1999 02:45:32 +0100
+             Message-ID: <36bb7ada.68485547@smtp1.ibm.net>
+             Subject: [PATCH 5.005_54]  _54 version of SvPV_nolen patch
+     Branch: perl
+          ! embed.h global.sym objXSUB.h pod/perlguts.pod proto.h sv.c
+           ! sv.h
+____________________________________________________________________________
+[  2911] By: gsar                                  on 1999/02/14  06:51:05
+        Log: elide stray effluvium
+     Branch: perl
+           ! pod/perldelta.pod
+____________________________________________________________________________
+[  2910] By: gsar                                  on 1999/02/14  05:51:56
+        Log: slurping an empty file should return '' rather than undef, with
+             commensurate effects on ARGV processing
+     Branch: perl
+          ! pod/perldelta.pod pod/perlfunc.pod pod/perlop.pod
+           ! pod/perlvar.pod pp_hot.c sv.h t/io/argv.t
+____________________________________________________________________________
+[  2909] By: gsar                                  on 1999/02/14  00:02:11
+        Log: perly_c.diff typo
+     Branch: perl
+           ! perly.c perly_c.diff vms/perly_c.vms
+____________________________________________________________________________
+[  2908] By: gsar                                  on 1999/02/13  18:20:13
+        Log: From: jan.dubois@ibm.net (Jan Dubois)
+             Date: Sat, 13 Feb 1999 13:25:53 +0100
+             Message-Id: <36c9629c.13334874@smtp1.ibm.net>
+             Subject: [PATCH 5.005_03-MT5] "goto must have label" message for C<goto ''>
+     Branch: perl
+           ! pod/perlfunc.pod pp_ctl.c t/lib/io_unix.t
+____________________________________________________________________________
+[  2907] By: jhi                                   on 1999/02/13  15:07:26
+        Log: Integrate from mainperl.
+     Branch: cfgperl
+          +> emacs/e2ctags.pl pod/perltodo.pod t/op/lop.t
+          !> (integrate 150 files)
+____________________________________________________________________________
+[  2903] By: gsar                                  on 1999/02/12  13:25:59
+        Log: From: jan.dubois@ibm.net (Jan Dubois)
+             Date: Sun, 24 Jan 1999 01:12:00 +0100
+             Message-ID: <36b66479.62756298@smtp1.ibm.net>
+             Subject: [PATCH 5.005_54] remove OVERLOAD conditionals
+     Branch: perl
+          ! XSUB.h dump.c gv.c hv.h mg.c perl.h perlvars.h pp.c pp.h
+           ! proto.h sv.c sv.h
+____________________________________________________________________________
+[  2902] By: gsar                                  on 1999/02/12  12:55:11
+        Log: script to generate ctags from etags
+             From: Colin Kuskie <ckuskie@cadence.com>
+             Date: Wed, 20 Jan 1999 16:29:35 -0800 (PST)
+             Message-ID: <Pine.GSO.3.96.990120160519.5755Q-100000@pdxue150.cadence.com>
+             Subject: [PATCH 5.005_54] adding ctags to the source, FAQ, make
+     Branch: perl
+           + emacs/e2ctags.pl
+           ! Makefile.SH pod/perlfaq3.pod
+____________________________________________________________________________
+[  2901] By: gsar                                  on 1999/02/12  12:40:17
+        Log: allow boolean assign ops to be lvalues
+             From: Stephen McCamant <smccam@uclink4.berkeley.edu>
+             Date: Mon, 11 Jan 1999 16:52:18 -0600 (CST)
+             Message-ID: <13978.32609.495338.544643@alias-2.pr.mcs.net>
+             --
+             From: Hugo van der Sanden <hv@crypt.compulink.co.uk>
+             Date: Mon, 18 Jan 1999 10:04:00 +0000
+             Message-Id: <199901181004.KAA17471@crypt.compulink.co.uk>
+             Subject: Re: [inconsistency 5.005_54] ||= not an lvalue 
+     Branch: perl
+           + t/op/lop.t
+           ! MANIFEST op.c
+____________________________________________________________________________
+[  2899] By: jhi                                   on 1999/02/12  12:03:48
+        Log: Configure update: OpenBSD thread-awareness, SCO ODT/OSR osvers.
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+           ! config_h.SH hints/openbsd.sh
+____________________________________________________________________________
+[  2898] By: gsar                                  on 1999/02/12  11:49:25
+        Log: support win32_putenv()
+     Branch: perl
+          ! mg.c util.c win32/GenCAPI.pl win32/makedef.pl win32/perlhost.h
+           ! win32/win32.c win32/win32iop.h
+____________________________________________________________________________
+[  2894] By: gsar                                  on 1999/02/12  11:09:27
+        Log: add missing hunk in change#2657
+     Branch: perl
+           ! ext/B/B/CC.pm
+____________________________________________________________________________
+[  2893] By: gsar                                  on 1999/02/12  11:00:13
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Tue, 19 Jan 1999 20:13:15 -0500
+             Message-ID: <19990119201315.A21167@monk.mps.ohio-state.edu>
+             Subject: [PATCH 5.005_53] Remove extraneous sh in test suites
+     Branch: perl
+          ! t/op/fh.t t/op/misc.t t/op/runlevel.t t/pragma/strict.t
+           ! t/pragma/subs.t t/pragma/warning.t
+____________________________________________________________________________
+[  2892] By: gsar                                  on 1999/02/12  10:44:38
+        Log: update change#2670 to later version
+             From: Hugo van der Sanden <hv@crypt.compulink.co.uk>
+             Date: Sun, 31 Jan 1999 16:16:14 +0000
+             Message-Id: <199901311616.QAA17673@crypt.compulink.co.uk>
+             Subject: Re: [PATCH 5.005_54] Evalled substitution parsing 
+     Branch: perl
+           ! t/op/subst.t toke.c
+____________________________________________________________________________
+[  2891] By: gsar                                  on 1999/02/12  10:31:17
+        Log: make testsuite somewhat location independent
+     Branch: perl
+           ! (edit 117 files)
+____________________________________________________________________________
+[  2890] By: gsar                                  on 1999/02/12  10:00:30
+        Log: add $AutoLoader::VERSION
+     Branch: perl
+           ! lib/AutoLoader.pm
+____________________________________________________________________________
+[  2889] By: gsar                                  on 1999/02/12  09:55:48
+        Log: tweak PERL_STRICT_CR notes
+     Branch: perl
+           ! pod/perl5005delta.pod
+____________________________________________________________________________
+[  2888] By: gsar                                  on 1999/02/12  09:41:45
+        Log: add note about test-notty target
+     Branch: perl
+           ! README.win32
+____________________________________________________________________________
+[  2887] By: gsar                                  on 1999/02/12  09:37:37
+        Log: add perltodo.pod
+     Branch: perl
+           + pod/perltodo.pod
+          ! MANIFEST Todo pod/Makefile pod/perl.pod pod/roffitall
+           ! win32/pod.mak
+____________________________________________________________________________
+[  2886] By: jhi                                   on 1999/02/12  08:52:14
+        Log: Integrate from mainperl.
+     Branch: cfgperl
+          +> t/op/fh.t
+          !> (integrate 30 files)
+____________________________________________________________________________
+[  2885] By: gsar                                  on 1999/02/12  08:42:10
+        Log: note how to find REG_INFTY limit
+     Branch: perl
+           ! pod/perlre.pod
+____________________________________________________________________________
+[  2884] By: jhi                                   on 1999/02/12  08:36:14
+        Log: OpenBSD pthreads awareness, thanks to
+             David Leonard <david.leonard@csee.uq.edu.au>
+     Branch: maint-5.005/perl
+           ! Configure hints/openbsd.sh
+____________________________________________________________________________
+[  2882] By: gsar                                  on 1999/02/12  08:05:20
+        Log: IO is maintained by p5p (per Graham Barr's wishes)
+     Branch: perl
+          ! MAINTAIN ext/IO/ChangeLog ext/IO/README ext/IO/lib/IO/Dir.pm
+          ! ext/IO/lib/IO/Pipe.pm ext/IO/lib/IO/Poll.pm
+          ! ext/IO/lib/IO/Select.pm ext/IO/lib/IO/Socket.pm
+           ! ext/IO/lib/IO/Socket/INET.pm ext/IO/lib/IO/Socket/UNIX.pm
+____________________________________________________________________________
+[  2881] By: gsar                                  on 1999/02/12  07:57:13
+        Log: fh.t typo
+     Branch: perl
+           ! t/op/fh.t
+____________________________________________________________________________
+[  2880] By: gsar                                  on 1999/02/12  07:38:16
+        Log: PERL5OPT=-T enables taint mode (suggested by Jason Riedy <ejr@cise.ufl.edu>)
+     Branch: perl
+           ! perl.c pod/perlrun.pod
+____________________________________________________________________________
+[  2879] By: gsar                                  on 1999/02/12  05:39:29
+        Log: fix ops that are not filehandle constructors to not create GV if it
+             doesn't already exist (avoids leaks); extend semantics of defined()
+             so that defined(*{$foo}) works (experimental)
+     Branch: perl
+           + t/op/fh.t
+          ! MANIFEST embed.h embed.pl objXSUB.h op.c pod/perldiag.pod pp.c
+           ! pp_hot.c pp_sys.c proto.h t/op/gv.t t/op/misc.t
+____________________________________________________________________________
+[  2877] By: jhi                                   on 1999/02/11  20:44:00
+        Log: From: Chris Nandor <pudge@pobox.com>
+             To: perl5-porters@perl.org
+             Subject: [PATCH] perlport.pod 1.39
+             Date: Thu, 11 Feb 1999 12:28:35 -0500
+             Message-Id: <v04020a2db2e8c3177123@[192.168.0.77]>
+     Branch: cfgperl
+           ! pod/perlport.pod
+____________________________________________________________________________
+[  2870] By: gsar                                  on 1999/02/11  11:17:08
+        Log: remove double typeglob deref (suggested by RonaldWS <ronaldws@aol.com>)
+     Branch: perl
+           ! ext/IO/lib/IO/Pipe.pm
+____________________________________________________________________________
+[  2869] By: gsar                                  on 1999/02/11  11:00:56
+        Log: update win32/pod.mak
+     Branch: perl
+           ! win32/pod.mak
+____________________________________________________________________________
+[  2868] By: gsar                                  on 1999/02/11  10:42:44
+        Log: From: Benjamin Low <b.d.low@unsw.edu.au>
+             Date: Fri, 08 Jan 1999 14:36:53 +1100
+             Message-ID: <36957D55.1D65A0B2@unsw.edu.au>
+             Subject: Re: [Fwd: IO::Socket::connect and blocking]
+     Branch: perl
+           ! ext/IO/lib/IO/Socket.pm
+____________________________________________________________________________
+[  2867] By: gsar                                  on 1999/02/11  09:43:03
+        Log: av_extend() doc tweak from Jan Dubois
+     Branch: perl
+           ! pod/perlguts.pod
+____________________________________________________________________________
+[  2866] By: gsar                                  on 1999/02/11  09:27:17
+        Log: display full pathname of unreadable files
+     Branch: perl
+           ! utils/perldoc.PL
+____________________________________________________________________________
+[  2865] By: gsar                                  on 1999/02/11  09:02:31
+        Log: missing patch in change#2522
+     Branch: perl
+           ! lib/Pod/Text.pm
+____________________________________________________________________________
+[  2864] By: jhi                                   on 1999/02/11  08:45:00
+        Log: From: Spider Boardman <spider@zk3.dec.com>
+             To: perlbug@perl.com
+             Subject: Not OK: perl 5.00503 +MAINT_TRIAL_5 on RISC-ultrix 4.4 (UNINSTALLED)
+             Date: Wed, 10 Feb 1999 23:33:31 -0500
+             Message-Id: <9902110433.AA12816@abyss.zk3.dec.com>
+     Branch: maint-5.005/perl
+           ! doio.c ext/IPC/SysV/SysV.xs hints/ultrix_4.sh
+____________________________________________________________________________
+[  2862] By: gsar                                  on 1999/02/11  08:14:34
+        Log: integrate changes#2738,2740 from maint-5.005
+     Branch: perl
+          !> lib/ExtUtils/MakeMaker.pm
+____________________________________________________________________________
+[  2861] By: jhi                                   on 1999/02/11  08:04:25
+        Log: Integrate from mainperl.
+     Branch: cfgperl
+         !> Changes perl.h pod/perl5005delta.pod pp_ctl.c t/op/local.t
+          !> t/op/range.t win32/config.gc
+____________________________________________________________________________
+[  2860] By: gsar                                  on 1999/02/11  07:30:08
+        Log: binmode() support for cygwin32 (suggested by Steven Morlock
+             <newspost@morlock.net>)
+     Branch: perl
+           ! perl.h
+____________________________________________________________________________
+[  2859] By: gsar                                  on 1999/02/11  07:14:21
+        Log: update Changes
+     Branch: perl
+           ! Changes
+          !> pod/perl5005delta.pod
+____________________________________________________________________________
+[  2856] By: gsar                                  on 1999/02/11  07:07:39
+        Log: integrate perldelta changes from maint-5.005
+     Branch: perl
+          !> pod/perl5005delta.pod
+____________________________________________________________________________
+[  2855] By: gsar                                  on 1999/02/11  06:31:50
+        Log: applied suggested patch; added tests
+             From: Adam Krolnik <adamk@gypsy.cyrix.com>
+             Date: Sat, 12 Dec 98 15:30:18 -0600
+             Message-Id: <9812122130.AA03717@gypsy.eng.cyrix.com>
+             Subject: Range operation doesn't handle IV_MAX
+     Branch: perl
+           ! pp_ctl.c t/op/range.t
+____________________________________________________________________________
+[  2854] By: gsar                                  on 1999/02/11  05:00:55
+        Log: compatibility fix: magic non-propagation in foreach implicit localization
+     Branch: perl
+           ! pp_ctl.c t/op/local.t win32/config.gc
+____________________________________________________________________________
+[  2852] By: gsar                                  on 1999/02/10  23:17:49
+        Log: fair warning about -Dusethreads
+     Branch: maint-5.005/perl
+           ! Configure INSTALL README.threads
+____________________________________________________________________________
+[  2847] By: jhi                                   on 1999/02/09  19:13:28
+        Log: Integrate from mainperl.
+     Branch: cfgperl
+         !> pod/perldelta.pod pod/perlfunc.pod pod/perlobj.pod
+          !> pod/perlop.pod pp.c t/op/method.t t/op/pack.t
+____________________________________________________________________________
+[  2846] By: gsar                                  on 1999/02/09  13:53:28
+        Log: a modified version of suggested patch for pack template 'Z'; added docs
+             From: "Valeriy E. Ushakov" <uwe@ptc.spbu.ru>
+             Date: Mon, 16 Jun 1997 03:00:31 +0400 (MSD)
+             Message-ID: <%lOHpzIuGV@snark.ptc.spbu.ru>
+             Subject: lack of pack/unpack letter with useful symmetry for C null delimited strings
+     Branch: perl
+           ! pod/perldelta.pod pod/perlfunc.pod pp.c t/op/pack.t
+____________________________________________________________________________
+[  2845] By: gsar                                  on 1999/02/09  00:03:26
+        Log: clarify docs for change#2835
+     Branch: perl
+           ! pod/perldelta.pod pod/perlop.pod
+____________________________________________________________________________
+[  2844] By: gsar                                  on 1999/02/08  23:40:57
+        Log: addendum to change#2823
+             From: Stephen McCamant <smccam@uclink4.berkeley.edu>
+             Date: Sun, 13 Dec 1998 16:06:04 -0800 (PST)
+             Message-ID: <13940.21805.470054.299@fre-76-120.reshall.berkeley.edu>
+             Subject: [PATCH] Docs and tests for method-call syntax
+     Branch: perl
+           ! pod/perlobj.pod t/op/method.t
+____________________________________________________________________________
+[  2843] By: jhi                                   on 1999/02/08  21:06:28
+        Log: Ultrix mmap tidbit.
+     Branch: cfgperl
+           ! hints/ultrix_4.sh
+____________________________________________________________________________
+[  2842] By: jhi                                   on 1999/02/08  20:22:55
+        Log: Integrate from mainperl.
+     Branch: cfgperl
+          +> t/op/subst_wamp.t
+          !> (integrate 35 files)
+____________________________________________________________________________
+[  2841] By: jhi                                   on 1999/02/08  18:23:26
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             To: Mailing list Perl5 <perl5-porters@perl.org>
+             Subject: [PATCH 5.005_53] s/\ba/./g was over-optimized
+             Date: Sun, 7 Feb 1999 17:25:22 -0500
+             Message-ID: <19990207172522.B894@monk.mps.ohio-state.edu>
+     Branch: cfgperl
+           + t/op/subst_amp.t
+           ! MANIFEST regcomp.c t/op/subst.t
+____________________________________________________________________________
+[  2840] By: jhi                                   on 1999/02/08  18:16:54
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             To: Mailing list Perl5 <perl5-porters@perl.org>
+             Subject: [PATCH 5.005_53] Fix list-context //g with zero-length matches
+             Date: Sun, 7 Feb 1999 17:00:10 -0500
+             Message-ID: <19990207170009.A894@monk.mps.ohio-state.edu>
+     Branch: cfgperl
+           ! pp_hot.c t/op/pat.t
+____________________________________________________________________________
+[  2839] By: jhi                                   on 1999/02/08  17:25:30
+        Log: A require was missing.
+     Branch: cfgperl
+           ! t/lib/h2ph.pht
+____________________________________________________________________________
+[  2838] By: jhi                                   on 1999/02/08  16:38:41
+        Log: Bring in the change #2809 (the Configure part has been
+             modified rather a lot since the #2809, though.)
+     Branch: cfgperl
+           ! Configure utils/h2ph.PL
+____________________________________________________________________________
+[  2835] By: gsar                                  on 1999/02/08  14:40:23
+        Log: make qw() into a true list at compile time (slightly modified
+             variant of patch suggested by Tom Hughes <tom@compton.demon.co.uk>)
+     Branch: perl
+           ! pod/perldelta.pod pod/perlop.pod pp_hot.c toke.c
+____________________________________________________________________________
+[  2834] By: gsar                                  on 1999/02/08  13:23:16
+        Log: make safesysmalloc() etc., always available; safemalloc() et al are
+             now macros that point to the right malloc; fix various places in
+             sources that need to always use safesysmalloc() et al
+     Branch: perl
+          ! embed.h embedvar.h global.sym iperlsys.h mg.c objXSUB.h perl.h
+           ! perl_exp.SH proto.h util.c vms/gen_shrfls.pl win32/makedef.pl
+____________________________________________________________________________
+[  2833] By: gsar                                  on 1999/02/08  10:56:16
+        Log: remove spurious #endif in last change
+     Branch: perl
+           ! perl.h
+____________________________________________________________________________
+[  2832] By: gsar                                  on 1999/02/08  10:34:55
+        Log: make EMBEDMYMALLOC the default and provide PERL_POLLUTE_MALLOC to let
+             them ask for insanity (untested)
+     Branch: perl
+          ! INSTALL Todo-5.005 ext/SDBM_File/sdbm/sdbm.h hints/machten.sh
+          ! hints/next_3.sh hints/next_4.sh hints/qnx.sh iperlsys.h
+           ! malloc.c perl.h pod/perldelta.pod pod/perlguts.pod sv.c
+____________________________________________________________________________
+[  2831] By: jhi                                   on 1999/02/08  08:33:33
+        Log: Update vms/subconfigure.com along the lines of change #2829.
+     Branch: cfgperl
+           ! vms/subconfigure.com
+____________________________________________________________________________
+[  2830] By: gsar                                  on 1999/02/08  00:19:46
+        Log: integrate cfgperl changes into mainline
+     Branch: perl
+         +> ext/DynaLoader/dl_beos.xs ext/GDBM_File/hints/sco.pl
+          +> lib/File/PathConvert.pm pod/perlthrtut.pod
+           ! Changes
+          !> (integrate 93 files)
+____________________________________________________________________________
+[  2829] By: jhi                                   on 1999/02/07  23:49:46
+        Log: Configure update.
+             
+             Probe for mmap() et alia.
+             The *cc*symbols patch (just Configure, no h2ph).
+     Branch: cfgperl
+          ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+           ! config_h.SH perl.h
+____________________________________________________________________________
+[  2828] By: gsar                                  on 1999/02/07  23:38:47
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Sun, 7 Feb 1999 17:25:22 -0500
+             Message-ID: <19990207172522.B894@monk.mps.ohio-state.edu>
+             Subject: [PATCH 5.005_53] s/\ba/./g was over-optimized
+     Branch: perl
+           + t/op/subst_amp.t t/op/subst_wamp.t
+           ! MANIFEST regcomp.c t/op/subst.t
+____________________________________________________________________________
+[  2827] By: gsar                                  on 1999/02/07  23:27:32
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Sun, 7 Feb 1999 17:00:10 -0500
+             Message-ID: <19990207170009.A894@monk.mps.ohio-state.edu>
+             Subject: [PATCH 5.005_53] Fix list-context //g with zero-length matches
+     Branch: perl
+           ! pp_hot.c t/op/pat.t
+____________________________________________________________________________
+[  2826] By: gsar                                  on 1999/02/07  23:26:04
+        Log: patch for change#2822, done right; add PERL_OBJECT stuff; regen headers
+             From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Sun, 7 Feb 1999 15:07:27 -0500
+             Message-ID: <19990207150726.A571@monk.mps.ohio-state.edu>
+             Subject: Re: fixing memory leaks in REx compilation
+     Branch: perl
+          ! embed.h embed.pl objXSUB.h proto.h regcomp.c regcomp.h
+           ! regexec.c
+____________________________________________________________________________
+[  2825] By: jhi                                   on 1999/02/07  18:05:13
+        Log: Integrate from mainperl.
+     Branch: cfgperl
+          +> lib/DB.pm t/comp/bproto.t
+         !> MANIFEST ext/Data/Dumper/Dumper.pm ext/SDBM_File/sdbm/sdbm.c
+         !> lib/Pod/Html.pm op.c perly.c perly.y perly_c.diff
+         !> pod/perldelta.pod pod/perlfunc.pod pod/perlop.pod regcomp.h
+          !> toke.c vms/perly_c.vms
+____________________________________________________________________________
+[  2824] By: gsar                                  on 1999/02/07  14:21:48
+        Log: tweak doc on bitwise ops
+     Branch: perl
+           ! pod/perlop.pod
+____________________________________________________________________________
+[  2823] By: gsar                                  on 1999/02/07  13:38:31
+        Log: applied suggested patch; regen perly* and vms/perly*
+             From: Stephen McCamant <smccam@uclink4.berkeley.edu>
+             Date: Sun, 13 Dec 1998 01:10:12 -0800 (PST)
+             Message-ID: <13939.26706.620683.846776@fre-76-120.reshall.berkeley.edu>
+             Subject: [PATCH] Re: Suggestion for perlobj man page
+     Branch: perl
+           ! perly.c perly.y perly_c.diff toke.c vms/perly_c.vms
+____________________________________________________________________________
+[  2822] By: gsar                                  on 1999/02/07  12:39:09
+        Log: Ilya's idea for cleaning up failed regex allocs (substantive parts
+             disabled, fails tests)
+     Branch: perl
+           ! regcomp.h
+____________________________________________________________________________
+[  2821] By: gsar                                  on 1999/02/07  11:09:39
+        Log: pod2html misinterprets Foo::Bar as a URL (fix suggested by Alexander Barilo
+             <Alexander.Barilo@aexp.com>)
+     Branch: perl
+           ! lib/Pod/Html.pm
+____________________________________________________________________________
+[  2820] By: gsar                                  on 1999/02/07  10:20:35
+        Log: add draft debugging API implementation
+     Branch: perl
+           + lib/DB.pm
+           ! MANIFEST
+____________________________________________________________________________
+[  2819] By: gsar                                  on 1999/02/07  09:58:45
+        Log: avoid garbage in db->dirbuf
+             From: Masahiro KAJIURA <masahiro.kajiura@toshiba.co.jp>
+             Date: Sat, 05 Dec 1998 14:14:54 +0900
+             Message-Id: <199812050514.OAA23268@toshiba.co.jp>
+             Subject: SDBM bug
+     Branch: perl
+           ! ext/SDBM_File/sdbm/sdbm.c
+____________________________________________________________________________
+[  2818] By: gsar                                  on 1999/02/07  09:32:24
+        Log: missing entry
+     Branch: perl
+           ! MANIFEST
+____________________________________________________________________________
+[  2817] By: gsar                                  on 1999/02/07  09:30:47
+        Log: properly prototype check parenthesized unary ops (e.g. defined(&a,&b))
+     Branch: perl
+           + t/comp/bproto.t
+           ! op.c pod/perldelta.pod pod/perlfunc.pod pod/perlop.pod
+____________________________________________________________________________
+[  2816] By: gsar                                  on 1999/02/06  00:14:29
+        Log: minor bug in dumping blessed subrefs
+     Branch: perl
+           ! ext/Data/Dumper/Dumper.pm
+____________________________________________________________________________
+[  2812] By: jhi                                   on 1999/02/03  22:02:24
+        Log: Enhance change #2808.
+             
+             From: "M.J.T. Guy" <mjtg@cus.cam.ac.uk>
+             To: perl5-porters@perl.org
+             Subject: Re: [PATCH 5.00*]: perlbug checklist
+             Date: Wed, 3 Feb 1999 19:02:27 +0000
+             Message-Id: <E1087ZD-0005z1-00@taurus.cus.cam.ac.uk>
+     Branch: cfgperl
+           ! utils/perlbug.PL
+____________________________________________________________________________
+[  2811] By: jhi                                   on 1999/02/03  21:53:23
+        Log: From: Barrie Slaymaker <rbs@telerama.com>
+             To: perl5-porters@perl.org
+             CC: pod-people@perl.org
+             Subject: [PATCH]5.005_54 (pod2html) Generate Relative URLs
+             Date: Wed, 03 Feb 1999 10:34:18 -0500
+             Message-ID: <36B86C7A.E99EFFF1@telerama.com>
+             
+             Add File::PathConvert.pm.
+             Fix Pod::Html and installhtml to understand relative urls.
+     Branch: cfgperl
+           + lib/File/PathConvert.pm
+           ! MANIFEST installhtml lib/Pod/Html.pm
+____________________________________________________________________________
+[  2810] By: jhi                                   on 1999/02/03  20:25:10
+        Log: From: Francois Desarmenien <desar@club-internet.fr>
+             To: Mailing list Perl5 <perl5-porters@perl.org>
+             Subject: [PATCH]5.005_54 (hints) SCO 3/5 hint files and SysV correction
+             Date: Wed, 03 Feb 1999 13:13:24 +0000
+             Message-ID: <36B84B74.5EC9B6C8@club-internet.fr>
+             
+             (note: this patch completely overrides Tom Wolfe's patch,
+             change #2604)
+     Branch: cfgperl
+           + ext/GDBM_File/hints/sco.pl
+           ! MANIFEST ext/IPC/SysV/SysV.xs hints/sco.sh
+____________________________________________________________________________
+[  2809] By: jhi                                   on 1999/02/03  19:54:16
+        Log: h2ph fixes + Configure patch to support them.
+             
+             From: "Kurt D. Starsinic" <kstar@chapin.edu>
+             To: Graham Barr <gbarr@pobox.com>, Jarkko Hietaniemi <jhi@iki.fi>,
+             Gurusamy Sarathy <gsar@engin.umich.edu>
+             Cc: perl5-porters@perl.org
+             Subject: [PATCH 5.00503_MT5] h2ph.PL
+             Date: Tue, 2 Feb 1999 19:48:06 -0500
+             Message-ID: <19990202194806.E10647@O2.chapin.edu>
+     Branch: maint-5.005/perl
+           ! Configure utils/h2ph.PL
+____________________________________________________________________________
+[  2808] By: jhi                                   on 1999/02/03  16:59:55
+        Log: Enhance the perlbug checklist.
+     Branch: cfgperl
+           ! utils/perlbug.PL
+____________________________________________________________________________
+[  2807] By: jhi                                   on 1999/02/03  14:01:37
+        Log: Document the standard strftime %formats.
+             
+             From: Dominic Dunlop <domo@vo.lu>
+             To: "Kurt D. Starsinic" <kstar@chapin.edu>, Ben Gertzfield <che@debian.org>
+             Subject: [PATCH] 5.00[45]*: Re: POSIX's strftime() does not enforce POSIX %C on Solaris
+             Date: Tue, 2 Feb 1999 15:55:29 +0100
+             Message-Id: <v0311070cb2dcb3f5f773@[212.24.192.188]>
+     Branch: cfgperl
+           ! ext/POSIX/POSIX.pod
+____________________________________________________________________________
+[  2806] By: jhi                                   on 1999/02/03  13:58:00
+        Log: Integrate from mainperl.
+     Branch: cfgperl
+          !> perl.h
+____________________________________________________________________________
+[  2805] By: gsar                                  on 1999/02/03  03:32:31
+        Log: PL_uuemap[] init needs help for sizeof()
+     Branch: perl
+           ! perl.h
+____________________________________________________________________________
+[  2804] By: jhi                                   on 1999/02/02  20:44:30
+        Log: These should've been already in #2803.
+     Branch: cfgperl
+           ! Configure config_h.SH vms/subconfigure.com
+____________________________________________________________________________
+[  2803] By: jhi                                   on 1999/02/02  20:38:45
+        Log: telldir prototype issue, from mists of time...
+     Branch: cfgperl
+           ! hints/netbsd.sh pp_sys.c
+____________________________________________________________________________
+[  2801] By: jhi                                   on 1999/02/02  17:40:14
+        Log: From: John Bley <jbb6@acpub.duke.edu>
+             To: perlbug@perl.org
+             Subject: [PATCH]5.005_54 (DOC) fix minor typos
+             Date: Tue, 2 Feb 1999 07:52:52 -0500 (EST)
+             Message-ID: <Pine.SOL.3.91.990202075115.23589A-100000@soc11.acpub.duke.edu>
+     Branch: cfgperl
+           ! pod/perlre.pod
+____________________________________________________________________________
+[  2800] By: jhi                                   on 1999/02/02  17:26:49
+        Log: Update todo with POSIX 1003.1 1996 Edition reminder.
+     Branch: cfgperl
+           ! Todo-5.005
+____________________________________________________________________________
+[  2799] By: jhi                                   on 1999/02/02  17:18:51
+        Log: Update FindBin from maint-5.005.
+     Branch: cfgperl
+           ! lib/FindBin.pm
+____________________________________________________________________________
+[  2798] By: jhi                                   on 1999/02/02  17:16:07
+        Log: Fix typecasts in #2797
+             
+             From: "G. Del Merritt" <del@intranetics.com>
+             Date: Fri, 29 Jan 1999 11:47:25 -0700
+             Message-Id: <199901291847.LAA04828@jhereg.perl.com>
+             Subject: Not OK: perl 5.00503 +MAINT_TRIAL_5 on MSWin32-x86-object 4.0 (PATCH included)
+     Branch: cfgperl
+           ! ext/POSIX/POSIX.xs
+____________________________________________________________________________
+[  2797] By: jhi                                   on 1999/02/02  17:14:37
+        Log: From: Ted Law <tedlaw@cibcwg.com>
+             Date: Wed, 27 Jan 1999 14:54:03 -0500 (EST)
+             Message-Id: <199901271954.OAA07391@dcm2.cibcwg.com>
+             Subject: POSIX::strftime buffer overflow problem
+     Branch: cfgperl
+           ! ext/POSIX/POSIX.xs
+____________________________________________________________________________
+[  2796] By: jhi                                   on 1999/02/02  17:13:23
+        Log: Do not use File::Slurp.
+     Branch: cfgperl
+           ! t/lib/textfill.t
+____________________________________________________________________________
+[  2795] By: jhi                                   on 1999/02/02  17:11:48
+        Log: perlhist update from maint-5.005.
+     Branch: cfgperl
+           ! pod/perlhist.pod
+____________________________________________________________________________
+[  2794] By: jhi                                   on 1999/02/02  17:10:33
+        Log: POSIX::redef setv?buf() to IO::Handle:: (by gbarr).
+     Branch: cfgperl
+           ! ext/POSIX/POSIX.pm
+____________________________________________________________________________
+[  2793] By: jhi                                   on 1999/02/02  17:08:39
+        Log: Missed the html test from change #2787. 
+     Branch: cfgperl
+           ! t/lib/cgi-html.t
+____________________________________________________________________________
+[  2792] By: jhi                                   on 1999/02/02  17:01:24
+        Log: Update Getopt::Long to 2.19.
+     Branch: cfgperl
+           ! lib/Getopt/Long.pm
+____________________________________________________________________________
+[  2791] By: jhi                                   on 1999/02/02  16:59:13
+        Log: overload syntax is no longer experimental
+     Branch: cfgperl
+           ! lib/overload.pm
+____________________________________________________________________________
+[  2789] By: jhi                                   on 1999/02/02  16:47:50
+        Log: Still doc fixes.
+     Branch: cfgperl
+           ! lib/diagnostics.pm
+____________________________________________________________________________
+[  2788] By: jhi                                   on 1999/02/02  16:47:07
+        Log: Doc fixes.
+     Branch: cfgperl
+           ! lib/CGI.pm lib/diagnostics.pm
+____________________________________________________________________________
+[  2787] By: jhi                                   on 1999/02/02  16:38:55
+        Log: CGI.pm updated to 2.46 (the CGI docs fixes redone
+             where applicable).
+     Branch: cfgperl
+          ! eg/cgi/RunMeFirst eg/cgi/caution.xbm
+          ! eg/cgi/clickable_image.cgi eg/cgi/cookie.cgi eg/cgi/crash.cgi
+          ! eg/cgi/customize.cgi eg/cgi/diff_upload.cgi
+          ! eg/cgi/dna.small.gif.uu eg/cgi/file_upload.cgi
+          ! eg/cgi/frameset.cgi eg/cgi/index.html
+          ! eg/cgi/internal_links.cgi eg/cgi/javascript.cgi
+          ! eg/cgi/monty.cgi eg/cgi/multiple_forms.cgi
+          ! eg/cgi/nph-clock.cgi eg/cgi/nph-multipart.cgi eg/cgi/popup.cgi
+          ! eg/cgi/save_state.cgi eg/cgi/tryit.cgi eg/cgi/wilogo.gif.uu
+          ! lib/CGI.pm lib/CGI/Apache.pm lib/CGI/Carp.pm lib/CGI/Cookie.pm
+           ! lib/CGI/Fast.pm lib/CGI/Push.pm lib/CGI/Switch.pm
+____________________________________________________________________________
+[  2786] By: jhi                                   on 1999/02/02  16:17:52
+        Log: Update CPAN to 1.47.
+     Branch: cfgperl
+           ! lib/CPAN.pm lib/CPAN/FirstTime.pm lib/CPAN/Nox.pm
+____________________________________________________________________________
+[  2785] By: jhi                                   on 1999/02/02  16:09:03
+        Log: From: Mark-Jason Dominus <mjd@plover.com>
+             Date: Sat, 16 Jan 1999 17:22:06 -0500
+             Subject: Re: DOC PATCH (5.005_54 perlsub.pod)
+             Message-ID: <19990116222206.3674.qmail@plover.com>
+     Branch: cfgperl
+           ! pod/perlsub.pod
+____________________________________________________________________________
+[  2784] By: jhi                                   on 1999/02/02  16:01:31
+        Log: Fix incorrect "used only once" warnings
+             
+             From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Fri, 8 Jan 1999 04:37:10 -0500
+             Message-ID: <19990108043710.A14390@monk.mps.ohio-state.edu>
+             Subject: Re: change#965 flakiness
+     Branch: cfgperl
+           ! gv.c
+____________________________________________________________________________
+[  2783] By: jhi                                   on 1999/02/02  15:50:38
+        Log: perldelta updates.
+     Branch: cfgperl
+           ! pod/perldelta.pod
+____________________________________________________________________________
+[  2782] By: jhi                                   on 1999/02/02  14:28:26
+        Log: Mirror change #2781.
+     Branch: cfgperl
+           ! hints/linux.sh
+____________________________________________________________________________
+[  2781] By: jhi                                   on 1999/02/02  14:27:01
+        Log: Update the MkLinux note.
+     Branch: maint-5.005/perl
+           ! hints/linux.sh
+____________________________________________________________________________
+[  2780] By: jhi                                   on 1999/02/02  14:10:59
+        Log: Update todo.
+     Branch: cfgperl
+           ! Todo-5.005
+____________________________________________________________________________
+[  2779] By: jhi                                   on 1999/02/02  14:00:25
+        Log: Integrate from mainperl.
+     Branch: cfgperl
+           ! t/lib/textfill.t t/lib/textwrap.t
+          !> (integrate 32 files)
+____________________________________________________________________________
+[  2778] By: jhi                                   on 1999/02/02  13:56:23
+        Log: VMS update, applicable parts of
+             
+             From: Dan Sugalski <sugalskd@osshe.edu>
+             To: perl5-porters@perl.org
+             Subject: [PATCH 5.005_03MT3]VMS configure tweak
+             Date: Wed, 20 Jan 1999 12:05:18 -0800
+             Message-Id: <3.0.6.32.19990120120518.00a98470@ous.edu>
+             
+             From: Dan Sugalski <sugalskd@osshe.edu>
+             To: perlbug@perl.com, vmsperl@perl.org
+             Subject: NOT OK: perl 5.00503 +MAINT_TRIAL_4 on VMSAXP (Patch included, of course)
+             Date: Tue, 26 Jan 1999 14:40:38 -0800
+             Message-Id: <3.0.6.32.19990126144038.02e5d650@ous.edu>
+             
+             From: Dan Sugalski <sugalskd@osshe.edu>
+             To: perl5-porters@perl.org, vmsperl@perl.org
+             Subject: [PATCH 5.005_03-MAILT_TRIAL_4]VMS test patches
+             Date: Tue, 26 Jan 1999 14:55:29 -0800
+             Message-Id: <3.0.6.32.19990126145529.02f22280@ous.edu>
+     Branch: cfgperl
+           ! vms/ext/Stdio/test.pl vms/subconfigure.com
+____________________________________________________________________________
+[  2777] By: jhi                                   on 1999/02/02  13:43:24
+        Log: Synch usethreads parts from maint-5.005.
+     Branch: cfgperl
+          ! hints/aix.sh hints/dec_osf.sh hints/dos_djgpp.sh
+          ! hints/freebsd.sh hints/hpux.sh hints/irix_4.sh hints/irix_5.sh
+          ! hints/irix_6.sh hints/irix_6_0.sh hints/irix_6_1.sh
+           ! hints/linux.sh hints/os2.sh hints/solaris_2.sh hints/vmesa.sh
+____________________________________________________________________________
+[  2776] By: jhi                                   on 1999/02/02  13:17:16
+        Log: Jumbo FreeBSD update from Anton Berezin <tobez@plab.ku.dk>
+     Branch: cfgperl
+           ! Makefile.SH hints/freebsd.sh
+____________________________________________________________________________
+[  2774] By: jhi                                   on 1999/02/02  13:10:39
+        Log: Add perlthrtut, update pod/* machinery.
+             (a pod/Makefile.SH is sorely needed)
+     Branch: cfgperl
+           + pod/perlthrtut.pod
+           ! MANIFEST pod/Makefile pod/perl.pod pod/roffitall
+____________________________________________________________________________
+[  2773] By: jhi                                   on 1999/02/02  12:54:24
+        Log: From: "M.J.T. Guy" <mjtg@cus.cam.ac.uk>
+             To: perl5-porters@perl.org
+             Subject: Re: [PATCH] perl5.005_03-MAINT_TRIAL_3: clarify Sv[INU]V versus Sv[INU]VX in perlguts
+             Date: Tue, 26 Jan 1999 22:25:07 +0000
+             Message-Id: <E105Gux-0000Ac-00@taurus.cus.cam.ac.uk>
+     Branch: cfgperl
+           ! pod/perlguts.pod
+____________________________________________________________________________
+[  2771] By: jhi                                   on 1999/02/02  12:47:34
+        Log: Use perlbug instead of personal email address.
+     Branch: cfgperl
+           ! Configure
+____________________________________________________________________________
+[  2770] By: jhi                                   on 1999/02/02  12:42:06
+        Log: Miniperl fails to build (pp_sys.c was changed and iperlsys.h wasn't)
+             
+             From: "G. Del Merritt" <del@intranetics.com>
+             To: perlbug@perl.com
+             Subject: NOT OK: perl 5.00503 +MAINT_TRIAL_4 on MSWin32-x86-object (PATCHES included)
+             Date: Tue, 26 Jan 1999 12:09:09 -0700
+             Message-Id: <199901261909.MAA25525@jhereg.perl.com>
+     Branch: cfgperl
+           ! iperlsys.h
+____________________________________________________________________________
+[  2769] By: jhi                                   on 1999/02/02  12:37:57
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             To: Mailing list Perl5 <perl5-porters@perl.org>
+             Subject: [PATCH 5.005_*] OS/2 threads
+             Date: Tue, 26 Jan 1999 13:39:46 -0500
+             Message-ID: <19990126133946.A11594@monk.mps.ohio-state.edu>
+     Branch: cfgperl
+           ! os2/os2ish.h
+____________________________________________________________________________
+[  2768] By: jhi                                   on 1999/02/02  12:36:16
+        Log: Apply change #2711 from maint-5.005:
+             
+             make ok", "make okfile", and "make nok" were broken
+             with -Duseshrplib, because of a shared typo.
+             
+             From: Spider Boardman <spider@web.zk3.dec.com>
+             To: perlbug@perl.com
+             Subject: Not OK: perl 5.00503 +MAINT_TRIAL_4 on alpha-dec_osf-thread 5.0 (UNINSTALLED)
+             Date: Wed, 27 Jan 1999 12:27:15 -0500
+             Message-Id: <199901271727.MAA233455@web.zk3.dec.com>
+     Branch: cfgperl
+           ! Makefile.SH
+____________________________________________________________________________
+[  2766] By: jhi                                   on 1999/02/02  12:27:08
+        Log: Make Configure use "int main()" instead of bare "main()".
+             Like maint-5.005 change #2703 but now via metaconfig.
+     Branch: cfgperl
+           ! Configure
+____________________________________________________________________________
+[  2765] By: jhi                                   on 1999/02/02  11:59:30
+        Log: Undo part of change #2562.
+     Branch: cfgperl
+           ! Configure
+____________________________________________________________________________
+[  2764] By: jhi                                   on 1999/02/02  11:52:39
+        Log: NetBSD synch with maint-5.005.
+     Branch: cfgperl
+           ! Makefile.SH hints/netbsd.sh makedepend.SH unixish.h
+____________________________________________________________________________
+[  2763] By: jhi                                   on 1999/02/02  11:44:07
+        Log: $Config{installusrbinperl}
+             (maint-5.005 changes #2614 and #2709)
+     Branch: cfgperl
+           ! Configure installperl
+____________________________________________________________________________
+[  2762] By: jhi                                   on 1999/02/02  11:29:13
+        Log: Errno update from maint-5.005 (changes #2583, #2710).
+     Branch: cfgperl
+           ! Configure ext/Errno/Errno_pm.PL
+____________________________________________________________________________
+[  2759] By: jhi                                   on 1999/02/02  10:53:20
+        Log: Update Trig.pm from maint-5.005.
+     Branch: cfgperl
+           ! lib/Math/Trig.pm
+____________________________________________________________________________
+[  2757] By: jhi                                   on 1999/02/02  10:41:26
+        Log: MPE/iX update (mirror maint-5.005 change #2715)
+     Branch: cfgperl
+           ! hints/mpeix.sh mpeix/relink
+____________________________________________________________________________
+[  2756] By: jhi                                   on 1999/02/02  10:38:08
+        Log: BeOS update (Mirror maint-5.005 change #2727).
+     Branch: cfgperl
+           + ext/DynaLoader/dl_beos.xs
+          ! Configure MANIFEST Makefile.SH README.beos hints/beos.sh
+           ! lib/ExtUtils/MM_Unix.pm
+____________________________________________________________________________
+[  2754] By: gsar                                  on 1999/02/02  08:52:13
+        Log: Todo updates from Andy Dougherty <doughera@lafayette.edu>
+     Branch: perl
+           ! Porting/pumpkin.pod Todo Todo-5.005
+____________________________________________________________________________
+[  2753] By: gsar                                  on 1999/02/02  08:46:21
+        Log: Todo tweaks
+     Branch: perl
+           ! Todo Todo-5.005
+____________________________________________________________________________
+[  2752] By: jhi                                   on 1999/02/01  22:15:12
+        Log: Add perlthrtut.pod.
+             
+             From: Dan Sugalski <sugalskd@osshe.edu>
+             To: perl5-porters@perl.org
+             Subject: perlthrtut.pod
+             Date: Mon, 01 Feb 1999 10:57:11 -0800
+             Message-Id: <3.0.6.32.19990201105711.02e62540@ous.edu>
+     Branch: maint-5.005/perl
+           + pod/perlthrtut.pod
+          ! MANIFEST pod/Makefile pod/buildtoc pod/perldelta.pod
+           ! pod/roffitall
+____________________________________________________________________________
+[  2751] By: gsar                                  on 1999/02/01  07:28:05
+        Log: devnull() support from Jan Dubois <jan.dubois@ibm.net> and others
+     Branch: perl
+          ! lib/File/Spec/OS2.pm lib/File/Spec/Unix.pm
+           ! lib/File/Spec/VMS.pm lib/File/Spec/Win32.pm
+____________________________________________________________________________
+[  2750] By: gsar                                  on 1999/02/01  07:09:20
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Fri, 4 Dec 1998 01:02:03 -0500 (EST)
+             Message-Id: <199812040602.BAA07215@monk.mps.ohio-state.edu>
+             Subject: [PATCH 5.005_53] Debugging REx with lookbehind
+     Branch: perl
+           ! regexec.c
+____________________________________________________________________________
+[  2749] By: gsar                                  on 1999/02/01  07:07:59
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Fri, 4 Dec 1998 00:05:41 -0500 (EST)
+             Message-Id: <199812040505.AAA16616@monk.mps.ohio-state.edu>
+             Subject: [PATCH 5.005_53] Speed up .*? and half-fix UTF lookbehind
+     Branch: perl
+           ! regexec.c
+____________________________________________________________________________
+[  2748] By: gsar                                  on 1999/02/01  06:47:06
+        Log: From: "Jonathan I. Kamens" <jik@kamens.brookline.ma.us>
+             Date: Thu, 3 Dec 1998 15:10:17 -0500
+             Message-Id: <199812032010.PAA09692@jik.shore.net>
+             Subject: sample checksum code in "perlfunc" man page is wrong
+     Branch: perl
+           ! pod/perlfunc.pod
+____________________________________________________________________________
+[  2747] By: gsar                                  on 1999/02/01  06:35:13
+        Log: typos in Pod/Text.pm
+             From: "Greg Chapman" <glc@well.com>
+             Date: Tue, 1 Dec 1998 10:50:18 -0800
+             Message-Id: <199812011849.KAA08816@smtp.well.com>
+             Subject: Glitch in Pod::Text
+     Branch: perl
+           ! lib/Pod/Text.pm
+____________________________________________________________________________
+[  2746] By: gsar                                  on 1999/02/01  06:27:35
+        Log: various win32-ish changes merged from maint-5.005
+     Branch: perl
+          ! README.win32 embedvar.h globvar.sym lib/ExtUtils/MM_Unix.pm
+          ! objXSUB.h op.c perl.h perlvars.h pp.c sv.c t/io/fs.t toke.c
+          ! win32/Makefile win32/config.bc win32/config.vc
+          ! win32/config_sh.PL win32/makefile.mk win32/runperl.c
+           ! win32/win32.c
+____________________________________________________________________________
+[  2745] By: gsar                                  on 1999/02/01  04:51:54
+        Log: integrate cfgperl changes into mainline
+     Branch: perl
+          !> INSTALL hints/aix.sh lib/Time/Local.pm pod/perldelta.pod
+____________________________________________________________________________
+[  2744] By: gsar                                  on 1999/02/01  04:31:09
+        Log: improved diagnostic on syntax errors at EOL
+     Branch: perl
+           ! toke.c
+____________________________________________________________________________
+[  2743] By: gsar                                  on 1999/02/01  03:59:13
+        Log: don't attempt connect() to bogus IP addresses
+             From:    Graham Barr <gbarr@pobox.com>
+             Date:    Sun, 31 Jan 1999 21:50:45 CST
+             Message-Id: <19990131215045.A633@pobox.com>
+     Branch: perl
+           ! t/lib/io_multihomed.t
+____________________________________________________________________________
+[  2742] By: gsar                                  on 1999/02/01  03:08:58
+        Log: update Changes
+     Branch: perl
+           ! Changes pod/perldelta.pod
+____________________________________________________________________________
+[  2740] By: gsar                                  on 1999/02/01  02:43:07
+        Log: CAPI inheritance tweak and doc
+     Branch: maint-5.005/perl
+           ! lib/ExtUtils/MakeMaker.pm
+____________________________________________________________________________
+[  2739] By: jhi                                   on 1999/01/31  18:31:54
+        Log: Undo changes #2730 and #2731 and replace them
+             with an extensively tested patch from
+             Anton Berezin <tobez@plab.ku.dk> (via private email).
+     Branch: maint-5.005/perl
+           ! Makefile.SH hints/freebsd.sh
+____________________________________________________________________________
+[  2738] By: gsar                                  on 1999/01/31  05:04:32
+        Log: fix bogus CAPI inheritance from change#2541
+     Branch: maint-5.005/perl
+           ! lib/ExtUtils/MakeMaker.pm
+____________________________________________________________________________
+[  2731] By: jhi                                   on 1999/01/29  14:33:12
+        Log: FreeBSD version numbers can be like "2.2.8-release".
+     Branch: maint-5.005/perl
+           ! hints/freebsd.sh
+____________________________________________________________________________
+[  2730] By: jhi                                   on 1999/01/29  12:40:38
+        Log: FreeBSD hints iteration (hopefully convergent).
+             usethreads: require at least FreeBSD 2.2.8.
+             signal type: mirror change #2429 in cfgperl.
+     Branch: maint-5.005/perl
+           ! hints/freebsd.sh
+____________________________________________________________________________
+[  2727] By: gbarr                                 on 1999/01/29  04:09:57
+        Log: From: Tom Spindler <dogcow@isi.net>
+             Date: Thu, 28 Jan 1999 17:15:11 -0800
+             Message-ID: <19990128171510.A11778@isi.net>
+             Subject: [PATCH] BeOS dynamic loading support for perl5.005_03_MT4
+     Branch: maint-5.005/perl
+           + ext/DynaLoader/dl_beos.xs
+          ! Configure MANIFEST Makefile.SH README.beos hints/beos.sh
+           ! lib/ExtUtils/MM_Unix.pm
+____________________________________________________________________________
+[  2726] By: gbarr                                 on 1999/01/29  03:30:51
+        Log: Remove use of File::Slurp in t/lib/textfill.t
+     Branch: maint-5.005/perl
+           ! t/lib/textfill.t
+____________________________________________________________________________
+[  2725] By: gbarr                                 on 1999/01/29  03:11:41
+        Log: From: Gurusamy Sarathy <gsar@ActiveState.com>
+             Date: Wed, 27 Jan 1999 23:14:33 -0800
+             Message-Id: <199901280714.XAA10176@activestate.com>
+             Subject: Re: NOT OK: "@INC contains: ." after make install - MAINT_TRIAL_4 - 5.005_03 maintenance trial 4 MSWin32-x86-object
+     Branch: maint-5.005/perl
+           ! win32/Makefile win32/makefile.mk
+____________________________________________________________________________
+[  2720] By: gsar                                  on 1999/01/27  21:54:42
+        Log: missing space while munging CCFLAGS for PERL_CAPI
+     Branch: perl
+           ! lib/ExtUtils/MM_Unix.pm
+____________________________________________________________________________
+[  2718] By: jhi                                   on 1999/01/27  19:46:04
+        Log: io/fs.t fails test #18 (sense of tests appears to have been
+             changed incompletely; this patch just skips the test attached,
+             a la test #17 preceding it).
+             
+             From: "G. Del Merritt" <del@intranetics.com>
+             To: perlbug@perl.com
+             Subject: NOT OK: perl 5.00503 +MAINT_TRIAL_4 on MSWin32-x86-object (PATCHES included)
+             Date: Tue, 26 Jan 1999 12:09:09 -0700
+             Message-Id: <199901261909.MAA25525@jhereg.perl.com>
+     Branch: maint-5.005/perl
+           ! t/io/fs.t
+____________________________________________________________________________
+[  2717] By: jhi                                   on 1999/01/27  19:44:46
+        Log: Miniperl fails to build (pp_sys.c was changed and iperlsys.h wasn't)
+             
+             From: "G. Del Merritt" <del@intranetics.com>
+             To: perlbug@perl.com
+             Subject: NOT OK: perl 5.00503 +MAINT_TRIAL_4 on MSWin32-x86-object (PATCHES included)
+             Date: Tue, 26 Jan 1999 12:09:09 -0700
+             Message-Id: <199901261909.MAA25525@jhereg.perl.com>
+     Branch: maint-5.005/perl
+           ! iperlsys.h
+____________________________________________________________________________
+[  2715] By: jhi                                   on 1999/01/27  19:34:28
+        Log: From: Mark Bixby <markb@spock.dis.cccd.edu>
+             To: perl5-porters@perl.org
+             Subject: [PATCH perl5.005_03-MAINT_TRIAL_4] MPE port tweaks
+             Date: Tue, 26 Jan 1999 16:32:18 -0800 (PST)
+             Message-Id: <199901270032.QAA13395@spock.dis.cccd.edu>
+     Branch: maint-5.005/perl
+           ! hints/mpeix.sh mpeix/relink
+____________________________________________________________________________
+[  2710] By: jhi                                   on 1999/01/27  19:22:23
+        Log: Errno fixes:
+             
+             From: Spider Boardman <spider@web.zk3.dec.com>
+             To: perlbug@perl.com
+             Subject: Not OK: perl 5.00503 +MAINT_TRIAL_4 on alpha-dec_osf-thread 5.0 (UNINSTALLED)
+             Date: Wed, 27 Jan 1999 12:27:15 -0500
+             Message-Id: <199901271727.MAA233455@web.zk3.dec.com>
+             
+             From: Spider Boardman <spider@web.zk3.dec.com>
+             To: perlbug@perl.com
+             Subject: Not OK: perl 5.00503 +MAINT_TRIAL_4 on alpha-dec_osf-thread 5.0 (UNINSTALLED)
+             Date: Wed, 27 Jan 1999 13:31:16 -0500
+             Message-Id: <199901271831.NAA241001@web.zk3.dec.com>
+     Branch: maint-5.005/perl
+           ! Configure ext/Errno/Errno_pm.PL
+____________________________________________________________________________
+[  2709] By: jhi                                   on 1999/01/27  19:17:35
+        Log: Fix Configure installusrbinperl:
+             
+             From: Spider Boardman <spider@web.zk3.dec.com>
+             To: jhi@iki.fi
+             cc: perl5-porters@perl.org
+             Subject: Re: Not OK: perl 5.00503 +MAINT_TRIAL_4 on alpha-dec_osf-thread 5.0 (UNINSTALLED)
+             Date: Wed, 27 Jan 1999 13:03:35 -0500
+             Message-Id: <199901271803.NAA238257@web.zk3.dec.com>
+     Branch: maint-5.005/perl
+           ! Configure
+____________________________________________________________________________
+[  2707] By: gbarr                                 on 1999/01/26  02:06:17
+        Log: Add redef IO::Handle::* for setv?buf()
+     Branch: maint-5.005/perl
+           ! ext/POSIX/POSIX.pm
+____________________________________________________________________________
+[  2705] By: jhi                                   on 1999/01/24  15:14:30
+        Log: Mention year-1900 and month 0..11.
+     Branch: cfgperl
+           ! lib/Time/Local.pm
+____________________________________________________________________________
+[  2704] By: jhi                                   on 1999/01/24  15:13:36
+        Log: Document Configure -Uinstallusrbinperl.
+     Branch: cfgperl
+           ! INSTALL pod/perldelta.pod
+____________________________________________________________________________
+[  2698] By: jhi                                   on 1999/01/24  12:46:00
+        Log: Use only xlc_r for usethreads.
+     Branch: cfgperl
+           ! hints/aix.sh
+____________________________________________________________________________
+[  2695] By: gsar                                  on 1999/01/24  07:09:05
+        Log: integrate cfgperl changes into mainline
+     Branch: perl
+          +> lib/Exporter/Heavy.pm
+          !> (integrate 65 files)
+____________________________________________________________________________
+[  2694] By: gsar                                  on 1999/01/24  01:28:49
+        Log: better notes on 'make' on win32
+     Branch: perl
+           ! README.win32
+____________________________________________________________________________
+[  2683] By: jhi                                   on 1999/01/22  15:41:00
+        Log: More de-cut-and-pastos.
+     Branch: cfgperl
+           ! hints/irix_6.sh hints/os2.sh
+____________________________________________________________________________
+[  2682] By: jhi                                   on 1999/01/22  15:30:51
+        Log: usethreads.cbu cut-and-pasto.
+     Branch: cfgperl
+           ! hints/solaris_2.sh
+____________________________________________________________________________
+[  2681] By: jhi                                   on 1999/01/22  14:54:55
+        Log: Better (I hope) LANGUAGE documentation.
+     Branch: cfgperl
+           ! pod/perllocale.pod
+____________________________________________________________________________
+[  2680] By: jhi                                   on 1999/01/22  09:20:29
+        Log: From: Dan Sugalski <sugalskd@osshe.edu>
+             To: perl5-porters@perl.org
+             Subject: [PATCH 5.005_03MT3]VMS configure tweak
+             Date: Wed, 20 Jan 1999 12:05:18 -0800
+             Message-Id: <3.0.6.32.19990120120518.00a98470@ous.edu>
+     Branch: cfgperl
+           ! vms/subconfigure.com
+____________________________________________________________________________
+[  2679] By: jhi                                   on 1999/01/22  09:13:18
+        Log: nosuid getmntent() branch.
+     Branch: cfgperl
+           ! perl.c perl.h
+____________________________________________________________________________
+[  2678] By: jhi                                   on 1999/01/22  08:54:19
+        Log: nosuid patch continued: *BSD needs <sys/param.h>.
+     Branch: cfgperl
+           ! Configure config_h.SH
+____________________________________________________________________________
+[  2676] By: gbarr                                 on 1999/01/22  01:54:02
+        Log: Fixup FindBin to use File::Spec
+             
+             Message-Id: <19990120185157.D24479@west-tip.transeda.com>
+             Date: Wed, 20 Jan 1999 18:51:57 +0000
+             From: Paul Johnson <pjcj@transeda.com>
+             Subject: Re: [PATCH] 5005_54 Make FindBin work with UNC paths
+     Branch: maint-5.005/perl
+           ! lib/FindBin.pm
+____________________________________________________________________________
+[  2671] By: gbarr                                 on 1999/01/22  00:40:13
+        Log: Fix win32 for Borland compiler and spaces in paths
+             
+             From: Gurusamy Sarathy <gsar@activestate.com>
+             Date: Mon, 18 Jan 1999 20:33:17 -0800
+             Message-Id: <199901190433.UAA03656@activestate.com>
+             Subject: [PATCH] 5.005_03-trial3 win32 issues
+     Branch: maint-5.005/perl
+          ! README.win32 win32/Makefile win32/config_sh.PL
+           ! win32/makefile.mk win32/runperl.c
+____________________________________________________________________________
+[  2670] By: jhi                                   on 1999/01/21  16:12:38
+        Log: From: Hugo van der Sanden <hv@crypt.compulink.co.uk>
+             To: perl5-porters@perl.org
+             Subject: Re: [PATCH 5.005_54] Evalled substitution parsing
+             Date: Thu, 21 Jan 1999 12:08:01 +0000
+             Message-Id: <199901211208.MAA01228@crypt.compulink.co.uk>
+     Branch: cfgperl
+           ! pod/perldiag.pod t/op/subst.t toke.c
+____________________________________________________________________________
+[  2669] By: jhi                                   on 1999/01/21  16:11:46
+        Log: To: perl5-porters@perl.org
+             Subject: [PATCH 5.005_54] hints/freebsd.sh - reflect the birth of version 4.0
+             From: Anton Berezin <tobez@plab.ku.dk>
+             Date: 21 Jan 1999 17:07:28 +0100
+             Message-ID: <86emood2yn.fsf@lion.plab.ku.dk>
+     Branch: cfgperl
+           ! hints/freebsd.sh
+____________________________________________________________________________
+[  2668] By: jhi                                   on 1999/01/21  15:38:34
+        Log: Add Daniel Grisinger <dgris@dimensional.com>.
+     Branch: cfgperl
+           ! AUTHORS MAINTAIN
+____________________________________________________________________________
+[  2667] By: jhi                                   on 1999/01/21  15:32:28
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             To: Mailing list Perl5 <perl5-porters@perl.org>
+             Subject: [PATCH 5.005_53] Lean Exporter.pm
+             Date: Thu, 21 Jan 1999 03:25:23 -0500
+             Message-ID: <19990121032523.A25704@monk.mps.ohio-state.edu>
+     Branch: cfgperl
+           + lib/Exporter/Heavy.pm
+           ! MANIFEST lib/Exporter.pm
+____________________________________________________________________________
+[  2666] By: jhi                                   on 1999/01/21  15:24:10
+        Log: From: "W. Phillip Moore" <wpm@ms.com>
+             To: Graham Barr <gbarr@ti.com>, perlbug@perl.org
+             Subject: Re: [PATCH] File::Path 1.04 bug (all perl5 core versions)
+             Date: Tue, 19 Jan 1999 11:39:11 -0500 (EST)
+             Message-ID: <13988.46383.298992.97303@zappa>
+     Branch: cfgperl
+           ! lib/File/Path.pm
+____________________________________________________________________________
+[  2665] By: jhi                                   on 1999/01/21  15:20:48
+        Log: CPAN update (CPAN-1.44_54) from Andreas and
+             jumbo doc patch from Abigail.
+             
+             From: abigail@fnx.com
+             To: perl5-porters@perl.org (Perl Porters)
+             Subject: [PATCH 5.005_03 TRIAL 3 lib/AutoLoader.pm]  Typos
+             Date: Tue, 19 Jan 1999 19:14:10 -0500 (EST)
+             Message-ID: <19990120001410.19645.qmail@alexandra.wayne.fnx.com>
+             
+             From: abigail@fnx.com
+             To: perl5-porters@perl.org (Perl Porters)
+             Subject: [PATCH 5.005_03 TRIAL3 lib/CGI.pm] Typos
+             Date: Tue, 19 Jan 1999 19:32:42 -0500 (EST)
+             Message-ID: <19990120003242.19938.qmail@alexandra.wayne.fnx.com>
+             
+             From: abigail@fnx.com
+             To: perl5-porters@perl.org (Perl Porters)
+             Subject: [PATCH 5.005_03 TRIAL3 lib/CPAN.pm] Typos
+             Date: Tue, 19 Jan 1999 19:40:41 -0500 (EST)
+             Message-ID: <19990120004041.20052.qmail@alexandra.wayne.fnx.com>
+             
+             From: abigail@fnx.com
+             To: perl5-porters@perl.org (Perl Porters)
+             Subject: [PATCH 5.005_03 TRIAL3 lib/Carp.pm] Typo
+             Date: Tue, 19 Jan 1999 19:43:12 -0500 (EST)
+             Message-ID: <19990120004312.20152.qmail@alexandra.wayne.fnx.com>
+             
+             From: abigail@fnx.com
+             To: perl5-porters@perl.org (Perl Porters)
+             Subject: [PATCH 5.005_03 TRIAL3 lib/Cwd.pm] Typo
+             Date: Tue, 19 Jan 1999 19:44:29 -0500 (EST)
+             Message-ID: <19990120004429.20190.qmail@alexandra.wayne.fnx.com>
+             
+             From: abigail@fnx.com
+             To: perl5-porters@perl.org (Perl Porters)
+             Subject: [PATCH 5.005_03 TRIAL3 lib/Safe.pm] Typo
+             Date: Tue, 19 Jan 1999 19:52:41 -0500 (EST)
+             Message-ID: <19990120005241.20693.qmail@alexandra.wayne.fnx.com>
+             
+             From: abigail@fnx.com
+             To: perl5-porters@perl.org (Perl Porters)
+             Subject: [PATCH 5.005_03 TRIAL3 lib/SelfLoader.pm] Typos
+             Date: Tue, 19 Jan 1999 19:55:25 -0500 (EST)
+             Message-ID: <19990120005525.20788.qmail@alexandra.wayne.fnx.com>
+             
+             From: abigail@fnx.com
+             To: perl5-porters@perl.org (Perl Porters)
+             Subject: [PATCH 5.005_03 TRIAL3 lib/Symbol.pm] Typo
+             Date: Tue, 19 Jan 1999 19:58:21 -0500 (EST)
+             Message-ID: <19990120005821.20926.qmail@alexandra.wayne.fnx.com>
+             
+             From: abigail@fnx.com
+             To: perl5-porters@perl.org (Perl Porters)
+             Subject: [PATCH 5.005_03 TRIAL3 lib/Test.pm] Typo
+             Date: Tue, 19 Jan 1999 20:00:02 -0500 (EST)
+             Message-ID: <19990120010002.20973.qmail@alexandra.wayne.fnx.com>
+             
+             From: abigail@fnx.com
+             To: perl5-porters@perl.org (Perl Porters)
+             Subject: [PATCH 5.005_03 TRIAL3 lib/ops.pm] Typo
+             Date: Tue, 19 Jan 1999 20:39:09 -0500 (EST)
+             Message-ID: <19990120013909.23085.qmail@alexandra.wayne.fnx.com>
+             
+             From: abigail@fnx.com
+             To: perl5-porters@perl.org (Perl Porters)
+             Subject: [PATCH 5.005_03 TRIAL3 lib/diagnostics.pm] Typos  (ignore previous patch for this file...)
+             Date: Tue, 19 Jan 1999 20:38:23 -0500 (EST)
+             Message-ID: <19990120013823.23015.qmail@alexandra.wayne.fnx.com>
+             
+             From: abigail@fnx.com
+             To: perl5-porters@perl.org (Perl Porters)
+             Subject: [PATCH 5.005_03 TRIAL3 lib/overload.pm] Typos
+             Date: Tue, 19 Jan 1999 20:58:16 -0500 (EST)
+             Message-ID: <19990120015817.24306.qmail@alexandra.wayne.fnx.com>
+             
+             From: abigail@fnx.com
+             To: perl5-porters@perl.org (Perl Porters)
+             Subject: [PATCH 5.005_03 TRIAL3 lib/re.pm] Typos
+             Date: Tue, 19 Jan 1999 21:03:26 -0500 (EST)
+             Message-ID: <19990120020326.24373.qmail@alexandra.wayne.fnx.com>
+     Branch: cfgperl
+          ! ext/Opcode/Safe.pm ext/Opcode/ops.pm lib/AutoLoader.pm
+          ! lib/CGI.pm lib/CPAN.pm lib/CPAN/FirstTime.pm lib/CPAN/Nox.pm
+          ! lib/Carp.pm lib/Cwd.pm lib/SelfLoader.pm lib/Symbol.pm
+           ! lib/Test.pm lib/diagnostics.pm lib/fields.pm lib/overload.pm
+____________________________________________________________________________
+[  2664] By: jhi                                   on 1999/01/21  14:47:43
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             To: Mailing list Perl5 <perl5-porters@perl.org>
+             Subject: [PATCH 5.005_*] OS2::PrfDB was exploiting a bug in U32 XSUBs
+             Date: Thu, 21 Jan 1999 03:58:29 -0500
+             Message-ID: <19990121035829.A25822@monk.mps.ohio-state.edu>
+     Branch: cfgperl
+           ! os2/Changes os2/OS2/PrfDB/PrfDB.xs
+____________________________________________________________________________
+[  2663] By: jhi                                   on 1999/01/21  14:43:58
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             To: Mailing list Perl5 <perl5-porters@perl.org>
+             Subject: [PATCH 5.005_*] Errno.pm suffers from \\ too
+             Date: Thu, 21 Jan 1999 02:46:34 -0500
+             Message-ID: <19990121024634.A25600@monk.mps.ohio-state.edu>
+     Branch: cfgperl
+           ! ext/Errno/Errno_pm.PL
+____________________________________________________________________________
+[  2662] By: jhi                                   on 1999/01/21  14:42:42
+        Log: From: Daniel Grisinger <dgris@moiraine.dimensional.com>
+             To: Francois Desarmenien <desar@club-internet.fr>
+             Cc: Gurusamy Sarathy <gsar@activestate.com>,
+             Mailing list Perl5 <perl5-porters@perl.org>, bugmongers@perl.org
+             Subject: [PATCH] patching.pod, misc fixes (was Re: Which ? What ? Why ? When ?)
+             Date: 21 Jan 1999 00:17:35 -0700
+             Message-ID: <m31zkpqels.fsf_-_@moiraine.dimensional.com>
+     Branch: cfgperl
+           ! Porting/patching.pod
+____________________________________________________________________________
+[  2661] By: jhi                                   on 1999/01/21  14:41:13
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             To: Mailing list Perl5 <perl5-porters@perl.org>
+             Subject: [PATCH 5.00*] makedepend
+             Date: Thu, 21 Jan 1999 02:08:27 -0500
+             Message-ID: <19990121020827.A25509@monk.mps.ohio-state.edu>
+     Branch: cfgperl
+           ! makedepend.SH
+____________________________________________________________________________
+[  2660] By: jhi                                   on 1999/01/21  14:36:45
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             To: Mailing list Perl5 <perl5-porters@perl.org>
+             Subject: [PATCH 5.005_53] Pipes and 2>&1 on OS/2
+             Date: Tue, 19 Jan 1999 20:06:45 -0500
+             Message-ID: <19990119200645.A21154@monk.mps.ohio-state.edu>
+     Branch: cfgperl
+           ! os2/Changes os2/os2.c
+____________________________________________________________________________
+[  2657] By: jhi                                   on 1999/01/21  11:40:35
+        Log: From: "Vishal Bhatia" <vishalb@hotmail.com>
+             To: perl5-porters@perl.org
+             Subject: [PATCH 5.005_54]pp_mapstart & pp_grepstart return val (CC.pm)
+             Date: Mon, 18 Jan 1999 01:32:31 PST
+             Message-ID: <19990118093231.18443.qmail@hotmail.com>
+     Branch: cfgperl
+           ! ext/B/B/CC.pm
+____________________________________________________________________________
+[  2656] By: jhi                                   on 1999/01/21  11:35:34
+        Log: From: Achim Bohnet <ach@mpe.mpg.de>
+             Subject: [PATCH] Not OK: perl 5.00503 +MAINT_TRIAL_3 on alpha-dec_osf 4.0 (UNINSTALLED) 
+             Date: Wed, 20 Jan 1999 20:25:53 +0100
+             Message-Id: <199901201925.UAA16940@o06.xray.mpe.mpg.de>
+     Branch: cfgperl
+           ! pp.c
+____________________________________________________________________________
+[  2655] By: jhi                                   on 1999/01/21  10:46:01
+        Log: Handle NIS (and NetInfo) more robustly.
+     Branch: cfgperl
+           ! t/op/grent.t t/op/pwent.t
+____________________________________________________________________________
+[  2654] By: jhi                                   on 1999/01/21  10:17:20
+        Log: Two-argument eaccess() of SCO.
+     Branch: cfgperl
+           ! pp_sys.c
+____________________________________________________________________________
+[  2653] By: jhi                                   on 1999/01/21  08:53:14
+        Log: -DNO_NOSUID_CHECK for those platforms which have no way
+             of checking for nosuid but still want suidperl.
+     Branch: cfgperl
+           ! perl.c
+____________________________________________________________________________
+[  2652] By: jhi                                   on 1999/01/21  08:22:50
+        Log: The LANGUAGE mirrors LC_ALL usage.
+     Branch: cfgperl
+           ! Configure config_h.SH
+____________________________________________________________________________
+[  2651] By: jhi                                   on 1999/01/20  22:01:21
+        Log: I_MNTENT was missing.
+     Branch: cfgperl
+           ! Configure config_h.SH
+____________________________________________________________________________
+[  2650] By: jhi                                   on 1999/01/19  13:42:03
+        Log: NetBSD update, based on patches from the NetBSD packages system.
+     Branch: cfgperl
+           ! Makefile.SH hints/netbsd.sh makedepend.SH unixish.h
+____________________________________________________________________________
+[  2649] By: jhi                                   on 1999/01/19  12:44:02
+        Log: Jumbo Configure update.
+             * -Uinstallusrbinperl: disable /usr/bin/perl installation
+             by installperl
+             * usethreads.cbu
+             * use64bits.cbu
+             * "nosuid"
+     Branch: cfgperl
+          ! Configure config_h.SH hints/aix.sh hints/dec_osf.sh
+          ! hints/dos_djgpp.sh hints/freebsd.sh hints/hpux.sh
+          ! hints/irix_4.sh hints/irix_5.sh hints/irix_6.sh
+          ! hints/irix_6_0.sh hints/irix_6_1.sh hints/linux.sh
+          ! hints/os2.sh hints/solaris_2.sh hints/vmesa.sh perl.c perl.h
+           ! pod/perldiag.pod
+____________________________________________________________________________
+[  2648] By: jhi                                   on 1999/01/19  09:16:44
+        Log: Mention /usr/share/locale.
+     Branch: cfgperl
+           ! pod/perllocale.pod
+____________________________________________________________________________
+[  2647] By: jhi                                   on 1999/01/19  09:11:11
+        Log: SHMLBA strikes back in NetBSD/sparc.
+             
+             From: Dave Nelson <David.Nelson@bellcow.com>
+             To: jhi@iki.fi
+             Subject: perl5.005_02 + IPC::SysV + NetBSD/Sparc
+             Date: Mon, 18 Jan 1999 22:07:56 -0600
+             Message-Id: <199901190407.WAA02543@longhorn.bellcow.com>
+     Branch: cfgperl
+           ! ext/IPC/SysV/SysV.xs
+____________________________________________________________________________
+[  2646] By: jhi                                   on 1999/01/19  08:58:17
+        Log: Show LANGUAGE env var when needed. (Augment change #2645).
+     Branch: cfgperl
+           ! util.c utils/perlbug.PL
+____________________________________________________________________________
+[  2645] By: jhi                                   on 1999/01/19  08:52:15
+        Log: Document the GNU LANGUAGE env var.
+     Branch: cfgperl
+           ! pod/perllocale.pod
+____________________________________________________________________________
+[  2644] By: jhi                                   on 1999/01/19  08:42:25
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             To: Mailing list Perl5 <perl5-porters@perl.org>
+             Subject: [PATCH 5.005_53] Fixing \G bug by Francois Desarmenien
+             Date: Mon, 18 Jan 1999 20:57:02 -0500
+             Message-ID: <19990118205702.A18379@monk.mps.ohio-state.edu>
+     Branch: cfgperl
+           ! pp_hot.c t/op/pat.t
+____________________________________________________________________________
+[  2643] By: jhi                                   on 1999/01/18  11:23:41
+        Log: Add various cruft to "clean" target. (Time for t/Makefile?)
+     Branch: cfgperl
+           ! Makefile.SH
+____________________________________________________________________________
+[  2642] By: jhi                                   on 1999/01/18  11:03:38
+        Log: GNU libc locale system has LANGUAGE env var that partly
+             overrides even LC_ALL.
+     Branch: cfgperl
+           ! t/lib/safe2.t t/op/groups.t t/op/mkdir.t
+____________________________________________________________________________
+[  2641] By: jhi                                   on 1999/01/18  10:55:04
+        Log: Integrate from mainperl.
+     Branch: cfgperl
+          +> ext/B/defsubs.h.PL
+           ! t/op/groups.t
+          !> (integrate 38 files)
+____________________________________________________________________________
+[  2640] By: gsar                                  on 1999/01/18  10:06:29
+        Log: a few random cleanups
+     Branch: perl
+           ! ext/B/Makefile.PL lib/Test/Harness.pm t/pragma/warn/doio
+____________________________________________________________________________
+[  2639] By: gsar                                  on 1999/01/18  05:56:21
+        Log: From:    "Vishal Bhatia" <vishalb@hotmail.com>
+             Date:    Sun, 17 Jan 1999 16:41:10 PST
+             Message-Id: <19990118004111.29667.qmail@hotmail.com>
+             Subject: [PATCH 5.005_54]Duplicate saved ops (CC.pm)
+     Branch: perl
+           ! ext/B/B/C.pm
+____________________________________________________________________________
+[  2638] By: gsar                                  on 1999/01/18  05:41:21
+        Log: From:    jan.dubois@ibm.net (Jan Dubois)
+             Date:    Mon, 18 Jan 1999 00:37:41 +0100
+             Message-Id: <36a271cd.2105507@smtp1.ibm.net>
+             Subject: [PATCH 5.005_54] fix bugs in do_sv_dump() from Devel::Peek integration
+     Branch: perl
+           ! dump.c
+____________________________________________________________________________
+[  2633] By: gsar                                  on 1999/01/17  13:39:59
+        Log: bogus assert()
+     Branch: perl
+           ! pp.c t/op/groups.t
+____________________________________________________________________________
+[  2632] By: gsar                                  on 1999/01/17  13:22:04
+        Log: various tweaks for clean build and test on win32
+     Branch: perl
+          ! embed.h ext/B/Makefile.PL global.sym lib/FindBin.pm objXSUB.h
+           ! op.c t/pragma/warn/doio
+____________________________________________________________________________
+[  2631] By: gsar                                  on 1999/01/17  12:28:06
+        Log: undo change#2336, and add clarification about subversive
+             CPAN distributions from Andreas Koenig
+     Branch: perl
+           ! Porting/pumpkin.pod lib/CPAN.pm
+____________________________________________________________________________
+[  2630] By: gsar                                  on 1999/01/17  12:04:06
+        Log: fix silent taint failures under -U
+     Branch: perl
+           ! doio.c
+____________________________________________________________________________
+[  2629] By: gsar                                  on 1999/01/17  12:00:23
+        Log: sanity check piped opens (tweaked version of patch suggested
+             by Mark-Jason Dominus)
+     Branch: perl
+          ! doio.c pod/perldelta.pod pod/perldiag.pod t/io/pipe.t
+           ! t/op/taint.t t/pragma/warn/doio
+____________________________________________________________________________
+[  2628] By: gsar                                  on 1999/01/17  11:26:21
+        Log: regen headers
+     Branch: perl
+           ! embed.h embedvar.h objXSUB.h
+____________________________________________________________________________
+[  2627] By: gsar                                  on 1999/01/17  11:23:37
+        Log: PERL_OBJECTness for change#2595
+     Branch: perl
+           ! embed.pl op.c pod/perlport.pod proto.h
+____________________________________________________________________________
+[  2626] By: gsar                                  on 1999/01/17  09:47:07
+        Log: PERL_OBJECT tweaks for change#2426
+     Branch: perl
+           ! embed.pl proto.h regcomp.c
+____________________________________________________________________________
+[  2625] By: gsar                                  on 1999/01/17  09:37:58
+        Log: documentation in change#2596 is not quite right; fix it
+     Branch: perl
+           ! lib/Math/BigFloat.pm pod/perlguts.pod
+____________________________________________________________________________
+[  2624] By: gsar                                  on 1999/01/17  09:28:34
+        Log: undo change#2571; C<use File::Spec> instead
+     Branch: perl
+           ! lib/FindBin.pm
+____________________________________________________________________________
+[  2623] By: gsar                                  on 1999/01/17  09:20:42
+        Log: change#2572 is not applicable; undo, retaining scan_bin addition
+             to global.sym
+     Branch: perl
+           ! global.sym perl.c proto.h
+____________________________________________________________________________
+[  2622] By: gsar                                  on 1999/01/17  09:17:42
+        Log: change#2576 is based on a wrong premise; undo it
+     Branch: perl
+           ! pp_ctl.c
+____________________________________________________________________________
+[  2621] By: gsar                                  on 1999/01/17  09:12:42
+        Log: fix change#2602 to not used hard coded constants
+     Branch: perl
+           ! ext/B/B/C.pm ext/B/defsubs.h.PL
+____________________________________________________________________________
+[  2620] By: gsar                                  on 1999/01/17  09:02:07
+        Log: integrate cfgperl changes into mainline, fix conflicts
+     Branch: perl
+         +> AUTHORS MAINTAIN README.mint ext/DynaLoader/hints/linux.pl
+         +> ext/POSIX/hints/mint.pl hints/gnu.sh hints/mint.sh
+         +> lib/Dumpvalue.pm mint/Makefile mint/README mint/errno.h
+         +> mint/pwd.c mint/stdio.h mint/sys/time.h mint/time.h
+          +> pod/perlopentut.pod
+          !> (integrate 162 files)
+____________________________________________________________________________
+[  2619] By: gsar                                  on 1999/01/17  08:42:04
+        Log: a few doc typos
+     Branch: perl
+           ! lib/utf8.pm pod/perlfunc.pod pod/perlre.pod
+____________________________________________________________________________
+[  2616] By: gbarr                                 on 1999/01/16  18:59:55
+        Log: Win32 changes from Jan
+             
+             From: jan.dubois@ibm.net (Jan Dubois)
+             Date: Fri, 15 Jan 1999 23:38:35 +0100
+             Message-ID: <36a7c10d.16311905@smtp1.ibm.net>
+             Subject: [PATCH 5.005_03m2] Win32 Makefile patches
+             
+             From: jan.dubois@ibm.net (Jan Dubois)
+             Date: Sat, 16 Jan 1999 13:02:45 +0100
+             Message-ID: <36a07da6.10722337@smtp1.ibm.net>
+             Subject: [PATCH 5.005_03m2] minor tweaks to README.win32
+     Branch: maint-5.005/perl
+           ! README.win32 win32/Makefile win32/makefile.mk
+____________________________________________________________________________
+[  2615] By: gbarr                                 on 1999/01/16  18:48:48
+        Log: Jumbo patch from Sarathy for PERL_OBJECT & USE_THREADS
+             
+             From: Gurusamy Sarathy <gsar@engin.umich.edu>
+             Date: Thu, 07 Jan 1999 00:12:00 -0500
+             Message-Id: <199901070512.AAA23568@aatma.engin.umich.edu>
+             Subject: Re: [PATCH 5.005_03-MAINT_TRIAL2] fixes for PERL_OBJECT and USE_THREADS builds
+             
+             From: Gurusamy Sarathy <gsar@engin.umich.edu>
+             Date: Thu, 14 Jan 1999 19:21:46 -0500
+             Message-Id: <199901150021.TAA01886@aatma.engin.umich.edu>
+             Subject: Re: [PATCH 5.005_03-MAINT_TRIAL2] fixes for PERL_OBJECT and USE_THREADS builds
+     Branch: maint-5.005/perl
+          ! embed.h global.sym lib/ExtUtils/MM_Unix.pm objXSUB.h objpp.h
+          ! op.c perl.c perl.h perly.c perly.y perly_c.diff pp.c proto.h
+          ! sv.c t/io/fs.t toke.c win32/GenCAPI.pl win32/config.bc
+           ! win32/makedef.pl win32/runperl.c win32/win32.c
+____________________________________________________________________________
+[  2614] By: gbarr                                 on 1999/01/16  16:48:38
+        Log: From: Jarkko Hietaniemi <jhi@iki.fi>
+             Date: Fri, 15 Jan 1999 17:28:34 +0200 (EET)
+             Message-Id: <199901151528.RAA08785@alpha.hut.fi>
+             Subject: [PATCH] 5.005_03-MAINT_TRIAL_2: NetBSD patches
+             
+             From: Jarkko Hietaniemi <jhi@iki.fi>
+             Date: Fri, 15 Jan 1999 18:44:19 +0200 (EET)
+             Message-Id: <199901151644.SAA08184@alpha.hut.fi>
+             Subject: [PATCH] 5.005_03-MAINT_TRIAL_2: allow skipping the "install also as /usr/bin/perl" question of installperl
+             
+             From: Jarkko Hietaniemi <jhi@iki.fi>
+             Date: Fri, 15 Jan 1999 18:52:29 +0200 (EET)
+             Message-Id: <199901151652.SAA11259@alpha.hut.fi>
+             Subject: the promised "installusrbinperl + NetBSD" fix
+     Branch: maint-5.005/perl
+          ! Configure Makefile.SH hints/netbsd.sh installperl
+           ! makedepend.SH unixish.h
+____________________________________________________________________________
+[  2611] By: jhi                                   on 1999/01/14  12:16:14
+        Log: From: Tom Christiansen <tchrist@jhereg.perl.com>
+             To: pumpkings@jhereg.perl.com
+             Subject: perlopentut.pod
+             Date: Sat, 09 Jan 1999 08:13:18 -0700
+             Message-Id: <199901091513.IAA17512@jhereg.perl.com>
+     Branch: cfgperl
+           + pod/perlopentut.pod
+           ! MANIFEST pod/perl.pod pod/perldelta.pod pod/roffitall
+____________________________________________________________________________
+[  2607] By: gbarr                                 on 1999/01/14  02:53:40
+        Log: Added Carp::cluck to perldelta.pod
+     Branch: maint-5.005/perl
+           ! pod/perldelta.pod
+____________________________________________________________________________
+[  2605] By: jhi                                   on 1999/01/13  18:26:19
+        Log: From: "Jonathan Fine (IT- Borders Online)" <jfine@borders.com>
+             To: "'cpan@perl.org'" <cpan@perl.org>
+             Subject: "Bug" fix for File::Find.pm
+             Date:   Thu, 31 Dec 1998 13:01:50 -0500
+             Message-ID: <311F144DB5E5D011B03F00805FE954B10708BE17@exchange01_ph.borders.com>
+     Branch: cfgperl
+           ! lib/File/Find.pm
+____________________________________________________________________________
+[  2604] By: jhi                                   on 1999/01/13  18:08:45
+        Log: From: Peter Wolfe <wolfe@teloseng.com>
+             Subject: SCO 3.2v5 patch for perl5.005_03-MAINT_TRIAL_1
+             To: perlbug@perl.com
+             Date: 11 Jan 1999 23:00:05 +0200
+             Message-ID: <MLIST_199901111950.LAA01703@titan.teloseng.com>
+     Branch: cfgperl
+           ! hints/sco.sh
+____________________________________________________________________________
+[  2603] By: jhi                                   on 1999/01/13  18:06:56
+        Log: From: hans@icgroup.nl (Hans Mulder)
+             Subject: [Patch for 5.005_54] re::debugcolors dumps core
+             To: perlbug@perl.com
+             Cc: hansmu@xs4all.nl
+             Date: 11 Jan 1999 22:22:45 +0200
+             Message-ID: <MLIST_9901111947.AA22109@icgned.icgroup.nl>
+     Branch: cfgperl
+           ! ext/re/re.pm regcomp.c
+____________________________________________________________________________
+[  2602] By: jhi                                   on 1999/01/13  18:05:43
+        Log: From: "Vishal Bhatia" <vishalb@hotmail.com>
+             Subject: [PATCH 5.005_54]B::MAGIC::PTR doesnot check for valid length.
+             Date: 11 Jan 1999 08:02:41 +0200
+             Lines: 134
+             Message-ID: <MLIST_19990111052126.27966.qmail@hotmail.com>
+     Branch: cfgperl
+           ! ext/B/B.xs ext/B/B/C.pm
+____________________________________________________________________________
+[  2601] By: jhi                                   on 1999/01/13  18:01:53
+        Log: From: James FitzGibbon <james@ican.net>
+             Subject: Trivial patch for HP-UX 11 and shared libperl
+             To: perl5-porters@perl.org
+             Date: 8 Jan 1999 19:13:23 +0200
+             Message-ID: <MLIST_Pine.BSF.4.05.9901081110090.21785-100000@staff1.tor.accglobal.net>
+     Branch: cfgperl
+           ! Makefile.SH
+____________________________________________________________________________
+[  2600] By: jhi                                   on 1999/01/13  17:59:45
+        Log: From: "Vishal Bhatia" <vishalb@hotmail.com>
+             Subject: [PATCH 5.005_54] B::CC::pp_rv2cv problem
+             To: perl5-porters@perl.org
+             Date: 8 Jan 1999 12:43:36 +0200
+             Message-ID: <MLIST_19990108101557.4481.qmail@hotmail.com>
+     Branch: cfgperl
+           ! ext/B/B/CC.pm
+____________________________________________________________________________
+[  2599] By: jhi                                   on 1999/01/13  17:50:11
+        Log: From: Robin Barker <rmb1@cise.npl.co.uk>
+             Subject: PATCH to installperl
+             To: perl5-porters@perl.org
+             Date: 4 Jan 1999 16:15:18 +0200
+             Message-ID: <MLIST_199901041350.NAA19665@cyclone.cise.npl.co.uk>
+     Branch: cfgperl
+           ! installperl
+____________________________________________________________________________
+[  2598] By: jhi                                   on 1999/01/13  17:34:51
+        Log: From: pmarquess@bfsec.bt.co.uk (Paul Marquess)
+             To: gsar@engin.umich.edu (Gurusamy Sarathy), gbarr@pobox.com
+             Cc: perl5-porters@perl.org
+             Subject: PATCH DB_File 1.63 for 5.005_54 & 5.005_03
+             Date: Tue, 29 Dec 1998 16:23:54 +0000 (GMT)
+             Message-Id: <9812291623.AA20884@claudius.bfsec.bt.co.uk>
+     Branch: cfgperl
+          ! ext/DB_File/Changes ext/DB_File/DB_File.pm
+           ! ext/DB_File/DB_File.xs ext/DB_File/dbinfo ext/DB_File/typemap
+____________________________________________________________________________
+[  2597] By: jhi                                   on 1999/01/13  17:30:33
+        Log: From: David Dyck <dcd@tc.fluke.com>
+             To: Perl Porters <perl5-porters@perl.org>,
+             Gurusamy Sarathy <gsar@engin.umich.edu>
+             Subject: PATCH to perl5.005_54/pod/perldsc.pod (fix typo)
+             Date: Tue, 12 Jan 1999 11:14:19 -0800 (PST)
+             Message-ID: <Pine.LNX.4.05.9901121111250.22568-100000@dd.tc.fluke.com>
+     Branch: cfgperl
+           ! pod/perldsc.pod
+____________________________________________________________________________
+[  2596] By: jhi                                   on 1999/01/13  17:26:44
+        Log: From: Joshua Pritikin <joshua.pritikin@db.com>
+             To: perl5-porters@perl.org
+             Subject: [PATCH] modglobal w/ spelling fixes
+             Date: Tue, 12 Jan 1999 18:06:01 -0500 (EST)
+             Message-ID: <Pine.GSO.4.02.9901121805290.625-100000@eq1062.wks.na.deuba.com>
+     Branch: cfgperl
+           ! pod/perlguts.pod
+____________________________________________________________________________
+[  2595] By: jhi                                   on 1999/01/13  17:24:59
+        Log: From: Hans Mulder <hansm@icgroup.nl>
+             Optimize common sort routines.  Thread started by the message
+             
+             From: Hans Mulder <hansm@icgroup.nl>
+             Sender: owner-perl5-porters@perl.org
+             To: perl5-porters@perl.org
+             Subject: [Patch for 5.00554] From the Todo list: Optimize sort by { $a <=> $b
+             Message-Id: <9901092156.AA03831@icgned.icgroup.nl>
+             
+             and the patch from the message
+             
+             From: Hans Mulder <hans@icgroup.nl>
+             To: jhi@iki.fi
+             Cc: perl5-porters@perl.org
+             Subject: Re: [Patch for 5.00554] From the Todo list: Optimize sort by { $a <=>
+             $b }
+             Date: Wed, 13 Jan 1999 17:39:35 +0100
+             Message-Id: <9901131639.AA17419@icgned.icgroup.nl>
+     Branch: cfgperl
+           ! Todo op.c op.h pp_ctl.c t/op/sort.t
+____________________________________________________________________________
+[  2594] By: jhi                                   on 1999/01/13  16:50:17
+        Log: Atari MiNT port by Guido Flohr <gufl0000@stud.uni-sb.de>
+             (the diffs were based on 5.004_02).  Tested by Guido
+             and Frank Naumann <fnaumann@prinz-atm.CS.Uni-Magdeburg.De>.
+     Branch: cfgperl
+          + README.mint ext/POSIX/hints/mint.pl hints/mint.sh
+          + mint/Makefile mint/README mint/errno.h mint/pwd.c mint/stdio.h
+           + mint/sys/time.h mint/time.h
+          ! MANIFEST doio.c malloc.c miniperlmain.c perl.c t/io/fs.t
+           ! t/lib/safe2.t t/op/groups.t t/op/mkdir.t t/op/taint.t util.c
+____________________________________________________________________________
+[  2593] By: jhi                                   on 1999/01/09  16:54:26
+        Log: Detypo.
+     Branch: cfgperl
+           ! hints/dec_osf.sh
+____________________________________________________________________________
+[  2592] By: jhi                                   on 1999/01/09  16:17:13
+        Log: Move usethreads and use64bits logic from hints to Configure.
+     Branch: cfgperl
+          ! Configure hints/README.hints hints/aix.sh hints/dec_osf.sh
+          ! hints/dos_djgpp.sh hints/freebsd.sh hints/hpux.sh
+          ! hints/irix_6.sh hints/irix_6_0.sh hints/irix_6_1.sh
+           ! hints/linux.sh hints/os2.sh hints/solaris_2.sh hints/vmesa.sh
+____________________________________________________________________________
+[  2591] By: jhi                                   on 1999/01/09  14:45:24
+        Log: Missing dTHRs added.
+     Branch: cfgperl
+           ! regcomp.c toke.c
+____________________________________________________________________________
+[  2590] By: jhi                                   on 1999/01/08  15:27:17
+        Log: Finalize change #2589 and add better AIX nm scanning from:
+             
+             Message-Id: <m0zyNW0-00017VC@gentoo.com>
+             From: bll@gentoo.com (Brad Lanam)
+             Subject: Re: mailhelp returned a non-zero status
+             In-Reply-To: <199901072155.WAA14369@hptnocou.grenoble.hp.com> from Raphael Manfredi at "Jan 7, 1999 10:55:24 pm"
+             To: ram@hptnocou.grenoble.hp.com (Raphael Manfredi)
+     Branch: cfgperl
+           ! Configure hints/freebsd.sh hints/linux.sh
+____________________________________________________________________________
+[  2589] By: jhi                                   on 1999/01/08  15:14:54
+        Log: Undo change #2581.
+     Branch: cfgperl
+           ! Configure hints/freebsd.sh hints/linux.sh
+____________________________________________________________________________
+[  2588] By: jhi                                   on 1999/01/08  11:51:52
+        Log: FAQ jumbo patch from tchrist.
+             
+             Message-Id: <199901080605.XAA20229@jhereg.perl.com>
+             From: Tom Christiansen <tchrist@jhereg.perl.com>
+             To: pumpkings@jhereg.perl.com
+             Subject: newest version of perlfaq.pod
+             Date: Thu, 7 Jan 1999 23:05:02 -0700
+             
+             Message-Id: <199901080605.XAA20231@jhereg.perl.com>
+             From: Tom Christiansen <tchrist@jhereg.perl.com>
+             To: pumpkings@jhereg.perl.com
+             Subject: newest version of perlfaq1.pod
+             Date: Thu, 7 Jan 1999 23:05:02 -0700
+             
+             Message-Id: <199901080605.XAA20233@jhereg.perl.com>
+             From: Tom Christiansen <tchrist@jhereg.perl.com>
+             To: pumpkings@jhereg.perl.com
+             Subject: newest version of perlfaq2.pod
+             Date: Thu, 7 Jan 1999 23:05:02 -0700
+             
+             Message-Id: <199901080605.XAA20235@jhereg.perl.com>
+             From: Tom Christiansen <tchrist@jhereg.perl.com>
+             To: pumpkings@jhereg.perl.com
+             Subject: newest version of perlfaq3.pod
+             Date: Thu, 7 Jan 1999 23:05:02 -0700
+             
+             Message-Id: <199901080605.XAA20237@jhereg.perl.com>
+             From: Tom Christiansen <tchrist@jhereg.perl.com>
+             To: pumpkings@jhereg.perl.com
+             Subject: newest version of perlfaq4.pod
+             Date: Thu, 7 Jan 1999 23:05:02 -0700
+             
+             Message-Id: <199901080605.XAA20239@jhereg.perl.com>
+             From: Tom Christiansen <tchrist@jhereg.perl.com>
+             To: pumpkings@jhereg.perl.com
+             Subject: newest version of perlfaq5.pod
+             Date: Thu, 7 Jan 1999 23:05:02 -0700
+             
+             Message-Id: <199901080605.XAA20241@jhereg.perl.com>
+             From: Tom Christiansen <tchrist@jhereg.perl.com>
+             To: pumpkings@jhereg.perl.com
+             Subject: newest version of perlfaq6.pod
+             Date: Thu, 7 Jan 1999 23:05:02 -0700
+             
+             Message-Id: <199901080605.XAA20243@jhereg.perl.com>
+             From: Tom Christiansen <tchrist@jhereg.perl.com>
+             To: pumpkings@jhereg.perl.com
+             Subject: newest version of perlfaq7.pod
+             Date: Thu, 7 Jan 1999 23:05:03 -0700
+             
+             Message-Id: <199901080605.XAA20245@jhereg.perl.com>
+             From: Tom Christiansen <tchrist@jhereg.perl.com>
+             To: pumpkings@jhereg.perl.com
+             Subject: newest version of perlfaq8.pod
+             Date: Thu, 7 Jan 1999 23:05:03 -0700
+             
+             Message-Id: <199901080605.XAA20257@jhereg.perl.com>
+             From: Tom Christiansen <tchrist@jhereg.perl.com>
+             To: pumpkings@jhereg.perl.com
+             Subject: newest version of perlfaq9.pod
+             Date: Thu, 7 Jan 1999 23:05:03 -0700
+     Branch: cfgperl
+          ! pod/perlfaq.pod pod/perlfaq1.pod pod/perlfaq2.pod
+          ! pod/perlfaq3.pod pod/perlfaq4.pod pod/perlfaq5.pod
+          ! pod/perlfaq6.pod pod/perlfaq7.pod pod/perlfaq8.pod
+           ! pod/perlfaq9.pod
+____________________________________________________________________________
+[  2587] By: jhi                                   on 1999/01/08  11:17:43
+        Log: More doc fixes from Abigail.
+     Branch: cfgperl
+          ! lib/Time/gmtime.pm lib/Time/localtime.pm lib/User/grent.pm
+           ! lib/User/pwent.pm
+____________________________________________________________________________
+[  2585] By: jhi                                   on 1999/01/08  08:31:02
+        Log: Change #2584 from maint-5.005:
+             
+             implemented Ilya's suggested fix, and added a testcase
+             
+             From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Tue, 5 Jan 1999 00:56:01 -0500 (EST)
+             Message-Id: <199901050556.AAA02597@monk.mps.ohio-state.edu>
+             Subject: Re: Text::ParseWords: regex fix
+     Branch: cfgperl
+           ! lib/Text/ParseWords.pm t/lib/parsewords.t
+____________________________________________________________________________
+[  2583] By: gbarr                                 on 1999/01/08  04:50:03
+        Log: From: Jarkko Hietaniemi <jhi@iki.fi>
+             Date: Thu, 7 Jan 1999 12:47:38 +0200 (EET)
+             Message-Id: <199901071047.MAA24100@alpha.hut.fi>
+             Subject: [PATCH] 5.005_03-MAINT_TRIAL_2: ext/Errno_pm.PL: understand wrapper cppstdins
+     Branch: maint-5.005/perl
+           ! ext/Errno/Errno_pm.PL
+____________________________________________________________________________
+[  2581] By: jhi                                   on 1999/01/07  16:38:03
+        Log: Configure update:
+             - usethreads, use64bits, and usemultiplicity
+             are no more interactively asked by Configure
+             - "int main()" (vs bare "main()") enforced in test programs
+     Branch: cfgperl
+           ! Configure hints/freebsd.sh hints/linux.sh
+____________________________________________________________________________
+[  2580] By: jhi                                   on 1999/01/07  11:19:12
+        Log: From: Dan Sugalski <sugalskd@osshe.edu>
+             Date: Wed, 06 Jan 1999 13:47:34 -0800
+             Message-Id: <3.0.6.32.19990106134734.0334d260@ous.edu>
+             Subject: [PATCH 5.005_02-MT2, 5.005_5x]VMS.C tweak for occasional system() error
+     Branch: cfgperl
+           ! vms/vms.c
+____________________________________________________________________________
+[  2579] By: jhi                                   on 1999/01/07  09:08:36
+        Log: Another set of doc patches from Abigail
+             
+             From: abigail@fnx.com
+             Message-ID: <19990107032132.20124.qmail@alexandra.wayne.fnx.com>
+             Subject: [PATCH 5.005_03 TRAIL2 lib/Net/hostent.pm] Typo fix
+             Date: Wed, 6 Jan 1999 22:21:32 -0500 (EST)
+             
+             From: abigail@fnx.com
+             Message-ID: <19990107032445.20178.qmail@alexandra.wayne.fnx.com>
+             Subject: [PATCH 5.005_03 TRIAL2 lib/Net/netent.pm] Typo fix
+             Date: Wed, 6 Jan 1999 22:24:45 -0500 (EST)
+             
+             From: abigail@fnx.com
+             Message-ID: <19990107032834.20362.qmail@alexandra.wayne.fnx.com>
+             Subject: [PATCH 5.005_03 TRAIL2 lib/Term/Complete.pm] Typo fix
+             Date: Wed, 6 Jan 1999 22:28:34 -0500 (EST)
+             
+             From: abigail@fnx.com
+             Message-ID: <19990107033136.20440.qmail@alexandra.wayne.fnx.com>
+             Subject: [PATCH 5.005_03 TRAIL2 lib/Term/ReadLine.pm] Typo fix
+             Date: Wed, 6 Jan 1999 22:31:36 -0500 (EST)
+             
+             From: abigail@fnx.com
+             Message-ID: <19990107033351.20540.qmail@alexandra.wayne.fnx.com>
+             Subject: [PATCH 5.005_03 TRIAL2 lib/CGI/Apache.pm] Typo fix
+             Date: Wed, 6 Jan 1999 22:33:51 -0500 (EST)
+             
+             From: abigail@fnx.com
+             Message-ID: <19990107033933.20707.qmail@alexandra.wayne.fnx.com>
+             Subject: [PATCH 5.005_03 TRIAL2 lib/CGI/Push.pm] Typo fix
+             Date: Wed, 6 Jan 1999 22:39:33 -0500 (EST)
+             
+             From: abigail@fnx.com
+             Message-ID: <19990107034548.20936.qmail@alexandra.wayne.fnx.com>
+             Subject: [PATCH 5.005_03 TRIAL2 lib/File/Copy.pm] Typo fixes
+             Date: Wed, 6 Jan 1999 22:45:48 -0500 (EST)
+             
+             From: abigail@fnx.com
+             Message-ID: <19990107034856.21056.qmail@alexandra.wayne.fnx.com>
+             Subject: [PATCH 5.005_03 TRIAL2 lib/File/Spec.pm] Typo fix
+             Date: Wed, 6 Jan 1999 22:48:56 -0500 (EST)
+             
+             From: abigail@fnx.com
+             Message-ID: <19990107035113.21174.qmail@alexandra.wayne.fnx.com>
+             Subject: [PATCH 5.005_03 TRIAL2 lib/File/Spec/Mac.pm] Typo fixes
+             Date: Wed, 6 Jan 1999 22:51:13 -0500 (EST)
+             
+             From: abigail@fnx.com
+             Message-ID: <19990107035612.21522.qmail@alexandra.wayne.fnx.com>
+             Subject: [PATCH 5.005_03 TRIAL2 lib/Math/BigFloat.pm] Typo fix
+             Date: Wed, 6 Jan 1999 22:56:12 -0500 (EST)
+             
+             From: abigail@fnx.com
+             Message-ID: <19990107035842.21585.qmail@alexandra.wayne.fnx.com>
+             Subject: [PATCH 5.005_03 TRIAL2 lib/Math/BigInt.pm] Typo fixes
+             Date: Wed, 6 Jan 1999 22:58:41 -0500 (EST)
+             
+             From: abigail@fnx.com
+             Message-ID: <19990107040644.22009.qmail@alexandra.wayne.fnx.com>
+             Subject: [PATCH 5.005_03 TRIAL2 lib/Text/Wrap.pm] Typo fixes
+             Date: Wed, 6 Jan 1999 23:06:44 -0500 (EST)
+             
+             From: abigail@fnx.com
+             Message-ID: <19990107040955.22087.qmail@alexandra.wayne.fnx.com>
+             Subject: [PATCH 5.005_03 TRIAL2 lib/Tie/Array.pm] Typo fixes
+             Date: Wed, 6 Jan 1999 23:09:55 -0500 (EST)
+             
+             From: abigail@fnx.com
+             Message-ID: <19990107041136.22174.qmail@alexandra.wayne.fnx.com>
+             Subject: [PATCH 5.005_03 TRIAL2 lib/Tie/Hash.pm] Typo fix
+             Date: Wed, 6 Jan 1999 23:11:36 -0500 (EST)
+     Branch: cfgperl
+          ! lib/CGI/Apache.pm lib/CGI/Push.pm lib/File/Copy.pm
+          ! lib/File/Spec.pm lib/File/Spec/Mac.pm lib/Math/BigFloat.pm
+          ! lib/Math/BigInt.pm lib/Net/hostent.pm lib/Net/netent.pm
+          ! lib/Term/Complete.pm lib/Term/ReadLine.pm lib/Text/Wrap.pm
+           ! lib/Tie/Array.pm lib/Tie/Hash.pm
+____________________________________________________________________________
+[  2576] By: jhi                                   on 1999/01/06  17:05:20
+        Log: Change #2582 fallout: the amagic_cmp* are no more file static.
+     Branch: cfgperl
+           ! pp_ctl.c
+____________________________________________________________________________
+[  2575] By: jhi                                   on 1999/01/06  13:18:56
+        Log: Enhance the great_circle_distance() documentation.
+     Branch: cfgperl
+           ! lib/Math/Trig.pm
+____________________________________________________________________________
+[  2574] By: jhi                                   on 1999/01/06  12:58:03
+        Log: From: Mark Bixby <markb@spock.dis.cccd.edu>
+             To: perlbug@perl.com
+             Subject: [PATCH 5.005_03-MAINT_TRIAL_2] t/op/sysio.t for MPE/iX
+             Date: Mon, 4 Jan 1999 13:34:58 -0800 (PST)
+             Message-Id: <199901042134.NAA18852@spock.dis.cccd.edu>
+     Branch: cfgperl
+           ! t/op/sysio.t
+____________________________________________________________________________
+[  2573] By: jhi                                   on 1999/01/06  12:40:19
+        Log: From: "W. Phillip Moore" <wpm@ms.com>
+             To: perlbug@perl.org
+             Subject: [PATCH] POSIX getpgrp is not -w clean
+             Date: Tue, 5 Jan 1999 12:40:27 -0500 (EST)
+             Message-ID: <13970.20107.190314.549471@zappa>
+     Branch: cfgperl
+           ! ext/POSIX/POSIX.pm
+____________________________________________________________________________
+[  2572] By: jhi                                   on 1999/01/06  12:25:24
+        Log: Based on
+             From: jan.dubois@ibm.net (Jan Dubois)
+             To: perl5-porters@perl.org
+             Subject: [PATCH 5.005_03-MAINT_TRIAL2] fixes for PERL_OBJECT and USE_THREADS builds
+             Date: Wed, 06 Jan 1999 01:24:09 +0100
+             Message-ID: <3696aa85.18259325@smtp1.ibm.net>
+             except that
+             - objXSUB.h was already okay
+             - embed.h patching is futile, global.sym patched instead
+             - objpp.h does not exist
+             - proto.h addition applied manually
+             - win32/GenCAPI.pl was already okay
+             - win32/makedef.pl was already okay
+     Branch: cfgperl
+           ! global.sym perl.c proto.h
+____________________________________________________________________________
+[  2571] By: jhi                                   on 1999/01/06  11:25:48
+        Log: From: Slaven Rezic <eserte@cs.tu-berlin.de>
+             To: perlbug@perl.com
+             Subject: FindBin.pm on Win32 systems
+             Date: Mon, 4 Jan 1999 23:01:46 +0100 (CET)
+             Message-Id: <199901042201.XAA01875@cabulja.herceg.de>
+     Branch: cfgperl
+           ! lib/FindBin.pm
+____________________________________________________________________________
+[  2570] By: jhi                                   on 1999/01/06  11:21:48
+        Log: From: Dan Sugalski <sugalskd@osshe.edu>
+             To: perl5-porters@perl.org, vmsperl@perl.org
+             Subject: [PATCH 5.005_03-MAINT_TRIAL_2]taint.c fix for VMS
+             Date: Tue, 05 Jan 1999 16:47:31 -0800
+             Message-Id: <3.0.6.32.19990105164731.00b5b2d0@ous.edu>
+             
+             (the ext/IO/lib/IO/Socket.pm was not really changed here;
+             it was a leftover from #2569)
+     Branch: cfgperl
+           ! ext/IO/lib/IO/Socket.pm taint.c
+____________________________________________________________________________
+[  2569] By: jhi                                   on 1999/01/06  11:18:22
+        Log: Jumbo doc patch from Abigail (almost identical to
+             the 5.005-maint change #2562 except for the
+             ext/IO/lib/IO/Socket.pm patch which was not
+             applicable because the IO version of 5.005-devel
+             is somewhat different (why?))
+             
+             From: abigail@fnx.com
+             Message-ID: <19990105170142.4889.qmail@alexandra.wayne.fnx.com>
+             Subject: [PATCH 5.005_03-TRIAL2 lib/ExtUtils/Liblist.pm] pod fixes
+             Date: Tue, 5 Jan 1999 12:01:42 -0500 (EST)
+             
+             From: abigail@fnx.com
+             Message-ID: <19990105172855.5115.qmail@alexandra.wayne.fnx.com>
+             Subject: [PATCH 5.005_03 MAINT2 lib/ExtUtils/Commands.pm] Typo fix.
+             Date: Tue, 5 Jan 1999 12:28:55 -0500 (EST)
+             
+             From: abigail@fnx.com
+             Message-ID: <19990105173808.5260.qmail@alexandra.wayne.fnx.com>
+             Subject: [PATCH perl5.005_03 MAINT3 lib/ExtUtils/Embed.pm] Typo fix
+             Date: Tue, 5 Jan 1999 12:38:08 -0500 (EST)
+             
+             From: abigail@fnx.com
+             Message-ID: <19990105174859.5533.qmail@alexandra.wayne.fnx.com>
+             Subject: [PATCH 5.005_03 MAINT2 lib/ExtUtils/Install.pm] Typo fix
+             Date: Tue, 5 Jan 1999 12:48:59 -0500 (EST)
+             
+             From: abigail@fnx.com
+             Message-ID: <19990105174947.5547.qmail@alexandra.wayne.fnx.com>
+             Subject: [PATCH 5.005_03 lib/ExtUtils/MM_Unix.pm] Typo fixes
+             Date: Tue, 5 Jan 1999 12:49:46 -0500 (EST)
+             
+             From: abigail@fnx.com
+             Message-ID: <19990105182301.5966.qmail@alexandra.wayne.fnx.com>
+             Subject: [PATCH 5.005_03 lib/ExtUtils/MakeMaker.pm] Typos fixes.
+             Date: Tue, 5 Jan 1999 13:23:00 -0500 (EST)
+             
+             From: abigail@fnx.com
+             Message-ID: <19990105183344.6065.qmail@alexandra.wayne.fnx.com>
+             Subject: [PATCH 5.005_03 TRIAL2 lib/ExtUtils/Manifest.pm] Typo fixes
+             Date: Tue, 5 Jan 1999 13:33:44 -0500 (EST)
+             
+             From: abigail@fnx.com
+             Message-ID: <19990105184028.6220.qmail@alexandra.wayne.fnx.com>
+             Subject: [PATCH 5.005_03 TRIAL2 lib/ExtUtils/Mksymlists.pm] Typo fix
+             Date: Tue, 5 Jan 1999 13:40:28 -0500 (EST)
+             
+             From: abigail@fnx.com
+             Message-ID: <19990106012015.9451.qmail@alexandra.wayne.fnx.com>
+             Subject: [PATCH 5.005_03 TRIAL2 lib/IO/Pipe.pm] Typo fixes.
+             Date: Tue, 5 Jan 1999 20:20:15 -0500 (EST)
+             
+             From: abigail@fnx.com
+             Message-ID: <19990106012047.9459.qmail@alexandra.wayne.fnx.com>
+             Subject: [PATCH 5.005_03 TRAIL2 lib/IO/Seekable.pm] Typo fixes
+             Date: Tue, 5 Jan 1999 20:20:47 -0500 (EST)
+     Branch: cfgperl
+          ! ext/IO/lib/IO/Pipe.pm ext/IO/lib/IO/Seekable.pm
+          ! lib/ExtUtils/Command.pm lib/ExtUtils/Embed.pm
+          ! lib/ExtUtils/Install.pm lib/ExtUtils/Liblist.pm
+          ! lib/ExtUtils/MM_Unix.pm lib/ExtUtils/MakeMaker.pm
+           ! lib/ExtUtils/Manifest.pm lib/ExtUtils/Mksymlists.pm
+____________________________________________________________________________
+[  2568] By: gbarr                                 on 1999/01/06  03:13:15
+        Log: From: jan.dubois@ibm.net (Jan Dubois)
+             Date: Wed, 06 Jan 1999 01:24:09 +0100
+             Message-ID: <3696aa85.18259325@smtp1.ibm.net>
+             Subject: [PATCH 5.005_03-MAINT_TRIAL2] fixes for PERL_OBJECT and USE_THREADS builds
+     Branch: maint-5.005/perl
+          ! embed.h global.sym objXSUB.h objpp.h perl.c proto.h
+           ! win32/GenCAPI.pl win32/makedef.pl
+____________________________________________________________________________
+[  2566] By: gbarr                                 on 1999/01/06  02:29:05
+        Log: From: "W. Phillip Moore" <wpm@ms.com>
+             Date: Tue, 5 Jan 1999 12:40:27 -0500 (EST)
+             Message-ID: <13970.20107.190314.549471@zappa>
+             Subject: [PATCH] POSIX getpgrp is not -w clean
+     Branch: maint-5.005/perl
+           ! ext/POSIX/POSIX.pm
+____________________________________________________________________________
+[  2565] By: gbarr                                 on 1999/01/06  02:19:00
+        Log: From: Slaven Rezic <eserte@cs.tu-berlin.de>
+             Date: Mon, 4 Jan 1999 23:01:46 +0100 (CET)
+             Message-Id: <199901042201.XAA01875@cabulja.herceg.de>
+             Subject: FindBin.pm on Win32 systems
+     Branch: maint-5.005/perl
+           ! lib/FindBin.pm
+____________________________________________________________________________
+[  2561] By: jhi                                   on 1999/01/05  10:49:10
+        Log: Reword the setlocale() 1-arg case better.
+     Branch: cfgperl
+           ! ext/POSIX/POSIX.pod
+____________________________________________________________________________
+[  2559] By: gbarr                                 on 1999/01/02  15:37:35
+        Log: From: Blair Zajac <bzajac@geostaff.com>
+             Date: Wed, 23 Dec 1998 17:13:32 -0800
+             Message-ID: <3681953C.8B6A90AA@geostaff.com>
+             Subject: Tie::SubstrHash patch
+     Branch: maint-5.005/perl
+           ! lib/Tie/SubstrHash.pm
+____________________________________________________________________________
+[  2554] By: jhi                                   on 1999/01/02  14:55:06
+        Log: Object destruction order testing.
+     Branch: cfgperl
+           ! t/op/misc.t
+____________________________________________________________________________
+[  2553] By: jhi                                   on 1999/01/02  14:49:40
+        Log: perldelta the Dumpvalue.pm of change #2513.
+     Branch: cfgperl
+           ! lib/Dumpvalue.pm pod/perldelta.pod
+____________________________________________________________________________
+[  2552] By: nick                                  on 1999/01/02  14:45:38
+        Log: Tone down Makefile.PL so it works on Win32
+     Branch: perl
+           ! ext/B/Makefile.PL
+____________________________________________________________________________
+[  2551] By: nick                                  on 1999/01/02  14:06:30
+        Log: Export constant subs from B.xs for op.h, cop.h and a few others.
+             Use them in various B::* rather than have local defs.
+     Branch: perl
+           + ext/B/defsubs.h.PL
+          ! ext/B/B.pm ext/B/B.xs ext/B/B/Bytecode.pm ext/B/B/C.pm
+          ! ext/B/B/CC.pm ext/B/B/Deparse.pm ext/B/B/Lint.pm
+           ! ext/B/B/Stackobj.pm ext/B/B/Xref.pm ext/B/Makefile.PL
+____________________________________________________________________________
+[  2550] By: nick                                  on 1999/01/02  10:04:02
+        Log: Integrate ext/B changes from //depot/cfgperl
+     Branch: perl
+          !> ext/B/B.xs ext/B/B/C.pm ext/B/B/CC.pm ext/B/B/Stackobj.pm
+____________________________________________________________________________
+[  2549] By: jhi                                   on 1999/01/01  13:54:16
+        Log: From: "Paul Holser" <Paul.Holser.pholser@nortelnetworks.com>
+             To: perlbug@perl.com
+             Subject: op/groups.t fails test 1 on HP-UX 10.20
+             Date: Wed, 30 Dec 1998 15:16:12 -0600 (CST)
+             Message-Id: <199812302116.PAA12439@crchh44c.us.nortel.com>
+     Branch: cfgperl
+           ! t/op/groups.t
+____________________________________________________________________________
+[  2548] By: jhi                                   on 1999/01/01  13:53:31
+        Log: From: Hugo van der Sanden <hv@crypt.compulink.co.uk>
+             To: perl5-porters@perl.org
+             cc: hv@crypt0.demon.co.uk
+             Subject: [bug 5.004_54] duplicate error message
+             Date: Thu, 31 Dec 1998 04:05:25 +0000
+             Message-Id: <199812310405.EAA00386@crypt.compulink.co.uk>
+             
+             Message-ID: <13963.60672.134591.383377@alias-2.pr.mcs.net>
+             From: Stephen McCamant <smccam@uclink4.berkeley.edu>
+             To: hv@crypt0.demon.co.uk
+             Cc: perl5-porters@perl.org
+             Subject: [PATCH _54] Re: duplicate error message
+             Date: Thu, 31 Dec 1998 16:10:13 -0600 (CST)
+             
+             Message-Id: <199901010732.HAA02926@crypt.compulink.co.uk>
+             From: Hugo van der Sanden <hv@crypt.compulink.co.uk>
+             To: Stephen McCamant <smccam@uclink4.berkeley.edu>
+             cc: hv@crypt0.demon.co.uk, perl5-porters@perl.org
+             Subject: [TEST PATCH _54] Re: duplicate error message 
+             Date: Fri, 01 Jan 1999 07:32:14 +0000
+     Branch: cfgperl
+           ! op.c t/pragma/warn/op
+____________________________________________________________________________
+[  2547] By: jhi                                   on 1998/12/31  14:15:04
+        Log: From: Chris Nandor <pudge@pobox.com>
+             To: jhi@iki.fi
+             Cc: perl5-porters@perl.org
+             Subject: Re: [PATCH] perlport.pod 1.38
+             Date: Thu, 31 Dec 1998 09:06:48 -0500
+             Message-Id: <v04020a1db2b1352ec92a@[192.168.0.77]>
+     Branch: cfgperl
+           ! pod/perlport.pod
+____________________________________________________________________________
+[  2546] By: jhi                                   on 1998/12/31  11:18:17
+        Log: From: Wilson P. Snyder II
+             To: perl5-porters@perl.org
+             Subject: [PATCH v5.5.53] REV2: Binary number support
+             Date: 1998/11/30
+             Message-ID: <199811301543.KAA15689@vulcan.maker.com>
+     Branch: cfgperl
+          ! pod/perldata.pod pod/perldelta.pod pod/perlfunc.pod pp.c
+          ! proto.h sv.c t/op/oct.t t/op/sprintf.t t/pragma/warn/util
+           ! toke.c util.c
+____________________________________________________________________________
+[  2545] By: jhi                                   on 1998/12/31  09:27:40
+        Log: From: "Todd C. Miller" <Todd.Miller@courtesan.com>
+             To: perlbug@perl.com
+             Subject: "perl -T -P" dumps core on OpenBSD and Linux
+             Date: Wed, 30 Dec 1998 21:11:05 -0700 (MST)
+             Message-Id: <199812310411.VAA37568@xerxes.courtesan.com>
+     Branch: cfgperl
+           ! taint.c
+____________________________________________________________________________
+[  2544] By: jhi                                   on 1998/12/31  09:21:45
+        Log: From: Tim Bunce <Tim.Bunce@ig.co.uk> 
+             To: perlbug@perl.com 
+             Subject: bug in pod2man search for perl binary [5.005_5x]
+             Date: Sat, 12 Dec 1998 23:08:51 +0000 
+             Message-ID: <19981212230851.A20578@ig.co.uk> 
+     Branch: cfgperl
+           ! pod/pod2man.PL
+____________________________________________________________________________
+[  2541] By: gbarr                                 on 1998/12/30  14:37:14
+        Log: From: jan.dubois@ibm.net (Jan Dubois)
+             Date: Wed, 23 Dec 1998 21:26:38 +0100
+             Message-ID: <36895086.8849224@smtp1.ibm.net>
+             Subject: [PATCH 5.005_03m1] subdirectory Makefiles should inherit CAPI setting from command line
+     Branch: maint-5.005/perl
+           ! lib/ExtUtils/MakeMaker.pm
+____________________________________________________________________________
+[  2540] By: jhi                                   on 1998/12/30  08:42:04
+        Log: Evermore AUTHORS and MAINTAIN.
+     Branch: cfgperl
+           ! AUTHORS MAINTAIN
+____________________________________________________________________________
+[  2539] By: jhi                                   on 1998/12/29  15:10:34
+        Log: More AUTHORS and MAINTAIN.
+     Branch: cfgperl
+           ! AUTHORS MAINTAIN
+____________________________________________________________________________
+[  2537] By: jhi                                   on 1998/12/29  14:34:47
+        Log: From: Frank Ridderbusch <Frank.Ridderbusch@pdb.siemens.de>
+             Date: Tue, 15 Dec 1998 16:23:12 +0100 (MET)
+             Message-ID: <13942.32480.700000.640927@utensil>
+             Subject: Minor Bug in AutoSplit.qm in 5.005 and 5.004
+             (mirror change#2531 in the 5.005-maint)
+     Branch: cfgperl
+           ! lib/AutoSplit.pm
+____________________________________________________________________________
+[  2531] By: gbarr                                 on 1998/12/29  14:12:25
+        Log: change in_pod pattern to /^=\w/ from /^=/
+             From: Frank Ridderbusch <Frank.Ridderbusch@pdb.siemens.de>
+             Date: Tue, 15 Dec 1998 16:23:12 +0100 (MET)
+             Message-ID: <13942.32480.700000.640927@utensil>
+             Subject: Minor Bug in AutoSplit.qm in 5.005 and 5.004
+     Branch: maint-5.005/perl
+           ! lib/AutoSplit.pm
+____________________________________________________________________________
+[  2525] By: jhi                                   on 1998/12/29  13:06:26
+        Log: From: "Vishal Bhatia" <vishalb@hotmail.com>
+             To: perl5-porters@perl.org
+             Subject: [PATCH 5.005_54] More minor  Fixes in CC.pm/C.pm
+             Date: 16 Dec 1998 03:17:03 +0200
+             Message-ID: <MLIST_199812160055.QAA06272@f10.hotmail.com>
+     Branch: cfgperl
+           ! ext/B/B/C.pm ext/B/B/CC.pm ext/B/B/Stackobj.pm
+____________________________________________________________________________
+[  2524] By: jhi                                   on 1998/12/29  13:00:06
+        Log: From: "Vishal Bhatia" <vishalb@hotmail.com>
+             To: perl5-porters@perl.org
+             Cc: rmb1@cise.npl.co.uk, nick@ni-s.u-net.com
+             Subject: [PATCH 5.005_54] Re:perlcc -e 'my $x = shift; print +($x ?...' failure
+             Date: 10 Dec 1998 08:30:02 +0200
+             Message-ID: <MLIST_19981210061651.29891.qmail@hotmail.com>
+             
+             (Nick's part was applied earlier, in change #2460)
+     Branch: cfgperl
+           ! ext/B/B.xs ext/B/B/C.pm ext/B/B/CC.pm ext/B/B/Stackobj.pm
+____________________________________________________________________________
+[  2523] By: jhi                                   on 1998/12/29  12:41:31
+        Log: From: "vishal bhatia" <vishalb@hotmail.com>
+             To: nick@ni-s.u-net.com
+             Cc: perl5-porters@perl.org
+             Subject: [PATCH 5.005_54] return value of perlcc/B::CC generated functions.
+             Date: 9 Dec 1998 06:50:30 +0200
+             Message-ID: <MLIST_19981209043146.16829.qmail@hotmail.com>
+     Branch: cfgperl
+           ! ext/B/B/CC.pm
+____________________________________________________________________________
+[  2522] By: jhi                                   on 1998/12/29  12:15:18
+        Log: From: rjk@linguist.dartmouth.edu (Ronald J. Kimball)
+             To: perl5-porters@perl.org (Perl 5 Porters)
+             Subject: [PATCH 5.005_54] Pod::Text.pm reformating indented paragraphs
+             Date: 25 Dec 1998 23:02:28 +0200
+             Message-ID: <MLIST_199812252034.PAA27812@linguist.dartmouth.edu>
+     Branch: cfgperl
+           ! lib/Pod/Text.pm
+____________________________________________________________________________
+[  2521] By: jhi                                   on 1998/12/29  12:07:54
+        Log: Undo #2519 (breaks universal.c).
+     Branch: cfgperl
+           ! XSUB.h
+____________________________________________________________________________
+[  2519] By: jhi                                   on 1998/12/29  11:41:10
+        Log: From: Joshua Pritikin <joshua.pritikin@db.com>
+             To: perl5-porters@perl.org
+             Cc: perl-xs@perl.org
+             Subject: XSUB.h refinement [PATCH]
+             Date: 18 Dec 1998 03:58:44 +0200
+             Message-ID: <MLIST_Pine.GSO.4.02.9812171733330.589-100000@eq1062.wks.na.deuba.com>
+     Branch: cfgperl
+           ! XSUB.h
+____________________________________________________________________________
+[  2518] By: jhi                                   on 1998/12/29  11:36:19
+        Log: From: abigail@fnx.com
+             To: perl5-porters@perl.org (Perl Porters)
+             Subject: [PATCH 5.005_02; lib/fields.pm] Typos in pod.
+             Date: 28 Dec 1998 21:39:15 +0200
+             Message-ID: <MLIST_19981228191612.8380.qmail@alexandra.wayne.fnx.com>
+     Branch: cfgperl
+           ! lib/fields.pm
+____________________________________________________________________________
+[  2517] By: jhi                                   on 1998/12/29  11:35:03
+        Log: Document change #2516.
+     Branch: cfgperl
+           ! pod/perldelta.pod
+____________________________________________________________________________
+[  2516] By: jhi                                   on 1998/12/29  11:32:26
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             To: perl5-porters@perl.org (Mailing list Perl5)
+             Subject: [PATCH 5.005_53] Warn on unrecognized alpha escapes.
+             Date: 9 Dec 1998 10:39:31 +0200
+             Message-ID: <MLIST_199812090823.DAA17566@monk.mps.ohio-state.edu>
+     Branch: cfgperl
+           ! pod/perldiag.pod regcomp.c toke.c
+____________________________________________________________________________
+[  2515] By: jhi                                   on 1998/12/29  11:27:11
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             To: perl5-porters@perl.org (Mailing list Perl5)
+             Subject: [PATCH 5.005_53] Bugs in hairy interactions of feature in REx
+             Date: 8 Dec 1998 09:02:04 +0200
+             Message-ID: <MLIST_199812080637.BAA16025@monk.mps.ohio-state.edu>
+             
+             \G fixes (wasn't working right with //g, s///, and $_ in (?{})).
+     Branch: cfgperl
+           ! pp_ctl.c pp_hot.c regexec.c regexp.h t/op/pat.t t/op/subst.t
+____________________________________________________________________________
+[  2514] By: jhi                                   on 1998/12/29  11:21:31
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             To: perl5-porters@perl.org (Mailing list Perl5)
+             Subject: [PATCH 5.005_53] Regexp tests and UTF8
+             Date: 8 Dec 1998 07:02:01 +0200
+             Message-ID: <MLIST_199812080447.XAA05297@monk.mps.ohio-state.edu>
+     Branch: cfgperl
+           ! regcomp.c
+____________________________________________________________________________
+[  2513] By: jhi                                   on 1998/12/29  11:18:34
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Subject: [PATCH 5.005_*] Dumpvar.pm
+             To: perl5-porters@perl.org (Mailing list Perl5)
+             Date: 7 Dec 1998 10:17:35 +0200
+             Message-ID: <MLIST_199812070744.CAA18949@monk.mps.ohio-state.edu>
+     Branch: cfgperl
+           + lib/Dumpvalue.pm
+           ! MANIFEST
+____________________________________________________________________________
+[  2511] By: gbarr                                 on 1998/12/28  14:55:28
+        Log: From: jan.dubois@ibm.net (Jan Dubois)
+             Date: Tue, 01 Dec 1998 00:07:33 +0100
+             Message-ID: <366921b5.14512598@smtp1.ibm.net>
+             Subject: Re: 5.005_03-MAINT-TRIAL1, [PATCH] to compile on Win32
+             
+             From: jan.dubois@ibm.net (Jan Dubois)
+             Date: Wed, 02 Dec 1998 00:24:54 +0100
+             Message-ID: <366a77bb.19498126@smtp1.ibm.net>
+             Subject: Re: 5.005_03-MAINT-TRIAL1, [PATCH] spaces in filenames support
+     Branch: maint-5.005/perl
+          ! perl.h proto.h taint.c win32/GenCAPI.pl win32/Makefile
+          ! win32/config.bc win32/config.gc win32/config.vc
+           ! win32/config_sh.PL win32/makedef.pl
+____________________________________________________________________________
+[  2509] By: jhi                                   on 1998/12/28  13:00:31
+    Log: Kickstart AUTHORS and MAINTAIN.
+ Branch: cfgperl
+       + AUTHORS MAINTAIN
+       ! MANIFEST
+____________________________________________________________________________
+[  2508] By: jhi                                   on 1998/12/28  08:04:00
+    Log: From: Nathan Torkington <gnat@frii.com>
+        To: perlbug@perl.com
+        Subject: [PATCH] perlxstut.pod fix
+        Date: Sat, 26 Dec 1998 14:28:21 +1300 (NZDT)
+        Message-ID: <13956.15285.933914.320849@localhost.frii.com>
+ Branch: cfgperl
+       ! pod/perlxstut.pod
+____________________________________________________________________________
+[  2507] By: jhi                                   on 1998/12/28  07:59:00
+    Log: From: abigail@fnx.com
+        To: perlbug@perl.com
+        Subject: [PATCH 5.005_02] Re: m// doc is buggy (was Re: m'$foo' is undocumented)
+        Date: Wed, 23 Dec 1998 22:59:59 -0500 (EST)
+        Message-ID: <19981224035959.16994.qmail@alexandra.wayne.fnx.com>
+        (slightly modified, a part of the patch was rejected)
+        (strange, I thought I had already submitted this one
+        but Perforce disagrees with me...)
+ Branch: cfgperl
+       ! pod/perlop.pod
+____________________________________________________________________________
+[  2506] By: jhi                                   on 1998/12/28  07:56:59
+    Log: From: Artur <artur@vogon-solutions.com>
+        To: perlbug@perl.com
+        Subject: PATCH: perlmodlib.pod
+        Date: Fri, 25 Dec 1998 00:48:39 +0000
+        Message-ID: <3682E0E7.EBFB5D65@vogon-solutions.com>
+ Branch: cfgperl
+       ! pod/perlmodlib.pod pod/perlop.pod
+____________________________________________________________________________
+[  2505] By: jhi                                   on 1998/12/28  07:46:06
+    Log: From: abigail@fnx.com
+        To: perl5-porters@perl.org (Perl Porters)
+        Subject: [PATCH 5.005_02] Typo in documentation of pod2html.
+        Date: Wed, 23 Dec 1998 22:32:07 -0500 (EST)
+        Message-ID: <19981224033207.16751.qmail@alexandra.wayne.fnx.com>
+ Branch: cfgperl
+       ! pod/pod2html.PL
+____________________________________________________________________________
+[  2504] By: jhi                                   on 1998/12/28  07:44:35
+    Log: From: Jim Avera <avera@fjst.com>
+        To: perlbug@perl.com
+        Subject: perlbug bug - shows dates reversed
+        Date: Wed, 23 Dec 1998 18:08:56 -0800 (PST)
+        Message-Id: <199812240208.SAA27616@membrane.ssd.hal.com>
+ Branch: cfgperl
+       ! utils/perlbug.PL
+____________________________________________________________________________
+[  2503] By: jhi                                   on 1998/12/28  07:41:39
+    Log: From: jan.dubois@ibm.net (Jan Dubois)
+        To: makemaker@franz.ww.TU-Berlin.DE, perl5-porters@perl.org
+        Subject: [PATCH 5.005_03m1] subdirectory Makefiles should inherit CAPI setting from command line
+        Date: Wed, 23 Dec 1998 21:26:38 +0100
+        Message-ID: <36895086.8849224@smtp1.ibm.net>
+ Branch: cfgperl
+       ! lib/ExtUtils/MakeMaker.pm
+____________________________________________________________________________
+[  2502] By: jhi                                   on 1998/12/28  07:39:20
+    Log: From: Blair Zajac <bzajac@geostaff.com>
+        To: perl5-porters@perl.org
+        Subject: Tie::SubstrHash patch
+        Date: Wed, 23 Dec 1998 17:13:32 -0800
+        Message-ID: <3681953C.8B6A90AA@geostaff.com>
+ Branch: cfgperl
+       ! lib/Tie/SubstrHash.pm
+____________________________________________________________________________
+[  2501] By: jhi                                   on 1998/12/28  07:37:16
+    Log: From: Alan.Harder@Ebay.Sun.COM (Alan Harder)
+        To: perlbug@perl.com
+        Subject: perlfaq9 minor error
+        Date: Wed, 23 Dec 1998 14:54:19 -0800
+        Message-Id: <199812232254.OAA05986@moshpit.EBay.Sun.COM>
+ Branch: cfgperl
+       ! pod/perlfaq9.pod
+____________________________________________________________________________
+[  2500] By: jhi                                   on 1998/12/23  10:38:18
+    Log: More porting notes about filesystems, AmigaOS, and MiNT.
+ Branch: cfgperl
+       ! pod/perlport.pod
+____________________________________________________________________________
+[  2499] By: jhi                                   on 1998/12/22  09:26:49
+    Log: Add few MSG_ and uio constants.
+ Branch: cfgperl
+       ! ext/Socket/Socket.pm ext/Socket/Socket.xs iperlsys.h
+____________________________________________________________________________
+[  2498] By: jhi                                   on 1998/12/22  08:39:30
+    Log: Slight recoding of util.c:repeatcpy() to circumnavigate
+        a Digital C compiler optimizer bug that broke the 'x'
+        operator under certain circumstances.  See t/op/repeat.t
+        test #20 for graphic details.  Reported in
+        
+        From: Gisle Aas <gisle@aas.no>
+        To: Mark Martinec <Mark.Martinec@nsc.ijs.si>
+        Cc: ach@xray.mpe.mpg.de, cpan-testers@perl.org, perl5-porters@perl.org
+        Subject: Re: Digest-MD5-2.00 test fails on DEC Alpha - a patch
+        Date: 18 Dec 1998 14:27:40 +0100
+        Message-ID: <m37lvpa8c3.fsf@furu.g.aas.no>
+        
+        and discussed further in the thread
+        
+        From: Jarkko Hietaniemi <jhi@iki.fi>
+        To: Gisle Aas <gisle@aas.no>
+        Cc: Mark Martinec <Mark.Martinec@nsc.ijs.si>, ach@xray.mpe.mpg.de,
+        cpan-testers@perl.org, perl5-porters@perl.org
+        Subject: x operator broken in DEC Alpha for 8-bit characters (Re: Digest-MD5-2.00 test fails on DEC Alpha - a patch)
+        Date: Fri, 18 Dec 1998 16:18:37 +0200 (EET)
+        Message-ID: <13946.25661.193449.138023@alpha.hut.fi>
+ Branch: cfgperl
+       ! t/op/repeat.t util.c
+____________________________________________________________________________
+[  2497] By: jhi                                   on 1998/12/21  14:18:57
+    Log: Change #2483 update.
+ Branch: cfgperl
+       ! t/op/tr.t
+____________________________________________________________________________
+[  2496] By: jhi                                   on 1998/12/21  14:07:41
+    Log: Update on change #2493.
+ Branch: cfgperl
+       ! t/pragma/warn/op
+____________________________________________________________________________
+[  2495] By: jhi                                   on 1998/12/21  13:52:00
+    Log: Change #2487 aftershock.
+ Branch: cfgperl
+       ! warning.pl
+____________________________________________________________________________
+[  2494] By: jhi                                   on 1998/12/21  12:35:00
+    Log: From: Chris Nandor <pudge@pobox.com>
+        To: perl5-porters@perl.org
+        Subject: [PATCH] perlport.pod v1.37
+        Date: Sat, 19 Dec 1998 12:54:34 -0500
+        Message-Id: <v04020a03b2a194aaa676@[192.168.0.77]>
+ Branch: cfgperl
+       ! pod/perlport.pod
+____________________________________________________________________________
+[  2493] By: jhi                                   on 1998/12/21  12:22:44
+    Log: From: Mark-Jason Dominus <mjd@plover.com>
+        To: perl5-porters@perl.com
+        Subject: PATCH (5.005_02): Dejargonizing
+        Date: Sun, 20 Dec 1998 14:35:20 -0500
+        Message-ID: <19981220193520.11230.qmail@plover.com>
+        
+        From: Mark-Jason Dominus <mjd@plover.com>
+        To: perl5-porters@perl.com
+        Subject: PATCH (5.005_02): Spelling correction in warning message
+        Date: Sun, 20 Dec 1998 13:51:30 -0500
+        Message-ID: <19981220185130.11067.qmail@plover.com>
+ Branch: cfgperl
+       ! doio.c op.c
+____________________________________________________________________________
+[  2492] By: jhi                                   on 1998/12/21  09:00:05
+    Log: From: "Vishal Bhatia" <vishalb@hotmail.com>
+        To: perl5-porters@perl.org
+        Subject: [PATCH 5.005_54] pp_next/pp_last/pp_redo problems
+        Date: Sun, 20 Dec 1998 19:03:25 PST
+        Message-ID: <19981221030326.27660.qmail@hotmail.com>
+        
+        (slightly reformatted)
+ Branch: cfgperl
+       ! ext/B/B/CC.pm
+____________________________________________________________________________
+[  2491] By: nick                                  on 1998/12/20  14:21:29
+    Log: Save _all_ GV's which have SV, AV or HV set.
+ Branch: perl
+       ! ext/B/B/C.pm
+____________________________________________________________________________
+[  2490] By: jhi                                   on 1998/12/18  15:13:19
+    Log: Add idea about generalising cpp symbol probing of Errno.
+ Branch: cfgperl
+       ! Todo
+____________________________________________________________________________
+[  2489] By: jhi                                   on 1998/12/18  14:47:57
+    Log: Address some of the issues of:
+        
+        From: Tom Christiansen <tchrist@jhereg.perl.com>
+        To: perl-porters-active@jhereg.perl.com
+        Subject: Undocumentation Issues for 5.005
+        Date: Thu, 17 Dec 1998 14:46:24 -0700
+        Message-Id: <199812172146.OAA05316@jhereg.perl.com>
+ Branch: cfgperl
+       ! pod/perl5005delta.pod
+____________________________________________________________________________
+[  2488] By: jhi                                   on 1998/12/18  11:26:32
+    Log: From: root <root@dubravka.in-berlin.de>
+        To: perlbug@perl.com
+        Cc: k@dubravka.in-berlin.de
+        Subject: Please add no_modify to PERL_POLLUTE
+        Date: Fri, 18 Dec 1998 10:45:52 +0100
+        Message-Id: <199812180945.KAA05275@dubravka.in-berlin.de>
+        
+        (Really from Andreas König)
+ Branch: cfgperl
+       ! embed.pl
+____________________________________________________________________________
+[  2487] By: jhi                                   on 1998/12/17  14:05:52
+    Log: Some (by far not all) issues of the below message addressed.
+        
+        From: Tom Christiansen <tchrist@jhereg.perl.com>
+        To: The Perl Porters Mailing List <perl5-porters@perl.org>
+        Subject: important UNDOC issues for 5.005_54
+        Date: Wed, 16 Dec 1998 21:14:53 -0700
+        Message-Id: <199812170414.VAA25860@jhereg.perl.com>
+ Branch: cfgperl
+       ! lib/warning.pm pod/perl5005delta.pod pod/perldelta.pod
+____________________________________________________________________________
+[  2486] By: jhi                                   on 1998/12/17  12:47:15
+    Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+        To: domo@computer.org
+        Cc: jhi@iki.fi, perl5-porters@perl.org
+        Subject: Re: stuff related to malloc.c
+        Date: Wed, 16 Dec 1998 16:40:27 -0500 (EST)
+        Message-Id: <199812162140.QAA04925@monk.mps.ohio-state.edu>
+ Branch: cfgperl
+       ! malloc.c
+____________________________________________________________________________
+[  2485] By: jhi                                   on 1998/12/17  12:17:19
+    Log: More porting notes.
+ Branch: cfgperl
+       ! Porting/pumpkin.pod
+____________________________________________________________________________
+[  2484] By: jhi                                   on 1998/12/15  08:38:05
+    Log: Undo #2386 and #2205.
+ Branch: cfgperl
+       ! pod/perlfunc.pod
+____________________________________________________________________________
+[  2483] By: jhi                                   on 1998/12/14  17:58:35
+    Log: lib was missing from @INC.
+ Branch: cfgperl
+       ! t/op/tr.t
+____________________________________________________________________________
+[  2482] By: jhi                                   on 1998/12/14  17:52:42
+    Log: Was missing use Text::Wrap.
+ Branch: cfgperl
+       ! t/lib/textfill.t
+____________________________________________________________________________
+[  2481] By: jhi                                   on 1998/12/14  16:00:22
+    Log: nlist.h not yet Configure-probed but DynaLoader Linux-hinted.
+        
+        From: Jonathan Roy <roy@idle.com>
+        To: perl5-porters@perl.org
+        Subject: nlist.h add to Configure checks?
+        Date: Sun, 13 Dec 1998 22:22:49 -0500
+        Message-Id: <4.1.19981213221847.00a3e100@pop-server.tampabay.rr.com>
+ Branch: cfgperl
+       + ext/DynaLoader/hints/linux.pl
+       ! MANIFEST
+____________________________________________________________________________
+[  2480] By: jhi                                   on 1998/12/14  15:02:44
+    Log: Give up completely using nm in AIX.
+        
+        From: "Kurt D. Starsinic" <kstar@chapin.edu>
+        To: Gurusamy Sarathy <gsar@engin.umich.edu>, Jarkko Hietaniemi <jhi@iki.fi>
+        Cc: perl5-porters@perl.org
+        Subject: [PATCH 5.005_54] AIX 4.3.1.0 fails to locate some functions
+        Date: Thu, 10 Dec 1998 00:51:46 -0500
+        Message-ID: <19981210005146.B29986@O2.chapin.edu>
+ Branch: cfgperl
+       ! hints/aix.sh
+____________________________________________________________________________
+[  2479] By: jhi                                   on 1998/12/14  14:39:52
+    Log: AIX' error messages are different.
+        
+        From: "Kurt D. Starsinic" <kstar@chapin.edu>
+        To: Gurusamy Sarathy <gsar@engin.umich.edu>
+        Cc: perl5-porters@perl.org
+        Subject: [PATCH 5.005_54] AIX 4.1.3.0 fails pragma/warning.t
+        Date: Thu, 10 Dec 1998 00:42:36 -0500
+        Message-ID: <19981210004236.A29986@O2.chapin.edu>
+        
+        From: Michael Engel <engel@nms1.cc.huji.ac.il>
+        To: perlbug@perl.com
+        Subject: erroes in installing perl5*53 on IBM RS6000, aix 4.1
+        Date: Mon, 14 Dec 1998 16:15:20 +0200 (IST)
+        Message-ID: <Pine.A41.4.05_heb2.07.9812141609500.58712-300000@nms1.cc.huji.ac.il>
+ Branch: cfgperl
+       ! t/pragma/warn/doio
+____________________________________________________________________________
+[  2475] By: jhi                                   on 1998/12/13  12:35:55
+    Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+        To: jhi@iki.fi
+        Cc: Carl_Adler@idx.com, perl5-porters@perl.org
+        Subject: Re: stuff related to malloc.c
+        Date: Sat, 12 Dec 1998 19:39:44 -0500 (EST)
+        Message-Id: <199812130039.TAA21704@monk.mps.ohio-state.edu>
+ Branch: cfgperl
+       ! malloc.c
+____________________________________________________________________________
+[  2474] By: jhi                                   on 1998/12/13  12:32:42
+    Log: Some notes about porting issues.
+ Branch: cfgperl
+       ! Porting/pumpkin.pod
+____________________________________________________________________________
+[  2473] By: jhi                                   on 1998/12/13  12:03:58
+    Log: From: Laszlo Molnar <ml1050@freemail.c3.hu>
+        To: Perl 5 Porters <perl5-porters@perl.org>
+        Subject: [patch 5.005_02] dos-djgpp update
+        Date: Sun, 13 Dec 1998 00:08:44 +0100
+        Message-ID: <19981213000844.C264@beeblebrox>
+ Branch: cfgperl
+       ! djgpp/config.over
+____________________________________________________________________________
+[  2472] By: gbarr                                 on 1998/12/12  17:12:28
+    Log: undo changes to Exporter.pm from #2312
+ Branch: maint-5.005/perl
+       ! lib/Exporter.pm
+____________________________________________________________________________
+[  2465] By: jhi                                   on 1998/12/12  12:31:21
+    Log: Document that qw() taints.
+        
+        From: Christian Burger <burger@terra.mpikg-teltow.mpg.de> 
+        To: perlbug@perl.com 
+        Subject: taint problems
+        Date: Sun, 1 Nov 1998 22:28:41 +0100 (MET) 
+        Message-Id: <199811012128.WAA23381@terra.mpikg-teltow.mpg.de>
+ Branch: cfgperl
+       ! pod/perlop.pod
+____________________________________________________________________________
+[  2464] By: jhi                                   on 1998/12/11  14:09:51
+    Log: From: Horst von Brand <vonbrand@sleipnir.valparaiso.cl>
+        To: dist-users@foretune.co.jp
+        Subject: (dist-users 871) dist-3.0@70 generates lots of main() without type
+        Date: Mon, 07 Dec 1998 20:13:04 -0400
+        Message-Id: <199812072313.UAA06181@sleipnir.valparaiso.cl>
+ Branch: cfgperl
+       ! Configure
+____________________________________________________________________________
+[  2463] By: jhi                                   on 1998/12/11  13:29:54
+    Log: MAXPATHLEN.
+ Branch: cfgperl
+       ! perl.h
+____________________________________________________________________________
+[  2462] By: jhi                                   on 1998/12/11  08:37:58
+    Log: From: Mark Kettenis <kettenis@phys.uva.nl>
+        To: perl5-porters@perl.org
+        Subject: [PATCH]5.005_54 (CONFIG) Added support for GNU/Hurd
+        Date: Thu, 10 Dec 1998 22:00:57 +0100 (CET)
+        Message-Id: <199812102100.WAA00097@delius.kettenis.nl>
+ Branch: cfgperl
+       + hints/gnu.sh
+____________________________________________________________________________
+[  2461] By: nick                                  on 1998/12/10  21:00:50
+    Log: Date: Wed, 09 Dec 1998 22:16:50 PST
+        From: Vishal Bhatia <vishalb@hotmail.com>
+        1. Fixes the bug  reported by  Robin Barker <rmb1@cise.npl.co.uk> 
+        2. Fixes the bug  regarding return value of c-functions generated out 
+        of perl subs. ( Just includes the patch I sent earlier)
+        3. Incorporates the other changes that need to be done to get CC.pm
+        use ISA search for packages and methods on the same lines as C.pm
+        
+        Vishal would appreciate comments about B::Stackobj changes from 
+        someone knowing that module well.
+ Branch: perl
+       ! ext/B/B/C.pm ext/B/B/CC.pm ext/B/B/Stackobj.pm
+____________________________________________________________________________
+[  2460] By: jhi                                   on 1998/12/08  08:11:27
+    Log: Integrate from mainperl.
+ Branch: cfgperl
+      !> Changes ext/B/B.pm ext/B/B.xs ext/B/B/C.pm ext/B/B/CC.pm
+      !> ext/B/B/Deparse.pm perl.h pod/perl.pod pod/perl5005delta.pod
+      !> pod/perldiag.pod pod/perlfunc.pod pp_sys.c t/lib/io_unix.t
+      !> toke.c util.c
+____________________________________________________________________________
+[  2459] By: jhi                                   on 1998/12/07  07:50:11
+    Log: From: hansm@icgroup.nl 
+        Subject: Not OK: perl 5.00503 +MAINT_TRIAL_1 on OPENSTEP-Mach 4_1 (UNINSTALLED)
+        Reply-To: hansmu@xs4all.nl 
+        To: perlbug@perl.com 
+        Date: Sun, 6 Dec 98 22:19:54 +0100 
+        Message-Id: <9812062116.AA26445@icgned.icgroup.nl> 
+ Branch: cfgperl
+       ! util.c
+____________________________________________________________________________
+[  2458] By: gsar                                  on 1998/12/07  06:00:55
+    Log: fix dup lexical
+ Branch: perl
+       ! ext/B/B/Deparse.pm t/lib/io_unix.t
+____________________________________________________________________________
+[  2457] By: gsar                                  on 1998/12/06  14:38:59
+    Log: mention limit on line numbers reported by diagnostics
+ Branch: perl
+       ! pod/perl.pod toke.c
+____________________________________________________________________________
+[  2456] By: gsar                                  on 1998/12/06  13:49:02
+    Log: branch perldelta.pod
+ Branch: maint-5.005/perl
+      +> pod/perldelta.pod
+____________________________________________________________________________
+[  2455] By: gsar                                  on 1998/12/06  13:47:21
+    Log: clobber perldelta.pod to reestablish branch from perl5005delta.pod
+ Branch: maint-5.005/perl
+       - pod/perldelta.pod
+____________________________________________________________________________
+[  2454] By: gsar                                  on 1998/12/06  13:35:31
+    Log: fix outdated/incorrect info about arbitrary limits
+ Branch: perl
+       ! Changes perl.h pod/perl.pod pod/perl5005delta.pod
+       ! pod/perldiag.pod pod/perlfunc.pod pp_sys.c util.c
+____________________________________________________________________________
+[  2453] By: nick                                  on 1998/12/05  16:14:42
+    Log: Avoid hard-coding op numbers
+        Update CC.pm to save %INC, and to co-exist with new C.pm
+ Branch: perl
+       ! ext/B/B.pm ext/B/B.xs ext/B/B/C.pm ext/B/B/CC.pm
+____________________________________________________________________________
+[  2452] By: nick                                  on 1998/12/05  10:44:28
+    Log: B.xs had its own code to calculate hash() which differed from
+        PERL_HASH in hv.h - so all saved HV's were mangled - including %INC
+        which meant that run-time require was re-done.
+        Removed some debug from C.pm
+ Branch: perl
+       ! ext/B/B.xs ext/B/B/C.pm
+____________________________________________________________________________
+[  2451] By: nick                                  on 1998/12/04  21:58:49
+    Log: Snapshot of re-worked B::C which compiles Tk apps at least as
+        well as _54, but with pre-scan for classes and save the ISA scheme.
+ Branch: perl
+       ! ext/B/B/C.pm
+____________________________________________________________________________
+[  2450] By: nick                                  on 1998/12/04  17:58:44
+    Log: Vishal Bhatia's patch as a basis.
+ Branch: perl
+       ! ext/B/B/C.pm ext/B/B/CC.pm
+____________________________________________________________________________
+[  2449] By: jhi                                   on 1998/12/04  16:39:21
+    Log: Integrate from mainperl.
+ Branch: cfgperl
+      !> t/op/goto.t t/op/tr.t
+____________________________________________________________________________
+[  2448] By: gsar                                  on 1998/12/04  06:06:49
+    Log: tweak test for UTEST
+ Branch: perl
+       ! t/op/tr.t
+____________________________________________________________________________
+[  2444] By: jhi                                   on 1998/12/03  14:37:22
+    Log: s/\bthe the\b/the/g *.pod
+ Branch: cfgperl
+       ! pod/perlfaq8.pod pod/perlfunc.pod pod/perlguts.pod
+____________________________________________________________________________
+[  2443] By: jhi                                   on 1998/12/03  13:39:53
+    Log: Change#2441 aftermath.
+ Branch: cfgperl
+       ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+       ! config_h.SH thread.h vms/subconfigure.com
+____________________________________________________________________________
+[  2441] By: jhi                                   on 1998/12/03  08:15:13
+    Log: From: Dan Sugalski <sugalskd@osshe.edu>
+        To: perl5-porters@perl.org, vmsperl@cor.newman.upenn.edu
+        Subject: [PATCH 5.005_54]Initial VMS patches
+        Date: 3 Dec 1998 01:05:55 +0200
+        Message-ID: <MLIST_3.0.6.32.19981202141057.0339a7f0@ous.edu>
+        
+        The patch to config_h.SH requires more study because
+        metaconfig needs to agree.
+ Branch: cfgperl
+       ! config_h.SH configure.com global.sym lib/ExtUtils/MM_VMS.pm
+       ! t/lib/textfill.t t/pragma/warning.t vms/descrip_mms.template
+       ! vms/gen_shrfls.pl vms/subconfigure.com vms/vmsish.h
+____________________________________________________________________________
+[  2440] By: gsar                                  on 1998/12/03  01:32:16
+    Log: add failed check-in of goto.t from change#1867
+ Branch: perl
+       ! t/op/goto.t
+____________________________________________________________________________
+[  2437] By: jhi                                   on 1998/12/02  18:03:51
+    Log: Fix most of the bad L<> links of
+        
+        From: Tom Christiansen <tchrist@jhereg.perl.com> 
+        Subject: bad L<> links
+        Reply-to: tchrist@perl.com 
+        To: perlbug@jhereg.perl.com 
+        Date: Tue, 11 Aug 1998 10:58:07 -0500 
+        Message-Id: <199808111658.KAA00484@jhereg.perl.com> 
+        
+        The ones not fixed may require darker Pod::HTML magic,
+        for example the perlguts.html#tags should work fine, IMHO.
+ Branch: cfgperl
+       ! pod/perl5005delta.pod pod/perlcall.pod pod/perldata.pod
+       ! pod/perldiag.pod pod/perlfaq5.pod pod/perlfaq7.pod
+       ! pod/perlfunc.pod pod/perlguts.pod pod/perllocale.pod
+       ! pod/perlobj.pod pod/perlport.pod pod/perlsub.pod
+       ! pod/perlvar.pod
+____________________________________________________________________________
+[  2436] By: jhi                                   on 1998/12/02  16:35:04
+    Log: One paste too many in #2345.
+ Branch: cfgperl
+       ! lib/Pod/Html.pm
+____________________________________________________________________________
+[  2435] By: jhi                                   on 1998/12/02  16:32:33
+    Log: Pod::Html and Pod::Text were not locale-savvy:
+        for example in =head1 all non-ASCII-\w-runs were
+        turned into underscores in NAME tags.  This could
+        result in several NAME tags becoming identical.
+        Reported by:
+        
+        From: Fyodor Krasnov <fyodor@aha.ru> 
+        Subject: pod2html vs Russian Characters
+        To: Tom.Christiansen@snn.aha.ru, tchrist@perl.com 
+        Date: Tue, 24 Nov 1998 19:00:36 +0300 (MSK) 
+        Message-Id: <199811241600.TAA05149@stat.aha.ru> 
+ Branch: cfgperl
+       ! lib/Pod/Html.pm lib/Pod/Text.pm
+____________________________________________________________________________
+[  2434] By: jhi                                   on 1998/12/02  10:29:00
+    Log: The real Mc5_54 integration.
+ Branch: cfgperl
+      !> Changes MANIFEST pod/perlhist.pod pp_hot.c
+____________________________________________________________________________
+[  2433] By: jhi                                   on 1998/12/02  08:52:13
+    Log: From: Andy Dougherty <doughera@lafayette.edu>
+        To: Perl Porters <perl5-porters@perl.org>
+        Subject: [PATCH 5.005_xx] Missing redirection of simple test program
+        Date: Tue, 1 Dec 1998 13:40:12 -0500 (EST)
+        Message-Id: <Pine.SUN.3.96.981201133546.4288K-100000@newton.phys>
+ Branch: cfgperl
+       ! Configure
+____________________________________________________________________________
+[  2432] By: jhi                                   on 1998/12/02  08:49:47
+    Log: From: Andy Dougherty <doughera@lafayette.edu>
+        To: Perl Porters <perl5-porters@perl.org>
+        Subject: [PATCH 5.005_xx] erroneous 'none' in lddlflags
+        Date: Tue, 1 Dec 1998 12:50:27 -0500 (EST)
+        Message-Id: <Pine.SUN.3.96.981201124929.4288H-100000@newton.phys>
+ Branch: cfgperl
+       ! Configure
+____________________________________________________________________________
+[  2431] By: jhi                                   on 1998/12/01  16:11:50
+    Log: From: achampio@lehman.com (Alan Champion)
+        Subject: Not OK: perl 5.00503 +MAINT_TRIAL_1 on sun4-solaris 2.3 (UNINSTALLED)
+        To: perlbug@perl.com
+        Date: 1 Dec 1998 17:36:33 +0200
+        Message-ID: <MLIST_9812011518.AA00005@lonhpov1.lehman.com>
+        
+        Skip NIS includes.
+ Branch: cfgperl
+       ! t/op/pwent.t
+____________________________________________________________________________
+[  2430] By: gsar                                  on 1998/12/01  12:12:50
+    Log: 5.005_54, as released
+ Branch: perl
+       ! Changes MANIFEST pod/perlhist.pod pp_hot.c
+____________________________________________________________________________
+[  2429] By: jhi                                   on 1998/12/01  11:28:39
+    Log: From: Anton Berezin <tobez@plab.ku.dk>
+        To: perl5-porters@perl.org
+        Subject: [PATCH 5.005_54] Configure - hints/freebsd.sh signal handler type
+        Date: 30 Nov 1998 19:46:24 +0100
+        Message-ID: <864srhhvcv.fsf@lion.plab.ku.dk>
+ Branch: cfgperl
+       ! hints/freebsd.sh
+____________________________________________________________________________
+[  2428] By: jhi                                   on 1998/12/01  11:08:16
+    Log: Integrate from _54 mainperl modulo the NetBSD ifdef in util.c.
+ Branch: cfgperl
+      +> (branch 30 files)
+      !> (integrate 71 files)
+____________________________________________________________________________
+[  2427] By: jhi                                   on 1998/12/01  10:51:37
+    Log: Default to accepting a hinted $randfunc even when $csym
+        does not find it.  (the previous defaylt behaviour was not
+        to accept).
+ Branch: cfgperl
+       ! Configure
+____________________________________________________________________________
+[  2426] By: jhi                                   on 1998/12/01  10:13:03
+    Log: Separated the [:foo:] parsing to its own function.
+        Passes all tests.
+ Branch: cfgperl
+       ! regcomp.c
+____________________________________________________________________________
+[  2425] By: jhi                                   on 1998/12/01  08:22:49
+    Log: Typo in comments.
+ Branch: cfgperl
+       ! regexec.c
+____________________________________________________________________________
+[  2424] By: jhi                                   on 1998/12/01  08:21:38
+    Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+        Subject: [PATCH 5.005_*] Debugger 'v' command
+        To: perl5-porters@perl.org (Mailing list Perl5)
+        Date: 1 Dec 1998 07:55:11 +0200
+        Message-ID: <MLIST_199812010534.AAA21371@monk.mps.ohio-state.edu>
+ Branch: cfgperl
+       ! lib/perl5db.pl
+____________________________________________________________________________
+[  2423] By: jhi                                   on 1998/12/01  08:19:08
+    Log: From: pvhp@forte.com (Peter Prymmer)
+        Subject: [PATCH 5.005_03t1 && 5.005_54]dll linkage side decks for OS/390
+        To: perl5-porters@perl.org
+        Date: 1 Dec 1998 07:27:11 +0200
+        Message-ID: <MLIST_9812010508.AA07791@forte.com>
+ Branch: cfgperl
+       ! hints/os390.sh
+____________________________________________________________________________
+[  2417] By: jhi                                   on 1998/11/30  08:14:00
+    Log: s/SCM_CREDENTIALSS/SCM_CREDENTIAL/
+ Branch: cfgperl
+       ! ext/Socket/Socket.xs
+____________________________________________________________________________
+[  2416] By: jhi                                   on 1998/11/30  08:00:15
+    Log: Undo #2395, seems more like a problem in netbsd-current.
+ Branch: cfgperl
+       ! util.c
+
+----------------
+Version 5.005_54
+----------------
+
+____________________________________________________________________________
+[  2414] By: gsar                                  on 1998/11/30  02:23:55
+    Log: more JPL tweaks
+ Branch: perl
+       - jpl/JNI/MANIFEST jpl/PerlInterpreter/Makefile
+       ! Changes MANIFEST jpl/JNI/JNI.pm jpl/README
+____________________________________________________________________________
+[  2413] By: gsar                                  on 1998/11/30  01:35:56
+    Log: stub bin/jpl that just runs JPL::Compile::files()
+ Branch: perl
+       + jpl/bin/jpl
+____________________________________________________________________________
+[  2412] By: gsar                                  on 1998/11/30  01:32:14
+    Log: delete symlink
+ Branch: perl
+       - jpl/bin/jpl
+____________________________________________________________________________
+[  2410] By: gsar                                  on 1998/11/30  01:30:44
+    Log: branch jpl from perlext to perl
+ Branch: perl
+      +> (branch 30 files)
+____________________________________________________________________________
+[  2407] By: gsar                                  on 1998/11/30  01:24:53
+    Log: JPL tweaks to build with 5.005
+ Branch: perlext
+       ! jpl/JNI/JNI.xs jpl/JNI/typemap jpl/JPL/Compile.pm
+       ! jpl/PerlInterpreter/PerlInterpreter.c jpl/README
+____________________________________________________________________________
+[  2406] By: gsar                                  on 1998/11/30  00:55:54
+    Log: integrate changes#2273,2274,2288,2291 from maint-5.004
+ Branch: perl
+       ! Porting/patchls doio.c lib/Sys/Syslog.pm t/op/die_exit.t
+____________________________________________________________________________
+[  2405] By: gsar                                  on 1998/11/30  00:28:55
+    Log: patchlevel up to 54
+ Branch: perl
+       ! patchlevel.h win32/Makefile win32/config_H.bc
+       ! win32/config_H.gc win32/config_H.vc win32/makefile.mk
+____________________________________________________________________________
+[  2403] By: gsar                                  on 1998/11/29  23:35:50
+    Log: integrate cfgperl changes into mainline
+ Branch: perl
+      !> Configure Porting/Glossary Porting/config.sh Porting/config_H
+      !> config_h.SH pod/perlfunc.pod t/op/grent.t t/op/pwent.t util.c
+____________________________________________________________________________
+[  2402] By: gsar                                  on 1998/11/29  23:08:42
+    Log: sync Text::Wrap version number
+ Branch: perl
+       ! lib/Text/Wrap.pm
+____________________________________________________________________________
+[  2401] By: gsar                                  on 1998/11/29  22:56:21
+    Log: textfill.t tweak
+ Branch: perl
+       ! t/lib/textfill.t
+____________________________________________________________________________
+[  2400] By: gsar                                  on 1998/11/29  22:50:41
+    Log: update to Text::Wrap 98.112901 from David Muir Sharnoff
+        <muir@idiom.com>
+ Branch: perl
+       + t/lib/textfill.t
+       ! MANIFEST lib/Text/Wrap.pm
+____________________________________________________________________________
+[  2399] By: gsar                                  on 1998/11/29  22:28:05
+    Log: updated to Text::Wrap 98.112801 from CPAN; one published change
+        has happened without the authors knowledge or consent; the subversive
+        version (which is in 5.00502) breaks one of the tests in the
+        authors testsuite; attempts are being made to find a fix that
+        avoids breaking code already running with the 5.005_02 version
+        From:    David Muir Sharnoff <muir@idiom.com>
+        Date:    Sat, 28 Nov 1998 04:34:17 PST
+        Message-Id: <199811281234.EAA03082@idiom.com>
+        Subject: Updated Text::Wrap, Time::ParseDate, File::Flock
+ Branch: perl
+       ! lib/Text/Wrap.pm t/lib/textwrap.t
+____________________________________________________________________________
+[  2397] By: nick                                  on 1998/11/29  20:13:58
+    Log: Update docs and English.pm for $^C
+ Branch: perl
+       ! lib/English.pm pod/perlvar.pod
+____________________________________________________________________________
+[  2396] By: jhi                                   on 1998/11/29  20:13:03
+    Log: Mirror #2384.
+ Branch: cfgperl
+       ! t/op/pwent.t
+____________________________________________________________________________
+[  2395] By: jhi                                   on 1998/11/29  19:59:12
+    Log: Newer NetBSDs don't have NSIG in <sys/signal.h>, they need <signal.h>.
+ Branch: cfgperl
+       ! util.c
+____________________________________________________________________________
+[  2394] By: gsar                                  on 1998/11/29  19:49:08
+    Log: updated perlreftut.pod
+ Branch: perl
+       ! pod/perlreftut.pod
+____________________________________________________________________________
+[  2393] By: gsar                                  on 1998/11/29  19:31:56
+    Log: misc tweaks
+ Branch: perl
+       ! ext/IO/Makefile.PL lib/Test.pm t/lib/io_poll.t t/op/sort.t
+____________________________________________________________________________
+[  2392] By: gsar                                  on 1998/11/29  19:31:18
+    Log: notes about -DPERL_POLLUTE
+ Branch: perl
+       ! INSTALL pod/perldelta.pod win32/Makefile win32/makefile.mk
+____________________________________________________________________________
+[  2391] By: gsar                                  on 1998/11/29  19:13:52
+    Log: explain various win32 build caveats more clearly
+ Branch: perl
+       ! README.win32 win32/Makefile win32/makefile.mk
+____________________________________________________________________________
+[  2390] By: gsar                                  on 1998/11/29  16:51:59
+    Log: remove I_POLL detection (Configure will do that now)
+ Branch: perl
+       ! ext/IO/Makefile.PL
+____________________________________________________________________________
+[  2389] By: jhi                                   on 1998/11/29  16:39:16
+    Log: Add I_POLL for IO 1.20.
+ Branch: cfgperl
+       ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+       ! config_h.SH
+____________________________________________________________________________
+[  2388] By: gsar                                  on 1998/11/29  16:23:30
+    Log: add p4desc (augments 'p4 describe' output with diffs for new files)
+ Branch: perl
+       + Porting/p4desc
+       ! MANIFEST
+____________________________________________________________________________
+[  2387] By: gsar                                  on 1998/11/29  16:08:03
+    Log: another threads reliability fix: serialize writes to thr->threadsv
+        avoid most uses of PL_na (which is much more inefficient than a
+        simple local); update docs to suit; PL_na now being thr->Tna may
+        be a minor compatibility issue for extensions--will require dTHR
+        outside of XSUBs (those get automatic dTHR)
+ Branch: perl
+       ! XSUB.h djgpp/djgpp.c doio.c doop.c dump.c ext/B/B.xs
+       ! ext/DB_File/DB_File.xs ext/DynaLoader/dl_next.xs
+       ! ext/Opcode/Opcode.xs ext/POSIX/POSIX.xs ext/Thread/Thread.xs
+       ! ext/attrs/attrs.xs gv.c malloc.c mg.c op.c
+       ! os2/OS2/REXX/REXX.xs os2/os2.c perl.c perly.c perly.y
+       ! pod/perlcall.pod pod/perlembed.pod pod/perlguts.pod
+       ! pod/perlxs.pod pp.c pp.h pp_ctl.c pp_hot.c pp_sys.c run.c sv.c
+       ! t/op/pwent.t taint.c toke.c universal.c vmesa/vmesa.c
+       ! vms/ext/Stdio/Stdio.xs vms/perly_c.vms vms/vms.c win32/win32.c
+____________________________________________________________________________
+[  2386] By: jhi                                   on 1998/11/29  15:40:42
+    Log: Tune the "if" entry.
+ Branch: cfgperl
+       ! pod/perlfunc.pod
+____________________________________________________________________________
+[  2385] By: gsar                                  on 1998/11/29  12:40:28
+    Log: various fixes for race conditions under threads: mutex locks based
+        on PL_threadnum were seriously flawed, since it means more than one
+        thread could enter the critical region; PL_na was global instead of
+        thread-local; child thread could finish and free thr structures
+        before Thread->new() got around to creating the Thread object;
+        cv_clone() needed locking, as it mucks with PL_comppad and other
+        global data; new_struct_thread() needed to lock template-thread's
+        mutex while copying its data
+ Branch: perl
+       ! embedvar.h ext/Thread/Thread.xs gv.c op.c perl.c perlvars.h
+       ! pp_hot.c thrdvar.h thread.h util.c win32/win32thread.c
+____________________________________________________________________________
+[  2384] By: gsar                                  on 1998/11/29  10:54:38
+    Log: s/warn/print/ on multiply defined groups
+ Branch: perl
+       ! t/op/grent.t
+____________________________________________________________________________
+[  2383] By: gsar                                  on 1998/11/29  10:48:39
+    Log: backout change#2334
+ Branch: perl
+       ! pod/perlfunc.pod pp_hot.c sv.c thrdvar.h
+____________________________________________________________________________
+[  2382] By: jhi                                   on 1998/11/29  10:33:40
+    Log: Better NetInfo behaviour.
+ Branch: cfgperl
+       ! t/op/grent.t t/op/pwent.t
+____________________________________________________________________________
+[  2381] By: jhi                                   on 1998/11/29  10:08:15
+    Log: Integrate from mainperl.
+ Branch: cfgperl
+      +> ext/IO/ChangeLog ext/IO/lib/IO/Dir.pm ext/IO/lib/IO/Poll.pm
+      +> ext/IO/lib/IO/Socket/INET.pm ext/IO/lib/IO/Socket/UNIX.pm
+      +> ext/IO/poll.c ext/IO/poll.h pod/perlreftut.pod
+      +> t/lib/io_const.t t/lib/io_dir.t t/lib/io_multihomed.t
+      +> t/lib/io_poll.t t/lib/io_unix.t
+      !> (integrate 58 files)
+____________________________________________________________________________
+[  2380] By: gsar                                  on 1998/11/29  08:22:49
+    Log: prefer IO::Handle for IO if FileHandle:: is empty (as suggested by
+        Tim Bunce)
+ Branch: perl
+       ! gv.c
+____________________________________________________________________________
+[  2379] By: gsar                                  on 1998/11/29  07:06:43
+    Log: fix for pat.t failure under USE_THREADS
+ Branch: perl
+       ! pp_ctl.c regexec.c
+____________________________________________________________________________
+[  2378] By: nick                                  on 1998/11/28  22:46:57
+    Log: More C.pm tweaks
+        Save globs even if we have saved cv itself before - may be imported.
+        
+        While we don't save "bootstrap" CV we need to provide a stub,
+        so that if we require it later we don't fall through and attempt
+        to DynaLoad module again.
+        
+        Attempt to save %INC so that "require" does not reload things
+        we have compiled-in (does not work right yet - seems to be due
+        to PL_incgv being created in perl_parse() current scheme setting 
+        GvHV() is "better" than saving the glob, but still does not 
+        work as I expect). 
+ Branch: perl
+       ! ext/B/B/C.pm
+____________________________________________________________________________
+[  2377] By: gsar                                  on 1998/11/28  22:30:38
+    Log: various tweaks; result passes all tests for normal build on Solaris;
+        fails two pat.t tests under USE_THREADS; io_poll.t test#3 fails on
+        win32 due to lack of select() that works on non-socket fds
+ Branch: perl
+       ! ext/IO/poll.c regcomp.c regexec.c scope.c
+       ! t/lib/io_multihomed.t win32/makefile.mk
+____________________________________________________________________________
+[  2376] By: gsar                                  on 1998/11/28  20:44:39
+    Log: add $config_args to perl -V display (suggested by Ilya Zakharevich)
+ Branch: perl
+       ! myconfig
+____________________________________________________________________________
+[  2375] By: gsar                                  on 1998/11/28  20:42:58
+    Log: integrate cfgperl changes into mainline
+ Branch: perl
+      !> Configure ext/POSIX/hints/dynixptx.pl myconfig t/op/grent.t
+      !> t/op/pwent.t t/op/undef.t t/pragma/locale.t util.c
+____________________________________________________________________________
+[  2374] By: gsar                                  on 1998/11/28  20:02:03
+    Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+        Date: Thu, 5 Nov 1998 02:21:12 -0500 (EST)
+        Message-Id: <199811050721.CAA27998@monk.mps.ohio-state.edu>
+        Subject: [PATCH 5.00553] Yet another OS/2 patch
+ Branch: perl
+       ! os2/Changes os2/Makefile.SHs os2/os2.c t/pragma/warn/op
+____________________________________________________________________________
+[  2373] By: gsar                                  on 1998/11/28  19:30:06
+    Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+        Date: Sat, 28 Nov 1998 01:51:56 -0500 (EST)
+        Message-Id: <199811280651.BAA18095@monk.mps.ohio-state.edu>
+        Subject: [PATCH 5.005_53] Change $#+
+ Branch: perl
+       ! mg.c pod/perlvar.pod t/op/pat.t
+____________________________________________________________________________
+[  2372] By: gsar                                  on 1998/11/28  19:28:00
+    Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+        Date: Sat, 28 Nov 1998 00:33:17 -0500 (EST)
+        Message-Id: <199811280533.AAA25654@monk.mps.ohio-state.edu>
+        Subject: [PATCH 5.005_53] Finishing off SNOBOL: $1 in (?{})
+ Branch: perl
+       ! embedvar.h mg.c objXSUB.h perl.c regexec.c t/op/pat.t
+       ! thrdvar.h
+____________________________________________________________________________
+[  2371] By: gsar                                  on 1998/11/28  19:23:53
+    Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+        Date: Fri, 27 Nov 1998 16:16:48 -0500 (EST)
+        Message-Id: <199811272116.QAA03502@monk.mps.ohio-state.edu>
+        Subject: [PATCH 5.005_53] better -Mre=debugcolor
+ Branch: perl
+       ! embedvar.h objXSUB.h regexec.c thrdvar.h
+____________________________________________________________________________
+[  2370] By: gsar                                  on 1998/11/28  19:21:17
+    Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+        Date: Fri, 27 Nov 1998 15:22:19 -0500 (EST)
+        Message-Id: <199811272022.PAA17874@monk.mps.ohio-state.edu>
+        Subject: [PATCH 5.005_*] regcolors
+ Branch: perl
+       ! embed.h global.sym objXSUB.h proto.h regcomp.c regexec.c
+____________________________________________________________________________
+[  2369] By: gsar                                  on 1998/11/28  19:00:15
+    Log: allow final period in a file (not followed by a newline) to
+        terminate format spec
+ Branch: perl
+       ! toke.c
+____________________________________________________________________________
+[  2368] By: gsar                                  on 1998/11/28  18:58:25
+    Log: Liblist tweak suggested by Swen Thuemmler <Swen.Thuemmler@paderlinx.de>;
+        add C<$Config{installarchlib}/CORE> to the default locations searched
+        on win32
+ Branch: perl
+       ! lib/ExtUtils/Liblist.pm
+____________________________________________________________________________
+[  2367] By: gsar                                  on 1998/11/28  18:46:05
+    Log: applied suggested patch with PERL_OBJECT tweaks
+        From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+        Date: Thu, 26 Nov 1998 02:46:20 -0500 (EST)
+        Message-Id: <199811260746.CAA23164@monk.mps.ohio-state.edu>
+        Subject: [PATCH 5.005_53] Enable $_ and pos() inside (?{ CODE }) in RExen
+ Branch: perl
+       ! embed.h embed.pl embedvar.h objXSUB.h pp_ctl.c proto.h
+       ! regexec.c t/op/pat.t thrdvar.h
+____________________________________________________________________________
+[  2366] By: gsar                                  on 1998/11/28  18:38:34
+    Log: additional documentation for qr//
+        From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+        Message-Id: <199811260751.CAA24560@monk.mps.ohio-state.edu>
+        Date: Thu, 26 Nov 1998 02:51:09 -0500 (EST)
+        Subject: [PATCH 5.005_*] Documentation (fwd)
+ Branch: perl
+       ! pod/perlfunc.pod pod/perlop.pod pod/perlpod.pod
+____________________________________________________________________________
+[  2365] By: gsar                                  on 1998/11/28  18:35:35
+    Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+        Date: Wed, 25 Nov 1998 23:33:45 -0500 (EST)
+        Message-Id: <199811260433.XAA29281@monk.mps.ohio-state.edu>
+        Subject: [PATCH 5.005_*] Fix \G in REx without //g
+ Branch: perl
+       ! cop.h embedvar.h objXSUB.h pp.c pp_ctl.c pp_hot.c regexec.c
+       ! regexp.h t/op/pat.t thrdvar.h
+____________________________________________________________________________
+[  2364] By: gsar                                  on 1998/11/28  18:24:20
+    Log: update Test.pm to Test-1.12; tweak 're' detection
+ Branch: perl
+       ! lib/Test.pm
+____________________________________________________________________________
+[  2363] By: gsar                                  on 1998/11/28  18:12:04
+    Log: avoid command-line quoting portability problems in lex_assign.t
+ Branch: perl
+       ! t/op/lex_assign.t
+____________________________________________________________________________
+[  2362] By: gsar                                  on 1998/11/28  18:08:50
+    Log: From: John Tobey <jtobey@channel1.com>
+        Date: Thu, 19 Nov 1998 14:14:15 -0500 (EST)
+        Message-Id: <m0zgZWx-000FOgC@feynman.localnet>
+        Subject: PATCH: document English.pm sawampersand and thread issues
+ Branch: perl
+       ! lib/English.pm pod/perlvar.pod
+____________________________________________________________________________
+[  2361] By: gsar                                  on 1998/11/28  18:03:04
+    Log: fix uninitialized warnings
+        From: Brian Callaghan <callagh@itginc.com>
+        Date: Thu, 19 Nov 1998 17:49:10 -0800
+        Message-Id: <3654CA96.B64FCAEB@itginc.com>
+        Subject: Complete.pm patch (version 1.1)
+ Branch: perl
+       ! lib/Term/Complete.pm
+____________________________________________________________________________
+[  2360] By: gsar                                  on 1998/11/28  17:59:16
+    Log: s/Array/List/ suggested by John Tobey
+ Branch: perl
+       ! pod/perldata.pod
+____________________________________________________________________________
+[  2359] By: gsar                                  on 1998/11/28  17:47:48
+    Log: update tie() entry in perlfunc to reflect TIEARRAY and TIEHANDLE
+ Branch: perl
+       ! lib/Tie/Handle.pm pod/perlfunc.pod
+____________________________________________________________________________
+[  2358] By: jhi                                   on 1998/11/28  17:23:15
+    Log: Revamp the locale tests.
+        (0) Instead of rewiring a few locales scan for them.
+        (1) Bogus test #101 removed.
+        (2) All the locales are checked, the lists of failed
+        and non-failed ones are displayed.
+        (3) The test #103 is again 'active' so that it may fail.
+        (4) To balance (3) a hopefully pacifying message is shown
+        if the #103 fails.
+ Branch: cfgperl
+       ! t/pragma/locale.t
+____________________________________________________________________________
+[  2357] By: gsar                                  on 1998/11/28  17:21:07
+    Log: add perlreftut.pod
+ Branch: perl
+       + pod/perlreftut.pod
+       ! MANIFEST pod/Makefile pod/buildtoc pod/perl.pod
+       ! pod/perlref.pod pod/roffitall vms/descrip_mms.template
+       ! win32/pod.mak
+____________________________________________________________________________
+[  2356] By: jhi                                   on 1998/11/28  16:58:01
+    Log: Change #2346 fallout.
+ Branch: cfgperl
+       ! t/op/undef.t
+____________________________________________________________________________
+[  2355] By: gsar                                  on 1998/11/28  16:46:43
+    Log: IO.xs tweaks; avoid coredump in io_xs.t; remove newCONSTSUB();
+        ANSI prototypes
+ Branch: perl
+       ! ext/IO/IO.xs
+____________________________________________________________________________
+[  2354] By: gsar                                  on 1998/11/28  16:08:07
+    Log: add IO-1.20; mess with t/lib/io_*.t in an attempt to
+        keep platform hacks that aren't in the 1.20 dist; add new files
+        to MANIFEST; hack Makefile.PL; result hasn't been tested
+        anywhere
+ Branch: perl
+       + ext/IO/ChangeLog ext/IO/lib/IO/Dir.pm ext/IO/lib/IO/Poll.pm
+       + ext/IO/lib/IO/Socket/INET.pm ext/IO/lib/IO/Socket/UNIX.pm
+       + ext/IO/poll.c ext/IO/poll.h t/lib/io_const.t t/lib/io_dir.t
+       + t/lib/io_multihomed.t t/lib/io_poll.t t/lib/io_unix.t
+       ! MANIFEST ext/IO/IO.pm ext/IO/IO.xs ext/IO/Makefile.PL
+       ! ext/IO/README ext/IO/lib/IO/File.pm ext/IO/lib/IO/Handle.pm
+       ! ext/IO/lib/IO/Pipe.pm ext/IO/lib/IO/Seekable.pm
+       ! ext/IO/lib/IO/Select.pm ext/IO/lib/IO/Socket.pm
+       ! t/lib/io_sock.t t/lib/io_udp.t
+____________________________________________________________________________
+[  2353] By: jhi                                   on 1998/11/28  15:51:03
+    Log: Locale collation, ctype, and numeric, were initialized wrong
+        (if LC_ALL or LANG were unset, so were the collation/ctype/numeric),
+        as reported by
+        
+        From: Ilya.Sandler@etak.com (Ilya Sandler)
+        Subject: a bug in locale handling: LC_COLLATE ignored sometimes
+        To: perlbug@perl.com
+        Date: 25 Nov 1998 04:53:52 +0200
+        Message-ID: <MLIST_199811250226.SAA12590@axi001.etak.sw>
+ Branch: cfgperl
+       ! util.c
+____________________________________________________________________________
+[  2352] By: nick                                  on 1998/11/28  15:21:59
+    Log: Implement $^C to allow perl access to -c flag - I think this 
+        was agreed once...
+ Branch: perl
+       ! gv.c mg.c
+____________________________________________________________________________
+[  2351] By: jhi                                   on 1998/11/28  15:14:24
+    Log: Change #2251 fixup.
+ Branch: cfgperl
+       ! myconfig
+____________________________________________________________________________
+[  2350] By: jhi                                   on 1998/11/28  14:58:19
+    Log: Integrate from mainperl.
+ Branch: cfgperl
+      +> ext/Devel/Peek/Changes ext/Devel/Peek/Makefile.PL
+      +> ext/Devel/Peek/Peek.pm ext/Devel/Peek/Peek.xs
+      +> pod/perl5005delta.pod
+      !> (integrate 49 files)
+____________________________________________________________________________
+[  2349] By: jhi                                   on 1998/11/28  14:27:36
+    Log: Passwd and group file groveling.
+ Branch: cfgperl
+       ! t/op/grent.t t/op/pwent.t
+____________________________________________________________________________
+[  2348] By: gsar                                  on 1998/11/28  14:09:50
+    Log: more conservative version of changes#2345,2346,2347; those break
+        C<defined(@{"foo::ISA"})> which seems to be extensively used in
+        the libs :-(
+ Branch: perl
+       ! pp.c t/op/method.t
+____________________________________________________________________________
+[  2347] By: gsar                                  on 1998/11/28  13:36:08
+    Log: tweak bogus test
+ Branch: perl
+       ! t/op/method.t
+____________________________________________________________________________
+[  2346] By: gsar                                  on 1998/11/28  13:20:34
+    Log: test cases for previous change
+ Branch: perl
+       ! t/op/undef.t
+____________________________________________________________________________
+[  2345] By: gsar                                  on 1998/11/28  13:07:17
+    Log: fix typo in pp_defined() causing C<defined %tied> to fail
+ Branch: perl
+       ! pp.c
+____________________________________________________________________________
+[  2344] By: gsar                                  on 1998/11/28  13:03:29
+    Log: s/comment/comment_t/ tweak (suggested by John Gorman
+        <jgorman@webbysoft.com>)
+ Branch: perl
+       ! ext/B/B/Assembler.pm ext/B/B/Disassembler.pm
+____________________________________________________________________________
+[  2343] By: gsar                                  on 1998/11/28  12:52:40
+    Log: add (stub) perldelta.pod
+ Branch: perl
+       + pod/perldelta.pod
+____________________________________________________________________________
+[  2342] By: gsar                                  on 1998/11/28  12:49:26
+    Log: rename perldelta.pod to perl5005delta.pod in preparation for
+        starting a new one
+ Branch: perl
+      +> pod/perl5005delta.pod
+       - pod/perldelta.pod
+       ! MANIFEST pod/perl.pod
+____________________________________________________________________________
+[  2341] By: gsar                                  on 1998/11/28  12:41:55
+    Log: fix MALLOC_LOCK #define
+ Branch: perl
+       ! malloc.c
+____________________________________________________________________________
+[  2340] By: gsar                                  on 1998/11/28  12:18:23
+    Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+        Date: Sun, 15 Nov 1998 20:25:50 -0500 (EST)
+        Message-Id: <199811160125.UAA05268@monk.mps.ohio-state.edu>
+        Subject: [PATCH 5.005_53] OS/2 events get closer to Perl
+ Branch: perl
+       ! os2/Changes os2/os2.c os2/os2.sym os2/os2ish.h
+____________________________________________________________________________
+[  2339] By: jhi                                   on 1998/11/28  11:59:01
+    Log: Add -lm to dynix/ptx POSIX hints.
+        From: "Martin J. Bligh" <mbligh@sequent.com>
+        To: jhi@iki.fi
+        Subject: Re: Making Perl work on DYNIX/ptx
+        Date: Wed, 25 Nov 1998 10:34:41 -0800
+        Message-ID: <1457015007.911990081@w-186d219.rhe.sequent.com>
+ Branch: cfgperl
+       ! ext/POSIX/hints/dynixptx.pl
+____________________________________________________________________________
+[  2338] By: jhi                                   on 1998/11/28  11:57:19
+    Log: Detypo.
+ Branch: cfgperl
+       ! lib/filetest.pm
+____________________________________________________________________________
+[  2337] By: jhi                                   on 1998/11/28  11:56:29
+    Log: Better LD_LIBRARY_PATH instructions for Bourneists.
+ Branch: cfgperl
+       ! Configure
+____________________________________________________________________________
+[  2336] By: gsar                                  on 1998/11/28  11:41:14
+    Log: teach CPAN.pm to ignore beta perl distributions when looking for
+        modules
+        From: root@dogberry.rutgers.edu (root)
+        Date: Thu, 12 Nov 1998 23:08:39 -0500
+        Message-Id: <199811130408.XAA10578@dogberry.rutgers.edu>
+        Subject: recompile tries getting a perl distribution
+ Branch: perl
+       ! lib/CPAN.pm
+____________________________________________________________________________
+[  2335] By: gsar                                  on 1998/11/28  11:27:46
+    Log: make $1 et al readonly under threads; make C<undef $1> fail like
+        C<$1 = undef> does
+ Branch: perl
+       ! op.c pp.c t/op/undef.t
+____________________________________________________________________________
+[  2334] By: gsar                                  on 1998/11/28  10:24:52
+    Log: s/Regexp/re/ and clarify policy on lowercased object namespaces
+ Branch: perl
+       ! pod/perlfunc.pod pp_hot.c sv.c thrdvar.h
+____________________________________________________________________________
+[  2333] By: gsar                                  on 1998/11/28  09:36:40
+    Log: document changed PERL_HASH()
+ Branch: perl
+       ! pod/perlfunc.pod pod/perlguts.pod
+____________________________________________________________________________
+[  2332] By: nick                                  on 1998/11/27  21:10:27
+    Log: Handle INIT list in C.pm
+        1. Provide init_av() from B.xs
+        2. Export it in B.pm
+        3. Use it in C.pm
+        Also disable some pruning in savecv() which seems to undo
+        my previous patch.
+        Experimental feature - save pathnames of .so files in easily 
+        grep-able form for use in wrapper to feed to linker.  
+ Branch: perl
+       ! ext/B/B.pm ext/B/B.xs ext/B/B/C.pm
+____________________________________________________________________________
+[  2327] By: gsar                                  on 1998/11/27  15:12:01
+    Log: integrate change#2315 from maint-5.005
+ Branch: perl
+       ! t/op/sort.t
+      !> op.c sv.c
+____________________________________________________________________________
+[  2326] By: gsar                                  on 1998/11/27  15:00:42
+    Log: integrate changes#2304,2305,2306,2308 from maint-5.005
+ Branch: perl
+      !> ext/DynaLoader/dl_mpeix.xs installperl lib/ExtUtils/MM_Unix.pm
+      !> lib/ExtUtils/MM_VMS.pm lib/ExtUtils/MakeMaker.pm
+      !> lib/ExtUtils/typemap
+____________________________________________________________________________
+[  2325] By: gsar                                  on 1998/11/27  14:46:18
+    Log: malloc bugfix and documentation from Ilya Zakharevich
+        Date: Tue, 24 Nov 1998 17:24:55 -0500 (EST)
+        Message-Id: <199811242224.RAA22618@monk.mps.ohio-state.edu>
+        Subject: [PATCH 5.005_*] Re: Internal coredump
+        --
+        Date: Thu, 26 Nov 1998 03:06:10 -0500 (EST)
+        Message-Id: <199811260806.DAA28913@monk.mps.ohio-state.edu>
+        Subject: [PATCH 5.005_*] malloc.c documentation
+ Branch: perl
+       ! malloc.c
+____________________________________________________________________________
+[  2324] By: gsar                                  on 1998/11/27  14:41:38
+    Log: B::C tweaks to allow Tk compiles from Nick Ing-Simmons
+ Branch: perl
+       ! ext/B/B/C.pm
+____________________________________________________________________________
+[  2323] By: gsar                                  on 1998/11/27  14:33:44
+    Log: From: maeda@src.ricoh.co.jp
+        Date: Tue, 24 Nov 1998 10:37:45 +0900
+        Message-Id: <199811240137.KAA05867@luna.src.ricoh.co.jp>
+        Subject: format "..." bug
+ Branch: perl
+       ! pp_ctl.c t/op/write.t
+____________________________________________________________________________
+[  2322] By: gsar                                  on 1998/11/27  14:20:12
+    Log: add ext/Devel/Peek
+        From: jan.dubois@ibm.net (Jan Dubois)
+        Date: Mon, 23 Nov 1998 00:48:11 +0100
+        Message-ID: <36589ec9.49964585@smtp1.ibm.net>
+        Subject: [PATCH 5.005_53] Devel::Peek integration
+ Branch: perl
+       + ext/Devel/Peek/Changes ext/Devel/Peek/Makefile.PL
+       + ext/Devel/Peek/Peek.pm ext/Devel/Peek/Peek.xs
+       ! MANIFEST dump.c embed.h embedvar.h global.sym intrpvar.h
+       ! objXSUB.h perl.c perl.h proto.h sv.c sv.h thrdvar.h
+       ! win32/GenCAPI.pl win32/Makefile win32/makefile.mk
+____________________________________________________________________________
+[  2321] By: gsar                                  on 1998/11/27  13:03:08
+    Log: ensure 'make regen_headers' even without perl installed
+        (suggested by Ilya Zakharevich)
+ Branch: perl
+       ! bytecode.pl warning.pl
+____________________________________________________________________________
+[  2320] By: gsar                                  on 1998/11/27  12:58:36
+    Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+        Date: Mon, 9 Nov 1998 19:03:25 -0500 (EST)
+        Message-Id: <199811100003.TAA05815@monk.mps.ohio-state.edu>
+        Subject: [PATCH 5.005_*] Cosmetic malloc patch
+ Branch: perl
+       ! malloc.c
+____________________________________________________________________________
+[  2319] By: gsar                                  on 1998/11/27  12:56:13
+    Log: eliminate dup hunk from integration
+ Branch: perl
+       ! lib/filetest.pm perl.h
+____________________________________________________________________________
+[  2318] By: gsar                                  on 1998/11/27  12:50:08
+    Log: integrate cfgperl changes into mainline
+ Branch: perl
+      +> ext/DB_File/hints/dynixptx.pl ext/POSIX/hints/dynixptx.pl
+       ! pod/perlfaq4.pod
+      !> (integrate 30 files)
+____________________________________________________________________________
+[  2317] By: jhi                                   on 1998/11/27  11:38:13
+    Log: C<-x>.
+ Branch: cfgperl
+       ! lib/filetest.pm
+____________________________________________________________________________
+[  2316] By: jhi                                   on 1998/11/27  11:10:22
+    Log: Integrate from mainperl.
+ Branch: cfgperl
+      !> XSUB.h embed.h embed.pl embedvar.h ext/Thread/Thread.xs
+      !> iperlsys.h mg.c objXSUB.h op.c pp_ctl.c pp_sys.c proto.h
+      !> t/comp/package.t t/lib/dumper.t t/pragma/warn/pp_ctl
+      !> universal.c util.c win32/GenCAPI.pl win32/win32.h
+      !> win32/win32sck.c
+____________________________________________________________________________
+[  2315] By: gbarr                                 on 1998/11/27  05:16:50
+    Log: integrate change#2246 from mainline, while still allowing
+        C<sort $globref @foo>
+        
+        allow C<sort $coderef @foo>
+ Branch: maint-5.005/perl
+       ! op.c sv.c
+      !> t/op/sort.t
+____________________________________________________________________________
+[  2308] By: gbarr                                 on 1998/11/27  00:11:44
+    Log: Updates for MPE/iX DynaLoader and installperl, via private mail
+        forwarded by Jarkko Hietaniemi from Mark Bixby
+ Branch: maint-5.005/perl
+       ! ext/DynaLoader/dl_mpeix.xs installperl
+____________________________________________________________________________
+[  2306] By: gbarr                                 on 1998/11/26  23:44:47
+    Log: Allow PL_FILES to have multiple targets from one source by allowing
+        an array ref as the value in the hash
+ Branch: maint-5.005/perl
+       ! lib/ExtUtils/MM_Unix.pm lib/ExtUtils/MM_VMS.pm
+       ! lib/ExtUtils/MakeMaker.pm
+____________________________________________________________________________
+[  2305] By: gbarr                                 on 1998/11/26  23:38:06
+    Log: fix unsigned variables to use SvUV and sv_setuv
+ Branch: maint-5.005/perl
+       ! lib/ExtUtils/typemap
+____________________________________________________________________________
+[  2304] By: gbarr                                 on 1998/11/26  23:36:17
+    Log: Fix embeded \n in ABSTRACT and <> in AUTHOR
+ Branch: maint-5.005/perl
+       ! lib/ExtUtils/MM_Unix.pm
+____________________________________________________________________________
+[  2301] By: gsar                                  on 1998/11/26  10:16:54
+    Log: fix PL_defoutgv leak under threads
+ Branch: perl
+       ! ext/Thread/Thread.xs
+____________________________________________________________________________
+[  2300] By: gsar                                  on 1998/11/26  09:04:44
+    Log: properly free temporaries created by threads
+ Branch: perl
+       ! ext/Thread/Thread.xs
+____________________________________________________________________________
+[  2299] By: gsar                                  on 1998/11/26  06:51:16
+    Log: fix C<if (...) { package Foo; ... }> misoptimization that fails
+        to set the package for the block properly
+ Branch: perl
+       ! op.c t/comp/package.t t/lib/dumper.t
+____________________________________________________________________________
+[  2298] By: nick                                  on 1998/11/24  22:04:20
+    Log: Part-1 of tweaks to allow Tk to be "compiled"
+        Make XS_UNIVERSAL_xxx non-static so they can be found in libperl.
+        (May also need attention to exports etc. - to follow.)
+ Branch: perl
+       ! universal.c
+____________________________________________________________________________
+[  2294] By: jhi                                   on 1998/11/23  10:44:26
+    Log: The new socket tests need in some platforms
+        to #include <sys/types.h>.
+ Branch: cfgperl
+       ! Configure
+____________________________________________________________________________
+[  2293] By: jhi                                   on 1998/11/23  10:33:42
+    Log: From: Gerben Wierda <G.C.Th.Wierda@AWT.nl>
+        To: Jarkko Hietaniemi <jhi@cc.hut.fi>
+        Subject: Re: Test results for perl5.005_53 under NEXTSTEP 3.3 (intel)
+        Date: Mon, 23 Nov 1998 10:07:04 +0100
+        Message-Id: <9811230907.AA06484@AWT.nl>
+        
+        NeXTstep NetInfo uses nidump to get the user/group databases.
+ Branch: cfgperl
+       ! t/op/grent.t t/op/pwent.t
+____________________________________________________________________________
+[  2291] By: TimBunce                              on 1998/11/22  22:23:09
+    Log: Updated Porting/patchls utility.
+ Branch: maint-5.004/perl
+       ! Porting/patchls
+____________________________________________________________________________
+[  2288] By: TimBunce                              on 1998/11/22  21:46:11
+    Log: Title:  "Buglet in Sys::Syslog.pm (with fix)"
+        From:  Henrik Tougaard <ht.000@foa.dk>
+        Msg-ID:  <Pine.OSF.3.95.981117092651.1492C-100000@sula.pensam.dk>
+        Files:  lib/Sys/Syslog.pm
+ Branch: maint-5.004/perl
+       ! lib/Sys/Syslog.pm
+____________________________________________________________________________
+[  2286] By: jhi                                   on 1998/11/22  19:08:42
+    Log: Change#2284 aid: allow also for plain old MSG_ and SCM_ #defines.
+ Branch: cfgperl
+       ! ext/Socket/Socket.xs
+____________________________________________________________________________
+[  2285] By: jhi                                   on 1998/11/22  18:21:07
+    Log: MSG_PROXY for GNU/Hurd (previously we believed that
+        all GNU libc platforms have MSG_PROXY.  Untrue).
+        In fact this ended up as a major MSG_* and SCM_*
+        update.  The MSG_XXX known to be enums in some
+        versions of the glibc are now probed for and respective
+        HAS_MSG_XXX are defined.  While I was at it I noticed
+        SCM_RIGHTS being similarly an enum.  This reminded me of
+        an ancient discussion in perl5-porters:
+        http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/9612/msg01017.html
+        The BSD socket interface has a nifty feature for passing
+        file descriptors and credentials--via sockets.  It may be
+        too late to add this functionality to the CORE but
+        at least Configure now probes for the functions,
+        structs, and includes, defining the appropriate
+        HAS_YYY and I_ZZZ, and the Socket extension exports
+        the constants, in case somebody wants to write an
+        extension for this interface.
+ Branch: cfgperl
+       ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+       ! config_h.SH ext/Socket/Socket.pm ext/Socket/Socket.xs
+       ! iperlsys.h
+____________________________________________________________________________
+[  2284] By: jhi                                   on 1998/11/22  18:13:21
+    Log: perlhist.pod 1.54, containing 5_53.
+ Branch: cfgperl
+       ! pod/perlhist.pod
+____________________________________________________________________________
+[  2274] By: TimBunce                              on 1998/11/22  16:25:46
+    Log: Preserve errno around fcntl(fd,F_SETFD,fd > maxsysfd) in do_open()
+ Branch: maint-5.004/perl
+       ! doio.c
+____________________________________________________________________________
+[  2273] By: TimBunce                              on 1998/11/22  16:17:43
+    Log: Improve op/die_exit.t test for implicit close changing $!
+ Branch: maint-5.004/perl
+       ! t/op/die_exit.t
+____________________________________________________________________________
+[  2268] By: jhi                                   on 1998/11/22  14:44:11
+    Log: Fix thinko.
+ Branch: cfgperl
+       ! hints/dynixptx.sh
+____________________________________________________________________________
+[  2267] By: jhi                                   on 1998/11/22  13:19:41
+    Log: Document the d_socket override.
+ Branch: cfgperl
+       ! hints/dynixptx.sh
+____________________________________________________________________________
+[  2266] By: jhi                                   on 1998/11/22  12:12:29
+    Log: From: John Tobey <jtobey@channel1.com>
+        Subject: [PATCH] perlfaq typos
+        To: perl5-porters@perl.com
+        Date: 22 Nov 1998 04:25:15 +0200
+        Message-ID: <MLIST_m0zhPeF-000FOgC@feynman.localnet>
+ Branch: cfgperl
+       ! pod/perlfaq3.pod pod/perlfaq4.pod pod/perlfaq5.pod
+       ! pod/perlfaq7.pod pod/perlfaq8.pod
+____________________________________________________________________________
+[  2265] By: jhi                                   on 1998/11/22  12:06:29
+    Log: From: pmarquess@bfsec.bt.co.uk (Paul Marquess)
+        Subject: DB_File 1.61 patch for 5.005_53 & 5.005_02
+        Newsgroups: hut.lists.perl5-porters
+        To: gsar@engin.umich.edu (Gurusamy Sarathy)
+        Cc: perl5-porters@perl.org (Perl5 Porters)
+        Date: 20 Nov 1998 12:20:41 +0200
+ Branch: cfgperl
+       ! ext/DB_File/Changes ext/DB_File/DB_File.pm
+       ! ext/DB_File/DB_File.xs
+____________________________________________________________________________
+[  2264] By: jhi                                   on 1998/11/22  11:55:09
+    Log: NeXTstep /etc/group and /etc/passwd are used only at boot time,
+        From: Gerben Wierda <G.C.Th.Wierda@AWT.nl>
+        Subject: Test results for perl5.005_53 under NEXTSTEP 3.3 (intel)
+        To: perlbug@perl.com
+        Date: 20 Nov 1998 18:39:06 +0200
+        Lines: 47
+        Message-ID: <MLIST_9811201533.AA22148@AWT.nl>
+ Branch: cfgperl
+       ! t/op/grent.t t/op/pwent.t
+____________________________________________________________________________
+[  2263] By: jhi                                   on 1998/11/22  11:42:59
+    Log: Permission testing is tricky when we have too much power.
+        Problem reported in
+        From: Gerben Wierda <G.C.Th.Wierda@AWT.nl>
+        Subject: Test results for perl5.005_53 under NEXTSTEP 3.3 (intel)
+        To: perlbug@perl.com
+        Date: 20 Nov 1998 18:39:06 +0200
+        Message-ID: <MLIST_9811201533.AA22148@AWT.nl>
+ Branch: cfgperl
+       ! t/op/filetest.t
+____________________________________________________________________________
+[  2262] By: gsar                                  on 1998/11/22  11:37:02
+    Log: fix broken CAPI generation
+ Branch: perl
+       ! win32/GenCAPI.pl
+____________________________________________________________________________
+[  2261] By: jhi                                   on 1998/11/22  11:17:00
+    Log: -x should be C<-x>, reported by Gerben Wierda.
+ Branch: cfgperl
+       ! pod/perlfunc.pod
+____________________________________________________________________________
+[  2260] By: gsar                                  on 1998/11/22  11:12:02
+    Log: phase 2 of PERL_OBJECT cleanup; objXSUB.h autogeneration
+ Branch: perl
+       ! XSUB.h embed.h embed.pl embedvar.h iperlsys.h objXSUB.h
+       ! proto.h
+____________________________________________________________________________
+[  2259] By: jhi                                   on 1998/11/22  11:06:40
+    Log: From: "Kurt D. Starsinic" <kstar@chapin.edu>
+        Subject: Re: [PATCH] Re: pod2man bug in date generated line
+        To: Albert Dvornik <bert@genscan.com>, "Larry W. Virden" <lvirden@cas.org>
+        Cc: perlbug@perl.com
+        Date: 20 Nov 1998 21:30:17 +0200
+        Message-ID: <MLIST_19981120131523.A464@O2.chapin.edu>
+ Branch: cfgperl
+       ! pod/pod2man.PL
+____________________________________________________________________________
+[  2256] By: jhi                                   on 1998/11/21  10:44:01
+    Log: From: Thomas Bowditch <bowditch@inmet.com>
+        Subject: Benchmark.pm suggestion
+        To: jhi@iki.fi, Tim.Bunce@ig.co.uk
+        Date: Fri, 20 Nov 1998 17:43:46 -0500
+        Message-Id: <199811202243.RAA26252@harp.camb.inmet.com>
+        
+        Added timesum().
+ Branch: cfgperl
+       ! lib/Benchmark.pm
+____________________________________________________________________________
+[  2255] By: gsar                                  on 1998/11/21  08:45:06
+    Log: another win32 portability fix: make sysread() and syswrite()
+        work on sockets
+ Branch: perl
+       ! pp_sys.c win32/win32.h
+____________________________________________________________________________
+[  2254] By: gsar                                  on 1998/11/21  07:49:06
+    Log: win32_recvfrom() compatibility fix
+ Branch: perl
+       ! win32/win32sck.c
+____________________________________________________________________________
+[  2253] By: jhi                                   on 1998/11/20  08:22:06
+    Log: From: Mark Bixby <markb@spock.dis.cccd.edu>
+        To: jhi@iki.fi
+        Subject: MPE/iX Perl 5.005_02 oops
+        Date: Thu, 19 Nov 1998 17:10:45 -0800 (PST)
+        Message-Id: <199811200110.RAA07395@spock.dis.cccd.edu>
+ Branch: cfgperl
+       ! ext/DynaLoader/dl_mpeix.xs installperl
+____________________________________________________________________________
+[  2252] By: gsar                                  on 1998/11/19  17:38:03
+    Log: mess_sv tweak for change#2249
+ Branch: perl
+       ! util.c
+____________________________________________________________________________
+[  2251] By: jhi                                   on 1998/11/18  12:32:19
+    Log: Display use64bits and usemultiplicity but only if necessary.
+ Branch: cfgperl
+       ! myconfig
+____________________________________________________________________________
+[  2250] By: jhi                                   on 1998/11/18  12:26:50
+    Log: From: Horst von Brand <vonbrand@sleipnir.valparaiso.cl> 
+        Subject: pp.c uses 'unsigned Quad_t'
+        To: perlbug@perl.com 
+        Date: Sun, 15 Nov 1998 20:57:05 -0300 
+        Message-Id: <199811152357.UAA12768@sleipnir.valparaiso.cl>
+ Branch: cfgperl
+       ! perl.h pp.c
+____________________________________________________________________________
+[  2249] By: gsar                                  on 1998/11/18  05:43:11
+    Log: use PL_mess_sv only during global destruction (fixes problems with
+        overlapping invocations of form()/warn()/die()/croak() trampling on
+        each other's messages)
+ Branch: perl
+       ! mg.c util.c
+____________________________________________________________________________
+[  2248] By: gsar                                  on 1998/11/18  05:39:36
+    Log: tweak change#2245 to skip previous message if any
+ Branch: perl
+       ! pp_ctl.c t/pragma/warn/pp_ctl
+____________________________________________________________________________
+[  2247] By: jhi                                   on 1998/11/17  11:46:56
+    Log: Integrate from mainperl.
+ Branch: cfgperl
+      !> (integrate 26 files)
+____________________________________________________________________________
+[  2246] By: gsar                                  on 1998/11/17  09:41:10
+    Log: allow C<sort $coderef @foo>
+ Branch: perl
+       ! op.c t/op/sort.t t/pragma/overload.t
+____________________________________________________________________________
+[  2245] By: gsar                                  on 1998/11/17  08:28:26
+    Log: propagate failures in DESTROY() as (optional) warnings
+ Branch: perl
+       ! pod/perldiag.pod pp_ctl.c t/pragma/warn/pp_ctl
+____________________________________________________________________________
+[  2244] By: gsar                                  on 1998/11/17  07:43:08
+    Log: ensure PL_dirty is reinit-ed properly under -DMULTIPLICITY
+ Branch: perl
+       ! perl.c thrdvar.h
+____________________________________________________________________________
+[  2243] By: gsar                                  on 1998/11/17  07:40:09
+    Log: sort WARN_FOO symbols to avoid hash traversal order dependency
+ Branch: perl
+       ! lib/warning.pm warning.h warning.pl
+____________________________________________________________________________
+[  2242] By: gsar                                  on 1998/11/17  06:32:39
+    Log: fix skipspace() to properly account for newlines in eval''-ed
+        strings (caused bogus line numbers in diagnostics and debugger)
+ Branch: perl
+       ! t/pragma/warn/pp_ctl t/pragma/warn/toke toke.c
+____________________________________________________________________________
+[  2241] By: gsar                                  on 1998/11/17  03:48:12
+    Log: s/Perl_utf8skip/PL_utf8skip/g
+ Branch: perl
+       ! embed.h embed.pl global.sym globvar.sym regexec.c utf8.h
+____________________________________________________________________________
+[  2240] By: gsar                                  on 1998/11/14  06:09:06
+    Log: rework op/groups.t
+ Branch: perl
+       ! t/op/filetest.t t/op/groups.t
+____________________________________________________________________________
+[  2235] By: gsar                                  on 1998/11/14  00:17:05
+    Log: catch a neophyte trap: open(<FH>), close(<FH>) etc.
+ Branch: perl
+       ! op.c
+____________________________________________________________________________
+[  2234] By: gsar                                  on 1998/11/14  00:14:02
+    Log: update Changes
+ Branch: perl
+       ! Changes win32/config.bc win32/config.gc win32/config.vc
+____________________________________________________________________________
+[  2233] By: gsar                                  on 1998/11/13  09:43:03
+    Log: doc tweak
+ Branch: perl
+       ! README.win32
+____________________________________________________________________________
+[  2230] By: jhi                                   on 1998/11/12  17:07:45
+    Log: Allow hints file override for d_socket
+        (based on Sequent-induced change #2229).
+ Branch: cfgperl
+       ! Configure
+____________________________________________________________________________
+[  2229] By: jhi                                   on 1998/11/12  16:32:33
+    Log: 
+        From: "Martin J. Bligh" <mbligh@sequent.com>
+        To: jhi@iki.fi
+        cc: gbarr@ti.com, gbarr@pobox.com, gsar@umich.edu
+        Subject: Re: Making Perl work on DYNIX/ptx
+        Date: Tue, 10 Nov 1998 16:24:26 -0800
+        Message-ID: <181999655.910715066@w-186d219.rhe.sequent.com>
+ Branch: cfgperl
+       ! hints/dynixptx.sh
+____________________________________________________________________________
+[  2228] By: jhi                                   on 1998/11/12  11:40:37
+    Log: From: "Martin J. Bligh" <mbligh@sequent.com>
+        Message-ID: <187803647.910720870@w-186d219.rhe.sequent.com>
+        To: jhi@iki.fi
+        cc: gbarr@ti.com, gbarr@pobox.com, gsar@umich.edu
+        Subject: Re: Making Perl work on DYNIX/ptx
+        Date: Tue, 10 Nov 1998 18:01:10 -0800
+ Branch: cfgperl
+       + ext/DB_File/hints/dynixptx.pl ext/POSIX/hints/dynixptx.pl
+____________________________________________________________________________
+[  2227] By: jhi                                   on 1998/11/12  11:17:42
+    Log: Integrate from mainperl.
+ Branch: cfgperl
+      !> Changes XSUB.h av.c embed.h embed.pl embedvar.h
+      !> ext/IPC/SysV/Msg.pm global.sym hv.c lib/Text/Wrap.pm objXSUB.h
+      !> perl.c perl.h pod/perlfunc.pod pod/perlvar.pod pp_sys.c
+      !> proto.h regexec.c t/op/array.t util.c win32/makedef.pl
+      !> win32/win32.c x2p/s2p.PL
+____________________________________________________________________________
+[  2226] By: gsar                                  on 1998/11/11  21:05:42
+    Log: provide -DPERL_POLLUTE
+ Branch: perl
+       ! embed.pl embedvar.h
+____________________________________________________________________________
+[  2225] By: jhi                                   on 1998/11/09  07:45:12
+    Log: From: Hans Mulder <hansm@icgroup.nl>
+        To: Ilya Zakharevich <ilya@math.ohio-state.edu>
+        Cc: gsar@engin.umich.edu (Gurusamy Sarathy), jhi@iki.fi,
+        perl5-porters@perl.org
+        Subject: Re: [PATCH] Re: Not OK: perl 5.00553 on OPENSTEP-Mach 4_1
+        (UNINSTALLED)
+        Date: Sun,  8 Nov 98 22:20:23 +0100
+        Message-Id: <9811082119.AA11802@icgned.icgroup.nl>
+ Branch: cfgperl
+       ! malloc.c perl.h
+____________________________________________________________________________
+[  2224] By: gsar                                  on 1998/11/09  03:13:14
+    Log: avoid endless loops in Text::Wrap (from a suggestion by Lupe
+        Christoph <lupe@alanya.m.isar.de>)
+ Branch: perl
+       ! lib/Text/Wrap.pm
+____________________________________________________________________________
+[  2223] By: gsar                                  on 1998/11/09  02:09:06
+    Log: fix misplaced brace in s2p (as suggested by Lionel Fourquaux
+        <lionel.fourquaux@wanadoo.fr>)
+ Branch: perl
+       ! x2p/s2p.PL
+____________________________________________________________________________
+[  2222] By: gsar                                  on 1998/11/09  01:56:24
+    Log: patches from Hugo van der Sanden <hv@crypt.compulink.co.uk>
+        Date: Wed, 04 Nov 1998 12:19:44 +0000
+        Message-Id: <199811041219.MAA05451@crypt.compulink.co.uk>
+        Subject: [PATCH] Re: [5.005_53] read overflow? 
+        --
+        Date: Wed, 04 Nov 1998 13:15:18 +0000
+        Message-Id: <199811041315.NAA05711@crypt.compulink.co.uk>
+        Subject: [PATCH 5.005_53] perl -V fix
+ Branch: perl
+       ! perl.c regexec.c
+____________________________________________________________________________
+[  2221] By: gsar                                  on 1998/11/09  01:34:56
+    Log: From: jan.dubois@ibm.net (Jan Dubois)
+        Date: Sun, 01 Nov 1998 00:05:01 +0100
+        Message-ID: <364294bd.18052307@smtp1.ibm.net>
+        Subject: [PATCH v5.5.53, WIN32] PL_block_type undefined unless DEBUGGING
+ Branch: perl
+       ! Changes win32/makedef.pl
+____________________________________________________________________________
+[  2220] By: gsar                                  on 1998/11/08  21:13:07
+    Log: integrate changes#2120,2168,2218 from maint-5.005;
+        add new vtbls; s/\bvtbl_/PL_vtbl_/; remove trailing comma in
+        enum; make regen_headers
+ Branch: perl
+       ! XSUB.h embed.h embedvar.h ext/IPC/SysV/Msg.pm global.sym
+       ! objXSUB.h perl.h pod/perlfunc.pod proto.h util.c win32/win32.c
+____________________________________________________________________________
+[  2219] By: gsar                                  on 1998/11/08  19:42:57
+    Log: integrate cfgperl changes into mainline
+ Branch: perl
+      +> README.vmesa
+      !> Configure MANIFEST Porting/Glossary Porting/config.sh
+      !> Porting/config_H config_h.SH ext/Thread/Thread.xs
+      !> hints/hpux.sh hints/vmesa.sh lib/Math/Complex.pm malloc.c
+      !> perl.h pod/perlfunc.pod pod/perllocale.pod pod/perlport.pod
+      !> pp_sys.c sv.c t/lib/complex.t t/op/groups.t t/op/lex_assign.t
+      !> thread.h vms/subconfigure.com vos/config.h
+____________________________________________________________________________
+[  2218] By: gbarr                                 on 1998/11/08  16:48:44
+    Log: From: Graham Barr <gbarr@ti.com>
+        Date: Mon, 2 Nov 1998 07:38:52 -0600
+        Message-ID: <19981102073852.A12751@asic.sc.ti.com>
+        Subject: [PATCH 5.005_*] Re: IPC::Msg 1.03
+ Branch: maint-5.005/perl
+       ! ext/IPC/SysV/Msg.pm
+____________________________________________________________________________
+[  2215] By: gsar                                  on 1998/11/08  02:52:52
+    Log: set close-on-exec bit on pipe() FDs
+ Branch: perl
+       ! pod/perlfunc.pod pod/perlvar.pod pp_sys.c
+____________________________________________________________________________
+[  2214] By: gsar                                  on 1998/11/08  02:27:57
+    Log: typo in newHVhv()
+ Branch: perl
+       ! hv.c
+____________________________________________________________________________
+[  2211] By: jhi                                   on 1998/11/07  21:14:18
+    Log: Finalize the Mach CThreads support.
+        
+        From: Hans Mulder <hansm@icgroup.nl>
+        Date: Sat,  7 Nov 98 22:06:20 +0100
+        To: Gurusamy Sarathy <gsar@engin.umich.edu>
+        Cc: jhi@iki.fi, perl5-porters@perl.org
+        Subject: [PATCH] Re: Not OK: perl 5.00553 on OPENSTEP-Mach 4_1 (UNINSTALLED) 
+        Message-Id: <9811072105.AA07794@icgned.icgroup.nl>
+ Branch: cfgperl
+       ! malloc.c perl.h
+____________________________________________________________________________
+[  2210] By: gsar                                  on 1998/11/06  20:36:50
+    Log: fix AvREALISH bogusness
+ Branch: perl
+       ! av.c t/op/array.t
+____________________________________________________________________________
+[  2209] By: jhi                                   on 1998/11/06  08:05:31
+    Log: Renamed malloc.c ASSERT() macro to P_ASSERT() because
+        ASSERT() causes problems in {NeXTStep,OpenStep}.
+        
+        From: Hans Mulder <hansm@icgroup.nl>
+        To: Jarkko Hietaniemi <jhi@cc.hut.fi>
+        Subject: Re: Not OK: perl 5.00553 on OPENSTEP-Mach 4_1 (UNINSTALLED)
+        Date: Fri,  6 Nov 98 01:27:41 +0100
+        Message-Id: <9811060025.AA27389@icgned.icgroup.nl>
+        
+        and
+        
+        From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+        Subject: Re: ASSERT() in malloc.c
+        To: jhi@iki.fi
+        Date: Fri, 6 Nov 1998 02:59:29 -0500 (EST)
+        Message-Id: <199811060759.CAA18915@monk.mps.ohio-state.edu>
+ Branch: cfgperl
+       ! malloc.c
+____________________________________________________________________________
+[  2208] By: jhi                                   on 1998/11/06  07:55:38
+    Log: Mach CThreads needs #include <mach/cthreads.h>.
+ Branch: cfgperl
+       ! perl.h
+____________________________________________________________________________
+[  2206] By: jhi                                   on 1998/11/05  14:54:52
+    Log: PERL_BADLANG wrongly documented.
+        
+        From: ts <decoux@moulon.inra.fr>
+        To: jhi@cc.hut.fi
+        Subject: Re: Locale warning messages
+        Date: Thu, 5 Nov 1998 14:34:19 +0100 (MET)
+        Message-Id: <199811051334.OAA24863@moulon.inra.fr>
+        
+        and
+        
+        From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+        Subject: Re: PERL_BADLANG
+        To: jhi@iki.fi
+        Subject: Re: PERL_BADLANG
+        Date: Thu, 5 Nov 1998 09:49:00 -0500 (EST)
+        Message-Id: <199811051449.JAA04238@monk.mps.ohio-state.edu>
+ Branch: cfgperl
+       ! pod/perllocale.pod
+____________________________________________________________________________
+[  2205] By: jhi                                   on 1998/11/05  14:24:33
+    Log: Document all the control flow keywords in perlfunc
+        so that "perlfunc -f while" works.
+ Branch: cfgperl
+       ! pod/perlfunc.pod
+____________________________________________________________________________
+[  2204] By: jhi                                   on 1998/11/05  12:46:02
+    Log: Configure update.  Remove last trace of PTHREADS_CREATED_JOINABLE
+        (from vos/config.h).  Update Porting/{Glossary,config*}.
+ Branch: cfgperl
+       ! Configure Porting/Glossary Porting/config.sh Porting/config_H
+       ! config_h.SH vos/config.h
+____________________________________________________________________________
+[  2203] By: jhi                                   on 1998/11/05  08:34:39
+    Log: VM/ESA and VMS sig_num_init (change#2101) catchup.
+ Branch: cfgperl
+       ! hints/vmesa.sh vms/subconfigure.com
+____________________________________________________________________________
+[  2202] By: jhi                                   on 1998/11/05  08:03:20
+    Log: Integrate from mainperl.
+ Branch: cfgperl
+      !> Changes cop.h doop.c gv.c mg.c perl.c pp_ctl.c sv.c util.c
+      !> win32/Makefile win32/makefile.mk win32/win32.c
+____________________________________________________________________________
+[  2201] By: gsar                                  on 1998/11/05  04:40:44
+    Log: another POPSTACK victim
+ Branch: perl
+       ! cop.h sv.c
+____________________________________________________________________________
+[  2196] By: gsar                                  on 1998/11/05  02:07:54
+    Log: fix a location affected by change#2191, add note about POPSTACK
+ Branch: perl
+       ! cop.h gv.c pp_ctl.c
+____________________________________________________________________________
+[  2195] By: gsar                                  on 1998/11/05  02:04:45
+    Log: makefile notes
+ Branch: perl
+       ! win32/Makefile win32/makefile.mk
+____________________________________________________________________________
+[  2192] By: gsar                                  on 1998/11/04  23:48:53
+    Log: indeterminate order-of-evaluation fixes
+ Branch: perl
+       ! mg.c
+____________________________________________________________________________
+[  2191] By: gsar                                  on 1998/11/04  23:02:16
+    Log: refetch local stack pointer in POPSTACK
+ Branch: perl
+       ! cop.h perl.c
+____________________________________________________________________________
+[  2190] By: jhi                                   on 1998/11/04  08:50:40
+    Log: Configure update.
+        Sequent DYNIX/ptx updates: osvers=$4 (instead of $3) of uname -a,
+        
+        From: Andy Dougherty <doughera@lafcol.lafayette.edu>
+        To: Martin Bligh <mbligh@sequent.com>
+        Cc: Jarkko Hietaniemi <jhi@iki.fi>
+        Subject: Re: Perl 5's configure on DYNIX/ptx
+        Message-Id: <Pine.SUN.3.96.981103090824.5533B-100000@newton.phys>
+        Date: Tue, 3 Nov 1998 09:35:26 -0500 (EST)
+        
+        find sockets also from libsocket, not just libnet.
+        OS390: $compile_ok instead of $compile for <inttypes.h>,
+        
+        From: pvhp@forte.com (Peter Prymmer)
+        To: Thomas.Dorner@start.de, jhi@iki.fi, neale@VMA.TABNSW.COM.AU
+        Subject: _53 not OK on os390 but looking better than ever
+        Date: Tue, 3 Nov 98 17:33:22 PST
+        Message-Id: <9811040133.AA09450@forte.com>
+ Branch: cfgperl
+       ! Configure
+____________________________________________________________________________
+[  2189] By: jhi                                   on 1998/11/04  07:43:58
+    Log: sysio.t failure: fix undefined order of evaluation, from
+        
+        From: Spider Boardman <spider@web.zk3.dec.com>
+        Subject: Not OK: perl 5.00553 on alpha-thread 5.0 [PATCH]
+        To: perlbug@perl.com
+        Date: 4 Nov 1998 01:22:30 +0200
+        Message-ID: <MLIST_199811032227.RAA143892@web.zk3.dec.com>
+ Branch: cfgperl
+       ! pp_sys.c
+____________________________________________________________________________
+[  2188] By: gsar                                  on 1998/11/04  02:59:16
+    Log: fix return value of win32_pclose()
+ Branch: perl
+       ! win32/win32.c
+____________________________________________________________________________
+[  2187] By: gsar                                  on 1998/11/04  02:56:34
+    Log: s/sv_upgrade/SvUPGRADE/ a couple of places
+ Branch: perl
+       ! Changes doop.c gv.c util.c
+____________________________________________________________________________
+[  2186] By: jhi                                   on 1998/11/03  08:17:52
+    Log: Document quads in pack.
+ Branch: cfgperl
+       ! pod/perlfunc.pod
+____________________________________________________________________________
+[  2185] By: jhi                                   on 1998/11/03  07:49:35
+    Log: (IV) vs (I32) vs I_V()
+        
+        Subject: [PATCH 5.005_53] Reverting typecast in sv_upgrade()
+        From: Anton Berezin <tobez@plab.ku.dk> 
+        To: "p5p" <perl5-porters@perl.org> 
+        Date: 01 Nov 1998 15:09:11 +0100 
+        Message-ID: <86hfwjtshk.fsf@lion.plab.ku.dk>
+        
+        and
+        
+        From: Andy Dougherty <doughera@lafcol.lafayette.edu> 
+        Date: Mon, 2 Nov 1998 10:17:34 -0500 (EST) 
+        Message-Id: <Pine.SUN.3.96.981102101433.4479B-100000@newton.phys>
+ Branch: cfgperl
+       ! sv.c
+____________________________________________________________________________
+[  2184] By: jhi                                   on 1998/11/03  07:42:46
+    Log: VM/ESA updates.
+ Branch: cfgperl
+       + README.vmesa
+       ! MANIFEST pod/perlfunc.pod pod/perlport.pod
+____________________________________________________________________________
+[  2183] By: jhi                                   on 1998/11/02  12:58:13
+    Log: The id(1)-parsing is real fun.
+ Branch: cfgperl
+       ! t/op/groups.t
+____________________________________________________________________________
+[  2182] By: jhi                                   on 1998/11/02  12:07:43
+    Log: Decommission the symlink test.
+ Branch: cfgperl
+       ! t/op/lex_assign.t
+____________________________________________________________________________
+[  2181] By: jhi                                   on 1998/11/02  12:03:08
+    Log: Replace ATTR_JOINABLE with true Configure probe
+        for PTHREAD_CREATE_JOINABLE (or equivalent:
+        PTHREAD_CREATE_UNDETACHED or __UNDETACHED).
+        Remove ATTR_JOINABLE itself: Thread.xs uses
+        PTHREAD_CREATE_JOINABLE (or equivalent) directly.
+        
+        Really scan for <mach/cthreads.h> only if usethreads.
+ Branch: cfgperl
+       ! Configure config_h.SH ext/Thread/Thread.xs thread.h
+____________________________________________________________________________
+[  2180] By: jhi                                   on 1998/11/02  11:07:34
+    Log: In HP-UX 10.X usethreads only if the required files are present.
+ Branch: cfgperl
+       ! hints/hpux.sh
+____________________________________________________________________________
+[  2179] By: jhi                                   on 1998/11/02  09:10:33
+    Log: Prefer groups(1).
+        id -Gn can be broken.
+        id -a can save the day.
+ Branch: cfgperl
+       ! t/op/groups.t
+____________________________________________________________________________
+[  2178] By: jhi                                   on 1998/11/02  08:35:29
+    Log: Detrail enum comma.
+ Branch: cfgperl
+       ! perl.h
+____________________________________________________________________________
+[  2177] By: jhi                                   on 1998/11/02  08:24:12
+    Log: 0**0 = 1, from
+        
+        From: d-lewart@uiuc.edu (Daniel S. Lewart)
+        Subject: Math::Complex 0**0 patches
+        Date: Sun, 1 Nov 1998 19:21:48 -0600 (CST)
+        Message-Id: <199811020121.TAA28310@staff2.cso.uiuc.edu>
+        To: jhi@iki.fi (Jarkko Hietaniemi),
+        Raphael_Manfredi@grenoble.hp.com (Raphael Manfredi)
+ Branch: cfgperl
+       ! lib/Math/Complex.pm t/lib/complex.t
+____________________________________________________________________________
+[  2168] By: gbarr                                 on 1998/11/01  01:58:58
+    Log: From: jan.dubois@ibm.net (Jan Dubois)   
+        Date: Fri, 09 Oct 1998 23:28:31 +0200
+        Message-ID: <36217b7f.3193091@smtp1.ibm.net>
+        Subject: [PATCH 5.005_02] Allow XS access to vtbl_*s when compiled with PERL_OBJECT
+ Branch: maint-5.005/perl
+       ! XSUB.h
+____________________________________________________________________________
+[  2164] By: jhi                                   on 1998/10/31  15:50:02
+    Log: Integrate from mainperl.
+ Branch: cfgperl
+      +> t/op/lex_assign.t
+      !> (integrate 45 files)
+
+----------------
+Version 5.005_53
+----------------
+
+____________________________________________________________________________
+[  2163] By: gsar                                  on 1998/10/31  11:31:12
+    Log: bump patchlevel; other minor fixes for clean build and test on
+        Solaris and win32
+ Branch: perl
+       ! Changes ext/Data/Dumper/Dumper.xs patchlevel.h pp.h sv.c
+       ! t/lib/dumper.t t/op/groups.t t/op/lex_assign.t
+       ! t/pragma/warn/regexec win32/Makefile win32/config_H.bc
+       ! win32/config_H.gc win32/config_H.vc win32/makefile.mk
+       ! x2p/a2p.c
+____________________________________________________________________________
+[  2162] By: gsar                                  on 1998/10/31  09:40:31
+    Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+        Date: Fri, 30 Oct 1998 18:36:20 -0500 (EST)
+        Message-Id: <199810302336.SAA17336@monk.mps.ohio-state.edu>
+        Subject: Re: [PATCH 5.00552] Overloaded <> and deref again
+ Branch: perl
+       ! pp.h
+____________________________________________________________________________
+[  2161] By: gsar                                  on 1998/10/31  09:39:13
+    Log: From: Albert Dvornik <bert@genscan.com>
+        Date: 30 Oct 1998 17:50:04 -0500
+        Message-Id: <tqd879vf4z.fsf@puma.genscan.com>
+        Subject: [PATCH perl5.00[45]] a2p: make sprintf less greedy without -o
+ Branch: perl
+       ! x2p/Makefile.SH x2p/a2p.c x2p/a2p.pod x2p/a2p.y x2p/a2py.c
+____________________________________________________________________________
+[  2160] By: gsar                                  on 1998/10/31  09:35:03
+    Log: fix for bugs in -x mode
+        From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+        Date: Sat, 31 Oct 1998 00:30:57 -0500 (EST)
+        Message-Id: <199810310530.AAA22277@monk.mps.ohio-state.edu>
+        Subject: [PATCH 5.00552] Fix h2xs
+ Branch: perl
+       ! utils/h2xs.PL
+____________________________________________________________________________
+[  2159] By: gsar                                  on 1998/10/31  09:31:36
+    Log: Data::Dumper update
+ Branch: perl
+       ! ext/Data/Dumper/Changes ext/Data/Dumper/Dumper.pm
+       ! ext/Data/Dumper/Dumper.xs ext/Data/Dumper/Todo
+____________________________________________________________________________
+[  2153] By: gsar                                  on 1998/10/30  21:40:09
+    Log: add testsuite portion of patch
+        From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+        Date: Thu, 29 Oct 1998 23:20:01 -0500 (EST)
+        Message-Id: <199810300420.XAA25651@monk.mps.ohio-state.edu>
+        Subject: [PATCH 5.00321 ;-)] 87% speedup
+ Branch: perl
+       + t/op/lex_assign.t
+       ! MANIFEST
+____________________________________________________________________________
+[  2152] By: gsar                                  on 1998/10/30  21:08:11
+    Log: mention the C<$SIG{CHLD} = 'IGNORE'> special case
+ Branch: perl
+       ! pod/perlfunc.pod pod/perlipc.pod pod/perlvar.pod
+____________________________________________________________________________
+[  2151] By: gsar                                  on 1998/10/30  20:18:09
+    Log: From: Mark-Jason Dominus <mjd@plover.com>
+        Date: Fri, 30 Oct 1998 14:24:23 EST
+        Message-Id: <19981030192423.27276.qmail@plover.com>
+        Subject: PATCH: (5.005_02)  a2p should use `chomp' instead of `chop'
+ Branch: perl
+       ! x2p/walk.c
+____________________________________________________________________________
+[  2150] By: gsar                                  on 1998/10/30  20:08:57
+    Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+        Date: Thu, 29 Oct 1998 22:04:54 -0500 (EST)
+        Message-Id: <199810300304.WAA23291@monk.mps.ohio-state.edu>
+        Subject: [PATCH 5.00552] Overloaded <> and deref again
+ Branch: perl
+       ! gv.c lib/overload.pm perl.h pp.c pp.h pp_hot.c pp_sys.c sv.c
+       ! t/pragma/overload.t toke.c
+____________________________________________________________________________
+[  2149] By: gsar                                  on 1998/10/30  19:38:15
+    Log: From: Roderick Schertler <roderick@argon.org>
+        Date: Thu, 29 Oct 1998 14:50:18 -0500
+        Message-ID: <17625.909690618@eeyore.ibcinc.com>
+        Subject: patch for daemonization docs in perlipc
+ Branch: perl
+       ! pod/perlipc.pod
+____________________________________________________________________________
+[  2148] By: gsar                                  on 1998/10/30  19:36:07
+    Log: From: Anton Berezin <tobez@plab.ku.dk>
+        Date: 29 Oct 1998 17:06:25 +0100
+        Message-ID: <86pvbbuzcu.fsf@lion.plab.ku.dk>
+        Subject: [PATCH 5.005_52] win32_opendir() fails on empty drives
+ Branch: perl
+       ! win32/win32.c
+____________________________________________________________________________
+[  2147] By: gsar                                  on 1998/10/30  19:31:37
+    Log: tweaked version of suggested patch
+        From: Anton Berezin <tobez@plab.ku.dk>
+        Date: 29 Oct 1998 14:48:54 +0100
+        Message-ID: <86yapzv5q1.fsf@lion.plab.ku.dk>
+        Subject: [PATCH 5.005_52] One more problem with win32_stat and MSVC
+ Branch: perl
+       ! win32/win32.c
+____________________________________________________________________________
+[  2146] By: gsar                                  on 1998/10/30  19:03:50
+    Log: hand-apply whitespace-mutiliated patch
+        From: "vishal bhatia" <vishalb@hotmail.com>
+        Date: Wed, 28 Oct 1998 23:45:32 PST
+        Message-ID: <19981029074534.2334.qmail@hotmail.com>
+        Subject: [PATCH 5.005_52]Compiling modules,more bugfixes for B
+ Branch: perl
+       ! ext/B/B/C.pm ext/B/B/CC.pm
+____________________________________________________________________________
+[  2145] By: gsar                                  on 1998/10/30  18:46:58
+    Log: remaining PL_foo stragglers
+ Branch: perl
+       ! doio.c ext/B/B.pm ext/IPC/SysV/SysV.xs ext/Opcode/Opcode.pm
+       ! op.h os2/os2.c vms/gen_shrfls.pl
+____________________________________________________________________________
+[  2144] By: gsar                                  on 1998/10/30  17:38:36
+    Log: integrate cfgperl tweaks into mainline
+ Branch: perl
+      !> Makefile.SH README.posix-bc doio.c ext/POSIX/POSIX.xs proto.h
+      !> t/op/misc.t t/pragma/subs.t t/pragma/warning.t
+____________________________________________________________________________
+[  2143] By: jhi                                   on 1998/10/30  13:27:39
+    Log: There can be multiple yacc/bison errors.
+ Branch: cfgperl
+       ! t/op/misc.t t/pragma/subs.t t/pragma/warning.t
+____________________________________________________________________________
+[  2142] By: jhi                                   on 1998/10/30  13:18:43
+    Log: README.posix-bc update.
+ Branch: cfgperl
+       ! README.posix-bc
+____________________________________________________________________________
+[  2141] By: jhi                                   on 1998/10/30  09:12:59
+    Log: #2133 fallout.
+ Branch: cfgperl
+       ! doio.c ext/POSIX/POSIX.xs
+____________________________________________________________________________
+[  2140] By: jhi                                   on 1998/10/30  08:43:18
+    Log: Integrate from mainperl.
+ Branch: cfgperl
+      +> globvar.sym pp.sym
+       - objpp.h thread.sym
+      !> (integrate 61 files)
+____________________________________________________________________________
+[  2133] By: gsar                                  on 1998/10/30  02:51:39
+    Log: phase 1 of somewhat major rearrangement of PERL_OBJECT stuff
+        (objpp.h is gone, embed.pl now does some of that); objXSUB.h
+        should soon be automated also; the global variables that
+        escaped the PL_foo conversion are now reined in; renamed
+        MAGIC in regcomp.h to REG_MAGIC to avoid collision with the
+        type of same name; duplicated lists of pp_things in various
+        places is now gone; result has only been tested on win32
+ Branch: perl
+       + globvar.sym pp.sym
+       - objpp.h thread.sym
+       ! MANIFEST Makefile.SH av.c bytecode.h byterun.h cop.h doio.c
+       ! doop.c dump.c embed.h embed.pl embedvar.h ext/B/B.xs
+       ! ext/POSIX/POSIX.xs ext/Thread/Thread.xs global.sym globals.c
+       ! gv.c malloc.c mg.c objXSUB.h op.c opcode.h opcode.pl perl.c
+       ! perl.h perl_exp.SH perlvars.h perly.c pod/perlguts.pod pp.c
+       ! pp.h pp_ctl.c pp_hot.c pp_proto.h pp_sys.c proto.h regcomp.c
+       ! regcomp.h regcomp.pl regcomp.sym regexec.c regnodes.h run.c
+       ! scope.c sv.c t/op/filetest.t taint.c thrdvar.h toke.c util.c
+       ! win32/Makefile win32/config.bc win32/config.gc win32/config.vc
+       ! win32/config_H.bc win32/config_H.gc win32/config_H.vc
+       ! win32/makedef.pl win32/makefile.mk win32/perlhost.h
+____________________________________________________________________________
+[  2130] By: jhi                                   on 1998/10/29  15:31:26
+    Log: Pure bison yylex() proto was broken.
+ Branch: cfgperl
+       ! proto.h
+____________________________________________________________________________
+[  2126] By: jhi                                   on 1998/10/29  08:35:54
+    Log: Integrate mainperl.
+ Branch: cfgperl
+      !> INSTALL README.cygwin32 cygwin32/gcc2 cygwin32/ld2
+      !> lib/ExtUtils/MakeMaker.pm lib/perl5db.pl malloc.c pp.c
+      !> pp_ctl.c proto.h regexec.c t/pragma/overload.t
+      !> t/pragma/warn/doio toke.c win32/makefile.mk
+____________________________________________________________________________
+[  2125] By: jhi                                   on 1998/10/29  08:32:38
+    Log: EBCDIC Makefile.SH iteration converges.  Hopefully.
+ Branch: cfgperl
+       ! Makefile.SH
+____________________________________________________________________________
+[  2124] By: jhi                                   on 1998/10/29  08:06:44
+    Log: EBCDIC Makefile.SH tuneup.
+ Branch: cfgperl
+       ! Makefile.SH
+____________________________________________________________________________
+[  2119] By: gsar                                  on 1998/10/28  23:24:04
+    Log: remove doubled hunk from integration
+ Branch: perl
+       ! pp.c
+____________________________________________________________________________
+[  2118] By: gsar                                  on 1998/10/28  22:03:31
+    Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+        Date: Wed, 28 Oct 1998 01:23:27 -0500 (EST)
+        Message-Id: <199810280623.BAA06968@monk.mps.ohio-state.edu>
+        Subject: [PATCH 5.00552] Minor debugger tweaks
+ Branch: perl
+       ! lib/perl5db.pl
+____________________________________________________________________________
+[  2117] By: gsar                                  on 1998/10/28  22:02:30
+    Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+        Date: Wed, 28 Oct 1998 01:20:33 -0500 (EST)
+        Message-Id: <199810280620.BAA06893@monk.mps.ohio-state.edu>
+        Subject: [PATCH 5.00552] Make sort respect overloading
+ Branch: perl
+       ! pp_ctl.c proto.h t/pragma/overload.t
+____________________________________________________________________________
+[  2116] By: gsar                                  on 1998/10/28  21:51:11
+    Log: MM patches from Ilya Zakharevich
+        Date: Wed, 28 Oct 1998 01:27:04 -0500 (EST)
+        Message-Id: <199810280627.BAA07053@monk.mps.ohio-state.edu>
+        Subject: [PATCH 5.00552] Make MakeMaker more verbose
+        --
+        Date: Wed, 28 Oct 1998 01:25:36 -0500 (EST)
+        Message-Id: <199810280625.BAA06980@monk.mps.ohio-state.edu>
+        Subject: [PATCH 5.00552] Make MakeMaker ignore errors in kid Makefile.PL
+ Branch: perl
+       ! lib/ExtUtils/MakeMaker.pm
+____________________________________________________________________________
+[  2115] By: gsar                                  on 1998/10/28  21:46:19
+    Log: add explicit references to perl source path in ld2 and gcc2
+ Branch: perl
+       ! README.cygwin32 cygwin32/gcc2 cygwin32/ld2
+____________________________________________________________________________
+[  2114] By: gsar                                  on 1998/10/28  21:39:56
+    Log: From: Andy Dougherty <doughera@lafcol.lafayette.edu>
+        Date: Tue, 27 Oct 1998 10:40:41 -0500 (EST)
+        Message-Id: <Pine.SUN.3.96.981027103726.28498E-100000@newton.phys>
+        Subject: [PATCH] Re: Problems with: Creating an installable tar archive
+ Branch: perl
+       ! INSTALL
+____________________________________________________________________________
+[  2113] By: gsar                                  on 1998/10/28  21:21:16
+    Log: integrate cfgperl into mainline
+ Branch: perl
+      +> t/op/filetest.t
+      !> Configure MANIFEST Makefile.SH config_h.SH perl.h perly.y
+      !> perly_c.diff pp.c proto.h t/comp/require.t t/io/pipe.t
+      !> t/op/groups.t t/op/misc.t t/pragma/subs.t t/pragma/warning.t
+      !> thread.h toke.c vmesa/Makefile
+____________________________________________________________________________
+[  2112] By: gsar                                  on 1998/10/28  21:14:18
+    Log: minor cleanup
+ Branch: perl
+       ! malloc.c regexec.c t/pragma/warn/doio win32/makefile.mk
+____________________________________________________________________________
+[  2111] By: gsar                                  on 1998/10/28  18:52:10
+    Log: smarter C<$SIG{FOO} = BAREWORD;> warning
+ Branch: perl
+       ! toke.c
+____________________________________________________________________________
+[  2110] By: jhi                                   on 1998/10/28  15:07:54
+    Log: posix-bc doesn't want to regenerate a2p.h from a2p.y.
+ Branch: cfgperl
+       ! Makefile.SH
+____________________________________________________________________________
+[  2109] By: jhi                                   on 1998/10/28  13:39:54
+    Log: a2p.y needs to generate also y.tab.h.
+ Branch: cfgperl
+       ! Makefile.SH
+____________________________________________________________________________
+[  2108] By: jhi                                   on 1998/10/28  10:33:36
+    Log: The "parse error" must be converted to "syntax error",
+        just matching it aint' enough.
+ Branch: cfgperl
+       ! t/comp/require.t t/op/misc.t t/pragma/subs.t
+       ! t/pragma/warning.t
+____________________________________________________________________________
+[  2107] By: jhi                                   on 1998/10/28  10:23:05
+    Log: Regen sig_n{ame,umber}* if slightest doubt.
+ Branch: cfgperl
+       ! Configure
+____________________________________________________________________________
+[  2106] By: jhi                                   on 1998/10/28  08:44:49
+    Log: Bison says 'parse error', not 'parser error'.
+ Branch: cfgperl
+       ! t/comp/require.t t/op/misc.t t/pragma/subs.t
+       ! t/pragma/warning.t
+____________________________________________________________________________
+[  2105] By: jhi                                   on 1998/10/28  08:42:09
+    Log: yylex() parametrization.
+ Branch: cfgperl
+       ! proto.h toke.c
+____________________________________________________________________________
+[  2104] By: jhi                                   on 1998/10/28  08:25:09
+    Log: Bring in #2102.
+ Branch: cfgperl
+       ! pp.c
+____________________________________________________________________________
+[  2103] By: jhi                                   on 1998/10/28  08:22:04
+    Log: From: Dominic Dunlop <domo@vo.lu>
+        Subject: [PATCH 5.005_02]  Re: perl5.004_04 testing problem
+        Date: 27 Oct 1998 20:47:25 +0200
+        Message-ID: <MLIST_v03110700b25b7dc95bbc@[212.24.192.87]>
+ Branch: cfgperl
+       ! t/op/groups.t
+____________________________________________________________________________
+[  2102] By: larry                                 on 1998/10/27  18:58:55
+    Log: utf8 change to quotemeta broke EBCDIC
+ Branch: perl
+       ! pp.c
+____________________________________________________________________________
+[  2101] By: jhi                                   on 1998/10/27  12:55:34
+    Log: $Config{sig_num_init}.
+        Also, a new approach to the 'pthreads-created-joinable': drop
+        it and use {PTHREAD_CREATE_{JOINABLE,UNDETACHED},__UNDETACHED}
+        directly. (See also #2096).
+ Branch: cfgperl
+       ! Configure config_h.SH
+____________________________________________________________________________
+[  2100] By: jhi                                   on 1998/10/27  10:48:55
+    Log: Regenerated perly_c.diff.
+ Branch: cfgperl
+       ! perly_c.diff
+____________________________________________________________________________
+[  2099] By: jhi                                   on 1998/10/27  08:42:25
+    Log: First the mangler was Netscape, then it was me.
+ Branch: cfgperl
+       ! vmesa/Makefile
+____________________________________________________________________________
+[  2098] By: jhi                                   on 1998/10/27  08:34:40
+    Log: `id -Gn` might be available where `groups` is not.
+ Branch: cfgperl
+       ! t/op/groups.t
+____________________________________________________________________________
+[  2097] By: jhi                                   on 1998/10/27  08:05:17
+    Log: Netscape had mangled the tabs.
+ Branch: cfgperl
+       ! vmesa/Makefile
+____________________________________________________________________________
+[  2096] By: jhi                                   on 1998/10/27  08:03:05
+    Log: ATTR_JOINABLE logic, based on (private email)
+        
+        From: Neale Ferguson <neale@VMA.TABNSW.COM.AU>
+        Subject: Some little diffs
+        Message-ID: <36350969.DA33E7B4@mailbox.tabnsw.com.au>
+        Date: Tue, 27 Oct 1998 13:44:42 +1300
+ Branch: cfgperl
+       ! thread.h
+____________________________________________________________________________
+[  2095] By: jhi                                   on 1998/10/27  07:56:57
+    Log: Mach cthreads support based on:
+        
+        From: brie@corp.home.net (Brian Harrison)
+        Subject: perl5.005_02 patch for mthreads
+        To: perl5-porters@perl.org
+        Date: 24 Oct 1998 01:01:55 +0300
+        Message-ID: <MLIST_Pine.GSO.4.04.9810231410220.11111-200000@sulaco.eos.home.net>
+        
+        Pthread yield probe (dejavu)
+        Cosmetic nanochange for the union semun output.
+        Better inttypes.h probe.
+        Undo the 'void *' $selecttype probe from #1971 because
+        it breaks the $selectminbits test.
+ Branch: cfgperl
+       ! Configure config_h.SH perl.h thread.h
+____________________________________________________________________________
+[  2094] By: jhi                                   on 1998/10/26  13:02:07
+    Log: Also posix-bc wants to reyacc.
+ Branch: cfgperl
+       ! Makefile.SH
+____________________________________________________________________________
+[  2093] By: jhi                                   on 1998/10/26  10:17:21
+    Log: Removed !(*s & 0x80) from pp_quotemeta(), introduced after
+        5_02 and really breaking things in non-ASCII worlds.
+ Branch: cfgperl
+       ! pp.c
+____________________________________________________________________________
+[  2092] By: jhi                                   on 1998/10/26  09:08:00
+    Log: More robustness.
+ Branch: cfgperl
+       ! t/comp/require.t t/op/misc.t t/pragma/subs.t
+       ! t/pragma/warning.t
+____________________________________________________________________________
+[  2091] By: jhi                                   on 1998/10/26  08:47:32
+    Log: s/YYLEXPARAM/PERL_YYLEX_PARAM_DECL/g
+        Bison really wants YYLEX_PARAM.
+ Branch: cfgperl
+       ! perly.y proto.h toke.c
+____________________________________________________________________________
+[  2090] By: jhi                                   on 1998/10/26  08:21:25
+    Log: s/YYLEX_PARAM/YYLEXPARAM/
+ Branch: cfgperl
+       ! perly.y
+____________________________________________________________________________
+[  2089] By: jhi                                   on 1998/10/26  08:17:33
+    Log: Indicate skipped subtests.
+ Branch: cfgperl
+       ! t/io/pipe.t
+____________________________________________________________________________
+[  2088] By: jhi                                   on 1998/10/26  08:11:36
+    Log: Integrate from mainperl.
+ Branch: cfgperl
+      !> (integrate 54 files)
+____________________________________________________________________________
+[  2087] By: jhi                                   on 1998/10/26  08:08:02
+    Log: Add test for filetests.
+ Branch: cfgperl
+       + t/op/filetest.t
+       ! MANIFEST
+____________________________________________________________________________
+[  2086] By: gsar                                  on 1998/10/26  02:44:44
+    Log: various win32 tweaks; disable new xs_cpp section (it creates
+        ambiguous inference graph for %.xs --> %.o)
+ Branch: perl
+       ! ext/Thread/Thread.xs gv.c lib/ExtUtils/MakeMaker.pm mg.c pp.c
+       ! pp_hot.c proto.h win32/GenCAPI.pl win32/Makefile
+       ! win32/config.gc win32/config_H.gc win32/makedef.pl
+       ! win32/makefile.mk win32/win32.h
+____________________________________________________________________________
+[  2085] By: gsar                                  on 1998/10/26  00:50:02
+    Log: sanity-check $Config{drand01} in rand.t
+ Branch: perl
+       ! t/op/rand.t win32/config.bc win32/config.gc win32/config.vc
+       ! win32/config_H.bc win32/config_H.gc win32/config_H.vc
+____________________________________________________________________________
+[  2078] By: gsar                                  on 1998/10/25  10:22:04
+    Log: update win32/config*.?c
+ Branch: perl
+       ! Changes win32/config.bc win32/config.gc win32/config.vc
+       ! win32/config_H.bc win32/config_H.gc win32/config_H.vc
+____________________________________________________________________________
+[  2077] By: gsar                                  on 1998/10/25  08:39:25
+    Log: From: Graham Barr <gbarr@pobox.com>
+        Date: Sat, 24 Oct 1998 21:45:50 -0500
+        Message-ID: <19981024214550.C508@pobox.com>
+        Subject: Re: die with a reference  should use overload "" operator
+ Branch: perl
+       ! pp_ctl.c
+____________________________________________________________________________
+[  2076] By: gsar                                  on 1998/10/25  08:37:49
+    Log: From: Graham Barr <gbarr@pobox.com>
+        Date: Sat, 24 Oct 1998 12:45:21 -0500
+        Message-ID: <19981024124521.C512@pobox.com>
+        Subject: [PATCH 5.005_02] Re: Auto-incrementing tied scalar causes SEGV
+ Branch: perl
+       ! sv.c
+____________________________________________________________________________
+[  2075] By: gsar                                  on 1998/10/25  08:24:09
+    Log: fix C<print $n += 5;> etc.
+ Branch: perl
+       ! toke.c
+____________________________________________________________________________
+[  2074] By: gsar                                  on 1998/10/25  08:12:28
+    Log: list builtins with portability caveats
+        From: Jarkko Hietaniemi <jhi@iki.fi>
+        Date: Fri, 23 Oct 1998 14:05:23 +0300 (EET DST)
+        Message-Id: <199810231105.OAA02411@alpha.hut.fi>
+        Subject: [PATCH] 5.005_02 and 5.005_52: perlfunc.pod and perlport.pod
+ Branch: perl
+       ! pod/perlfunc.pod
+____________________________________________________________________________
+[  2073] By: gsar                                  on 1998/10/25  07:55:43
+    Log: fix stack overrun in file test operators
+ Branch: perl
+       ! pp_sys.c
+____________________________________________________________________________
+[  2072] By: gsar                                  on 1998/10/25  07:29:45
+    Log: implement C<goto &func> and other fixes (via private mail)
+        From:    "vishal bhatia" <vishalb@hotmail.com>
+        Date:    Wed, 21 Oct 1998 22:59:03 PDT
+        Message-Id: <19981022055904.20083.qmail@hotmail.com>
+        Subject: [PATCH 5.005_52] More fixes for B
+ Branch: perl
+       ! ext/B/B.pm ext/B/B.xs ext/B/B/C.pm ext/B/B/CC.pm
+____________________________________________________________________________
+[  2071] By: gsar                                  on 1998/10/25  07:14:41
+    Log: From: Graham Barr <gbarr@pobox.com>
+        Date: Sat, 17 Oct 1998 20:42:41 -0500
+        Message-ID: <19981017204241.G510@pobox.com>
+        Subject: Re: taint checking for: use lib "$ENV{'EVIL'}"
+ Branch: perl
+       ! pp_ctl.c
+____________________________________________________________________________
+[  2070] By: gsar                                  on 1998/10/25  07:07:29
+    Log: avoid bogus line number in XSUB redefined warnings
+ Branch: perl
+       ! op.c
+____________________________________________________________________________
+[  2069] By: gsar                                  on 1998/10/25  06:59:03
+    Log: From: Martijn Koster <mak@excitecorp.com>
+        Date: Wed, 21 Oct 1998 13:12:03 +0100
+        Message-ID: <19981021131203.A15661@excitecorp.com>
+        Subject: File::Path::mkpath reports the wrong error
+ Branch: perl
+       ! lib/File/Path.pm
+____________________________________________________________________________
+[  2068] By: gsar                                  on 1998/10/25  06:54:43
+    Log: From: Zachary Miller <zcmiller@simon.er.usgs.gov>
+        Date: Tue, 20 Oct 1998 20:52:20 -0500
+        Message-Id: <199810210152.UAA07792@simon.er.usgs.gov>
+        Subject: Exporter.pm's export_to_level() argument handling buggy
+ Branch: perl
+       ! lib/Exporter.pm
+____________________________________________________________________________
+[  2067] By: gsar                                  on 1998/10/25  06:50:19
+    Log: From: jan.dubois@ibm.net (Jan Dubois)
+        Date: Wed, 21 Oct 1998 00:55:51 +0200
+        Message-ID: <36380269.55370608@smtp1.ibm.net>
+        Subject: Make _really_ sure Dynaloader.xs code is initialized only once
+ Branch: perl
+       ! ext/DynaLoader/DynaLoader_pm.PL
+____________________________________________________________________________
+[  2066] By: gsar                                  on 1998/10/25  06:48:19
+    Log: recognize '%' as a shell metachar for win32
+        From: jan.dubois@ibm.net (Jan Dubois)
+        Date: Tue, 20 Oct 1998 21:57:35 +0200
+        Message-ID: <3636ea31.49170453@smtp1.ibm.net>
+        Subject: [PATCH 5.005_02, Win32]  Re: %ENV% not expanded in backquotes?
+ Branch: perl
+       ! win32/win32.c
+____________________________________________________________________________
+[  2065] By: gsar                                  on 1998/10/25  06:46:30
+    Log: remove FAST_SV_GETS remnant (as suggested by Gisle Aas)
+ Branch: perl
+       ! sv.c
+____________________________________________________________________________
+[  2064] By: gsar                                  on 1998/10/25  06:45:09
+    Log: From: Gisle Aas <gisle@aas.no>
+        Date: 20 Oct 1998 14:24:44 +0200
+        Message-ID: <m34sszctf7.fsf@furu.g.aas.no>
+        Subject: ord() and unpack("U*",...) should not be negative
+ Branch: perl
+       ! pp.c
+____________________________________________________________________________
+[  2063] By: gsar                                  on 1998/10/25  06:42:29
+    Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+        Date: Sun, 18 Oct 1998 23:20:57 -0400 (EDT)
+        Message-Id: <199810190320.XAA28249@monk.mps.ohio-state.edu>
+        Subject: [PATCH 5.005_*] Improve sbrk() on OS/2
+ Branch: perl
+       ! os2/os2.c
+____________________________________________________________________________
+[  2062] By: gsar                                  on 1998/10/25  06:41:26
+    Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+        Date: Sun, 18 Oct 1998 23:10:29 -0400 (EDT)
+        Message-Id: <199810190310.XAA28102@monk.mps.ohio-state.edu>
+        Subject: [PATCH 5.005_*] Speed up aassign
+ Branch: perl
+       ! pp_hot.c
+____________________________________________________________________________
+[  2061] By: gsar                                  on 1998/10/25  06:39:04
+    Log: From: Graham Barr <gbarr@pobox.com>
+        Date: Sat, 17 Oct 1998 22:22:02 -0500
+        Message-ID: <19981017222202.J510@pobox.com>
+        Subject: Re: '*' prototype does not allow bareword with strict
+ Branch: perl
+       ! toke.c
+____________________________________________________________________________
+[  2060] By: gsar                                  on 1998/10/25  06:37:34
+    Log: handle '::' in section names properly
+        From: Graham Barr <gbarr@pobox.com>
+        Date: Sat, 17 Oct 1998 12:57:54 -0500
+        Message-ID: <19981017125754.C510@pobox.com>
+        Subject: Re: pod2html
+ Branch: perl
+       ! lib/Pod/Html.pm
+____________________________________________________________________________
+[  2059] By: gsar                                  on 1998/10/25  06:33:43
+    Log: integrate changes#1982,2014,2021 (from maint-5.005)
+ Branch: perl
+      !> av.c doop.c ext/POSIX/POSIX.xs hv.c lib/ExtUtils/MakeMaker.pm
+      !> mg.c mg.h pp.c pp_hot.c pp_sys.c scope.c t/op/tie.t
+____________________________________________________________________________
+[  2058] By: gsar                                  on 1998/10/25  05:44:17
+    Log: allow more win32 symbol exports (suggested by Jan Dubois)
+ Branch: perl
+       ! win32/makedef.pl
+____________________________________________________________________________
+[  2057] By: gsar                                  on 1998/10/25  05:40:40
+    Log: integrate change#2053 from maint-5.005
+ Branch: perl
+      !> cop.h t/cmd/while.t
+____________________________________________________________________________
+[  2056] By: gsar                                  on 1998/10/25  05:16:41
+    Log: commented version of a patch suggested by Drago Goricanec
+        From: Jarkko Hietaniemi <jhi@cc.hut.fi>
+        Date: 16 Oct 1998 15:24:45 +0300
+        Message-ID: <oeeogrc1ype.fsf@alpha.hut.fi>
+        Subject: Re: [PATCH 5.005_52] Linux select fails with more than 32 FDs
+ Branch: perl
+       ! pp_sys.c
+____________________________________________________________________________
+[  2055] By: gsar                                  on 1998/10/25  05:11:03
+    Log: include eof() in description of buffering caveats
+        From: Anton Berezin <tobez@plab.ku.dk>
+        Date: Fri, 16 Oct 1998 19:22:41 +0200 (CEST)
+        Message-Id: <199810161722.TAA28813@lion.plab.ku.dk>
+        Subject: [DOCPATCH] pod/perlfunc.pod
+ Branch: perl
+       ! pod/perlfunc.pod
+____________________________________________________________________________
+[  2054] By: gsar                                  on 1998/10/25  05:07:42
+    Log: disallow 'x' in hex numbers (except leading '0x')
+        From: Gisle Aas <gisle@aas.no>
+        Date: 16 Oct 1998 16:33:12 +0200
+        Message-ID: <m3n26wtw47.fsf@furu.g.aas.no>
+        Subject: Re: [PATCH 5.005_52] 'x' is not a legal hex digit
+ Branch: perl
+       ! perlvars.h t/op/oct.t util.c
+____________________________________________________________________________
+[  2052] By: gsar                                  on 1998/10/25  04:49:04
+    Log: avoid the circular refcnt logic in magic_mutexfree()
+ Branch: perl
+       ! mg.c pp.c pp_hot.c
+____________________________________________________________________________
+[  2051] By: gsar                                  on 1998/10/25  04:35:07
+    Log: properly restore PL_rsfp_filters after require
+ Branch: perl
+       ! embed.h global.sym objXSUB.h objpp.h pp_ctl.c proto.h scope.c
+       ! scope.h
+____________________________________________________________________________
+[  2050] By: gsar                                  on 1998/10/25  02:42:32
+    Log: integrate cfgperl changes back into mainline
+ Branch: perl
+      +> README.posix-bc hints/posix-bc.sh hints/vmesa.sh
+      +> vmesa/Makefile vmesa/vmesa.c vmesa/vmesaish.h
+      !> (integrate 33 files)
+____________________________________________________________________________
+[  2049] By: gsar                                  on 1998/10/25  01:30:48
+    Log: avoid "mysterious" compile-time failures without messages
+ Branch: perl
+       ! gv.c
+____________________________________________________________________________
+[  2041] By: gsar                                  on 1998/10/23  21:11:56
+    Log: checkin jpl under //depot/perlext/jpl/...
+ Branch: perlext
+       + jpl/JNI/Changes jpl/JNI/JNI.pm jpl/JNI/JNI.xs jpl/JNI/MANIFEST
+       + jpl/JNI/Makefile.PL jpl/JNI/test.pl jpl/JNI/typemap
+       + jpl/JPL/AutoLoader.pm jpl/JPL/Class.pm jpl/JPL/Compile.pm
+       + jpl/JPL/Makefile.PL jpl/JPL_Rolo/JPL_Rolo.jpl
+       + jpl/JPL_Rolo/Makefile.PL jpl/JPL_Rolo/README
+       + jpl/JPL_Rolo/cardfile jpl/PerlInterpreter/Makefile
+       + jpl/PerlInterpreter/Makefile.PL
+       + jpl/PerlInterpreter/PerlInterpreter.c
+       + jpl/PerlInterpreter/PerlInterpreter.h
+       + jpl/PerlInterpreter/PerlInterpreter.java jpl/README
+       + jpl/Sample/Makefile.PL jpl/Sample/Sample.jpl
+       + jpl/Test/Makefile.PL jpl/Test/Test.jpl jpl/bin/jpl
+       + jpl/get_jdk/README jpl/get_jdk/get_jdk.pl
+       + jpl/get_jdk/jdk_hosts jpl/install-jpl
+____________________________________________________________________________
+[  2040] By: larry                                 on 1998/10/23  19:31:42
+    Log: chr(0xFFFFFFFF) didn't translate to utf8 character
+ Branch: perl
+       ! pp.c
+____________________________________________________________________________
+[  2039] By: larry                                 on 1998/10/23  18:48:34
+    Log: tr///d does not seem to work
+ Branch: perl
+       ! lib/utf8_heavy.pl
+____________________________________________________________________________
+[  2038] By: larry                                 on 1998/10/23  18:00:41
+    Log: Program with utf8 identifiers fails to compile
+ Branch: perl
+       ! doop.c gv.c op.c pp.c pp_hot.c toke.c
+____________________________________________________________________________
+[  2037] By: jhi                                   on 1998/10/23  14:04:51
+    Log: Test suite portability:
+        - posix-bc does not write to broken pipes
+        - filehand #11 only iff we have fork
+        - warning.t can now match $expected using regular expressions
+ Branch: cfgperl
+       ! t/io/pipe.t t/lib/filehand.t t/pragma/warn/doio
+       ! t/pragma/warning.t
+____________________________________________________________________________
+[  2036] By: jhi                                   on 1998/10/23  12:12:07
+    Log: yacc clarification.
+ Branch: cfgperl
+       ! README.posix-bc
+____________________________________________________________________________
+[  2035] By: jhi                                   on 1998/10/23  12:09:59
+    Log: Some C compilers get upset about 8-bit characters in /* comments. */
+ Branch: cfgperl
+       ! mg.c
+____________________________________________________________________________
+[  2034] By: jhi                                   on 1998/10/22  09:11:52
+    Log: Configure update: both for pthread_yield more robust
+        testing (all variants of pthread_attr_getdetachstate()) --
+        and because Configure was broken in major way! About 1000
+        last lines were truncated.
+ Branch: cfgperl
+       ! Configure
+____________________________________________________________________________
+[  2033] By: jhi                                   on 1998/10/22  07:47:10
+    Log: DJGPP feedback for #2028.
+ Branch: cfgperl
+       ! thread.h
+____________________________________________________________________________
+[  2032] By: jhi                                   on 1998/10/21  13:03:57
+    Log: yielding, the saga continues.
+ Branch: cfgperl
+       ! Configure config_h.SH
+      !> av.c lib/constant.pm op.c pod/perldiag.pod pp_ctl.c
+      !> t/op/goto.t t/pragma/constant.t
+____________________________________________________________________________
+[  2031] By: jhi                                   on 1998/10/21  09:15:42
+    Log: VM/ESA feedback for #2028.
+ Branch: cfgperl
+       ! Configure config_h.SH thread.h
+____________________________________________________________________________
+[  2030] By: gsar                                  on 1998/10/21  04:22:53
+    Log: fix handling of mayhaps-extended @_ in goto &sub
+ Branch: perl
+       ! av.c pp_ctl.c t/op/goto.t
+____________________________________________________________________________
+[  2029] By: gsar                                  on 1998/10/21  00:54:14
+    Log: restore sanity to "constant" references
+ Branch: perl
+       ! lib/constant.pm op.c pod/perldiag.pod t/pragma/constant.t
+____________________________________________________________________________
+[  2028] By: jhi                                   on 1998/10/20  15:01:20
+    Log: OLD_PTHREADS_API reorganizing.
+ Branch: cfgperl
+       ! dosish.h ext/Thread/Thread.xs perl.h thread.h util.c
+       ! vmesa/vmesaish.h
+____________________________________________________________________________
+[  2027] By: jhi                                   on 1998/10/20  14:14:51
+    Log: #2026 fallout.
+ Branch: cfgperl
+       ! Makefile.SH
+____________________________________________________________________________
+[  2026] By: jhi                                   on 1998/10/20  11:47:21
+    Log: VM/ESA update.
+ Branch: cfgperl
+       ! Makefile.SH vmesa/vmesa.c vmesa/vmesaish.h
+____________________________________________________________________________
+[  2025] By: jhi                                   on 1998/10/20  08:20:56
+    Log: 64-bitness, based on
+        
+        From: Scott Henry <scotth@sgi.com>
+        To: perl-64bit@perl.org
+        Message-ID: <yd8u30zyerl.fsf@hoshi.engr.sgi.com>
+        Subject: Re: Configure problems/questions...
+        Date: 19 Oct 1998 22:38:06 -0700
+ Branch: cfgperl
+       ! hints/irix_6.sh perl.h
+____________________________________________________________________________
+[  2024] By: jhi                                   on 1998/10/20  08:09:07
+    Log: Add lseeksize.
+ Branch: cfgperl
+       ! config_h.SH
+____________________________________________________________________________
+[  2023] By: jhi                                   on 1998/10/20  08:08:33
+    Log: Mumble about _yields() only when threaded.
+ Branch: cfgperl
+       ! Configure
+____________________________________________________________________________
+[  2022] By: jhi                                   on 1998/10/20  07:46:26
+    Log: Thinko at PTHREADS_CREATED_JOINABLE.
+ Branch: cfgperl
+       ! thread.h
+____________________________________________________________________________
+[  2021] By: gbarr                                 on 1998/10/20  01:25:23
+    Log: From: Chip Salzenberg <chip@perlsupport.com>
+        Date: Tue, 6 Oct 1998 13:33:05 -0400
+        Message-ID: <19981006133305.A2348@perlsupport.com>
+        Subject: [PATCH] 5.005_02: Eliminate leak on self-ties
+ Branch: maint-5.005/perl
+       ! av.c doop.c hv.c mg.c mg.h pp.c pp_hot.c pp_sys.c scope.c
+       ! t/op/tie.t
+____________________________________________________________________________
+[  2020] By: jhi                                   on 1998/10/19  09:15:53
+    Log: YIELD more robustly.
+ Branch: cfgperl
+       ! thread.h
+____________________________________________________________________________
+[  2019] By: jhi                                   on 1998/10/19  08:48:33
+    Log: VM/ESA (and OS390) are in between of OLD_PTHREADS_API and
+        the 'new' one (just like DJGPP, it seems).
+ Branch: cfgperl
+       ! thread.h
+____________________________________________________________________________
+[  2018] By: jhi                                   on 1998/10/19  07:02:44
+    Log: vmesaish.h doesn't exclude unixish.h.
+ Branch: cfgperl
+       ! perl.h
+____________________________________________________________________________
+[  2017] By: jhi                                   on 1998/10/19  06:44:19
+    Log: 1<<$randbits is not good for randbits=48.
+ Branch: cfgperl
+       ! t/op/rand.t
+____________________________________________________________________________
+[  2016] By: jhi                                   on 1998/10/19  06:39:47
+    Log: Make #2012 glob pattern more portable.
+ Branch: cfgperl
+       ! Makefile.SH
+____________________________________________________________________________
+[  2014] By: gbarr                                 on 1998/10/17  20:31:42
+    Log: Fix POSIX::sigprocmask not to check type of $old parameter
+        as it is output only
+ Branch: maint-5.005/perl
+       ! ext/POSIX/POSIX.xs
+____________________________________________________________________________
+[  2012] By: jhi                                   on 1998/10/17  15:04:23
+    Log: clean numbered core dumps and t/tmp[0-9]*.
+ Branch: cfgperl
+       ! Makefile.SH
+____________________________________________________________________________
+[  2011] By: jhi                                   on 1998/10/17  14:59:15
+    Log: More robust yacc/bison failure output handling.
+ Branch: cfgperl
+       ! t/comp/require.t t/op/misc.t t/pragma/subs.t
+____________________________________________________________________________
+[  2010] By: jhi                                   on 1998/10/17  14:51:05
+    Log: BC2000 POSIX update.
+ Branch: cfgperl
+       ! MANIFEST
+____________________________________________________________________________
+[  2009] By: jhi                                   on 1998/10/17  14:49:46
+    Log: POSIX BC2000 port from perl-mvs:
+        
+        Subject: Ported perl 5.005.02 to BS2000 / POSIX
+        From: Dorner Thomas <Thomas.Dorner@start.de> 
+        Date: Tue, 29 Sep 1998 13:29:36 +0100 
+        Message-ID: <9CE47B416A24D2118BC40000F84009B20B72C5@start.de> 
+ Branch: cfgperl
+       + README.posix-bc hints/posix-bc.sh
+       ! Configure MANIFEST perl.c perly.y proto.h t/lib/cgi-html.t
+       ! t/op/magic.t t/op/pack.t t/op/quotemeta.t t/op/subst.t toke.c
+       ! unixish.h
+____________________________________________________________________________
+[  2008] By: jhi                                   on 1998/10/17  14:07:49
+    Log: VM/ESA-update.
+ Branch: cfgperl
+       ! MANIFEST
+____________________________________________________________________________
+[  2007] By: jhi                                   on 1998/10/17  13:55:34
+    Log: Forgot few S_I* imports.
+ Branch: cfgperl
+       ! t/lib/ipc_sysv.t
+____________________________________________________________________________
+[  2006] By: jhi                                   on 1998/10/17  13:43:54
+    Log: The VM/ESA port essentials, based on
+        
+        perl-mvs:
+        
+        From: Neale Ferguson <neale@VMA.TABNSW.COM.AU>
+        Subject: Re: Can't find Data/Dumper.pm
+        Date: Mon, 28 Sep 1998 07:40:49 +1300
+        Message-ID: <360E86B0.23847AF4@mailbox.tabnsw.com.au>
+        
+        private email:
+        
+        From: Neale Ferguson <neale@VMA.TABNSW.COM.AU>
+        Subject: Re: Perl thread problems in VM/ESA
+        Date: Thu, 15 Oct 1998 07:18:35 +1300
+        Message-ID: <3624EAFA.16163A2B@mailbox.tabnsw.com.au>
+        
+        and private email:
+        
+        From: Neale Ferguson <NEALE@PUCC.PRINCETON.EDU>
+        Subject:  perl archive
+        Date:  Sun, 11 Oct 1998 19:28:54 EDT
+        Message-Id: <19981011233112Z67215-26626+1513@outbound.Princeton.EDU>
+        which gave a pointer to
+        
+        http://pucc.princeton.edu/~neale/perl.tar
+        
+        (based on Perl 5.005_51)
+ Branch: cfgperl
+       + hints/vmesa.sh vmesa/Makefile vmesa/vmesa.c vmesa/vmesaish.h
+       ! ext/Errno/Errno_pm.PL perl.c perl.h perly.y pp_sys.c
+       ! t/io/pipe.t t/lib/cgi-html.t t/lib/ipc_sysv.t t/op/magic.t
+       ! t/op/pack.t t/op/quotemeta.t t/op/subst.t util.c x2p/a2p.h
+____________________________________________________________________________
+[  2005] By: jhi                                   on 1998/10/17  13:17:19
+    Log: Integrate mainperl.
+ Branch: cfgperl
+      !> Porting/genlog ext/B/B/CC.pm ext/POSIX/POSIX.pm
+      !> lib/ExtUtils/MM_Win32.pm lib/ExtUtils/MakeMaker.pm
+      !> lib/Term/Complete.pm op.c opcode.h opcode.pl os2/Makefile.SHs
+      !> os2/os2.c pod/perlfunc.pod pod/perlxs.pod pp.c sv.c
+      !> t/op/grent.t t/op/sysio.t t/op/tiehandle.t toke.c
+      !> utils/perldoc.PL vms/ext/Stdio/Stdio.pm win32/Makefile
+      !> win32/makefile.mk
+____________________________________________________________________________
+[  2004] By: jhi                                   on 1998/10/17  11:19:06
+    Log: Removed an extra ' from the int64_t test.
+ Branch: cfgperl
+       ! Configure
+____________________________________________________________________________
+[  2003] By: gsar                                  on 1998/10/17  04:11:40
+    Log: silence -w noises (suggested by Greg Bacon)
+ Branch: perl
+       ! lib/Term/Complete.pm
+____________________________________________________________________________
+[  2002] By: gsar                                  on 1998/10/17  04:07:48
+    Log: From: Gisle Aas <gisle@aas.no>
+        Date: 14 Oct 1998 15:53:14 +0200
+        Message-ID: <m3g1cr9rn9.fsf@furu.g.aas.no>
+        Subject: Re: chr(0xFFFF_FFFF) and "\x{10_FFFF}" [PATCH 5.005_52]
+ Branch: perl
+       ! util.c
+____________________________________________________________________________
+[  2001] By: gsar                                  on 1998/10/17  04:06:10
+    Log: From: Gisle Aas <gisle@aas.no>
+        Date: 14 Oct 1998 15:17:44 +0200
+        Message-ID: <m3iuhn9taf.fsf@furu.g.aas.no>
+        Subject: [PATCH 5.005_52] Core dump from "Missing right brace on \x{}"
+ Branch: perl
+       ! toke.c
+____________________________________________________________________________
+[  2000] By: gsar                                  on 1998/10/17  03:06:33
+    Log: From: Gisle Aas <gisle@aas.no>
+        Date: 14 Oct 1998 00:38:06 +0200
+        Message-ID: <m3iuhonl4h.fsf@furu.g.aas.no>
+        Subject: [PATCH 5.005_52] utf8 substr can access memory outside PVX buffer
+ Branch: perl
+       ! sv.c
+____________________________________________________________________________
+[  1999] By: gsar                                  on 1998/10/17  03:04:48
+    Log: From: Dan Sugalski <sugalskd@osshe.edu>
+        Date: Tue, 13 Oct 1998 15:10:57 -0700
+        Message-Id: <3.0.6.32.19981013151057.00a947a0@ous.edu>
+        Subject: [PATCH 5.004/5.005/5.006]Doc patch to VMS::Stdio module
+ Branch: perl
+       ! vms/ext/Stdio/Stdio.pm
+____________________________________________________________________________
+[  1998] By: gsar                                  on 1998/10/17  03:00:40
+    Log: skip readonly vars and unref references when doing a reset()
+ Branch: perl
+       ! sv.c
+____________________________________________________________________________
+[  1997] By: gsar                                  on 1998/10/17  02:49:19
+    Log: fix buggy treatment of large checksums on unicode strings
+        From: Gisle Aas <gisle@aas.no>
+        Date: 13 Oct 1998 21:35:39 +0200
+        Message-ID: <m31zocp850.fsf@furu.g.aas.no>
+        Subject: unpack("%48U*",...)  [PATCH 5.005_52]
+ Branch: perl
+       ! pp.c
+____________________________________________________________________________
+[  1996] By: gsar                                  on 1998/10/17  02:43:22
+    Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+        Date: Tue, 13 Oct 1998 04:46:00 -0400 (EDT)
+        Message-Id: <199810130846.EAA00769@monk.mps.ohio-state.edu>
+        Subject: [PATCH 5.005_52] Memory overrun in os2.c
+ Branch: perl
+       ! os2/Makefile.SHs os2/os2.c
+____________________________________________________________________________
+[  1995] By: gsar                                  on 1998/10/17  02:42:01
+    Log: clarify section name rules for typemaps
+ Branch: perl
+       ! pod/perlxs.pod
+____________________________________________________________________________
+[  1994] By: gsar                                  on 1998/10/17  02:33:02
+    Log: whitespace-proof grent.t
+ Branch: perl
+       ! t/op/grent.t
+____________________________________________________________________________
+[  1993] By: gsar                                  on 1998/10/17  02:27:29
+    Log: fix bug in B::CC::pp_sassign()
+        From: "vishal bhatia" <vishalb@hotmail.com>
+        Date: Sun, 11 Oct 1998 18:41:38 PDT
+        Message-ID: <19981012014139.19614.qmail@hotmail.com>
+        Subject: B::CC problems with pp_sassign routine
+ Branch: perl
+       ! ext/B/B/CC.pm
+____________________________________________________________________________
+[  1992] By: gsar                                  on 1998/10/17  02:17:49
+    Log: applied suggested patch with small doc tweak
+        From: Gisle Aas <gisle@aas.no>
+        Date: 11 Oct 1998 12:53:13 +0200
+        Message-ID: <m3u31bfjza.fsf@furu.g.aas.no>
+        Subject: Re: [PATCH 5.005_52] Optional syswrite LENGTH argument
+ Branch: perl
+       ! opcode.h opcode.pl pod/perlfunc.pod pp_sys.c t/op/sysio.t
+       ! t/op/tiehandle.t
+____________________________________________________________________________
+[  1991] By: gsar                                  on 1998/10/17  02:08:30
+    Log: apply non-conflicting parts from suggested patch
+        From: jan.dubois@ibm.net (Jan Dubois)
+        Date: Sat, 10 Oct 1998 13:15:45 +0200
+        Message-ID: <36223ed7.18279374@smtp1.ibm.net>
+        Subject: [PATCH 5.005_52] Still more MakeMaker  patches
+ Branch: perl
+       ! lib/ExtUtils/MM_Win32.pm lib/ExtUtils/MakeMaker.pm
+____________________________________________________________________________
+[  1990] By: gsar                                  on 1998/10/17  02:01:24
+    Log: provide option to enable optimization with VC (suggested by Jan
+        Dubois)
+ Branch: perl
+       ! win32/Makefile win32/makefile.mk
+____________________________________________________________________________
+[  1989] By: gsar                                  on 1998/10/17  01:55:27
+    Log: Rhapsody DR2 has bsd/ctypes.h, not objc/NXCType.h (suggested by
+        Dave Leppik <dleppik@gage.com>
+ Branch: perl
+       ! perl.h
+____________________________________________________________________________
+[  1988] By: gsar                                  on 1998/10/17  01:49:05
+    Log: stray typo found by Hugo van der Sanden
+ Branch: perl
+       ! op.c
+____________________________________________________________________________
+[  1987] By: gsar                                  on 1998/10/17  01:45:52
+    Log: perldoc pod update
+        From: Daniel Grisinger <dgris@perrin.dimensional.com>
+        Date: 06 Oct 1998 23:56:51 -0600
+        Message-ID: <m3g1d0kj8c.fsf@perrin.dimensional.com>
+        Subject: [PATCH _02 and _52] perldoc
+ Branch: perl
+       ! utils/perldoc.PL
+____________________________________________________________________________
+[  1986] By: gsar                                  on 1998/10/17  01:41:40
+    Log: qualify names of builtins
+ Branch: perl
+       ! ext/POSIX/POSIX.pm
+____________________________________________________________________________
+[  1982] By: gbarr                                 on 1998/10/17  00:20:57
+    Log: From: Jochen Wiedmann <joe@ispsoft.de>
+        Date: Thu, 17 Sep 1998 17:16:06 +0200
+        Message-ID: <360127B6.E44564A@ispsoft.de>
+        Subject: [PATCH] ExtUtils::MakeMaker::prompt cannot return 0
+ Branch: maint-5.005/perl
+       ! lib/ExtUtils/MakeMaker.pm
+____________________________________________________________________________
+[  1978] By: gsar                                  on 1998/10/16  01:58:58
+    Log: integrate cfgperl mods into mainline
+ Branch: perl
+      +> ext/DynaLoader/dl_vmesa.xs
+       ! Porting/genlog
+      !> Configure MANIFEST Makefile.SH config_h.SH
+      !> ext/Thread/Thread.xs gv.c hints/hpux.sh hints/irix_6.sh
+      !> hints/linux.sh hints/os390.sh op.c t/op/pat.t thread.h
+      !> x2p/Makefile.SH
+____________________________________________________________________________
+[  1976] By: gsar                                  on 1998/10/16  00:10:52
+    Log: stray tweak
+ Branch: perl
+       ! op.c
+____________________________________________________________________________
+[  1975] By: gsar                                  on 1998/10/15  23:54:38
+    Log: propagate typeness of lexicals while cloning them
+ Branch: perl
+       ! op.c
+____________________________________________________________________________
+[  1974] By: gsar                                  on 1998/10/15  23:53:25
+    Log: s/last/first/ typo in append_list()
+ Branch: perl
+       ! op.c
+____________________________________________________________________________
+[  1973] By: gsar                                  on 1998/10/15  20:06:17
+    Log: nuke confperl branch and contents
+ Branch: confperl
+       - (delete 1284 files)
+____________________________________________________________________________
+[  1972] By: jhi                                   on 1998/10/15  07:07:35
+    Log: Test #162 had been added but the "print 1..161" had not been updated.
+ Branch: cfgperl
+       ! t/op/pat.t
+____________________________________________________________________________
+[  1971] By: gsar                                  on 1998/10/15  03:09:58
+    Log: check in all confperl changes as of change#1964 into cfgperl
+ Branch: cfgperl
+       + ext/DynaLoader/dl_vmesa.xs
+       ! Configure MANIFEST Makefile.SH config_h.SH
+       ! ext/Thread/Thread.xs gv.c hints/hpux.sh hints/irix_6.sh
+       ! hints/linux.sh hints/os390.sh op.c thread.h x2p/Makefile.SH
+____________________________________________________________________________
+[  1970] By: gsar                                  on 1998/10/15  03:05:59
+    Log: integrate mainline to get tr.t
+ Branch: cfgperl
+      +> t/op/tr.t
+____________________________________________________________________________
+[  1969] By: gsar                                  on 1998/10/15  03:04:17
+    Log: add missing tr.t to repository
+ Branch: perl
+       + t/op/tr.t
+____________________________________________________________________________
+[  1968] By: gsar                                  on 1998/10/15  03:02:43
+    Log: create cfgperl branch
+ Branch: cfgperl
+      +> (branch 1282 files)
+____________________________________________________________________________
+[  1967] By: gsar                                  on 1998/10/15  02:46:08
+    Log: correct bugs exposed in MM_Unix.pm by commenting out Selfloader
+        (MAN3PODS cannot be set to ' '; stray stricture violation)
+ Branch: perl
+       ! ext/B/Makefile.PL ext/DB_File/Makefile.PL
+       ! ext/Data/Dumper/Makefile.PL ext/DynaLoader/Makefile.PL
+       ! ext/Errno/Makefile.PL ext/Fcntl/Makefile.PL
+       ! ext/GDBM_File/Makefile.PL ext/IO/Makefile.PL
+       ! ext/IPC/SysV/Makefile.PL ext/NDBM_File/Makefile.PL
+       ! ext/ODBM_File/Makefile.PL ext/Opcode/Makefile.PL
+       ! ext/POSIX/Makefile.PL ext/SDBM_File/Makefile.PL
+       ! ext/Socket/Makefile.PL ext/Thread/Makefile.PL
+       ! ext/attrs/Makefile.PL ext/re/Makefile.PL
+       ! lib/ExtUtils/MM_Unix.pm
+____________________________________________________________________________
+[  1966] By: gsar                                  on 1998/10/15  02:19:03
+    Log: tweak to make fix in change#1944 behave correctly for closures
+        created within eval''
+ Branch: perl
+       ! op.c t/op/eval.t
+____________________________________________________________________________
+[  1965] By: gsar                                  on 1998/10/14  23:22:41
+    Log: use better numbers for exitstatus test
+ Branch: perl
+       ! t/op/die_exit.t
+____________________________________________________________________________
+[  1964] By: jhi                                   on 1998/10/14  17:25:41
+    Log: Add VM/ESA dynaloading (uses <dll.h>).
+ Branch: confperl
+       + ext/DynaLoader/dl_vmesa.xs
+       ! MANIFEST
+____________________________________________________________________________
+[  1963] By: jhi                                   on 1998/10/14  17:17:10
+    Log: Remove a2p.loadmap in 'clean' target.
+ Branch: confperl
+       ! x2p/Makefile.SH
+____________________________________________________________________________
+[  1962] By: jhi                                   on 1998/10/14  17:13:11
+    Log: VM/ESA produces also .prelmaps. (No, not .perlmaps...)
+ Branch: confperl
+       ! Makefile.SH
+____________________________________________________________________________
+[  1961] By: jhi                                   on 1998/10/14  16:27:39
+    Log: VM/ESA creates executable.loadmaps.
+ Branch: confperl
+       ! Makefile.SH
+____________________________________________________________________________
+[  1960] By: jhi                                   on 1998/10/14  15:37:39
+    Log: Introduce SCHED_YIELD (one of sched_yield(),
+        pthread_yield(), or pthread_yield(NULL)).
+        YIELD is then defined using SCHED_YIELD unless
+        a platform-specific YIELD has already been defined.
+        
+        Support pthread_attr_setdetachstate(pthread_attr_t*, int*).
+        
+        The need for pthread_yield(NULL) and pthread_attr_setdet...
+        introduced by (private email)
+        
+        From: Neale Ferguson <neale@VMA.TABNSW.COM.AU>
+        Date: Sat, 10 Oct 1998 21:08:15 +1300
+        Message-ID: <361F15EE.47376EC@mailbox.tabnsw.com.au>
+        Subject: Re: Perl thread problems in VM/ESA
+        
+        Better select() protoprobe (for AIX), from (private email)
+        From: Andy Dougherty <doughera@lafcol.lafayette.edu>
+        Date: Fri, 2 Oct 1998 14:52:25 -0400 (EDT)
+        Message-Id: <Pine.SUN.3.96.981002144601.11832D-100000@newton.phys>
+        Subject: AIX select (fwd)
+        From: Lars Hecking <lhecking@nmrc.ucc.ie>
+        To: Andy Dougherty <doughera@lafcol.lafayette.edu>
+        Date: Fri, 2 Oct 1998 10:40:01 +0100
+        Subject: AIX select
+        
+        Linux-avoid-so.X.Y, based on
+        From: "Kurt D. Starsinic" <kstar@chapin.edu>
+        Date: Tue, 13 Oct 1998 15:55:07 -0400
+        Message-ID: <19981013155507.B4004@O2.chapin.edu>
+        Subject: Re: [PATCH 5.005_52] [Was: Re: How can Debian accomodate new installation ?]
+ Branch: confperl
+       ! Configure config_h.SH ext/Thread/Thread.xs hints/linux.sh
+       ! thread.h
+____________________________________________________________________________
+[  1959] By: jhi                                   on 1998/10/14  12:51:26
+    Log: Some old pthread implementations have
+        pthread_attr_setdetachstate(pthread_attr_t*, int*).
+ Branch: confperl
+       ! ext/Thread/Thread.xs
+____________________________________________________________________________
+[  1958] By: jhi                                   on 1998/10/14  12:41:11
+    Log: SCHED_YIELD and ATTR_JOINABLE fixes.  Thread.xs and Configure
+        counterparts will follow soon.
+ Branch: confperl
+       ! thread.h
+____________________________________________________________________________
+[  1957] By: jhi                                   on 1998/10/14  12:38:11
+    Log: Add tr.t (MANIFEST already knew about it, strange)
+ Branch: confperl
+       + t/op/tr.t
+____________________________________________________________________________
+[  1956] By: jhi                                   on 1998/10/14  12:24:35
+    Log: Mutexen should be initialized only once.
+ Branch: confperl
+       ! gv.c op.c
+____________________________________________________________________________
+[  1955] By: jhi                                   on 1998/10/14  12:19:38
+    Log: os390 has its own cppstdin.
+ Branch: confperl
+       ! hints/os390.sh
+____________________________________________________________________________
+[  1954] By: jhi                                   on 1998/10/14  12:15:06
+    Log: Integrate with mainperl.
+ Branch: confperl
+      !> (integrate 1280 files)
+____________________________________________________________________________
+[  1953] By: jhi                                   on 1998/10/14  11:48:08
+    Log: Removed duplicate CMA threads code for HPUX 10.X.
+        (probably residue of patch(1) being too understanding)
+        Enhanced 64-bit settings. (redo change#1940)
+ Branch: confperl
+       ! hints/hpux.sh
+____________________________________________________________________________
+[  1952] By: jhi                                   on 1998/10/14  11:45:16
+    Log: (redo change#1949) Detypo in the d_open64 warning about
+        the impending WHOA.
+ Branch: confperl
+       ! hints/irix_6.sh
+____________________________________________________________________________
+[  1951] By: jhi                                   on 1998/10/14  10:54:16
+    Log: Mutexen should only be inited once, after they have been New()ed.
+ Branch: confperl
+       ! gv.c op.c
+____________________________________________________________________________
+[  1950] By: jhi                                   on 1998/10/14  10:41:43
+    Log: Own cppstdin.
+ Branch: confperl
+       ! hints/os390.sh
+____________________________________________________________________________
+[  1949] By: jhi                                   on 1998/10/14  10:34:23
+    Log: Detypo in the d_open64 warning about the impending WHOA.
+ Branch: confperl
+       ! hints/irix_6.sh
+____________________________________________________________________________
+[  1948] By: gsar                                  on 1998/10/14  05:38:01
+    Log: two typos
+ Branch: perl
+       ! pp_hot.c t/op/eval.t
+____________________________________________________________________________
+[  1947] By: gsar                                  on 1998/10/14  05:37:10
+    Log: let docatch() pass the buck when restartop turns out to be null,
+        making exceptions in BEGIN{} propagate as expected
+ Branch: perl
+       ! pp_ctl.c t/op/misc.t
+____________________________________________________________________________
+[  1946] By: gsar                                  on 1998/10/13  03:41:49
+    Log: add missing file from change#1943
+ Branch: perl
+       ! proto.h
+____________________________________________________________________________
+[  1945] By: gsar                                  on 1998/10/13  03:32:02
+    Log: defer "deep recursion" warnings until CXt_SUB context is properly
+        set up
+ Branch: perl
+       ! pp_hot.c t/pragma/warn/pp_hot
+____________________________________________________________________________
+[  1944] By: gsar                                  on 1998/10/13  03:15:50
+    Log: change#1614 merely disabled earlier fix (doh!); undo it and properly
+        fixup the cop_seq value that must be seen by lexical lookups that
+        emanate within eval''
+ Branch: perl
+       ! cop.h op.c pp_ctl.c pp_hot.c scope.c t/op/eval.t
+____________________________________________________________________________
+[  1943] By: gsar                                  on 1998/10/13  02:06:09
+    Log: ensure recursive attempts to findlex()icals know enough about where
+        the last eval'' context was encountered
+ Branch: perl
+       ! op.c t/op/eval.t
+____________________________________________________________________________
+[  1942] By: gsar                                  on 1998/10/13  02:01:24
+    Log: force copy of substrings when matching against temporaries
+ Branch: perl
+       ! pp_hot.c t/op/pat.t
+____________________________________________________________________________
+[  1941] By: gsar                                  on 1998/10/13  01:49:16
+    Log: don't longjmp() in pp_goto() (regressive bug from old single-stack
+        implementation)
+ Branch: perl
+       ! pp_ctl.c t/op/runlevel.t
+____________________________________________________________________________
+[  1940] By: jhi                                   on 1998/10/12  09:57:44
+    Log: Removed duplicate CMA threads code for HPUX 10.X.
+        (probably residue of patch(1) being too understanding)
+        Enhanced 64-bit settings.
+ Branch: confperl
+       ! hints/hpux.sh
+____________________________________________________________________________
+[  1939] By: jhi                                   on 1998/10/12  09:53:11
+    Log: Initial sync from mainline perl.
+ Branch: confperl
+       + (add 1282 files)
+____________________________________________________________________________
+[  1937] By: gsar                                  on 1998/10/06  21:16:34
+    Log: fix $/ init for USE_THREADS
+ Branch: perl
+       ! perl.c
+____________________________________________________________________________
+[  1936] By: gsar                                  on 1998/10/06  07:19:39
+    Log: fix globals caught by change#1927; builds and tests on Solaris
+ Branch: perl
+       ! Changes mg.c op.c perl.c pp_ctl.c regcomp.c utf8.c utf8.h
+       ! warning.h warning.pl
+____________________________________________________________________________
+[  1935] By: gsar                                  on 1998/10/06  06:50:35
+    Log: add test for previous fix
+ Branch: perl
+       ! ext/Thread/create.t
+____________________________________________________________________________
+[  1934] By: gsar                                  on 1998/10/06  06:37:36
+    Log: fix USE_THREADS coredump due to uninitialized PL_hv_fetch_ent_mh
+ Branch: perl
+       ! util.c
+____________________________________________________________________________
+[  1933] By: gsar                                  on 1998/10/06  05:04:20
+    Log: undo bogus part of change#1903 (as pointed out by Larry)
+ Branch: perl
+       ! pp_ctl.c
+____________________________________________________________________________
+[  1932] By: gsar                                  on 1998/10/06  04:21:31
+    Log: added tweaked version of suggested patch
+        From: jan.dubois@ibm.net (Jan Dubois)
+        Date: Sat, 03 Oct 1998 19:04:48 +0200
+        Message-ID: <361d54b2.36841294@smtp1.ibm.net>
+        Subject: [PATCH 5.005_52] More MakeMaker  patches
+ Branch: perl
+       ! lib/ExtUtils/MM_Unix.pm lib/ExtUtils/MakeMaker.pm
+       ! lib/ExtUtils/Mkbootstrap.pm lib/ExtUtils/Mksymlists.pm
+____________________________________________________________________________
+[  1931] By: gsar                                  on 1998/10/06  04:04:33
+    Log: use cpp symbols instead of hardwired constants
+        From: Hugo van der Sanden <hv@crypt.compulink.co.uk>
+        Date: Mon, 05 Oct 1998 09:23:33 +0100
+        Message-Id: <199810050823.JAA00891@crypt.compulink.co.uk>
+        Subject: [PATCH 5.005_52] By the numbers (resend)
+ Branch: perl
+       ! op.c
+____________________________________________________________________________
+[  1930] By: gsar                                  on 1998/10/06  04:01:55
+    Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+        Message-Id: <199810050637.CAA07781@monk.mps.ohio-state.edu>
+        Date: Mon, 5 Oct 1998 02:37:43 -0400 (EDT)
+        Subject: [PATCH 5.005_52] Cumulative OS/2-related patch
+ Branch: perl
+       ! Makefile.SH hints/os2.sh lib/ExtUtils/MM_OS2.pm mg.c
+       ! os2/Changes os2/Makefile.SHs os2/os2.c perl_exp.SH util.c
+____________________________________________________________________________
+[  1929] By: gsar                                  on 1998/10/06  03:50:36
+    Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+        Date: Mon, 5 Oct 1998 02:39:00 -0400 (EDT)
+        Message-Id: <199810050639.CAA07803@monk.mps.ohio-state.edu>
+        Subject: [PATCH 5.00552] Minor test improvement
+ Branch: perl
+       ! t/op/magic.t
+____________________________________________________________________________
+[  1928] By: gsar                                  on 1998/10/06  03:49:03
+    Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+        Date: Mon, 5 Oct 1998 02:38:23 -0400 (EDT)
+        Message-Id: <199810050638.CAA07792@monk.mps.ohio-state.edu>
+        Subject: [PATCH 5.00552] emacs/ptags inprovements
+ Branch: perl
+       ! emacs/ptags
+____________________________________________________________________________
+[  1927] By: gsar                                  on 1998/10/06  03:47:44
+    Log: disable C<#define dirty PL_dirty> et al.
+ Branch: perl
+       ! embed.pl embedvar.h
+____________________________________________________________________________
+[  1926] By: gsar                                  on 1998/10/06  03:43:32
+    Log: From: Mark-Jason Dominus <mjd@plover.com>
+        Date: Sun, 04 Oct 1998 14:48:11 -0400
+        Message-ID: <19981004184811.16048.qmail@plover.com>
+        Subject: PATCH: perldoc -f does not locate -e, -r, -x, etc.
+ Branch: perl
+       ! utils/perldoc.PL
+____________________________________________________________________________
+[  1925] By: gsar                                  on 1998/10/06  03:27:35
+    Log: disable USE_THREADS when PERL_OBJECT is enabled
+ Branch: perl
+       ! win32/Makefile win32/makefile.mk
+____________________________________________________________________________
+[  1924] By: gsar                                  on 1998/10/06  03:26:54
+    Log: remove spurious unused conflicting globals (PL_yy{v,s}sp)
+ Branch: perl
+       ! Makefile.SH Todo-5.005 embedvar.h perlvars.h perly.c toke.c
+       ! vms/perly_c.vms
+____________________________________________________________________________
+[  1923] By: gsar                                  on 1998/10/03  05:19:56
+    Log: make C<use> recognize C<require> overrides; allow C<do EXPR> to be
+        overridden
+ Branch: perl
+       ! embed.h global.sym objXSUB.h objpp.h op.c perly.c perly.y
+       ! proto.h vms/perly_c.vms
+____________________________________________________________________________
+[  1922] By: gsar                                  on 1998/10/03  03:59:50
+    Log: suppress manifypods leak in extensions
+ Branch: perl
+       ! ext/Errno/Makefile.PL ext/IPC/SysV/Makefile.PL pod/pod2man.PL
+____________________________________________________________________________
+[  1921] By: gsar                                  on 1998/10/02  22:30:15
+    Log: os390 fixes (suggested by Peter Prymmer)
+ Branch: perl
+       ! Makefile.SH regcomp.c
+____________________________________________________________________________
+[  1920] By: gsar                                  on 1998/10/02  21:41:19
+    Log: squelch undef warnings
+        From: Hugo van der Sanden <hv@crypt.compulink.co.uk>
+        Date: Fri, 02 Oct 1998 11:01:14 +0100
+        Message-Id: <199810021001.LAA19214@crypt.compulink.co.uk>
+        Subject: [PATCH] Re: Apparent bug in Math::BigInt 
+ Branch: perl
+       ! Changes lib/Math/BigInt.pm
+____________________________________________________________________________
+[  1919] By: gsar                                  on 1998/10/02  04:59:13
+    Log: add note to INSTALL about ANSI C
+ Branch: perl
+       ! INSTALL
+____________________________________________________________________________
+[  1918] By: gsar                                  on 1998/10/02  04:21:10
+    Log: tolerate spaces when fixing up __cplusplus output by old h2xs
+        From: jan.dubois@ibm.net (Jan Dubois)
+        Date: Wed, 30 Sep 1998 23:35:30 +0200
+        Message-ID: <3619a1e8.12336659@smtp1.ibm.net>
+        Subject: [PATCH 5.005_52]: xsubpp and PERL_OBJECT
+ Branch: perl
+       ! lib/ExtUtils/xsubpp
+____________________________________________________________________________
+[  1917] By: gsar                                  on 1998/10/02  04:16:02
+    Log: From: Jarkko Hietaniemi <jhi@iki.fi>
+        Date: Thu, 1 Oct 1998 11:37:26 +0300 (EET DST)
+        Message-Id: <199810010837.LAA31371@alpha.hut.fi>
+        Subject: Re: Configure test for selectbits busted
+ Branch: perl
+       ! Configure
+____________________________________________________________________________
+[  1916] By: gsar                                  on 1998/10/02  04:14:17
+    Log: From: Dan Sugalski <sugalskd@osshe.edu>
+        Date: Wed, 30 Sep 1998 17:15:20 -0700
+        Message-Id: <3.0.6.32.19980930171520.00b22eb0@ous.edu>
+        Subject: [PATCH 5.005_02]VMS config tweaks
+ Branch: perl
+       ! vms/descrip_mms.template vms/subconfigure.com
+____________________________________________________________________________
+[  1915] By: gsar                                  on 1998/10/02  04:10:47
+    Log: use Off_t to permit 64-bit seek()
+        From: Scott Henry <scotth@sgi.com>
+        Date: 29 Sep 1998 17:38:46 -0700
+        Message-ID: <yd8lnn2zb6x.fsf_-_@hoshi.engr.sgi.com>
+        Subject: Re: [PATCH] 5.005_02: Configure "Massive Attack"
+        --
+        Date: 28 Sep 1998 18:55:37 -0700
+        Message-ID: <yd8ogrz1y3q.fsf@hoshi.engr.sgi.com>
+        Subject: Re: [PATCH] 5.005_51: Configure "Massive Attack"
+ Branch: perl
+       ! doio.c pp_sys.c proto.h sv.c
+____________________________________________________________________________
+[  1914] By: gsar                                  on 1998/10/02  04:05:36
+    Log: normalize tm struct passed to strftime() with mktime()
+        From: Spider Boardman <spider@orb.nashua.nh.us>
+        Date: Wed, 30 Sep 1998 15:12:09 -0400
+        Message-Id: <199809301912.PAA26119@Orb.Nashua.NH.US>
+        Subject: [PATCH 5.005_52] Re: POSIX::strftime returns incorrect date 
+ Branch: perl
+       ! ext/POSIX/POSIX.pod ext/POSIX/POSIX.xs
+____________________________________________________________________________
+[  1913] By: gsar                                  on 1998/10/02  03:59:46
+    Log: don't try to run foo_SH.orig etc.
+ Branch: perl
+       ! Configure
+____________________________________________________________________________
+[  1912] By: gsar                                  on 1998/10/02  03:45:37
+    Log: make warning about glob process failure optional
+ Branch: perl
+       ! pod/perldiag.pod pp_hot.c
+____________________________________________________________________________
+[  1911] By: gsar                                  on 1998/10/02  02:52:21
+    Log: document yet another RE diagnostic, make it consistent with REG_INFTY
+        From: Dominic Dunlop <domo@vo.lu>
+        Date: Tue, 29 Sep 1998 21:06:30 +0000
+        Message-Id: <v03110700b236f60b1375@[212.24.192.106]>
+        Subject: [PATCH 5.005_52] Fix hard-coded "matches null string many times" limit
+        --
+        Date: Wed, 30 Sep 1998 11:46:44 +0000
+        Message-Id: <v03110702b237beb04830@[212.24.192.74]>
+        Subject: [PATCH 5.005_52] Add "Strange *+?{} ..." to perldiag
+ Branch: perl
+       ! pod/perldiag.pod regcomp.c
+____________________________________________________________________________
+[  1910] By: gsar                                  on 1998/10/02  02:48:48
+    Log: minor Configure tweaks (via private mail)
+        From: Jarkko Hietaniemi <jhi@iki.fi>
+        Date: Wed, 30 Sep 1998 02:25:06 +0300 (EET DST)
+        Message-Id: <199809292325.CAA19737@alpha.hut.fi>
+        Subject: [PATCH] 5.005_52: the drizzle continues
+ Branch: perl
+       ! Configure config_h.SH handy.h
+____________________________________________________________________________
+[  1909] By: gsar                                  on 1998/10/02  02:46:39
+    Log: update SCO hints for dynamic loading
+        From: Andy Dougherty <doughera@lafcol.lafayette.edu>
+        Date: Mon, 28 Sep 1998 16:50:38 -0400 (EDT)
+        Message-Id: <Pine.SUN.3.96.980928164648.8130E-100000@newton.phys>
+        Subject: [PATCH 5.004_04-MAINT_TRIAL_5 and 5.005_xx] Re: Perl on SCO_SV
+        --
+        Date: Tue, 29 Sep 1998 16:48:55 -0400 (EDT)
+        Message-Id: <Pine.SUN.3.96.980929164612.8634A-100000@newton.phys>
+        Subject: Re: [PATCH 5.004_04-MAINT_TRIAL_5 and 5.005_xx] Re: Perl on SCO_SV
+ Branch: perl
+       ! hints/sco.sh
+____________________________________________________________________________
+[  1908] By: gsar                                  on 1998/10/02  02:33:39
+    Log: make File::Find work when wanted() is autoloaded or a symbolic ref
+ Branch: perl
+       ! lib/File/Find.pm
+____________________________________________________________________________
+[  1907] By: gsar                                  on 1998/10/02  02:21:52
+    Log: applied patches, but retained old behavior for win32 (where compilers
+        can't read from stdin at all)
+        From: Graham Barr <gbarr@ti.com>
+        Date: Mon, 28 Sep 1998 09:41:49 -0500
+        Message-ID: <19980928094149.B26576@asic.sc.ti.com>
+        Subject: Re: 5.005_51 Errno invokes cpprun incorrectly
+        --
+        Date: Tue, 29 Sep 1998 12:35:43 -0500
+        Message-ID: <19980929123543.Z26576@asic.sc.ti.com>
+        Subject: Re: 5.005_51 Errno invokes cpprun incorrectly
+ Branch: perl
+       ! ext/Errno/Errno_pm.PL
+____________________________________________________________________________
+[  1906] By: gsar                                  on 1998/10/02  02:02:19
+    Log: tolerate whitespace in /etc/group entries (suggested by Jarkko
+        Hietaniemi)
+ Branch: perl
+       ! t/op/grent.t
+____________________________________________________________________________
+[  1905] By: gsar                                  on 1998/10/02  01:59:56
+    Log: win32 caveats about truncate()
+ Branch: perl
+       ! pod/perlport.pod
+____________________________________________________________________________
+[  1904] By: gsar                                  on 1998/10/02  01:53:25
+    Log: various Configure and hints updates (prefer drand48() or random()
+        over rand(); add -Dusemultiplicity; enhanced 64-bitness);  patch
+        applied modulo SCO hints superceded by later patch
+        From: Jarkko Hietaniemi <jhi@iki.fi>
+        Date: Tue, 29 Sep 1998 00:56:33 +0300 (EET DST)
+        Message-Id: <199809282156.AAA18615@alpha.hut.fi>
+        Subject: [PATCH] 5.005_52: Configure et al:
+ Branch: perl
+       + ext/IPC/SysV/hints/next_3.pl
+       ! Configure INSTALL MANIFEST config_h.SH ext/IPC/SysV/SysV.xs
+       ! hints/dec_osf.sh hints/irix_6.sh hints/next_3.sh
+       ! hints/solaris_2.sh perl.h pod/perldiag.pod pp.c pp_sys.c
+____________________________________________________________________________
+[  1903] By: gsar                                  on 1998/10/02  01:42:37
+    Log: fixes for bugs in /RE/p       from Hugo van der Sanden
+        Date: Mon, 28 Sep 1998 17:41:49 +0100
+        Message-Id: <199809281641.RAA02450@crypt.compulink.co.uk>
+        Subject: [PATCH 5.005_52] Re: More on ?p 
+        --
+        Date: Thu, 01 Oct 1998 09:10:58 +0100
+        Message-Id: <199810010810.JAA16426@crypt.compulink.co.uk>
+        Subject: [PATCH 5.005_52] ?p fix
+        --
+        Date: Thu, 01 Oct 1998 10:45:56 +0100
+        Message-Id: <199810010945.KAA16733@crypt.compulink.co.uk>
+        Subject: [PATCH 5.005_52] more on ?p
+ Branch: perl
+       ! pp_ctl.c
+____________________________________________________________________________
+[  1902] By: gsar                                  on 1998/10/02  01:36:14
+    Log: From: Kenneth Duda <kjd@cisco.com>
+        Date: Sun, 27 Sep 1998 20:22:12 -0700 (PDT)
+        Message-Id: <199809280322.UAA01261@scorpion.cisco.com>
+        Subject: writemain dies when there are more than 4000 characters of extensions
+ Branch: perl
+       ! writemain.SH
+____________________________________________________________________________
+[  1901] By: gsar                                  on 1998/10/02  01:33:16
+    Log: tweak run_byacc recipe
+ Branch: perl
+       ! Makefile.SH Porting/pumpkin.pod
+____________________________________________________________________________
+[  1900] By: gsar                                  on 1998/10/02  01:02:09
+    Log: use SETERRNO() to reset errno (suggested by Charles Bailey)
+ Branch: perl
+       ! perl.h pp_ctl.c
+____________________________________________________________________________
+[  1899] By: gsar                                  on 1998/09/28  20:46:30
+    Log: fix various 5.00552 mishaps (fixes suggested by Jan Dubois,
+        Kurt Starsinic, Spider Boardman, Dan Sugalski and Albert
+        Dvornik)
+ Branch: perl
+       ! hints/irix_6.sh lib/ExtUtils/MakeMaker.pm mg.c scope.c
+____________________________________________________________________________
+[  1898] By: gsar                                  on 1998/09/28  20:42:52
+    Log: flush unsubmitted 5.00552 change
+ Branch: perl
+       ! MANIFEST
+____________________________________________________________________________
+[  1897] By: gsar                                  on 1998/09/27  04:43:06
+    Log: run vms_yfix.pl
+ Branch: perl
+       ! vms/perly_c.vms
+____________________________________________________________________________
+[  1896] By: gsar                                  on 1998/09/27  03:38:55
+    Log: small tweak on last change
+ Branch: perl
+       ! win32/win32.c
+____________________________________________________________________________
+[  1895] By: gsar                                  on 1998/09/27  03:17:17
+    Log: fix win32_stat() to do the right thing for share names
+ Branch: perl
+       ! win32/win32.c
+____________________________________________________________________________
+[  1891] By: larry                                 on 1998/09/25  18:50:40
+    Log: Fixed apostrophe problem from Mark Knutsen.
+ Branch: perl
+       ! sv.h
+
+----------------
+Version 5.005_52
+----------------
+
+____________________________________________________________________________
+[  1890] By: gsar                                  on 1998/09/25  10:25:00
+    Log: update template config.sh, add new config vars to win32 stuff
+ Branch: perl
+       ! Changes Porting/config.sh Porting/config_H config_h.SH objpp.h
+       ! pp_sys.c proto.h win32/config.bc win32/config.gc
+       ! win32/config.vc win32/config_H.bc win32/config_H.gc
+       ! win32/config_H.vc win32/win32.h
+____________________________________________________________________________
+[  1889] By: gsar                                  on 1998/09/25  07:13:13
+    Log: big Configure update from Jarkko: sync metaconfig units; d_statblks fix
+        for Linux; hpux CMA-threads hints; ELF support for FreeBSD; beginnings
+        of full-fledged 64-bit support (including support for: fseeko/ftello,
+        Quad_t aka long long, hpux and irix 64-bits hints, new 64-bit constants
+        in Fcntl)
+        From: Jarkko Hietaniemi <jhi@iki.fi>
+        Date: Fri, 11 Sep 1998 23:56:11 +0300 (EET DST)
+        Message-Id: <199809112056.XAA04720@alpha.hut.fi>
+        Subject: [PATCH] 5.005_51: Configure "Massive Attack"
+        --
+        From: Jarkko Hietaniemi <jhi@cc.hut.fi>
+        Date: 12 Sep 1998 09:44:25 +0300
+        Message-ID: <oeeaf45bzjq.fsf@alpha.hut.fi>
+        Subject: Re: [PATCH] 5.005_51: Configure "Massive Attack"
+ Branch: perl
+       + lib/filetest.pm
+       ! Configure MANIFEST Makefile.SH config_h.SH doio.c embedvar.h
+       ! ext/Fcntl/Fcntl.pm ext/Fcntl/Fcntl.xs handy.h hints/dec_osf.sh
+       ! hints/freebsd.sh hints/hpux.sh hints/irix_6.sh objXSUB.h
+       ! perl.c perl.h perl_exp.SH perlio.c perlvars.h pod/perldiag.pod
+       ! pod/perlfunc.pod pp_sys.c proto.h win32/GenCAPI.pl
+       ! win32/makedef.pl
+____________________________________________________________________________
+[  1888] By: gsar                                  on 1998/09/25  06:27:12
+    Log: bump patchlevel to 52; other little tweaks for threads, win32 builds
+ Branch: perl
+       ! doop.c mg.c patchlevel.h regexec.c win32/Makefile
+       ! win32/config_H.bc win32/config_H.gc win32/config_H.vc
+       ! win32/makedef.pl win32/makefile.mk win32/win32.c
+____________________________________________________________________________
+[  1887] By: gsar                                  on 1998/09/25  04:50:49
+    Log: win32.c tweak
+ Branch: perl
+       ! win32/win32.c
+____________________________________________________________________________
+[  1886] By: gsar                                  on 1998/09/25  04:47:32
+    Log: s/MAKEMAKEROPT/PERL_MM_OPT/
+ Branch: perl
+       ! lib/ExtUtils/MakeMaker.pm
+____________________________________________________________________________
+[  1885] By: gsar                                  on 1998/09/25  04:05:09
+    Log: From: Dominic Dunlop <domo@vo.lu>
+        Date: Thu, 10 Sep 1998 11:02:46 +0000
+        Message-Id: <v03110703b21d581d7ef1@[212.24.192.107]>
+        Subject: MM_Unix::canonpath erroneously turns leading // into /
+ Branch: perl
+       ! lib/ExtUtils/MM_Unix.pm
+____________________________________________________________________________
+[  1884] By: gsar                                  on 1998/09/25  03:06:10
+    Log: temporarily disable perl malloc for a2p until we clean up
+        conflicting malloc() declarations everywhere
+ Branch: perl
+       ! x2p/Makefile.SH
+____________________________________________________________________________
+[  1883] By: gsar                                  on 1998/09/25  02:27:00
+    Log: remove obsolete win32/bin/*.pl
+ Branch: perl
+       - win32/bin/network.pl win32/bin/webget.pl win32/bin/www.pl
+       ! Changes MANIFEST win32/Makefile win32/makefile.mk
+____________________________________________________________________________
+[  1882] By: gsar                                  on 1998/09/25  02:04:43
+    Log: missing file in last submit
+ Branch: perl
+       ! proto.h
+____________________________________________________________________________
+[  1881] By: gsar                                  on 1998/09/25  01:56:54
+    Log: serial access to PL_x[inpr]v_root for USE_THREADS
+ Branch: perl
+       ! sv.c
+____________________________________________________________________________
+[  1880] By: gsar                                  on 1998/09/25  01:19:38
+    Log: lock sv_mutex in new_he() and del_he() for USE_THREADS
+        From: Drago Goricanec <drago@king.otsd.ts.fujitsu.co.jp>
+        Date: Thu, 24 Sep 1998 22:01:09 +0900
+        Message-Id: <19980924220109J.drago@otsd.ts.fujitsu.co.jp>
+        Subject: [PATCH 5.005_51] Re: Perl 5.005_51 not yet multi Thread safe 
+ Branch: perl
+       ! hv.c proto.h
+____________________________________________________________________________
+[  1879] By: gsar                                  on 1998/09/25  00:20:07
+    Log: tweaks to enable PERL_OBJECT to build & test on win32
+ Branch: perl
+       ! Changes doop.c mg.c objpp.h proto.h regexec.c util.c
+       ! win32/GenCAPI.pl
+____________________________________________________________________________
+[  1878] By: gsar                                  on 1998/09/25  00:13:36
+    Log: fix change#1861, which breaks default boot_xxx symbol generation
+ Branch: perl
+       ! lib/ExtUtils/Mksymlists.pm
+____________________________________________________________________________
+[  1877] By: gsar                                  on 1998/09/24  10:29:54
+    Log: two tweaks for clean build and test on Solaris
+ Branch: perl
+       ! op.c t/op/subst.t
+____________________________________________________________________________
+[  1876] By: gsar                                  on 1998/09/24  09:04:43
+    Log: From: Colin Kuskie <ckuskie@cadence.com>
+        Date: Wed, 26 Aug 1998 14:53:01 -0700 (PDT)
+        Message-ID: <Pine.GSO.3.96.980826143507.3258K-100000@pdxmail.cadence.com>
+        Subject: [PATCH 5.005_51] perlform.pod
+ Branch: perl
+       ! pod/perlform.pod
+____________________________________________________________________________
+[  1875] By: gsar                                  on 1998/09/24  08:47:47
+    Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+        Date: Tue, 25 Aug 1998 15:35:58 -0400 (EDT)
+        Message-Id: <199808251935.PAA11384@monk.mps.ohio-state.edu>
+        Subject: Re: problem with (?p{}) [PATCH 5.005_5*]
+ Branch: perl
+       ! regexec.c
+____________________________________________________________________________
+[  1874] By: gsar                                  on 1998/09/24  08:44:55
+    Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+        Date: Tue, 25 Aug 1998 14:56:06 -0400 (EDT)
+        Message-Id: <199808251856.OAA10825@monk.mps.ohio-state.edu>
+        Subject: Re: your Regexp.patch dated 21.8 [PATCH]
+ Branch: perl
+       ! toke.c
+____________________________________________________________________________
+[  1873] By: gsar                                  on 1998/09/24  08:39:41
+    Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+        Date: Tue, 25 Aug 1998 04:29:49 -0400 (EDT)
+        Message-Id: <199808250829.EAA02470@monk.mps.ohio-state.edu>
+        Subject: [PATCH 5.005_*] Extraneous warning for (?()A|B)
+ Branch: perl
+       ! Changes regcomp.c
+____________________________________________________________________________
+[  1872] By: gsar                                  on 1998/09/24  08:37:00
+    Log: From: Krishna Sethuraman <krishpl@shamu.engr.sgi.com>
+        Date: Sun, 23 Aug 1998 23:18:38 PDT
+        Message-Id: <199808240618.XAA05329@shamu.engr.sgi.com>
+        Subject: new irix_6.sh hints file
+ Branch: perl
+       ! hints/irix_6.sh
+____________________________________________________________________________
+[  1871] By: gsar                                  on 1998/09/24  07:26:37
+    Log: correct FSF address in various places
+ Branch: perl
+       ! Copying README ext/B/README lib/Getopt/Long.pm
+____________________________________________________________________________
+[  1870] By: gsar                                  on 1998/09/24  07:11:56
+    Log: From:    Dan Sugalski <sugalskd@osshe.edu>
+        Date:    Fri, 14 Aug 1998 09:20:16 PDT
+        Message-Id: <3.0.5.32.19980814092016.00b37dc0@ous.edu>
+        Subject: [PATCH 5.005_02] (and _5x I expect) VMS config procedure patch
+ Branch: perl
+       ! configure.com
+____________________________________________________________________________
+[  1869] By: gsar                                  on 1998/09/24  06:55:59
+    Log: use STRICT_ALIGNMENT on IRIX to allow usemymalloc=y again
+        From:    Scott Henry <scotth@sgi.com>
+        Date:    13 Aug 1998 09:52:15 PDT
+        Message-Id: <yd8pve46czk.fsf@hoshi.engr.sgi.com>
+        Subject: [PATCH] Irix USE_LONG_LONG/malloc.c incompatibility (was...)
+ Branch: perl
+       ! hints/irix_6.sh
+____________________________________________________________________________
+[  1868] By: gsar                                  on 1998/09/24  06:51:23
+    Log: From:    Nathan Torkington <gnat@frii.com>
+        Date:    Thu, 13 Aug 1998 10:59:48 MDT
+        Message-Id: <199808131659.KAA06179@prometheus.frii.com>
+        Subject: [PATCH] 5.005_02 perlfunc.pod, improve umask entry
+ Branch: perl
+       ! pod/perlfunc.pod
+____________________________________________________________________________
+[  1867] By: gsar                                  on 1998/09/24  06:45:13
+    Log: make C<goto &sub> AUTOLOAD-aware (autouse now works for modules
+        that are autoloaded)
+ Branch: perl
+       ! pp_ctl.c
+____________________________________________________________________________
+[  1866] By: gsar                                  on 1998/09/24  05:21:19
+    Log: grandfather deprecated "$$<digit>" no more
+ Branch: perl
+       ! pod/perldiag.pod toke.c
+____________________________________________________________________________
+[  1865] By: gsar                                  on 1998/09/24  04:52:48
+    Log: tweak PERL_HASH() to h=h+(h>>5) in order to improve distribution of
+        low bits (suggested by Ilya Zakharevich)
+ Branch: perl
+       ! hv.h
+____________________________________________________________________________
+[  1864] By: gsar                                  on 1998/09/24  04:29:14
+    Log: move yyglobal decls from perly.c to perlvars.h, regen headers, tweak
+        perly_c.diff
+ Branch: perl
+       ! embed.h embedvar.h global.sym perlvars.h perly.c perly.h
+       ! perly_c.diff toke.c
+____________________________________________________________________________
+[  1863] By: gsar                                  on 1998/09/24  03:36:30
+    Log: provide locked access to string table for USE_THREADS
+ Branch: perl
+       ! embedvar.h hv.c intrpvar.h objXSUB.h perl.c thread.h
+____________________________________________________________________________
+[  1862] By: gsar                                  on 1998/09/24  03:30:32
+    Log: remove bogus warn()
+ Branch: perl
+       ! embed.pl
+____________________________________________________________________________
+[  1861] By: gsar                                  on 1998/09/24  02:58:51
+    Log: applied suggested patch, adapted for all platforms
+        From: jan.dubois@ibm.net (Jan Dubois)
+        Date: Sun, 20 Sep 1998 12:56:38 +0200
+        Message-ID: <3604de0c.12319885@smtp1.ibm.net>
+        Subject: [New PATCH 5.005_02] Support Mksymlists FUNCLIST argument in MakeMaker
+ Branch: perl
+       ! lib/ExtUtils/MM_OS2.pm lib/ExtUtils/MM_Unix.pm
+       ! lib/ExtUtils/MM_VMS.pm lib/ExtUtils/MM_Win32.pm
+       ! lib/ExtUtils/MakeMaker.pm
+____________________________________________________________________________
+[  1860] By: gsar                                  on 1998/09/24  02:16:14
+    Log: upgrade to CPAN-1.40
+ Branch: perl
+       ! Changes lib/CPAN.pm lib/CPAN/FirstTime.pm
+____________________________________________________________________________
+[  1859] By: gsar                                  on 1998/09/24  02:08:59
+    Log: use $ENV{MAKEMAKEROPT} to set default command line args
+ Branch: perl
+       ! lib/ExtUtils/MakeMaker.pm
+____________________________________________________________________________
+[  1857] By: gsar                                  on 1998/09/23  10:58:36
+    Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+        Date: Tue, 22 Sep 1998 17:30:16 -0400 (EDT)
+        Message-Id: <199809222130.RAA17034@monk.mps.ohio-state.edu>
+        Subject: More verbose Test::Harness [PATCH]
+ Branch: perl
+       ! lib/Test/Harness.pm
+____________________________________________________________________________
+[  1856] By: gsar                                  on 1998/09/23  10:56:24
+    Log: update hints for OPENSTEP 4.2 on i386
+        From: Gerben Wierda <Gerben_Wierda@RnA.nl>
+        Date: Sun, 20 Sep 1998 01:03:18 +0200
+        Message-Id: <9809192303.AA29190@Spike>
+        Subject: Perl 5.005_02 compilation problems
+ Branch: perl
+       ! hints/next_4.sh
+____________________________________________________________________________
+[  1855] By: gsar                                  on 1998/09/23  10:52:27
+    Log: reset errno after C<require> search (as suggested by Larry)
+ Branch: perl
+       ! pp_ctl.c
+____________________________________________________________________________
+[  1854] By: gsar                                  on 1998/09/23  10:50:26
+    Log: misc pod tweaks
+ Branch: perl
+       ! pod/perldelta.pod pod/perldiag.pod pod/perlport.pod
+____________________________________________________________________________
+[  1853] By: gsar                                  on 1998/09/23  10:46:06
+    Log: make Pod/Html.pm handle the --title option properly (as suggested
+        by gml4410@ggr.co.uk)
+ Branch: perl
+       ! lib/Pod/Html.pm
+____________________________________________________________________________
+[  1852] By: gsar                                  on 1998/09/23  10:41:39
+    Log: SSNEW() API for allocating memory on the savestack
+        From: Albert Dvornik <bert@genscan.com>
+        Date: 17 Sep 1998 19:23:07 -0400
+        Message-Id: <tqemtae338.fsf@puma.genscan.com>
+        Subject: [PATCH 5.005_51] (was: why SAVEDESTRUCTOR()...)
+ Branch: perl
+       ! Changes Changes5.005 embed.h global.sym mg.c objXSUB.h objpp.h
+       ! perl.h proto.h scope.c scope.h t/io/tell.t
+____________________________________________________________________________
+[  1851] By: gsar                                  on 1998/09/23  10:37:05
+    Log: From: Jochen Wiedmann <joe@ispsoft.de>
+        Date: Thu, 17 Sep 1998 17:16:06 +0200
+        Message-ID: <360127B6.E44564A@ispsoft.de>
+        Subject: [PATCH] ExtUtils::MakeMaker::prompt cannot return 0
+ Branch: perl
+       ! lib/ExtUtils/MakeMaker.pm
+____________________________________________________________________________
+[  1850] By: gsar                                  on 1998/09/23  10:33:05
+    Log: From: andreas.koenig@kulturbox.de (Andreas J. Koenig)
+        Date: 15 Sep 1998 01:32:31 +0200
+        Message-ID: <sfchfya46eo.fsf@dubravka.in-berlin.de>
+        Subject: Re: [PATCH] MakeMaker "test" target doesn't depend on "all"
+ Branch: perl
+       ! lib/ExtUtils/MM_Unix.pm
+____________________________________________________________________________
+[  1849] By: gsar                                  on 1998/09/23  10:29:04
+    Log: From: Charles Bailey <BAILEY@newman.upenn.edu>
+        Date: Sat, 12 Sep 1998 19:25:32 -0400 (EDT)
+        Message-id: <01J1QBJUAY1I002KOW@cor.newman.upenn.edu>
+        Subject: Re: extralibs.ld problem in MM_VMS.pm
+ Branch: perl
+       ! lib/ExtUtils/MM_VMS.pm
+____________________________________________________________________________
+[  1848] By: gsar                                  on 1998/09/23  10:25:24
+    Log: From: Roderick Schertler <roderick@argon.org>
+        Date: 11 Sep 1998 16:19:21 -0400
+        Message-ID: <pzyarqpfli.fsf@eeyore.ibcinc.com>
+        Subject: Re: Open2 and memory leaks
+ Branch: perl
+       ! lib/IPC/Open3.pm
+____________________________________________________________________________
+[  1847] By: gsar                                  on 1998/09/23  10:18:31
+    Log: From: Roderick Schertler <roderick@argon.org>
+        Date: Wed, 09 Sep 1998 23:52:48 -0400
+        Message-ID: <20567.905399568@eeyore.ibcinc.com>
+        Subject: seed srand from /dev/urandom when possible
+ Branch: perl
+       ! pod/perlfunc.pod pp.c
+____________________________________________________________________________
+[  1846] By: gsar                                  on 1998/09/23  10:12:22
+    Log: From: Roderick Schertler <roderick@argon.org>
+        Date: Thu, 10 Sep 1998 00:32:17 -0400
+        Message-ID: <21142.905401937@eeyore.ibcinc.com>
+        Subject: doc update for crypt()'s salt
+ Branch: perl
+       ! pod/perlfunc.pod
+____________________________________________________________________________
+[  1845] By: gsar                                  on 1998/09/23  10:09:23
+    Log: fix h2ph handling of C<#error "foo">
+        From: SAKAI Kiyotaka <ksakai@netwk.ntt-at.co.jp>
+        Date: Thu, 10 Sep 1998 09:59:33 +0900
+        Message-Id: <19980910095933N.ksakai@netwk.ntt-at.co.jp>
+        Subject: [5.005_02] h2ph problem
+ Branch: perl
+       ! utils/h2ph.PL
+____________________________________________________________________________
+[  1844] By: gsar                                  on 1998/09/23  10:06:13
+    Log: plug strictly private function leaks in API listing
+ Branch: perl
+       ! pod/perlguts.pod
+____________________________________________________________________________
+[  1843] By: gsar                                  on 1998/09/23  10:02:57
+    Log: hide symbol for static build
+        From: Dominic Dunlop <domo@vo.lu>
+        Date: Tue, 8 Sep 1998 21:40:46 +0000
+        Message-Id: <v03110700b21b52db318d@[212.24.192.111]>
+        Subject: Not OK: perl 5.00551 on powerpc-machten 4.1.1 [PATCH]
+ Branch: perl
+       ! regcomp.c
+____________________________________________________________________________
+[  1842] By: gsar                                  on 1998/09/23  09:52:46
+    Log: define PUT_svindex(), PUT_opindex()
+ Branch: perl
+       ! ext/B/B/Assembler.pm
+____________________________________________________________________________
+[  1841] By: gsar                                  on 1998/09/23  09:44:25
+    Log: From: Dominic Dunlop <domo@vo.lu>
+        Date: Tue, 8 Sep 1998 15:34:53 +0000
+        Message-Id: <v03110701b21afbdc7cfb@[212.24.192.76]>
+        Subject: [PATCH 5.005_51] Eliminate pragma/warn-regexec test dependence on REG_INFTY value
+ Branch: perl
+       ! t/pragma/warn/regexec
+____________________________________________________________________________
+[  1840] By: gsar                                  on 1998/09/23  09:42:17
+    Log: pl2bat tweak from Tye McQueen <tye@metronet.com>
+ Branch: perl
+       ! win32/bin/pl2bat.pl
+____________________________________________________________________________
+[  1839] By: gsar                                  on 1998/09/23  09:38:18
+    Log: From: Drago Goricanec <drago@raptor.otsd.ts.fujitsu.co.jp>
+        Date: Mon, 7 Sep 1998 17:36:09 +0900
+        Message-Id: <199809070836.RAA14631@raptor.otsd.ts.fujitsu.co.jp>
+        Subject: Thread::cond_wait bug in 5.005.51 causes deadlock
+ Branch: perl
+       ! ext/Thread/Thread.xs
+____________________________________________________________________________
+[  1838] By: gsar                                  on 1998/09/23  09:21:11
+    Log: From: "Green, Paul" <pgreen@seussnt.stratus.com>
+        Date: Thu, 10 Sep 1998 00:02:07 -0400
+        Message-ID: <646CD0392810D211B04A00A024BF26FB1022EB@terminator.sw.stratus.com>
+        Subject: RE: [PATCH] 5.005_02 and 5.005_51: Stratus VOS port
+ Branch: perl
+       + README.vos vos/Changes vos/build.cm vos/compile_perl.cm
+       + vos/config.h vos/config_h.SH_orig vos/perl.bind
+       + vos/test_vos_dummies.c vos/vos_dummies.c vos/vosish.h
+       ! MANIFEST perl.c perl.h pod/perlport.pod
+____________________________________________________________________________
+[  1837] By: gsar                                  on 1998/09/23  08:45:58
+    Log: (via private mail)
+        From: Charles Bailey <BAILEY@newman.upenn.edu>
+        Date: Sat, 05 Sep 1998 01:23:58 -0400 (EDT)
+        Message-id: <01J1FH7R43NS002F14@cor.newman.upenn.edu>
+        Subject: [Patch 5.005_02] Miscellaneous VMS cleanup
+ Branch: perl
+       ! Changes Changes5.005 README.vms ext/DynaLoader/dl_vms.xs
+       ! lib/Cwd.pm lib/ExtUtils/MM_VMS.pm lib/ExtUtils/MakeMaker.pm
+       ! lib/ExtUtils/Mksymlists.pm lib/File/Copy.pm lib/File/Path.pm
+       ! lib/File/Spec.pm pod/perldiag.pod pod/perlfaq1.pod
+       ! pod/perlport.pod pod/perlrun.pod vms/ext/DCLsym/0README.txt
+       ! vms/ext/DCLsym/DCLsym.pm vms/ext/DCLsym/DCLsym.xs
+       ! vms/ext/Filespec.pm vms/ext/XSSymSet.pm vms/gen_shrfls.pl
+       ! vms/mms2make.pl vms/perly_c.vms vms/sockadapt.c
+       ! vms/sockadapt.h vms/test.com vms/vms.c vms/vms_yfix.pl
+       ! vms/writemain.pl
+____________________________________________________________________________
+[  1836] By: gsar                                  on 1998/09/23  08:17:42
+    Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+        Date: Sat, 5 Sep 1998 00:14:51 -0400 (EDT)
+        Message-Id: <199809050414.AAA19801@monk.mps.ohio-state.edu>
+        Subject: [PATCH 5.005_*] OS/2 spawning typos
+ Branch: perl
+       ! os2/os2.c
+____________________________________________________________________________
+[  1835] By: gsar                                  on 1998/09/23  08:09:55
+    Log: warn on C<my($foo,$foo)>
+ Branch: perl
+       ! op.c pod/perldiag.pod
+____________________________________________________________________________
+[  1834] By: gsar                                  on 1998/09/23  07:35:56
+    Log: From: pvhp@forte.com (Peter Prymmer)
+        Date: Fri, 4 Sep 98 13:27:41 PDT
+        Message-Id: <9809042027.AA04463@forte.com>
+        Subject: [PATCH 5.005_02 && 5.005_51] general updates to README.vms
+ Branch: perl
+       ! README.vms
+____________________________________________________________________________
+[  1833] By: gsar                                  on 1998/09/23  07:27:34
+    Log: From: Jeff Okamoto <okamoto@xfiles.intercon.hp.com>
+        Date: Wed, 2 Sep 1998 10:06:49 -0700 (PDT)
+        Message-Id: <199809021706.KAA26349@xfiles.intercon.hp.com>
+        Subject: PATCH: 5.005_02 hint/hpux.sh
+ Branch: perl
+       ! hints/hpux.sh
+____________________________________________________________________________
+[  1832] By: gsar                                  on 1998/09/23  07:22:40
+    Log: fix (some) installhtml bugs
+        From: Larry Parmelee <parmelee@CS.Cornell.EDU>
+        Date: Tue, 1 Sep 1998 12:43:40 -0400 (EDT)
+        Message-Id: <199809011643.MAA05702@sundown.cs.cornell.edu>
+        Subject: installhtml script needs work
+ Branch: perl
+       ! installhtml
+____________________________________________________________________________
+[  1831] By: gsar                                  on 1998/09/23  07:19:30
+    Log: document 'U' magic with examples
+        From: Alan Burlison <Alan.Burlison@UK.Sun.com>
+        Date: Tue, 1 Sep 1998 15:54:06 +0100 (BST)
+        Message-Id: <199809011455.PAA00631@sale-wts>
+        Subject: Re: Looking for some XS MAGIC examples...
+ Branch: perl
+       ! pod/perlguts.pod
+____________________________________________________________________________
+[  1830] By: gsar                                  on 1998/09/23  07:16:43
+    Log: From: pvhp@forte.com (Peter Prymmer)
+        Date: Mon, 31 Aug 98 17:13:49 PDT
+        Message-Id: <9809010013.AA06737@forte.com>
+        Subject: [PATCH: 5.005_02; yet another system configuration tip for OS/390]
+ Branch: perl
+       ! README.os390
+____________________________________________________________________________
+[  1829] By: gsar                                  on 1998/09/23  07:15:08
+    Log: fix problematic typecast in filter_del()
+        From: Mark P Lutz <tecmpl1@triton.ca.boeing.com>
+        Date: Mon, 31 Aug 1998 21:13:11 GMT
+        Message-Id: <199808312113.VAA53356@triton.ca.boeing.com>
+        Subject: perl5.005_02 does not build on Cray T90
+ Branch: perl
+       ! toke.c
+____________________________________________________________________________
+[  1828] By: gsar                                  on 1998/09/23  07:11:34
+    Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+        Date: Mon, 31 Aug 1998 14:52:10 -0400 (EDT)
+        Message-Id: <199808311852.OAA24676@monk.mps.ohio-state.edu>
+        Subject: [PATCH 5.005_5*] (?>) broken in RE
+ Branch: perl
+       ! regexec.c t/op/re_tests
+____________________________________________________________________________
+[  1827] By: gsar                                  on 1998/09/23  07:09:50
+    Log: U/WIN testsuite patches from Joe Buehler <jhpb@hekimian.com>
+ Branch: perl
+       ! t/op/grent.t t/op/groups.t
+____________________________________________________________________________
+[  1826] By: gsar                                  on 1998/09/23  07:03:16
+    Log: From: Jarkko Hietaniemi <jhi@iki.fi>
+        Date: Wed, 12 Aug 1998 22:41:37 +0300 (EET DST)
+        Message-Id: <199808121941.WAA06263@alpha.hut.fi>
+        Subject: [PATCH] 5.004_50 or 5.005_02: get rid of interp.sym because not even AIX needs it
+ Branch: perl
+       - interp.sym
+       ! MANIFEST Makefile.SH embed.pl perl_exp.SH
+____________________________________________________________________________
+[  1825] By: gsar                                  on 1998/09/23  06:56:40
+    Log: re-introduce change#1703
+ Branch: perl
+       ! ext/re/re.pm pod/perlre.pod regcomp.c regexec.c thrdvar.h
+____________________________________________________________________________
+[  1824] By: gsar                                  on 1998/09/23  06:44:19
+    Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+        Date: Sat, 29 Aug 1998 17:38:30 -0400 (EDT)
+        Message-Id: <199808292138.RAA18359@monk.mps.ohio-state.edu>
+        Subject: [PATCH 5.005_*] Protect debugger from nonlocal exits
+ Branch: perl
+       ! lib/perl5db.pl
+____________________________________________________________________________
+[  1823] By: gsar                                  on 1998/09/23  06:41:34
+        Log: From: Joe Buehler <jhpb@hekimian.com>
+             Date: 29 Aug 1998 17:13:28 -0400
+             Message-ID: <yd37lzro5jb.fsf@pandora.hekimian.com>
+             Subject: patches for perl 5.005_51 under U/WIN
+     Branch: perl
+           + hints/uwin.sh
+          ! Configure installman lib/ExtUtils/MM_Unix.pm makedepend.SH
+           ! t/lib/posix.t
+____________________________________________________________________________
+[  1822] By: gsar                                  on 1998/09/23  06:36:59
+        Log: add missing C<no utf8;> tweak from Larry
+     Branch: perl
+           ! t/op/subst.t
+____________________________________________________________________________
+[  1821] By: gsar                                  on 1998/09/23  06:27:51
+        Log: s/runops/CALLRUNOPS/
+     Branch: perl
+           ! cc_runtime.h
+____________________________________________________________________________
+[  1820] By: gsar                                  on 1998/09/23  06:24:49
+        Log: rename t/pragma/warn-* to t/pragma/warn/*, be 8.3-friendly
+     Branch: perl
+         +> t/pragma/warn/1global t/pragma/warn/2use t/pragma/warn/3both
+         +> t/pragma/warn/4lint t/pragma/warn/5nolint t/pragma/warn/doio
+         +> t/pragma/warn/gv t/pragma/warn/mg t/pragma/warn/op
+         +> t/pragma/warn/perl t/pragma/warn/perly t/pragma/warn/pp
+         +> t/pragma/warn/pp_ctl t/pragma/warn/pp_hot t/pragma/warn/pp_sys
+         +> t/pragma/warn/regcomp t/pragma/warn/regexec t/pragma/warn/sv
+         +> t/pragma/warn/taint t/pragma/warn/toke t/pragma/warn/universal
+          +> t/pragma/warn/util
+          - t/pragma/warn-1global t/pragma/warn-2use t/pragma/warn-3both
+          - t/pragma/warn-4lint t/pragma/warn-5nolint t/pragma/warn-doio
+          - t/pragma/warn-gv t/pragma/warn-mg t/pragma/warn-op
+          - t/pragma/warn-perl t/pragma/warn-perly t/pragma/warn-pp
+          - t/pragma/warn-pp_ctl t/pragma/warn-pp_hot t/pragma/warn-pp_sys
+          - t/pragma/warn-regcomp t/pragma/warn-regexec t/pragma/warn-sv
+          - t/pragma/warn-taint t/pragma/warn-toke t/pragma/warn-universal
+           - t/pragma/warn-util
+           ! MANIFEST t/pragma/warning.t
+____________________________________________________________________________
+[  1819] By: gsar                                  on 1998/09/23  06:08:46
+        Log: make \(%foo) return refs to values (not copies of values)
+             From: Stephen McCamant <smccam@uclink4.berkeley.edu>
+             Date: Fri, 28 Aug 1998 20:46:10 -0700 (PDT)
+             Message-ID: <13799.30680.47765.352558@fre-76-120.reshall.berkeley.edu>
+             --
+             From: Roderick Schertler <roderick@argon.org>
+             Date: Sat, 29 Aug 1998 00:58:33 -0400
+             Message-ID: <29894.904366713@eeyore.ibcinc.com>
+             Subject: Re: \(%x) problems
+     Branch: perl
+           ! doop.c pod/perlref.pod
+____________________________________________________________________________
+[  1818] By: gsar                                  on 1998/09/23  06:05:08
+        Log: make h2xs generate ANSI prototypes
+     Branch: perl
+           ! utils/h2xs.PL
+____________________________________________________________________________
+[  1817] By: gsar                                  on 1998/09/23  05:57:16
+        Log: updated usethreads hints for hpux 10.X
+             From: Matthew T Harden <mthard@mthard1.monsanto.com>
+             Date: Fri, 28 Aug 1998 14:10:42 GMT
+             Message-Id: <199808281410.AA11058@mthard1.monsanto.com>
+             Subject: Re: OK: perl 5.00502 on PA-RISC1.1-thread 10.20 (UNINSTALLED)
+     Branch: perl
+           ! hints/hpux.sh perl.h
+____________________________________________________________________________
+[  1816] By: gsar                                  on 1998/09/23  05:53:31
+        Log: don't create empty directories in installperl
+             From: Robin Barker <rmb1@cise.npl.co.uk>
+             Date: Fri, 21 Aug 1998 11:29:24 +0100 (BST)
+             Message-Id: <199808211029.LAA00551@cyclone.cise.npl.co.uk>
+             Subject: [PATCH 5.005_02] install: empty dirs
+     Branch: perl
+           ! installperl
+____________________________________________________________________________
+[  1815] By: gsar                                  on 1998/09/23  05:50:36
+        Log: make behavior of /(a{3})+/ like /(aaa)+/ w.r.t where it matches
+             From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Fri, 21 Aug 1998 05:41:02 -0400 (EDT)
+             Message-Id: <199808210941.FAA16467@monk.mps.ohio-state.edu>
+             Subject: Re: your mail
+     Branch: perl
+           ! regexec.c t/op/re_tests
+____________________________________________________________________________
+[  1814] By: gsar                                  on 1998/09/23  05:45:17
+        Log: From: "Kurt D. Starsinic" <kstar@chapin.edu>
+             Date: Thu, 20 Aug 1998 20:59:03 -0400
+             Message-ID: <19980820205903.A12908@O2.chapin.edu>
+             Subject: [PATCH] h2ph misquotes #error directives
+     Branch: perl
+           ! t/lib/h2ph.pht utils/h2ph.PL
+____________________________________________________________________________
+[  1813] By: gsar                                  on 1998/09/23  05:42:41
+        Log: patch to support computed regular subexpressions
+             From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Thu, 20 Aug 1998 15:19:50 -0400 (EDT)
+             Message-Id: <199808201919.PAA04692@monk.mps.ohio-state.edu>
+             Subject: [5.005_5* PATCH] Postponed RE - now!
+     Branch: perl
+          ! embedvar.h objXSUB.h pod/perlre.pod regcomp.c regexec.c
+           ! t/op/pat.t t/op/re_tests thrdvar.h toke.c
+____________________________________________________________________________
+[  1812] By: gsar                                  on 1998/09/23  05:26:26
+        Log: better CR-handling on shebang line and in formats (fixed variant of
+             patch suggested by Igor Sysoev <igor@nitek.ru>)
+     Branch: perl
+           ! perl.c toke.c
+____________________________________________________________________________
+[  1811] By: gsar                                  on 1998/09/23  04:35:46
+        Log: document non-loopish blocks better
+             From: "M.J.T. Guy" <mjtg@cus.cam.ac.uk>
+             Date: Tue, 18 Aug 1998 12:28:36 +0100
+             Message-Id: <E0z8jwK-00057Z-00@ursa.cus.cam.ac.uk>
+             Subject: Re: next in do {} while block gives error message
+     Branch: perl
+           ! pod/perlfunc.pod
+____________________________________________________________________________
+[  1810] By: gsar                                  on 1998/09/23  04:12:05
+        Log: fix bogus integerization of pop()'s return value
+             From: Gurusamy Sarathy <gsar@engin.umich.edu>
+             Date: Sat, 15 Aug 1998 23:27:54 -0400
+             Message-Id: <199808160327.XAA05186@aatma.engin.umich.edu>
+             Subject: Re: Complex expression does integer arithmetic 
+     Branch: perl
+           ! opcode.h opcode.pl
+____________________________________________________________________________
+[  1809] By: gsar                                  on 1998/09/23  04:09:43
+        Log: tweak README.win32
+     Branch: perl
+           ! README.win32
+____________________________________________________________________________
+[  1808] By: gsar                                  on 1998/09/23  03:40:57
+        Log: better diagnostic for do{} used as lvalue
+     Branch: perl
+           ! op.c pod/perlport.pod
+____________________________________________________________________________
+[  1807] By: gsar                                  on 1998/09/23  03:38:30
+        Log: enable PERL_SBRK_VIA_MALLOC on OPENSTEP-Mach
+             From: hansm@icgroup.nl
+             Date: Tue, 11 Aug 98 21:08:51 +0200
+             Message-Id: <9808111907.AA21903@icgned.icgroup.nl>
+             Subject: Not OK: perl 5.00551 on OPENSTEP-Mach 4_1 (UNINSTALLED)
+     Branch: perl
+           ! malloc.c
+____________________________________________________________________________
+[  1806] By: gsar                                  on 1998/09/23  03:36:08
+        Log: support make written in perl (aka "pmake") on win32
+     Branch: perl
+           ! lib/ExtUtils/MM_Win32.pm
+____________________________________________________________________________
+[  1805] By: gsar                                  on 1998/09/23  03:30:07
+        Log: fix mismatched UV/U32 types for to_utf8_*()
+     Branch: perl
+           ! utf8.c
+____________________________________________________________________________
+[  1804] By: gsar                                  on 1998/09/23  03:22:22
+        Log: From: Laszlo Molnar <molnarl@cdata.tvnet.hu>
+             Date: Sun, 9 Aug 1998 22:38:23 +0200
+             Message-ID: <19980809223823.A215@cdata.tvnet.hu>
+             Subject: [PATCH 5.5002] dos-djgpp update
+     Branch: perl
+           ! t/io/fs.t
+____________________________________________________________________________
+[  1803] By: gsar                                  on 1998/09/23  03:20:13
+        Log: apply minimal variant of patch (sent via private mail)
+             From: jarkko.hietaniemi@research.nokia.com (Jarkko Hietaniemi)
+             Date: Wed, 12 Aug 1998 15:42:35 +0300
+             Message-Id: <199808121242.PAA29761@comanche.spices>
+             Subject: [PATCH] 5.004_02 or 5.005_51: fix regexp and tr character ranges in non-ASCII lands
+     Branch: perl
+          ! MANIFEST perl.h pod/perllocale.pod pod/perlop.pod
+           ! pod/perlre.pod regcomp.c t/pragma/locale.t toke.c
+____________________________________________________________________________
+[  1802] By: gsar                                  on 1998/09/23  03:03:39
+        Log: adjust searchdict.t for EBCDIC (still needs documenting)
+             From: pvhp@forte.com (Peter Prymmer)
+             Date: Thu, 6 Aug 98 18:09:39 PDT
+             Message-Id: <9808070109.AA06158@forte.com>
+             Subject: [PATCH 5.005_02-TRIAL2] potential modification to t/lib/searchdict.t
+     Branch: perl
+           ! README.os390 t/lib/searchdict.t
+____________________________________________________________________________
+[  1801] By: gsar                                  on 1998/09/23  02:54:15
+        Log: silence redefined warning for XS(INIT) {}
+     Branch: perl
+           ! op.c
+____________________________________________________________________________
+[  1800] By: gsar                                  on 1998/09/23  02:42:23
+        Log: support match indices via special variables @- and @+
+             From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Tue, 21 Jul 1998 23:00:35 -0400 (EDT)
+             Message-Id: <199807220300.XAA16081@monk.mps.ohio-state.edu>
+             Subject: [PATCH 5.004_76] @- and @+
+     Branch: perl
+          ! av.c embed.h global.sym gv.c mg.c objXSUB.h objpp.h perl.h
+           ! pod/perlvar.pod proto.h regnodes.h sv.c t/op/pat.t toke.c
+____________________________________________________________________________
+[  1799] By: gsar                                  on 1998/09/23  01:44:31
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Tue, 11 Aug 1998 18:43:29 -0400 (EDT)
+             Message-Id: <199808112243.SAA14243@monk.mps.ohio-state.edu>
+             Subject: Re: Segmentation fault for /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/
+     Branch: perl
+           ! regcomp.c t/op/re_tests
+____________________________________________________________________________
+[  1798] By: gsar                                  on 1998/09/23  01:39:23
+        Log: integrate maint-5.005 changes (except conflicting change#1794)
+     Branch: perl
+           ! Changes
+         !> objXSUB.h op.c pod/perlfunc.pod pp.c regcomp.c t/op/re_tests
+         !> toke.c util.c win32/config.bc win32/config.gc win32/config.vc
+          !> win32/win32.h
+____________________________________________________________________________
+[  1797] By: gsar                                  on 1998/09/23  01:32:36
+        Log: add note to win32/Makefile about setting CCHOME
+     Branch: perl
+           ! win32/Makefile win32/makefile.mk
+____________________________________________________________________________
+[  1796] By: gsar                                  on 1998/09/23  01:31:32
+        Log: perl.pod tweak
+     Branch: perl
+           ! pod/perl.pod
+____________________________________________________________________________
+[  1795] By: gsar                                  on 1998/09/21  20:34:10
+        Log: make xsubpp generate well-formed code with CAPI && !PERL_OBJECT
+     Branch: perl
+           ! lib/ExtUtils/xsubpp
+____________________________________________________________________________
+[  1789] By: gsar                                  on 1998/09/18  18:01:37
+        Log: delay freeing itervar so C<for $i (@a) { return($i) }> works
+     Branch: perl
+           ! cop.h t/cmd/for.t
+____________________________________________________________________________
+[  1788] By: gsar                                  on 1998/09/17  02:19:11
+        Log: resync win32/config.?c with Porting/config.sh to pick up apiversion
+     Branch: perl
+           ! win32/config.bc win32/config.gc win32/config.vc
+____________________________________________________________________________
+[  1787] By: gsar                                  on 1998/09/17  01:45:14
+        Log: suppress bogus warning on C<sub x {} x()>
+     Branch: perl
+           ! toke.c
+____________________________________________________________________________
+[  1786] By: gsar                                  on 1998/09/17  01:42:51
+        Log: ntohl typo in objXSUB.h
+     Branch: perl
+           ! objXSUB.h
+____________________________________________________________________________
+[  1785] By: gsar                                  on 1998/09/17  01:41:48
+        Log: fill gaps in sig_* entries in win32/config.?c
+     Branch: perl
+           ! win32/config.bc win32/config.gc win32/config.vc
+____________________________________________________________________________
+[  1781] By: larry                                 on 1998/09/05  23:48:24
+        Log: tr/// logic was hosed under utf8
+     Branch: perl
+           ! doop.c op.c op.h pp.c proto.h
+____________________________________________________________________________
+[  1780] By: larry                                 on 1998/09/05  23:44:16
+        Log: several new tests needed tweaking to work under utf8
+     Branch: perl
+           ! t/comp/require.t t/op/pack.t t/op/substr.t
+____________________________________________________________________________
+[  1779] By: larry                                 on 1998/09/05  23:41:42
+        Log: index() applied BM optimization to wrong argument
+     Branch: perl
+           ! op.c util.c
+____________________________________________________________________________
+[  1778] By: larry                                 on 1998/09/05  23:38:29
+        Log: Implicit require during compile reset line numbering
+     Branch: perl
+           ! pp_ctl.c
+
+----------------
+Version 5.005_51
+----------------
+
+____________________________________________________________________________
+[  1777] By: gsar                                  on 1998/08/10  07:02:38
+        Log: various tweaks: fix signed vs. unsigned problems that prevented C++
+             builds; add sundry PERL_OBJECT scaffolding to get it to build; fix
+             lexical warning testsuite for win32
+     Branch: perl
+          ! Changes doop.c embed.h global.sym objXSUB.h objpp.h op.c
+          ! pod/perlhist.pod pp.c pp_hot.c proto.h regcomp.c regexec.c
+          ! sv.c t/pragma/warn-doio t/pragma/warn-mg t/pragma/warn-op
+          ! t/pragma/warn-regexec toke.c utf8.c win32/GenCAPI.pl
+           ! win32/Makefile win32/makefile.mk
+____________________________________________________________________________
+[  1776] By: gsar                                  on 1998/08/09  17:53:48
+        Log: fix coredump with MULTIPLICITY (ckWARN() needs early curcop init)
+     Branch: perl
+           ! Changes MANIFEST perl.c pod/perlhist.pod
+____________________________________________________________________________
+[  1775] By: gsar                                  on 1998/08/09  14:35:33
+        Log: tweak warning test
+     Branch: perl
+           ! t/pragma/warn-toke
+____________________________________________________________________________
+[  1774] By: gsar                                  on 1998/08/09  14:13:46
+        Log: add missing dTHR; notes for test failures due to small stacksize
+     Branch: perl
+          ! doio.c gv.c op.c sv.c t/pragma/warn-mg t/pragma/warn-regexec
+           ! toke.c universal.c util.c
+____________________________________________________________________________
+[  1773] By: gsar                                  on 1998/08/09  11:31:53
+        Log: lexical warnings; tweaks to places that didn't apply correctly
+             From:    pmarquess@bfsec.bt.co.uk (Paul Marquess)
+             Date:    Wed, 29 Jul 1998 09:28:45 BST
+             Message-Id: <9807290828.AA26286@claudius.bfsec.bt.co.uk>
+             Subject: lexical warnings patch for 5.005_50
+     Branch: perl
+          + README.lexwarn lib/warning.pm t/pragma/warn-2use
+          + t/pragma/warn-3both t/pragma/warn-4lint t/pragma/warn-5nolint
+          + t/pragma/warn-doio t/pragma/warn-gv t/pragma/warn-mg
+          + t/pragma/warn-op t/pragma/warn-perl t/pragma/warn-perly
+          + t/pragma/warn-pp t/pragma/warn-pp_ctl t/pragma/warn-pp_hot
+          + t/pragma/warn-pp_sys t/pragma/warn-regcomp
+          + t/pragma/warn-regexec t/pragma/warn-sv t/pragma/warn-taint
+          + t/pragma/warn-toke t/pragma/warn-universal t/pragma/warn-util
+           + warning.h warning.pl
+          ! Changes MANIFEST Makefile.SH cop.h doio.c global.sym gv.c
+          ! lib/diagnostics.pm mg.c op.c op.h perl.c perl.h pp.c pp_ctl.c
+          ! pp_hot.c pp_sys.c proto.h regcomp.c regexec.c sv.c t/op/tie.t
+          ! t/pragma/warn-1global t/pragma/warning.t taint.c toke.c
+           ! universal.c util.c
+____________________________________________________________________________
+[  1772] By: gsar                                  on 1998/08/08  23:06:00
+        Log: bump patchlevel to 5.005_51
+     Branch: perl
+          ! patchlevel.h win32/Makefile win32/config_H.bc
+           ! win32/config_H.gc win32/config_H.vc win32/makefile.mk
+____________________________________________________________________________
+[  1771] By: gsar                                  on 1998/08/08  23:01:57
+        Log: fix bogus warning on "\x{123}"
+             From: pmarquess@claudius.bfsec.bt.co.uk (Paul Marquess)
+             Date: Mon, 27 Jul 1998 06:16:15 +0100 (BST)
+             Message-Id: <9807270534.AA11102@claudius.bfsec.bt.co.uk>
+             Subject: [5.005_50 PATCH] Some unicode problems
+     Branch: perl
+           ! regcomp.c toke.c
+____________________________________________________________________________
+[  1770] By: gsar                                  on 1998/08/08  22:56:55
+        Log: hide dup symbol for static build of ext/re
+             From: Dominic Dunlop <domo@ppp72.vo.lu>
+             Date: Wed, 29 Jul 1998 11:09:56 +0100 (WET DST)
+             Message-Id: <199807291009.LAA08935@ppp72.vo.lu>
+             Subject: Not OK: perl 5.00550 on powerpc-machten 4.1 [BOGUS PATCH]
+     Branch: perl
+           ! regcomp.c
+____________________________________________________________________________
+[  1769] By: gsar                                  on 1998/08/08  22:45:06
+        Log: fix double free on -Mutf8 -e '$b=uc("")'
+             From: larry@wall.org (Larry Wall)
+             Date: Fri, 7 Aug 1998 14:42:43 -0700
+             Message-Id: <199808072142.OAA14920@wall.org>
+             Subject: [PATCH 5.005_50]: uc("") and lc("") under utf8 fails
+     Branch: perl
+           ! pp.c
+____________________________________________________________________________
+[  1768] By: gsar                                  on 1998/08/08  22:42:29
+        Log: substr() assumes utf8 without say-so
+             From: larry@wall.org (Larry Wall)
+             Date: Fri, 7 Aug 1998 12:25:12 -0700
+             Message-Id: <199808071925.MAA13436@wall.org>
+             Subject: [PATCH 5.005_50] substr bug?
+     Branch: perl
+           ! pp.c
+____________________________________________________________________________
+[  1767] By: gsar                                  on 1998/08/08  22:38:25
+        Log: fix intolerance of SWASHes for blank lines
+             From: Gisle Aas <aas@sn.no>
+             Date: 06 Aug 1998 23:28:57 +0200
+             Message-ID: <m3emutkdeu.fsf@furu.g.aas.no>
+             Subject: Re: Re[2]: another joyride begins
+     Branch: perl
+           ! lib/utf8_heavy.pl
+____________________________________________________________________________
+[  1766] By: gsar                                  on 1998/08/08  22:33:10
+        Log: utf8 doc tweak
+             From: Gisle Aas <aas@sn.no>
+             Date: 05 Aug 1998 00:41:04 +0200
+             Message-ID: <m3yat4wetb.fsf@furu.g.aas.no>
+             Subject: Matching clumps
+     Branch: perl
+           ! lib/utf8.pm
+____________________________________________________________________________
+[  1765] By: gsar                                  on 1998/08/08  22:31:37
+        Log: kill bogus warning from -we 'use utf8; $_="\x{FF}"'
+             From: Gisle Aas <aas@sn.no>
+             Date: 04 Aug 1998 22:56:11 +0200
+             Message-ID: <m3yat4sbys.fsf@furu.g.aas.no>
+             Subject: Re: another joyride begins
+     Branch: perl
+           ! lib/utf8_heavy.pl
+____________________________________________________________________________
+[  1764] By: gsar                                  on 1998/08/08  22:28:43
+        Log: From: larry@wall.org (Larry Wall)
+             Date: Tue, 4 Aug 1998 17:04:51 -0700
+             Message-Id: <199808050004.RAA22592@wall.org>
+             Subject: [PATCH 5.005_50] \pX not implemented!
+     Branch: perl
+           ! regcomp.c
+____________________________________________________________________________
+[  1763] By: gsar                                  on 1998/08/08  22:27:15
+        Log: From: Stephen McCamant <alias@mcs.com>
+             Date: Sun,  2 Aug 1998 16:33:18 -0500 (CDT)
+             Message-ID: <13764.55116.921952.837027@alias-2.pr.mcs.net>
+             Subject: [PATCH] Eliminate superfluous RV2p[AH]Vs in oops[AH]V()
+     Branch: perl
+           ! op.c
+____________________________________________________________________________
+[  1762] By: gsar                                  on 1998/08/08  22:26:09
+        Log: From: Jarkko Hietaniemi <jhi@iki.fi>
+             Date: Sun, 2 Aug 1998 22:05:28 +0300 (EET DST)
+             Message-Id: <199808021905.WAA10592@alpha.hut.fi>
+             Subject: [PATCH] 5.005_02-TRIAL1 or 5.004_05-MAINT_TRIAL_5: t/op/{pw,gr}ent.t
+     Branch: perl
+           + t/op/grent.t t/op/pwent.t
+           ! MANIFEST
+____________________________________________________________________________
+[  1761] By: gsar                                  on 1998/08/08  22:21:52
+        Log: From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Thu, 30 Jul 1998 19:23:56 -0400 (EDT)
+             Message-Id: <199807302323.TAA21175@monk.mps.ohio-state.edu>
+             Subject: [5.005_50 PATCH] misprint in RE engine
+     Branch: perl
+           ! regexec.c t/op/re_tests
+____________________________________________________________________________
+[  1760] By: gsar                                  on 1998/08/08  22:18:54
+        Log: integrate maint-5.005 changes into mainline
+     Branch: perl
+          +> Porting/fixCORE README.os390 ebcdic.c win32/des_fcrypt.patch
+          !> (integrate 138 files)
+____________________________________________________________________________
+[  1672] By: gsar                                  on 1998/07/27  18:35:28
+        Log: create new Changes
+     Branch: perl
+           + Changes
+           ! Changes5.005 MANIFEST
+____________________________________________________________________________
+[  1671] By: gsar                                  on 1998/07/27  18:30:57
+        Log: rename Changes --> Changes5.005
+     Branch: perl
+          +> Changes5.005
+           - Changes
+____________________________________________________________________________
+[  1670] By: gsar                                  on 1998/07/27  18:10:14
+        Log: integrate 5.005_01 changes from maint
+     Branch: perl
+           ! Changes
+         !> README.win32 pod/perldelta.pod proto.h toke.c win32/GenCAPI.pl
+          !> win32/win32.c
+____________________________________________________________________________
+[  1667] By: nick                                  on 1998/07/26  14:31:01
+        Log: Add dTHR so that it compiles miniperl in threaded mode
+     Branch: perl
+           ! doop.c mg.c regcomp.c regexec.c
+____________________________________________________________________________
+[  1666] By: nick                                  on 1998/07/26  13:01:10
+        Log: Resolve ansiperl against mainline (@1648?)
+             Unclear that change number has "taken".
+     Branch: ansiperl
+          +> (branch 169 files)
+           - ObjXSub.h XSLock.h compat3.sym fixvars pod/perld4.pod
+          !> (integrate 131 files)
+
+----------------
+Version 5.005_50
+----------------
+
+____________________________________________________________________________
+[  1665] By: gsar                                  on 1998/07/26  05:38:48
+        Log: add trailing newline to file
+     Branch: perl
+           ! Changes lib/unicode/blocks.txt
+____________________________________________________________________________
+[  1664] By: gsar                                  on 1998/07/26  05:08:48
+        Log: integrate proto.h additions from maint-5.005
+     Branch: perl
+          !> pod/perlhist.pod proto.h
+____________________________________________________________________________
+[  1663] By: gsar                                  on 1998/07/26  05:07:05
+        Log: add new files to MANIFEST; add missing prototypes to proto.h;
+             s/PL_utf8skip/utf8skip/ for now, or we end up with Perl_PL_;
+             add typecasts to silence warnings; tweaks for win32 builds
+     Branch: perl
+          ! MANIFEST embed.h global.sym proto.h regexec.c toke.c utf8.h
+           ! win32/Makefile win32/makefile.mk
+____________________________________________________________________________
+[  1662] By: gsar                                  on 1998/07/26  05:01:52
+        Log: add missing sv_*_mg() prototypes in proto.h, update perlhist.pod
+     Branch: maint-5.005/perl
+           ! pod/perlhist.pod proto.h
+____________________________________________________________________________
+[  1661] By: gsar                                  on 1998/07/26  02:52:48
+        Log: up patchlevel to 5.005_50
+     Branch: perl
+          ! Changes patchlevel.h win32/Makefile win32/config_H.bc
+           ! win32/config_H.gc win32/config_H.vc win32/makefile.mk
+____________________________________________________________________________
+[  1660] By: gsar                                  on 1998/07/26  02:43:57
+        Log: integrate utfperl
+     Branch: perl
+          +> (branch 162 files)
+          !> (integrate 29 files)
+____________________________________________________________________________
+[  1659] By: gsar                                  on 1998/07/26  02:38:22
+        Log: integrate maint-5.005 changes
+     Branch: perl
+         !> Changes README.vms djgpp/fixpmain emacs/ptags hints/beos.sh
+         !> lib/Math/BigInt.pm pod/perldelta.pod pod/perlmodinstall.pod
+         !> pod/perltoc.pod pp_sys.c t/lib/bigintpm.t
+          !> vms/descrip_mms.template vms/subconfigure.com
+____________________________________________________________________________
+[  1658] By: gsar                                  on 1998/07/26  02:23:46
+        Log: VMS patches from Dan Sugalski <sugalskd@osshe.edu>
+             Date: Fri, 24 Jul 1998 11:38:25 -0700
+             Message-Id: <3.0.5.32.19980724113825.00a067b0@ous.edu>
+             Subject: [PATCH 5.005] version number problem with VMS (Corrected)
+             --
+             Date: Fri, 24 Jul 1998 12:30:36 -0700
+             Message-Id: <3.0.5.32.19980724123036.009f0390@ous.edu>
+             Subject: [PATCH 5.005]Tweaks to README.vms
+             --
+             Date: Sat, 25 Jul 1998 17:56:55 -0700 (PDT)
+             Message-ID: <Pine.GSO.3.96.980725175626.15740D-100000@netserve.ous.edu>
+             Subject: [PATCH 5.005] Final build cleanup patch
+     Branch: maint-5.005/perl
+           ! README.vms vms/descrip_mms.template vms/subconfigure.com
+____________________________________________________________________________
+[  1657] By: gsar                                  on 1998/07/26  02:19:50
+        Log: another platform where pp_sselect() needs a whole fd_set buffer
+             From: Lupe Christoph <lupe@alanya.m.isar.de>
+             Date: Sat, 25 Jul 1998 19:49:33 +0200 (MET DST)
+             Message-Id: <199807251749.TAA22347@alanya.m.isar.de>
+             Subject: Patch for Not OK: perl 5.005 on i86pc-solaris-thread 2.6
+     Branch: maint-5.005/perl
+           ! pp_sys.c
+____________________________________________________________________________
+[  1656] By: gsar                                  on 1998/07/26  02:12:46
+        Log: fix problem building modules on dos-djgpp
+             From: Laszlo Molnar <molnarl@cdata.tvnet.hu>
+             Date: Sat, 25 Jul 1998 00:53:39 +0200
+             Message-ID: <19980725005339.C222@cdata.tvnet.hu>
+             Subject: [PATCH 5.005] dos-djgpp and modules problem
+     Branch: maint-5.005/perl
+           ! djgpp/fixpmain
+____________________________________________________________________________
+[  1655] By: gsar                                  on 1998/07/26  02:11:09
+        Log: From: Tom Spindler <dogcow@home.merit.edu>
+             Date: Wed, 22 Jul 1998 16:11:07 -0400
+             Message-ID: <19980722161107.A16813@home.merit.edu>
+             Subject: [PATCH 5.005] BeOS tweak
+     Branch: maint-5.005/perl
+           ! hints/beos.sh
+____________________________________________________________________________
+[  1654] By: gsar                                  on 1998/07/26  02:09:29
+        Log: various pod tweaks
+     Branch: maint-5.005/perl
+          ! Changes pod/perldelta.pod pod/perlmodinstall.pod
+           ! pod/perltoc.pod
+____________________________________________________________________________
+[  1653] By: gsar                                  on 1998/07/26  02:05:46
+        Log: fix emacs/ptags for PL_* changes
+             From: Ilya Zakharevich <ilya@math.ohio-state.edu>
+             Date: Fri, 24 Jul 1998 03:12:35 -0400 (EDT)
+             Message-Id: <199807240712.DAA04204@monk.mps.ohio-state.edu>
+             Subject: [PATCH 5.004_76] Yet better ptags
+     Branch: maint-5.005/perl
+           ! emacs/ptags
+____________________________________________________________________________
+[  1652] By: gsar                                  on 1998/07/26  02:03:01
+        Log: fix behavior of <=> on bigints
+             From: "M.J.T. Guy" <mjtg@cus.cam.ac.uk>
+             Message-Id: <E0yzlfF-0004kz-00@taurus.cus.cam.ac.uk>
+             Date: Fri, 24 Jul 1998 18:29:53 +0100
+             Subject: [PATCH] Re: Math::BigInt <=> op is not correct.
+     Branch: maint-5.005/perl
+           ! lib/Math/BigInt.pm t/lib/bigintpm.t
+____________________________________________________________________________
+[  1651] By: larry                                 on 1998/07/24  05:44:33
+        Log: Here are the long-expected Unicode/UTF-8 modifications.
+     Branch: utfperl
+          + lib/unicode/ArabLink.pl lib/unicode/ArabLnkGrp.pl
+          + lib/unicode/Bidirectional.pl lib/unicode/Block.pl
+          + lib/unicode/Category.pl lib/unicode/CombiningClass.pl
+          + lib/unicode/Decomposition.pl
+          + lib/unicode/In/AlphabeticPresentationForms.pl
+          + lib/unicode/In/Arabic.pl
+          + lib/unicode/In/ArabicPresentationForms-A.pl
+          + lib/unicode/In/ArabicPresentationForms-B.pl
+          + lib/unicode/In/Armenian.pl lib/unicode/In/Arrows.pl
+          + lib/unicode/In/BasicLatin.pl lib/unicode/In/Bengali.pl
+          + lib/unicode/In/BlockElements.pl lib/unicode/In/Bopomofo.pl
+          + lib/unicode/In/BoxDrawing.pl
+          + lib/unicode/In/CJKCompatibility.pl
+          + lib/unicode/In/CJKCompatibilityForms.pl
+          + lib/unicode/In/CJKCompatibilityIdeographs.pl
+          + lib/unicode/In/CJKSymbolsandPunctuation.pl
+          + lib/unicode/In/CJKUnifiedIdeographs.pl
+          + lib/unicode/In/CombiningDiacriticalMarks.pl
+          + lib/unicode/In/CombiningHalfMarks.pl
+          + lib/unicode/In/CombiningMarksforSymbols.pl
+          + lib/unicode/In/ControlPictures.pl
+          + lib/unicode/In/CurrencySymbols.pl lib/unicode/In/Cyrillic.pl
+          + lib/unicode/In/Devanagari.pl lib/unicode/In/Dingbats.pl
+          + lib/unicode/In/EnclosedAlphanumerics.pl
+          + lib/unicode/In/EnclosedCJKLettersandMonths.pl
+          + lib/unicode/In/GeneralPunctuation.pl
+          + lib/unicode/In/GeometricShapes.pl lib/unicode/In/Georgian.pl
+          + lib/unicode/In/Greek.pl lib/unicode/In/GreekExtended.pl
+          + lib/unicode/In/Gujarati.pl lib/unicode/In/Gurmukhi.pl
+          + lib/unicode/In/HalfwidthandFullwidthForms.pl
+          + lib/unicode/In/HangulCompatibilityJamo.pl
+          + lib/unicode/In/HangulJamo.pl lib/unicode/In/HangulSyllables.pl
+          + lib/unicode/In/Hebrew.pl
+          + lib/unicode/In/HighPrivateUseSurrogates.pl
+          + lib/unicode/In/HighSurrogates.pl lib/unicode/In/Hiragana.pl
+          + lib/unicode/In/IPAExtensions.pl lib/unicode/In/Kanbun.pl
+          + lib/unicode/In/Kannada.pl lib/unicode/In/Katakana.pl
+          + lib/unicode/In/Lao.pl lib/unicode/In/Latin-1Supplement.pl
+          + lib/unicode/In/LatinExtended-A.pl
+          + lib/unicode/In/LatinExtended-B.pl
+          + lib/unicode/In/LatinExtendedAdditional.pl
+          + lib/unicode/In/LetterlikeSymbols.pl
+          + lib/unicode/In/LowSurrogates.pl lib/unicode/In/Malayalam.pl
+          + lib/unicode/In/MathematicalOperators.pl
+          + lib/unicode/In/MiscellaneousSymbols.pl
+          + lib/unicode/In/MiscellaneousTechnical.pl
+          + lib/unicode/In/NumberForms.pl
+          + lib/unicode/In/OpticalCharacterRecognition.pl
+          + lib/unicode/In/Oriya.pl lib/unicode/In/PrivateUse.pl
+          + lib/unicode/In/SmallFormVariants.pl
+          + lib/unicode/In/SpacingModifierLetters.pl
+          + lib/unicode/In/Specials.pl
+          + lib/unicode/In/SuperscriptsandSubscripts.pl
+          + lib/unicode/In/Tamil.pl lib/unicode/In/Telugu.pl
+          + lib/unicode/In/Thai.pl lib/unicode/In/Tibetan.pl
+          + lib/unicode/Is/Alnum.pl lib/unicode/Is/Alpha.pl
+          + lib/unicode/Is/BidiAN.pl lib/unicode/Is/BidiB.pl
+          + lib/unicode/Is/BidiCS.pl lib/unicode/Is/BidiEN.pl
+          + lib/unicode/Is/BidiES.pl lib/unicode/Is/BidiET.pl
+          + lib/unicode/Is/BidiL.pl lib/unicode/Is/BidiON.pl
+          + lib/unicode/Is/BidiR.pl lib/unicode/Is/BidiS.pl
+          + lib/unicode/Is/BidiWS.pl lib/unicode/Is/C.pl
+          + lib/unicode/Is/Cc.pl lib/unicode/Is/Cn.pl lib/unicode/Is/Co.pl
+          + lib/unicode/Is/DCcircle.pl lib/unicode/Is/DCcompat.pl
+          + lib/unicode/Is/DCfinal.pl lib/unicode/Is/DCfont.pl
+          + lib/unicode/Is/DCinital.pl lib/unicode/Is/DCinitial.pl
+          + lib/unicode/Is/DCisolated.pl lib/unicode/Is/DCnarrow.pl
+          + lib/unicode/Is/DCnoBreak.pl lib/unicode/Is/DCsmall.pl
+          + lib/unicode/Is/DCsquare.pl lib/unicode/Is/DCsub.pl
+          + lib/unicode/Is/DCsuper.pl lib/unicode/Is/DCvertical.pl
+          + lib/unicode/Is/DCwide.pl lib/unicode/Is/DecoCanon.pl
+          + lib/unicode/Is/DecoCompat.pl lib/unicode/Is/Digit.pl
+          + lib/unicode/Is/L.pl lib/unicode/Is/Ll.pl lib/unicode/Is/Lm.pl
+          + lib/unicode/Is/Lo.pl lib/unicode/Is/Lower.pl
+          + lib/unicode/Is/Lt.pl lib/unicode/Is/Lu.pl lib/unicode/Is/M.pl
+          + lib/unicode/Is/Mc.pl lib/unicode/Is/Mirrored.pl
+          + lib/unicode/Is/Mn.pl lib/unicode/Is/N.pl lib/unicode/Is/Nd.pl
+          + lib/unicode/Is/No.pl lib/unicode/Is/P.pl lib/unicode/Is/Pd.pl
+          + lib/unicode/Is/Pe.pl lib/unicode/Is/Po.pl
+          + lib/unicode/Is/Print.pl lib/unicode/Is/Ps.pl
+          + lib/unicode/Is/S.pl lib/unicode/Is/Sc.pl lib/unicode/Is/Sm.pl
+          + lib/unicode/Is/So.pl lib/unicode/Is/Space.pl
+          + lib/unicode/Is/Upper.pl lib/unicode/Is/Z.pl
+          + lib/unicode/Is/Zl.pl lib/unicode/Is/Zp.pl lib/unicode/Is/Zs.pl
+          + lib/unicode/JamoShort.pl lib/unicode/Makefile
+          + lib/unicode/Name.pl lib/unicode/Number.pl
+          + lib/unicode/To/Digit.pl lib/unicode/To/Lower.pl
+          + lib/unicode/To/Title.pl lib/unicode/To/Upper.pl
+          + lib/unicode/UnicodeData-Latest.txt lib/unicode/arabshp.txt
+          + lib/unicode/blocks.txt lib/unicode/index2.txt
+          + lib/unicode/jamo2.txt lib/unicode/mktables.PL
+          + lib/unicode/names2.txt lib/unicode/props2.txt
+          + lib/unicode/readme.txt lib/utf8.pm lib/utf8_heavy.pl t/UTEST
+           + utf8.c utf8.h
+          ! Makefile.SH doop.c embed.h embedvar.h global.sym handy.h mg.c
+          ! op.c op.h perl.h perlvars.h pod/perlfunc.pod pod/perlop.pod
+          ! pod/perlre.pod pp.c pp_ctl.c pp_hot.c proto.h regcomp.c
+          ! regcomp.h regcomp.sym regexec.c regexp.h regnodes.h sv.c
+           ! t/op/vec.t toke.c util.c vms/vmsish.h
+____________________________________________________________________________
+[  1650] By: gsar                                  on 1998/07/24  04:06:48
+        Log: create utfperl branch
+     Branch: utfperl
+          +> (branch 1079 files)
+____________________________________________________________________________
+[  1649] By: gsar                                  on 1998/07/24  03:56:56
+        Log: create maint-5.005 branch
+     Branch: maint-5.005/perl
+          +> (branch 1079 files)
+____________________________________________________________________________
+[  1648] By: gsar                                  on 1998/07/24  03:36:35
+        Log: un-checked-in 5.005 Changes  (this is 5.005 *exactly*)
+     Branch: perl
+           ! Changes
+
index 053f227..83a685d 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -20,7 +20,7 @@
 
 # $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
 #
-# Generated on Sat Mar 11 20:26:09 EET 2000 [metaconfig 3.0 PL70]
+# Generated on Fri Apr 28 23:33:15 EET DST 2000 [metaconfig 3.0 PL70]
 # (with additional metaconfig patches by perlbug@perl.com)
 
 cat >/tmp/c1$$ <<EOF
@@ -355,6 +355,7 @@ d_flexfnam=''
 d_flock=''
 d_fork=''
 d_fpos64_t=''
+d_frexpl=''
 d_fs_data_s=''
 d_fseeko=''
 d_fsetpos=''
@@ -406,6 +407,8 @@ d_iconv=''
 d_inetaton=''
 d_int64_t=''
 d_isascii=''
+d_isnan=''
+d_isnanl=''
 d_killpg=''
 d_lchown=''
 d_ldbl_dig=''
@@ -435,6 +438,7 @@ d_mkstemps=''
 d_mktime=''
 d_mmap=''
 mmaptype=''
+d_modfl=''
 d_mprotect=''
 d_msg=''
 d_msgctl=''
@@ -775,6 +779,8 @@ hostcat=''
 passcat=''
 orderlib=''
 ranlib=''
+d_perl_otherlibdirs=''
+otherlibdirs=''
 package=''
 spackage=''
 pager=''
@@ -868,6 +874,7 @@ sitelib_stem=''
 sitelibexp=''
 siteprefix=''
 siteprefixexp=''
+sizesize=''
 sizetype=''
 so=''
 socksizetype=''
@@ -1336,10 +1343,15 @@ esac
 case "$fastread$alldone" in
 yescont|yesexit) ;;
 *)
-       if test ! -t 0; then
-               echo "Say 'sh Configure', not 'sh <Configure'"
-               exit 1
-       fi
+       case "$extractsh" in
+       true) ;;
+       *)
+               if test ! -t 0; then
+                       echo "Say 'sh Configure', not 'sh <Configure'"
+                       exit 1
+               fi
+               ;;
+       esac
        ;;
 esac
 
@@ -3311,13 +3323,15 @@ while test "$type"; do
                        Directory)
                                for fp in $gfpth; do
                                        if test "X$fp" = X.; then
-                                           pf="$ansexp"
+                                           dir="$ans"
+                                           direxp="$ansexp"
                                        else    
-                                           pf="$fp/$ansexp"
+                                           dir="$fp/$ansexp"
+                                           direxp="$fp/$ansexp"
                                        fi
-                                       if test -d "$pf"; then
+                                       if test -d "$direxp"; then
                                                type=''
-                                               value="$pf"
+                                               value="$dir"
                                                break
                                        fi
                                done
@@ -4914,9 +4928,9 @@ case "$usethreads$usemultiplicity" in
        ;;
 *)     $cat <<EOM
 
-Perl 5.006 can be compiled for binary compatibility with 5.005.
-If you decide to do so, you will be able to continue using most
-of the extensions that were compiled for Perl 5.005.
+This version of Perl can be compiled for binary compatibility with 5.005.
+If you decide to do so, you will be able to continue using most of the
+extensions that were compiled for Perl 5.005.
 
 EOM
        case "$bincompat5005$d_bincompat5005" in
@@ -5240,6 +5254,108 @@ echo "Your system uses $freetype free(), it would seem." >&4
 $rm -f malloc.[co]
 $cat <<EOM
 
+After $package is installed, you may wish to install various
+add-on modules and utilities.  Typically, these add-ons will
+be installed under $prefix with the rest
+of this package.  However, you may wish to install such add-ons
+elsewhere under a different prefix.
+
+If you do not wish to put everything under a single prefix, that's
+ok.  You will be prompted for the individual locations; this siteprefix
+is only used to suggest the defaults.
+
+The default should be fine for most people.
+
+EOM
+fn=d~+
+rp='Installation prefix to use for add-on modules and utilities?'
+: XXX Here might be another good place for an installstyle setting.
+case "$siteprefix" in
+'') dflt=$prefix ;;
+*)  dflt=$siteprefix ;;
+esac
+. ./getfile
+: XXX Prefixit unit does not yet support siteprefix and vendorprefix
+oldsiteprefix=''
+case "$siteprefix" in
+'') ;;
+*)     case "$ans" in
+       "$prefix") ;;
+       *) oldsiteprefix="$prefix";;
+       esac
+       ;;
+esac
+siteprefix="$ans"
+siteprefixexp="$ansexp"
+
+: determine where site specific libraries go.
+: Usual default is /usr/local/lib/perl5/site_perl/$version
+: The default "style" setting is made in installstyle.U
+: XXX No longer works with Prefixit stuff.
+prog=`echo $package | $sed 's/-*[0-9.]*$//'`
+case "$sitelib" in
+'') case "$installstyle" in
+       *lib/perl5*) dflt=$siteprefix/lib/$package/site_$prog/$version ;;
+       *)       dflt=$siteprefix/lib/site_$prog/$version ;;
+       esac
+       ;;
+*)     dflt="$sitelib"
+       ;;
+esac
+$cat <<EOM
+
+The installation process will create a directory for
+site-specific extensions and modules.  Most users find it convenient
+to place all site-specific files in this directory rather than in the
+main distribution directory.
+
+EOM
+fn=d~+
+rp='Pathname for the site-specific library files?'
+. ./getfile
+sitelib="$ans"
+sitelibexp="$ansexp"
+sitelib_stem=`echo "$sitelibexp" | sed "s,/$version$,,"`
+: Change installation prefix, if necessary.
+if $test X"$prefix" != X"$installprefix"; then
+       installsitelib=`echo $sitelibexp | $sed "s#^$prefix#$installprefix#"`
+else
+       installsitelib="$sitelibexp"
+fi
+
+: determine where site specific architecture-dependent libraries go.
+: sitelib  default is /usr/local/lib/perl5/site_perl/$version
+: sitearch default is /usr/local/lib/perl5/site_perl/$version/$archname
+: sitelib may have an optional trailing /share.
+case "$sitearch" in
+'')    dflt=`echo $sitelib | $sed 's,/share$,,'`
+       dflt="$dflt/$archname"
+       ;;
+*)     dflt="$sitearch"
+       ;;
+esac
+set sitearch sitearch none
+eval $prefixit
+$cat <<EOM
+
+The installation process will also create a directory for
+architecture-dependent site-specific extensions and modules.
+
+EOM
+fn=d~+
+rp='Pathname for the site-specific architecture-dependent library files?'
+. ./getfile
+sitearch="$ans"
+sitearchexp="$ansexp"
+: Change installation prefix, if necessary.
+if $test X"$prefix" != X"$installprefix"; then
+       installsitearch=`echo $sitearchexp | sed "s#^$prefix#$installprefix#"`
+else
+       installsitearch="$sitearchexp"
+fi
+
+$cat <<EOM
+
 The installation process will also create a directory for
 vendor-supplied add-ons.  Vendors who supply perl with their system
 may find it convenient to place all vendor-supplied files in this
@@ -5358,6 +5474,41 @@ else
        installvendorarch="$vendorarchexp"
 fi
 
+: Final catch-all directories to search
+$cat <<EOM
+
+Lastly, you can have perl look in other directories for extensions and
+modules in addition to those already specified.
+These directories will be searched after 
+       $sitearch 
+       $sitelib 
+EOM
+test X"$vendorlib" != "X" && echo '    ' $vendorlib
+test X"$vendorarch" != "X" && echo '   ' $vendorarch
+echo ' '
+case "$otherlibdirs" in
+''|' ') dflt='none' ;;
+*)     dflt="$otherlibdirs" ;;
+esac
+$cat <<EOM
+Enter a colon-separated set of extra paths to include in perl's @INC
+search path, or enter 'none' for no extra paths.
+
+EOM
+
+rp='Colon-separated list of additional directories for perl to search?'
+. ./myread
+case "$ans" in
+' '|''|none)   otherlibdirs=' ' ;;     
+*)     otherlibdirs="$ans" ;;
+esac
+case "$otherlibdirs" in
+' ') val=$undef ;;
+*)     val=$define ;;
+esac
+set d_perl_otherlibdirs
+eval $setvar
+
 : Cruising for prototypes
 echo " "
 echo "Checking out function prototypes..." >&4
@@ -5441,90 +5592,18 @@ case "$perl5" in
 *)     echo "Using $perl5." ;;
 esac
 
-$cat <<EOM
-
-After $package is installed, you may wish to install various
-add-on modules and utilities.  Typically, these add-ons will
-be installed under $prefix with the rest
-of this package.  However, you may wish to install such add-ons
-elsewhere under a different prefix.
-
-If you do not wish to put everything under a single prefix, that's
-ok.  You will be prompted for the individual locations; this siteprefix
-is only used to suggest the defaults.
-
-The default should be fine for most people.
-
-EOM
-fn=d~+
-rp='Installation prefix to use for add-on modules and utilities?'
-: XXX Here might be another good place for an installstyle setting.
-case "$siteprefix" in
-'') dflt=$prefix ;;
-*)  dflt=$siteprefix ;;
-esac
-. ./getfile
-: XXX Prefixit unit does not yet support siteprefix and vendorprefix
-oldsiteprefix=''
-case "$siteprefix" in
-'') ;;
-*)     case "$ans" in
-       "$prefix") ;;
-       *) oldsiteprefix="$prefix";;
-       esac
-       ;;
-esac
-siteprefix="$ans"
-siteprefixexp="$ansexp"
-
-: determine where site specific libraries go.
-: Usual default is /usr/local/lib/perl5/site_perl/$version
-: The default "style" setting is made in installstyle.U
-: XXX No longer works with Prefixit stuff.
-prog=`echo $package | $sed 's/-*[0-9.]*$//'`
-case "$sitelib" in
-'') case "$installstyle" in
-       *lib/perl5*) dflt=$siteprefix/lib/$package/site_$prog/$version ;;
-       *)       dflt=$siteprefix/lib/site_$prog/$version ;;
-       esac
-       ;;
-*)     dflt="$sitelib"
-       ;;
-esac
-$cat <<EOM
-
-The installation process will create a directory for
-site-specific extensions and modules.  Most users find it convenient
-to place all site-specific files in this directory rather than in the
-main distribution directory.
-
-EOM
-fn=d~+
-rp='Pathname for the site-specific library files?'
-. ./getfile
-sitelib="$ans"
-sitelibexp="$ansexp"
-sitelib_stem=`echo "$sitelibexp" | sed "s,/$version$,,"`
-: Change installation prefix, if necessary.
-if $test X"$prefix" != X"$installprefix"; then
-       installsitelib=`echo $sitelibexp | $sed "s#^$prefix#$installprefix#"`
-else
-       installsitelib="$sitelibexp"
-fi
-
 : Determine list of previous versions to include in @INC
 $cat > getverlist <<EOPL
 #!$perl5 -w
 use File::Basename;
 \$api_versionstring = "$api_versionstring";
 \$version = "$version";
-\$sitelib = "$sitelib";
+\$stem = "$sitelib_stem";
 \$archname = "$archname";
 EOPL
        $cat >> getverlist <<'EOPL'
 # Can't have leading @ because metaconfig interprets it as a command!
 ;@inc_version_list=();
-$stem=dirname($sitelib);
 # XXX Redo to do opendir/readdir? 
 if (-d $stem) {
     chdir($stem);
@@ -5543,10 +5622,10 @@ else {
 foreach $d (@candidates) {
     if ($d lt $version) {
        if ($d ge $api_versionstring) {
-           unshift(@inc_version_list, "$d/$archname", $d);
+           unshift(@inc_version_list, grep { -d } "$d/$archname", $d);
        }
        elsif ($d ge "5.005") {
-           unshift(@inc_version_list, $d);
+           unshift(@inc_version_list, grep { -d } $d);
        }
     }
     else {
@@ -6616,46 +6695,26 @@ esac
 
 : see if we can have long filenames
 echo " "
-rmlist="$rmlist /tmp/cf$$"
-$test -d /tmp/cf$$ || mkdir /tmp/cf$$
 first=123456789abcdef
-second=/tmp/cf$$/$first
-$rm -f $first $second
+$rm -f $first
 if (echo hi >$first) 2>/dev/null; then
        if $test -f 123456789abcde; then
                echo 'You cannot have filenames longer than 14 characters.  Sigh.' >&4
                val="$undef"
        else
-               if (echo hi >$second) 2>/dev/null; then
-                       if $test -f /tmp/cf$$/123456789abcde; then
-                               $cat <<'EOM'
-That's peculiar... You can have filenames longer than 14 characters, but only
-on some of the filesystems.  Maybe you are using NFS.  Anyway, to avoid problems
-I shall consider your system cannot support long filenames at all.
-EOM
-                               val="$undef"
-                       else
-                               echo 'You can have filenames longer than 14 characters.' >&4
-                               val="$define"
-                       fi
-               else
-                       $cat <<'EOM'
-How confusing! Some of your filesystems are sane enough to allow filenames
-longer than 14 characters but some others like /tmp can't even think about them.
-So, for now on, I shall assume your kernel does not allow them at all.
-EOM
-                       val="$undef"
-               fi
+               echo 'You can have filenames longer than 14 characters.'>&4
+               val="$define"
        fi
 else
        $cat <<'EOM'
-You can't have filenames longer than 14 chars.  You can't even think about them!
+You can't have filenames longer than 14 chars.
+You can't even think about them!
 EOM
        val="$undef"
 fi 
 set d_flexfnam
 eval $setvar
-$rm -rf /tmp/cf$$ 123456789abcde*
+$rm -rf 123456789abcde*
 
 : determine where library module manual pages go
 set man3dir man3dir none
@@ -6688,7 +6747,7 @@ esac
 echo "If you don't want the manual sources installed, answer 'none'."
 prog=`echo $package | $sed 's/-*[0-9.]*$//'`
 case "$man3dir" in
-'')    dflt=`echo $man1dir | $sed -e 's/man1/man3/g' -e 's/man\.1/man\.3/g'`
+'')    dflt=`echo "$man1dir" | $sed -e 's/man1/man3/g' -e 's/man\.1/man\.3/g'`
        if $test -d "$privlib/man/man3"; then
                cat <<EOM >&4
 
@@ -6706,16 +6765,18 @@ EOM
                esac
     fi
        ;;
-' ') dflt=none;;
 *)     dflt="$man3dir" ;;
 esac
+case "$dflt" in
+' ') dflt=none ;;
+esac
 echo " "
 fn=dn+~
 rp="Where do the $package library man pages (source) go?"
 . ./getfile
 man3dir="$ans"
 man3direxp="$ansexp"
-case "$man1dir" in
+case "$man3dir" in
 '')    man3dir=' '
        installman3dir='';;
 esac
@@ -7160,37 +7221,6 @@ else
        installscript="$scriptdirexp"
 fi
 
-: determine where site specific architecture-dependent libraries go.
-: sitelib  default is /usr/local/lib/perl5/site_perl/$version
-: sitearch default is /usr/local/lib/perl5/site_perl/$version/$archname
-: sitelib may have an optional trailing /share.
-case "$sitearch" in
-'')    dflt=`echo $sitelib | $sed 's,/share$,,'`
-       dflt="$dflt/$archname"
-       ;;
-*)     dflt="$sitearch"
-       ;;
-esac
-set sitearch sitearch none
-eval $prefixit
-$cat <<EOM
-
-The installation process will also create a directory for
-architecture-dependent site-specific extensions and modules.
-
-EOM
-fn=d~+
-rp='Pathname for the site-specific architecture-dependent library files?'
-. ./getfile
-sitearch="$ans"
-sitearchexp="$ansexp"
-: Change installation prefix, if necessary.
-if $test X"$prefix" != X"$installprefix"; then
-       installsitearch=`echo $sitearchexp | sed "s#^$prefix#$installprefix#"`
-else
-       installsitearch="$sitearchexp"
-fi
-
 : determine where add-on public executables go
 case "$sitebin" in
 '')    dflt=$siteprefix/bin ;;
@@ -9077,6 +9107,10 @@ $rm -f try.* try
 set d_fpos64_t
 eval $setvar
 
+: see if frexpl exists
+set frexpl d_frexpl
+eval $inlibc
+
 hasstruct='varname=$1; struct=$2; shift; shift;
 while $test $# -ge 2; do
        case "$1" in
@@ -9567,6 +9601,14 @@ set d_isascii
 eval $setvar
 $rm -f isascii*
 
+: see if isnan exists
+set isnan d_isnan
+eval $inlibc
+
+: see if isnanl exists
+set isnanl d_isnanl
+eval $inlibc
+
 : see if killpg exists
 set killpg d_killpg
 eval $inlibc
@@ -9786,6 +9828,10 @@ esac
 
 
 
+: see if modfl exists
+set modfl d_modfl
+eval $inlibc
+
 : see if mprotect exists
 set mprotect d_mprotect
 eval $inlibc
@@ -13806,6 +13852,37 @@ echo $sig_name | $awk \
 }'
 $rm -f signal signal.c signal.awk signal.lst signal_cmd 
 
+echo " "
+case "$sizetype" in
+*_t) zzz="$sizetype"   ;;
+*)   zzz="filesize"    ;;
+esac
+echo "Checking the size of $zzz..." >&4 
+cat > try.c <<EOCP
+#include <sys/types.h>
+#include <stdio.h>
+int main() {
+    printf("%d\n", (int)sizeof($sizetype));
+    exit(0);
+}
+EOCP
+set try
+if eval $compile_ok; then
+       yyy=`./try`
+       case "$yyy" in
+       '')     sizesize=4
+               echo "(I can't execute the test program--guessing $sizesize.)" >&4
+               ;;
+       *)      sizesize=$yyy
+               echo "Your $zzz size is $sizesize bytes."
+               ;;
+       esac
+else
+       sizesize=4
+       echo "(I can't compile the test program--guessing $sizesize.)" >&4
+fi
+
+
 : check for socklen_t
 echo " "
 echo "Checking to see if you have socklen_t..." >&4
@@ -13825,7 +13902,7 @@ else
        val="$undef"
        echo "You do not have socklen_t."
        case "$sizetype" in
-       size_t) echo "(You do have size_t, that might work.)" ;;
+       size_t) echo "(You do have size_t, that might work. Some people are happy with just an int.)" ;;
        esac
 fi
 $rm -f try try.*
@@ -13844,7 +13921,7 @@ EOM
        case "$d_socklen_t" in
        "$define") yyy="$yyy socklen_t"
        esac
-       yyy="$yyy $sizetype int long"
+       yyy="$yyy $sizetype int long unsigned"
        for xxx in $yyy; do
                case "$socksizetype" in
                '')     try="extern int accept(int, struct sockaddr *, $xxx *);"
@@ -13864,8 +13941,8 @@ EOM
                ;;
        esac
        ;;
-*)     : no sockets, so pick relatively harmless defaults
-       socksizetype='char *'
+*)     : no sockets, so pick relatively harmless default
+       socksizetype='int'
        ;;
 esac
 
@@ -15161,6 +15238,7 @@ d_flock='$d_flock'
 d_fork='$d_fork'
 d_fpathconf='$d_fpathconf'
 d_fpos64_t='$d_fpos64_t'
+d_frexpl='$d_frexpl'
 d_fs_data_s='$d_fs_data_s'
 d_fseeko='$d_fseeko'
 d_fsetpos='$d_fsetpos'
@@ -15210,6 +15288,8 @@ d_index='$d_index'
 d_inetaton='$d_inetaton'
 d_int64_t='$d_int64_t'
 d_isascii='$d_isascii'
+d_isnan='$d_isnan'
+d_isnanl='$d_isnanl'
 d_killpg='$d_killpg'
 d_lchown='$d_lchown'
 d_ldbl_dig='$d_ldbl_dig'
@@ -15236,6 +15316,7 @@ d_mkstemp='$d_mkstemp'
 d_mkstemps='$d_mkstemps'
 d_mktime='$d_mktime'
 d_mmap='$d_mmap'
+d_modfl='$d_modfl'
 d_mprotect='$d_mprotect'
 d_msg='$d_msg'
 d_msg_ctrunc='$d_msg_ctrunc'
@@ -15259,6 +15340,7 @@ d_oldsock='$d_oldsock'
 d_open3='$d_open3'
 d_pathconf='$d_pathconf'
 d_pause='$d_pause'
+d_perl_otherlibdirs='$d_perl_otherlibdirs'
 d_phostname='$d_phostname'
 d_pipe='$d_pipe'
 d_poll='$d_poll'
@@ -15617,6 +15699,7 @@ optimize='$optimize'
 orderlib='$orderlib'
 osname='$osname'
 osvers='$osvers'
+otherlibdirs='$otherlibdirs'
 package='$package'
 pager='$pager'
 passcat='$passcat'
@@ -15692,6 +15775,7 @@ sitelib_stem='$sitelib_stem'
 sitelibexp='$sitelibexp'
 siteprefix='$siteprefix'
 siteprefixexp='$siteprefixexp'
+sizesize='$sizesize'
 sizetype='$sizetype'
 sleep='$sleep'
 smail='$smail'
diff --git a/INSTALL b/INSTALL
index 552c870..2b21edb 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -6,7 +6,7 @@ Install - Build and Installation guide for perl5.
 
 First, make sure you are installing an up-to-date version of Perl.   If
 you didn't get your Perl source from CPAN, check the latest version at
-<URL:http://www.perl.com/CPAN/src/>.
+<URL:http://www.cpan.org/src/>.
 
 The basic steps to build and install perl5 on a Unix system
 with all the defaults are:
@@ -113,8 +113,42 @@ currently installed modules.
 
 =head1 WARNING:  This version requires a compiler that supports ANSI C.
 
-If you find that your C compiler is not ANSI-capable, try obtaining
-GCC, available from GNU mirrors worldwide (e.g. ftp://ftp.gnu.org/pub/gnu).
+Most C compilers are now ANSI-compliant.  However, a few current
+computers are delivered with an older C compiler expressly for
+rebuilding the system kernel, or for some other historical reason.
+Alternatively, you may have an old machine which was shipped before
+ANSI compliance became widespread.  Such compilers are not suitable
+for building Perl.
+
+If you find that your default C compiler is not ANSI-capable, but you
+know that an ANSI-capable compiler is installed on your system, you
+can tell F<Configure> to use the correct compiler by means of the
+C<-Dcc=> command-line option -- see L<"gcc">.
+
+If do not have an ANSI-capable compiler there are several avenues open
+to you:
+
+=over 4
+
+=item *
+
+You may try obtaining GCC, available from GNU mirrors worldwide,
+listed at <URL:http://www.gnu.org/order/ftp.html>.  If, rather than
+building gcc from source code, you locate a binary version configured
+for your platform, be sure that it is compiled for the version of the
+operating system that you are using.
+
+=item *
+
+You may purchase a commercial ANSI C compiler from your system
+supplier or elsewhere.  (Or your organization may already have
+licensed such software -- ask your colleagues to find out how to
+access it.)  If there is a README file for your system in the Perl
+distribution (for example, F<README.hpux>), it may contain advice on
+suitable compilers.
+
+=item *
+
 Another alternative may be to use a tool like ansi2knr to convert the
 sources back to K&R style, but there is no guarantee this route will get
 you anywhere, since the prototypes are not the only ANSI features used
@@ -128,6 +162,8 @@ If you succeed in automatically converting the sources to a K&R compatible
 form, be sure to email perlbug@perl.com to let us know the steps you
 followed.  This will enable us to officially support this option.
 
+=back
+
 Although Perl can be compiled using a C++ compiler, the Configure script
 does not work with some C++ compilers.
 
@@ -461,9 +497,9 @@ network.  One way to do that would be something like
 
 As a final catch-all, Configure also offers an $otherlibdirs
 variable.  This variable contains a colon-separated list of additional
-directories to add to @INC.  By default, it will be set to
-$prefix/site_perl if Configure detects that you have 5.004-era modules
-installed there.  However, you can set it to anything you like.
+directories to add to @INC.  By default, it will be empty.
+Perl will search these directories (including architecture and
+version-specific subdirectories) for add-on modules and extensions.
 
 =item Man Pages
 
@@ -1518,6 +1554,36 @@ to include the GNU utils before running Configure, or specify the
 vendor-supplied utilities explicitly to Configure, for example by
 Configure -Dar=/bin/ar.
 
+=item THIS PACKAGE SEEMS TO BE INCOMPLETE
+
+The F<Configure> program has not been able to find all the files which
+make up the complete Perl distribution.  You may have a damaged source
+archive file (in which case you may also have seen messages such as
+C<gzip: stdin: unexpected end of file> and C<tar: Unexpected EOF on
+archive file>), or you may have obtained a structurally-sound but
+incomplete archive.  In either case, try downloading again from the
+official site named at the start of this document.  If you do find
+that any site is carrying a corrupted or incomplete source code
+archive, please report it to the site's maintainer.
+
+This message can also be a symptom of using (say) a GNU tar compiled
+for SunOS4 on Solaris.  When you run SunOS4 binaries on Solaris the
+run-time system magically alters pathnames matching m#lib/locale# - so
+when tar tries to create lib/locale.pm a differently-named file gets
+created instead.
+
+You may find the file under its assumed name and be able to rename it
+back.  Or use Sun's tar to do the extract.
+
+=item invalid token: ##
+
+You are using a non-ANSI-compliant C compiler.  See L<WARNING:  This
+version requires a compiler that supports ANSI C>.
+
+=item lib/locale.pm: No such file or directory
+
+See L<THIS PACKAGE SEEMS TO BE INCOMPLETE>.
+
 =item Miscellaneous
 
 Some additional things that have been reported for either perl4 or perl5:
index be9eaff..bc74f1e 100644 (file)
--- a/MAINTAIN
+++ b/MAINTAIN
@@ -55,6 +55,7 @@ README.cygwin                 cygwin
 README.dos                     dos
 README.hpux                    hpux
 README.lexwarn                 lexwarn
+README.machten                 machten
 README.mpeix                   mpeix
 README.os2                     os2
 README.os390                   mvs
@@ -411,6 +412,7 @@ lib/File/Spec/Mac.pm                schinder
 lib/File/Spec/OS2.pm           ilya
 lib/File/Spec/VMS.pm           vms
 lib/File/Spec/Win32.pm         win32
+lib/File/Temp.pm               tjenness
 lib/File/stat.pm               tchrist
 lib/FileCache.pm       
 lib/FileHandle.pm      
@@ -594,6 +596,8 @@ pod/perlport.pod            pudge
 pod/perlre.pod                 regex
 pod/perlref.pod        
 pod/perlreftut.pod             mjd
+pod/perlrequick.pod            mkvale
+pod/perlretut.pod              mkvale
 pod/perlrun.pod        
 pod/perlsec.pod        
 pod/perlstyle.pod      
@@ -704,6 +708,7 @@ t/lib/filehand.t
 t/lib/filepath.t       
 t/lib/filespec.t               kjahds
 t/lib/findbin.t        
+t/lib/ftmp-*.t                 tjenness
 t/lib/gdbm.t   
 t/lib/getopt.t                 jvromans
 t/lib/h2ph*                    kstar
@@ -730,7 +735,7 @@ t/lib/symbol.t
 t/lib/texttabs.t               muir
 t/lib/textfill.t               muir
 t/lib/textwrap.t       
-t/lib/thread.t 
+t/lib/thr5005.t        
 t/lib/tie-push.t       
 t/lib/tie-stdarray.t   
 t/lib/tie-stdpush.t    
@@ -779,7 +784,7 @@ t/op/method.t
 t/op/misc.t    
 t/op/mkdir.t   
 t/op/my.t      
-t/op/nothread.t        
+t/op/nothr5005.t       
 t/op/oct.t     
 t/op/ord.t     
 t/op/pack.t    
index f8ea07a..2500943 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -7,6 +7,7 @@ Changes5.002            Differences between 5.001 and 5.002
 Changes5.003           Differences between 5.002 and 5.003
 Changes5.004           Differences between 5.003 and 5.004
 Changes5.005           Differences between 5.004 and 5.005
+Changes5.6             Differences between 5.005 and 5.6
 Configure              Portability tool
 Copying                        The GNU General Public License
 EXTERN.h               Included before foreign .h files
@@ -40,6 +41,7 @@ README.dos            Notes about dos/djgpp port
 README.epoc            Notes about EPOC port
 README.hpux            Notes about HP-UX port
 README.hurd            Notes about GNU/Hurd port
+README.machten         Notes about Power MachTen port
 README.mint            Notes about Atari MiNT port
 README.mpeix           Notes about MPE/iX port
 README.os2             Notes about OS/2 port
@@ -566,6 +568,7 @@ lib/CGI/Fast.pm             Support for FastCGI (persistent server process)
 lib/CGI/Pretty.pm      Output nicely formatted HTML
 lib/CGI/Push.pm                Support for server push
 lib/CGI/Switch.pm      Simple interface for multiple server types
+lib/CGI/Util.pm                Utility functions
 lib/CPAN.pm            Interface to Comprehensive Perl Archive Network
 lib/CPAN/FirstTime.pm  Utility for creating CPAN config files
 lib/CPAN/Nox.pm                Runs CPAN while avoiding compiled extensions
@@ -615,6 +618,7 @@ lib/File/Spec/OS2.pm        portable operations on OS2 file names
 lib/File/Spec/Unix.pm  portable operations on Unix file names
 lib/File/Spec/VMS.pm   portable operations on VMS file names
 lib/File/Spec/Win32.pm portable operations on Win32 file names
+lib/File/Temp.pm       create safe temporary files and file handles
 lib/File/stat.pm       By-name interface to Perl's builtin stat
 lib/FileCache.pm       Keep more files open than the system permits
 lib/FileHandle.pm      Backward-compatible front end to IO extension
@@ -868,6 +872,35 @@ lib/unicode/Is/DecoCompat.pl                       Unicode character database
 lib/unicode/Is/Digit.pl                                Unicode character database
 lib/unicode/Is/Graph.pl                                Unicode character database
 lib/unicode/Is/L.pl                            Unicode character database
+lib/unicode/Is/LbrkAI.pl                       Unicode character database
+lib/unicode/Is/LbrkAL.pl                       Unicode character database
+lib/unicode/Is/LbrkB2.pl                       Unicode character database
+lib/unicode/Is/LbrkBA.pl                       Unicode character database
+lib/unicode/Is/LbrkBB.pl                       Unicode character database
+lib/unicode/Is/LbrkBK.pl                       Unicode character database
+lib/unicode/Is/LbrkCB.pl                       Unicode character database
+lib/unicode/Is/LbrkCL.pl                       Unicode character database
+lib/unicode/Is/LbrkCM.pl                       Unicode character database
+lib/unicode/Is/LbrkCR.pl                       Unicode character database
+lib/unicode/Is/LbrkEX.pl                       Unicode character database
+lib/unicode/Is/LbrkGL.pl                       Unicode character database
+lib/unicode/Is/LbrkHY.pl                       Unicode character database
+lib/unicode/Is/LbrkID.pl                       Unicode character database
+lib/unicode/Is/LbrkIN.pl                       Unicode character database
+lib/unicode/Is/LbrkIS.pl                       Unicode character database
+lib/unicode/Is/LbrkLF.pl                       Unicode character database
+lib/unicode/Is/LbrkNS.pl                       Unicode character database
+lib/unicode/Is/LbrkNU.pl                       Unicode character database
+lib/unicode/Is/LbrkOP.pl                       Unicode character database
+lib/unicode/Is/LbrkPO.pl                       Unicode character database
+lib/unicode/Is/LbrkPR.pl                       Unicode character database
+lib/unicode/Is/LbrkQU.pl                       Unicode character database
+lib/unicode/Is/LbrkSA.pl                       Unicode character database
+lib/unicode/Is/LbrkSG.pl                       Unicode character database
+lib/unicode/Is/LbrkSP.pl                       Unicode character database
+lib/unicode/Is/LbrkSY.pl                       Unicode character database
+lib/unicode/Is/LbrkXX.pl                       Unicode character database
+lib/unicode/Is/LbrkZW.pl                       Unicode character database
 lib/unicode/Is/Ll.pl                           Unicode character database
 lib/unicode/Is/Lm.pl                           Unicode character database
 lib/unicode/Is/Lo.pl                           Unicode character database
@@ -939,6 +972,7 @@ lib/utf8_heavy.pl                           Support routines for utf8 pragma
 lib/validate.pl                Perl library supporting wholesale file mode validation
 lib/vars.pm            Declare pseudo-imported global variables
 lib/warnings.pm                For "use warnings"
+lib/warnings/register.pm       For "use warnings::register"
 makeaperl.SH           perl script that produces a new perl binary
 makedef.pl             Create symbol export lists for linking
 makedepend.SH          Precursor to makedepend
@@ -1055,6 +1089,7 @@ pod/checkpods.PL  Tool to check for common errors in pods
 pod/perl.pod           Top level perl man page
 pod/perl5004delta.pod  Changes from 5.003 to 5.004
 pod/perl5005delta.pod  Changes from 5.004 to 5.005
+pod/perl56delta.pod    Changes from 5.005 to 5.6
 pod/perlapi.pod         Perl API documentation (autogenerated)
 pod/perlapio.pod       IO API info
 pod/perlbook.pod       Book info
@@ -1064,6 +1099,7 @@ pod/perlcall.pod  Callback info
 pod/perlcompile.pod    Info on using the Compiler suite
 pod/perldata.pod       Data structure info
 pod/perldbmfilter.pod  Info about DBM Filters
+pod/perldebguts.pod    Debugger guts info
 pod/perldebug.pod      Debugger info
 pod/perldelta.pod      Changes since last version
 pod/perldiag.pod       Diagnostic info
@@ -1103,6 +1139,8 @@ pod/perlport.pod  Portability guide
 pod/perlre.pod         Regular expression info
 pod/perlref.pod                References info
 pod/perlreftut.pod     Mark's references tutorial
+pod/perlrequick.pod    Quick start guide for Perl regular expressions
+pod/perlretut.pod      Tutorial for Perl regular expressions
 pod/perlrun.pod                Execution info
 pod/perlsec.pod                Security info
 pod/perlstyle.pod      Style info
@@ -1199,6 +1237,7 @@ t/lib/ansicolor.t See if Term::ANSIColor works
 t/lib/anydbm.t         See if AnyDBM_File works
 t/lib/attrs.t          See if attrs works with C<sub : attrs>
 t/lib/autoloader.t     See if AutoLoader works
+t/lib/b.t              See if B backends work
 t/lib/basename.t       See if File::Basename works
 t/lib/bigfloat.t       See if bigfloat.pl works
 t/lib/bigfltpm.t       See if BigFloat.pm works
@@ -1207,6 +1246,7 @@ t/lib/bigintpm.t  See if BigInt.pm works
 t/lib/cgi-form.t       See if CGI.pm works
 t/lib/cgi-function.t   See if CGI.pm works
 t/lib/cgi-html.t       See if CGI.pm works
+t/lib/cgi-pretty.t     See if CGI.pm works
 t/lib/cgi-request.t    See if CGI.pm works
 t/lib/charnames.t      See if character names work
 t/lib/checktree.t      See if File::CheckTree works
@@ -1246,6 +1286,10 @@ t/lib/filehand.t See if FileHandle works
 t/lib/filepath.t       See if File::Path works
 t/lib/filespec.t       See if File::Spec works
 t/lib/findbin.t                See if FindBin works
+t/lib/ftmp-mktemp.t    See if File::Temp works
+t/lib/ftmp-posix.t     See if File::Temp works
+t/lib/ftmp-security.t  See if File::Temp works
+t/lib/ftmp-tempfile.t  See if File::Temp works
 t/lib/gdbm.t           See if GDBM_File works
 t/lib/getopt.t         See if Getopt::Std and Getopt::Long work
 t/lib/glob-basic.t     See if File::Glob works
@@ -1281,6 +1325,7 @@ t/lib/open2.t             See if IPC::Open2 works
 t/lib/open3.t          See if IPC::Open3 works
 t/lib/ops.t            See if Opcode works
 t/lib/parsewords.t     See if Text::ParseWords works
+t/lib/peek.t           See if Devel::Peek works
 t/lib/ph.t             See if h2ph works
 t/lib/posix.t          See if POSIX works
 t/lib/safe1.t          See if Safe works
@@ -1292,17 +1337,18 @@ t/lib/socket.t          See if Socket works
 t/lib/soundex.t                See if Soundex works
 t/lib/symbol.t         See if Symbol works
 t/lib/syslfs.t         See if large files work for sysio
+t/lib/syslog.t         See if Sys::Syslog works
 t/lib/textfill.t       See if Text::Wrap::fill works
 t/lib/texttabs.t       See if Text::Tabs works
 t/lib/textwrap.t       See if Text::Wrap::wrap works
-t/lib/thread.t         Basic test of threading (skipped if no threads) 
+t/lib/thr5005.t                Test 5.005-style threading (skipped if no use5005threads) 
 t/lib/tie-push.t       Test for Tie::Array
 t/lib/tie-stdarray.t   Test for Tie::StdArray
 t/lib/tie-stdhandle.t  Test for Tie::StdHandle
 t/lib/tie-stdpush.t    Test for Tie::StdArray
 t/lib/timelocal.t      See if Time::Local works
 t/lib/trig.t           See if Math::Trig works
-t/op/64bit.t           See if 64 bitness works
+t/op/64bitint.t                See if 64 bit integers work
 t/op/append.t          See if . works
 t/op/args.t            See if operations on @_ work
 t/op/arith.t           See if arithmetic works
@@ -1354,7 +1400,7 @@ t/op/method.t             See if method calls work
 t/op/misc.t            See if miscellaneous bugs have been fixed
 t/op/mkdir.t           See if mkdir works
 t/op/my.t              See if lexical scoping works
-t/op/nothread.t                local @_ test which does not work threaded 
+t/op/nothr5005.t       local @_ test which does not work under use5005threads
 t/op/numconvert.t      See if accessing fields does not change numeric values
 t/op/oct.t             See if oct and hex work
 t/op/ord.t             See if ord works
index e00110c..f5ac6da 100644 (file)
@@ -131,8 +131,8 @@ bin (bin.U):
        this variable must be prepared to deal with ~name substitution.
 
 bincompat5005 (bincompat5005.U):
-       This variable contains y if Perl 5.006 should be binary-compatible
-       with Perl 5.005.
+       This variable contains y if this version of Perl should be
+       binary-compatible with Perl 5.005.
 
 binexp (bin.U):
        This is the same as the bin variable, but is filename expanded at
@@ -194,6 +194,8 @@ ccflags (ccflags.U):
 
 ccsymbols (Cppsym.U):
        The variable contains the symbols defined by the C compiler alone.
+       The symbols defined by cpp or by cc when it calls cpp are not in
+       this list, see cppsymbols and cppccsymbols.
        The list is a space-separated list of symbol=value tokens.
 
 cf_by (cf_who.U):
@@ -267,9 +269,9 @@ cpp_stuff (cpp_stuff.U):
        used by the C preprocessor.
 
 cppccsymbols (Cppsym.U):
-       The variable contains the symbols defined by both
-       the bare C compiler and during a compilation that
-       includes stdio.h.
+       The variable contains the symbols defined by the C compiler
+       when it calls cpp.  The symbols defined by the cc alone or cpp
+       alone are not in this list, see ccsymbols and cppsymbols.
        The list is a space-separated list of symbol=value tokens.
 
 cppflags (ccflags.U):
@@ -301,8 +303,9 @@ cppstdin (cppstdin.U):
        preprocessor symbols.
 
 cppsymbols (Cppsym.U):
-       The variable contains the symbols during a compilation
-       that includes stdio.h.
+       The variable contains the symbols defined by the C preprocessor
+       alone.  The symbols defined by cc or by cc when it calls cpp are
+       not in this list, see ccsymbols and cppccsymbols.
        The list is a space-separated list of symbol=value tokens.
 
 crosscompile (crosscompile.U):
@@ -360,9 +363,10 @@ d_bcopy (d_bcopy.U):
 
 d_bincompat5005 (bincompat5005.U):
        This variable conditionally defines BINCOMPAT5005 so that embed.h
-       can take special action if Perl 5.006 should be binary-compatible
-       with Perl 5.005.  This is impossible for builds that use features
-       like threads and multiplicity it is always $undef for those versions.
+       can take special action if this version of Perl should be
+       binary-compatible with Perl 5.005.  This is impossible for builds
+       that use features like threads and multiplicity it is always $undef
+       for those versions.
 
 d_bsd (Guess.U):
        This symbol conditionally defines the symbol BSD when running on a
@@ -569,6 +573,10 @@ d_fpathconf (d_pathconf.U):
 d_fpos64_t (d_fpos64_t.U):
        This symbol will be defined if the C compiler supports fpos64_t.
 
+d_frexpl (d_frexpl.U):
+       This variable conditionally defines the HAS_FREXPL symbol, which
+       indicates to the C program that the frexpl() routine is available.
+
 d_fs_data_s (d_fs_data_s.U):
        This variable conditionally defines the HAS_STRUCT_FS_DATA symbol,
        which indicates that the struct fs_data is supported.
@@ -807,6 +815,14 @@ d_isascii (d_isascii.U):
        This variable conditionally defines the HAS_ISASCII constant,
        which indicates to the C program that isascii() is available.
 
+d_isnan (d_isnan.U):
+       This variable conditionally defines the HAS_ISNAN symbol, which
+       indicates to the C program that the isnan() routine is available.
+
+d_isnanl (d_isnanl.U):
+       This variable conditionally defines the HAS_ISNANL symbol, which
+       indicates to the C program that the isnanl() routine is available.
+
 d_killpg (d_killpg.U):
        This variable conditionally defines the HAS_KILLPG symbol, which
        indicates to the C program that the killpg() routine is available
@@ -929,6 +945,10 @@ d_mmap (d_mmap.U):
        This variable conditionally defines HAS_MMAP if mmap() is
        available to map a file into memory.
 
+d_modfl (d_modfl.U):
+       This variable conditionally defines the HAS_MODFL symbol, which
+       indicates to the C program that the modfl() routine is available.
+
 d_mprotect (d_mprotect.U):
        This variable conditionally defines HAS_MPROTECT if mprotect() is
        available to modify the access protection of a memory mapped file.
@@ -1032,6 +1052,11 @@ d_pause (d_pause.U):
        indicates to the C program that the pause() routine is available
        to suspend a process until a signal is received.
 
+d_perl_otherlibdirs (otherlibdirs.U):
+       This variable conditionally defines PERL_OTHERLIBDIRS, which
+       contains a colon-separated set of paths for the perl binary to
+       include in @INC.  See also otherlibdirs.
+
 d_phostname (d_gethname.U):
        This variable conditionally defines the HAS_PHOSTNAME symbol, which
        contains the shell command which, when fed to popen(), may be
@@ -2737,6 +2762,16 @@ osvers (Oldconfig.U):
        same for this package, hints files might just be os_4.0 or
        os_4.1, etc., not keeping separate files for each little release.
 
+otherlibdirs (otherlibdirs.U):
+       This variable contains a colon-separated set of paths for the perl
+       binary to search for additional library files or modules.
+       These directories will be tacked to the end of @INC.
+       Perl will automatically search below each path for version-
+       and architecture-specific directories.  See inc_version_list
+       for more details.
+       A value of ' ' means 'none' and is used to preserve this value
+       for the next run through Configure.
+
 package (package.U):
        This variable contains the name of the package being constructed.
        It is primarily intended for the use of later Configure units.
@@ -3094,6 +3129,9 @@ siteprefixexp (siteprefix.U):
        This variable holds the full absolute path of the directory below
        which the user will install add-on packages.  Derived from siteprefix.
 
+sizesize (sizesize.U):
+       This variable contains the size of a sizetype in bytes.
+
 sizetype (sizetype.U):
        This variable defines sizetype to be something like size_t, 
        unsigned long, or whatever type is used to declare length 
index 18e3506..ec7b131 100644 (file)
@@ -8,7 +8,7 @@
 
 # Package name      : perl5
 # Source directory  : .
-# Configuration time: Mon Mar  6 00:00:30 EET 2000
+# Configuration time: Fri Apr 28 23:34:47 EET DST 2000
 # Configured by     : jhi
 # Target system     : osf1 alpha.hut.fi v4.0 878 alpha 
 
@@ -59,7 +59,7 @@ ccflags='-pthread -std -DLANGUAGE_C'
 ccsymbols='__alpha=1 __LANGUAGE_C__=1 __osf__=1 __unix__=1 _LONGLONG=1 _SYSTYPE_BSD=1 SYSTYPE_BSD=1 unix=1'
 cf_by='jhi'
 cf_email='yourname@yourhost.yourplace.com'
-cf_time='Mon Mar  6 00:00:30 EET 2000'
+cf_time='Fri Apr 28 23:34:47 EET DST 2000'
 charsize='1'
 chgrp=''
 chmod=''
@@ -151,6 +151,7 @@ d_flock='define'
 d_fork='define'
 d_fpathconf='define'
 d_fpos64_t='undef'
+d_frexpl='define'
 d_fs_data_s='undef'
 d_fseeko='undef'
 d_fsetpos='define'
@@ -200,6 +201,8 @@ d_index='undef'
 d_inetaton='define'
 d_int64_t='undef'
 d_isascii='define'
+d_isnan='define'
+d_isnanl='define'
 d_killpg='define'
 d_lchown='define'
 d_ldbl_dig='define'
@@ -226,6 +229,7 @@ d_mkstemp='define'
 d_mkstemps='undef'
 d_mktime='define'
 d_mmap='define'
+d_modfl='define'
 d_mprotect='define'
 d_msg='define'
 d_msg_ctrunc='define'
@@ -249,6 +253,7 @@ d_oldsock='undef'
 d_open3='define'
 d_pathconf='define'
 d_pause='define'
+d_perl_otherlibdirs='undef'
 d_phostname='undef'
 d_pipe='define'
 d_poll='define'
@@ -607,6 +612,7 @@ optimize='-O'
 orderlib='false'
 osname='dec_osf'
 osvers='4.0'
+otherlibdirs=' '
 package='perl5'
 pager='/c/bin/less'
 passcat='cat /etc/passwd'
@@ -682,6 +688,7 @@ sitelib_stem='/opt/perl/lib/site_perl'
 sitelibexp='/opt/perl/lib/site_perl/5.6.0'
 siteprefix='/opt/perl'
 siteprefixexp='/opt/perl'
+sizesize='8'
 sizetype='size_t'
 sleep=''
 smail=''
@@ -781,13 +788,13 @@ zcat=''
 zip='zip'
 # Configure command line arguments.
 config_arg0='Configure'
-config_args='-Dprefix=/opt/perl -Doptimize=-O -Dusethreads -Duse64bitint -Duselfs -Dcf_by=yourname -Dcf_email=yourname@yourhost.yourplace.com -Dperladmin=yourname@yourhost.yourplace.com -Dmydomain=.yourplace.com -Dmyhostname=yourhost -dE'
+config_args='-Dprefix=/opt/perl -Doptimize=-O -Dusethreads -Duse64bitint -Duselargefiles -Dcf_by=yourname -Dcf_email=yourname@yourhost.yourplace.com -Dperladmin=yourname@yourhost.yourplace.com -Dmydomain=.yourplace.com -Dmyhostname=yourhost -dE'
 config_argc=11
 config_arg1='-Dprefix=/opt/perl'
 config_arg2='-Doptimize=-O'
 config_arg3='-Dusethreads'
 config_arg4='-Duse64bitint'
-config_arg5='-Duselfs'
+config_arg5='-Duselargefiles'
 config_arg6='-Dcf_by=yourname'
 config_arg7='-Dcf_email=yourname@yourhost.yourplace.com'
 config_arg8='-Dperladmin=yourname@yourhost.yourplace.com'
index 7a63d00..46184ef 100644 (file)
@@ -17,7 +17,7 @@
 /*
  * Package name      : perl5
  * Source directory  : .
- * Configuration time: Mon Mar  6 00:00:30 EET 2000
+ * Configuration time: Fri Apr 28 23:34:47 EET DST 2000
  * Configured by     : jhi
  * Target system     : osf1 alpha.hut.fi v4.0 878 alpha 
  */
  */
 #define HAS_FGETPOS    /**/
 
-/* FLEXFILENAMES:
- *     This symbol, if defined, indicates that the system supports filenames
- *     longer than 14 characters.
- */
-#define        FLEXFILENAMES           /**/
-
 /* HAS_FLOCK:
  *     This symbol, if defined, indicates that the flock routine is
  *     available to do file locking.
 #define BIN_EXP "/opt/perl/bin"        /**/
 
 /* PERL_BINCOMPAT_5005:
- *     This symbol, if defined, indicates that Perl 5.006 should be
+ *     This symbol, if defined, indicates that this version of Perl should be
  *     binary-compatible with Perl 5.005.  This is impossible for builds
  *     that use features like threads and multiplicity it is always 
  *     for those versions.
 #  define STRINGIFY(a) PeRl_StGiFy(a)
 #endif
 #if 42 != 1 && 42 != 42
-#include "Bletch: How does this C preprocessor catenate tokens?"
+#   include "Bletch: How does this C preprocessor catenate tokens?"
 #endif
 
 /* CPPSTDIN:
  */
 #define HAS_FD_SET     /**/
 
+/* FLEXFILENAMES:
+ *     This symbol, if defined, indicates that the system supports filenames
+ *     longer than 14 characters.
+ */
+#define        FLEXFILENAMES           /**/
+
 /* HAS_FPOS64_T:
  *     This symbol will be defined if the C compiler supports fpos64_t.
  */
 /*#define      HAS_FPOS64_T            / **/
 
+/* HAS_FREXPL:
+ *     This symbol, if defined, indicates that the frexpl routine is
+ *     available to break a long double floating-point number into
+ *     a normalized fraction and an integral power of 2.
+ */
+#define HAS_FREXPL             /**/
+
 /* HAS_STRUCT_FS_DATA:
  *     This symbol, if defined, indicates that the struct fs_data
  *     to do statfs() is supported.
  */
 #define HAS_GETCWD             /**/
 
+/* HAS_GETFSSTAT:
+ *     This symbol, if defined, indicates that the getfsstat routine is
+ *     available to stat filesystems in bulk.
+ */
+#define HAS_GETFSSTAT          /**/
+
 /* HAS_GETGRENT:
  *     This symbol, if defined, indicates that the getgrent routine is
  *     available for sequential access of the group database.
  */
 #define HAS_ISASCII            /**/
 
+/* HAS_ISNAN:
+ *     This symbol, if defined, indicates that the isnan routine is
+ *     available to check whether a double is a NaN.
+ */
+#define HAS_ISNAN              /**/
+
+/* HAS_ISNANL:
+ *     This symbol, if defined, indicates that the isnanl routine is
+ *     available to check whether a long double is a NaN.
+ */
+#define HAS_ISNANL             /**/
+
 /* HAS_LCHOWN:
  *     This symbol, if defined, indicates that the lchown routine is
  *     available to operate on a symbolic link (instead of following the
 #define LONGLONGSIZE 8         /**/
 #endif
 
+/* HAS_LSEEK_PROTO:
+ *     This symbol, if defined, indicates that the system provides
+ *     a prototype for the lseek() function.  Otherwise, it is up
+ *     to the program to supply one.  A good guess is
+ *             extern off_t lseek(int, off_t, int);
+ */
+#define        HAS_LSEEK_PROTO /**/
+
 /* HAS_MADVISE:
  *     This symbol, if defined, indicates that the madvise system call is
  *     available to map a file into memory.
  */
 #define        Gid_t_f         "u"             /**/
 
+/* Gid_t_sign:
+ *     This symbol holds the signedess of a Gid_t.
+ *     1 for unsigned, -1 for signed.
+ */
+#define Gid_t_sign     1               /* GID sign */
+
 /* Gid_t_size:
  *     This symbol holds the size of a Gid_t in bytes.
  */
  *     This symbol holds the return type of getgid() and the type of
  *     argument to setrgid() and related functions.  Typically,
  *     it is the type of group ids in the kernel. It can be int, ushort,
- *     uid_t, etc... It may be necessary to include <sys/types.h> to get
+ *     gid_t, etc... It may be necessary to include <sys/types.h> to get
  *     any typedef'ed information.
  */
 #define Gid_t gid_t            /* Type for getgid(), etc... */
 
 /* Groups_t:
  *     This symbol holds the type used for the second argument to
- *     getgroups() and setgropus().  Usually, this is the same as
+ *     getgroups() and setgroups().  Usually, this is the same as
  *     gidtype (gid_t) , but sometimes it isn't.
- *     It can be int, ushort, uid_t, etc... 
+ *     It can be int, ushort, gid_t, etc... 
  *     It may be necessary to include <sys/types.h> to get any 
  *     typedef'ed information.  This is only required if you have
- *     getgroups() or setgropus()..
+ *     getgroups() or setgroups()..
  */
 #if defined(HAS_GETGROUPS) || defined(HAS_SETGROUPS)
 #define Groups_t gid_t /* Type for 2nd arg to [sg]etgroups() */
  */
 #define        I_ICONV         /**/
 
+/* I_IEEEFP:
+ *     This symbol, if defined, indicates that <ieeefp.h> exists and
+ *     should be included.
+ */
+/*#define      I_IEEEFP                / **/
+
 /* I_INTTYPES:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <inttypes.h>.
 #define Netdb_name_t           const char * /**/
 #define Netdb_net_t            int /**/
 
+/* PERL_OTHERLIBDIRS:
+ *     This variable contains a colon-separated set of paths for the perl
+ *     binary to search for additional library files or modules.
+ *     These directories will be tacked to the end of @INC.
+ *     Perl will automatically search below each path for version-
+ *     and architecture-specific directories.  See PERL_INC_VERSION_LIST
+ *     for more details.
+ */
+/*#define PERL_OTHERLIBDIRS " "                / **/
+
 /* IVTYPE:
  *     This symbol defines the C type used for Perl's IV.
  */
 /* U64SIZE:
  *     This symbol contains the sizeof(U64).
  */
+/* NVSIZE:
+ *     This symbol contains the sizeof(NV).
+ */
 /* NV_PRESERVES_UV:
  *     This symbol, if defined, indicates that a variable of type NVTYPE
  *     can preserve all the bit of a variable of type UVSIZE.
 #define        I64SIZE         8       /**/
 #define        U64SIZE         8       /**/
 #endif
+#define        NVSIZE          8               /**/
 #undef NV_PRESERVES_UV
 
 /* IVdf:
 #define SITELIB_EXP "/opt/perl/lib/site_perl/5.6.0"            /**/
 #define SITELIB_STEM "/opt/perl/lib/site_perl"         /**/
 
+/* Size_t_size:
+ *     This symbol holds the size of a Size_t in bytes.
+ */
+#define Size_t_size 8          /* */
+
 /* Size_t:
  *     This symbol holds the type used to declare length parameters
  *     for string functions.  It is usually size_t, but may be
  */
 #define Size_t size_t   /* length paramater for string functions */
 
+/* Sock_size_t:
+ *     This symbol holds the type used for the size argument of
+ *     various socket calls (just the base type, not the pointer-to).
+ */
+#define Sock_size_t            int /**/
+
 /* SSize_t:
  *     This symbol holds the type used by functions that return
  *     a count of bytes or an error condition.  It must be a signed type.
  */
 #define        Uid_t_f         "u"             /**/
 
+/* Uid_t_sign:
+ *     This symbol holds the signedess of a Uid_t.
+ *     1 for unsigned, -1 for signed.
+ */
+#define Uid_t_sign     1               /* UID sign */
+
 /* Uid_t_size:
  *     This symbol holds the size of a Uid_t in bytes.
  */
 #endif
 /*#define      OLD_PTHREADS_API                / **/
 
+/* PERL_VENDORARCH:
+ *     If defined, this symbol contains the name of a private library.
+ *     The library is private in the sense that it needn't be in anyone's
+ *     execution path, but it should be accessible by the world.
+ *     It may have a ~ on the front. 
+ *     The standard distribution will put nothing in this directory.
+ *     Vendors who distribute perl may wish to place their own
+ *     architecture-dependent modules and extensions in this directory with
+ *             MakeMaker Makefile.PL INSTALLDIRS=vendor 
+ *     or equivalent.  See INSTALL for details.
+ */
 /* PERL_VENDORARCH_EXP:
  *     This symbol contains the ~name expanded version of PERL_VENDORARCH, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
+/*#define PERL_VENDORARCH ""           / **/
 /*#define PERL_VENDORARCH_EXP ""               / **/
 
 /* PERL_VENDORLIB_EXP:
 #define PERL_XS_APIVERSION "5.6.0"
 #define PERL_PM_APIVERSION "5.005"
 
-/* HAS_GETFSSTAT:
- *     This symbol, if defined, indicates that the getfsstat routine is
- *     available to stat filesystems in bulk.
- */
-#define HAS_GETFSSTAT          /**/
-
-/* I_IEEEFP:
- *     This symbol, if defined, indicates that <ieeefp.h> exists and
- *     should be included.
- */
-/*#define      I_IEEEFP                / **/
-
-/* HAS_LSEEK_PROTO:
- *     This symbol, if defined, indicates that the system provides
- *     a prototype for the lseek() function.  Otherwise, it is up
- *     to the program to supply one.  A good guess is
- *             extern off_t lseek(int, off_t, int);
- */
-#define        HAS_LSEEK_PROTO /**/
-
-/* Sock_size_t:
- *     This symbol holds the type used for the size argument of
- *     various socket calls (just the base type, not the pointer-to).
+/* HAS_MODFL:
+ *     This symbol, if defined, indicates that the modfl routine is
+ *     available to split a long double x into a fractional part f and
+ *     an integer part i such that |f| < 1.0 and (f + i) = x.
  */
-#define Sock_size_t            int /**/
+#define HAS_MODFL              /**/
 
 #endif
index 4b8c277..8341690 100644 (file)
@@ -78,8 +78,8 @@ print "\n";
 chdir "$relroot/$reldir" or die $!;
 
 print "Setting file permissions...\n";
-system("find . -type f -print     | xargs chmod -w");
-system("find . -type d -print     | xargs chmod g-s");
+system("find . -type f -print     | xargs chmod 0444");
+system("find . -type d -print     | xargs chmod 0755");
 system("find t -name '*.t' -print | xargs chmod +x");
 my @exe = qw(
     Configure
index c4bc6c5..8951f35 100644 (file)
@@ -4,10 +4,18 @@ specially designed to be readable as is.
 
 =head1 NAME
 
-perlamiga - Perl under Amiga OS
+perlamiga - Perl under Amiga OS (possibly very outdated information)
 
 =head1 SYNOPSIS
 
+NOTE: No one has reported building Perl on the Amiga in a long
+time.  The following information is highly unlikely to be correct.
+If you would like to help the Amiga port to stay current, see:
+
+    http://us.aminet.net/aminet/dirs/dev_gg.html
+
+for Amiga resources and information.
+
 One can read this document in the following formats:
 
        man perlamiga
index 514e013..eb6c289 100644 (file)
@@ -13,7 +13,7 @@ on Cygwin.  This document also describes features of Cygwin that will
 affect how Perl behaves at runtime.
 
 B<NOTE:> There are pre-built Perl packages available for Cygwin and a
-version of Perl is provided on the Cygwin CD.  If you have no need to
+version of Perl is provided on the Cygwin CD.  If you do not need to
 customize the configuration, consider using one of these packages:
 
   http://cygutils.netpedia.net/
@@ -31,27 +31,16 @@ about this project can be found at:
 
 A recent net or commercial release of Cygwin is required.
 
-At the time this document was written, the port required recent
-development snapshots that were expected to stabilize early in 2000 and
-be released to the net as B21 and commercially as v1.1.
+At the time this document was written, Cygwin 1.1.1 was current.
 
 B<NOTE:> At this point, minimal effort has been made to provide
 compatibility with old (beta) Cygwin releases.  The focus has been to
 provide a high quality release and not worry about working around old
 Cygwin bugs.  If you wish to use Perl with Cygwin B20.1 or earlier,
-consider using either perl5.005_03 or perl5.005_62, which are available
-in source and binary form at C<http://cygutils.netpedia.net/> or on the
-Cygwin CD.  If there is significant demand, a patch kit can be developed
-to port back to earlier Cygwin versions.
-
-=head2 Compiler
-
-A recent net or commercial release of I<gcc> is required.
-
-At the time this document was written, I<gcc-2.95.2> was current and
-could be downloaded from:
-
-  ftp://ftp.xraylith.wisc.edu/pub/khan/gnu-win32/cygwin/gcc-2.95.2/
+consider using perl5.005_03, which is available in source and binary
+form at C<http://cygutils.netpedia.net/> or on the Cygwin CD.  If there
+is significant demand, a patch kit can be developed to port back to
+earlier Cygwin versions.
 
 =head2 Cygwin Configuration
 
@@ -62,13 +51,9 @@ Perl usage.
 B<NOTE:> The binaries that are built will run on all Win32 versions.
 They do not depend on your host system (Win9x, WinNT) or your Cygwin
 configuration (I<ntea>, I<ntsec>, binary/text mounts).  The only
-dependencies come from hardcoded pathnames like C</usr/local>.  However,
+dependencies come from hard-coded pathnames like C</usr/local>.  However,
 your host system and Cygwin configuration will affect Perl's runtime
-behavior (see L</"TEST">).  Some regression tests may fail in different
-ways depending on your setup.  For now, the test suite does not skip
-tests that do not make sense given a particular setup.  If a test can
-pass in some Cygwin setup, it is left in and explainable test failures
-are documented.
+behavior (see L</"TEST">).
 
 =over 4
 
@@ -78,23 +63,10 @@ Set the C<PATH> environment variable so that Configure finds the Cygwin
 versions of programs.  Any Windows directories should be removed or
 moved to the end of your C<PATH>.
 
-=item * F</bin/cat.exe>
-
-There should be an instance of I<cat> in F</bin> (or F</usr/bin>).
-Configure tests C<#!/bin/cat> and if it is not found, you will see
-the error:
-
-  Configure: ./try: No such file or directory
-
-=item * F</usr/bin>
-
-If you do not have a F</usr/bin> directory, Configure will B<not> prompt
-you to install I<perl> into F</usr/bin>.
-
 =item * I<nroff>
 
 If you do not have I<nroff> (which is part of the I<groff> package),
-Configure will B<not> prompt you to install man pages.
+Configure will B<not> prompt you to install I<man> pages.
 
 =item * Permissions
 
@@ -123,7 +95,7 @@ This will run Configure and keep a record:
 
   ./Configure 2>&1 | tee log.configure
 
-If you are willing to accept all the defaults add a B<-d> option.
+If you are willing to accept all the defaults run Configure with B<-de>.
 However, several useful customizations are available.
 
 =head2 Strip Binaries
@@ -157,18 +129,14 @@ The crypt libraries in GNU libc have been ported to Cygwin.
 
 The DES based Ultra Fast Crypt port was done by Alexey Truhan:
 
-  http://dome.weeg.uiowa.edu/pub/domestic/sos/cw32crypt-dist-0.tgz
+  ftp://ftp.franken.de/pub/win32/develop/gnuwin32/cygwin/porters/Okhapkin_Sergey/cw32crypt-dist-0.tgz
 
 NOTE: There are various export restrictions on DES implementations,
 see the glibc README for more details.
 
 The MD5 port was done by Andy Piper:
 
-  http://dome.weeg.uiowa.edu/pub/domestic/sos/libcrypt.tgz
-
-More information can also be found at:
-
-  http://miracle.geol.msu.ru/sos/
+  ftp://ftp.franken.de/pub/win32/develop/gnuwin32/cygwin/porters/Okhapkin_Sergey/libcrypt.tgz
 
 =item * C<-lgdbm> (C<use GDBM_File>)
 
@@ -186,8 +154,11 @@ F<ext/DB_File/DB_File.pm>.
 A port of SysV IPC is available for Cygwin.
 
 NOTE: This has B<not> been extensively tested.  In particular,
-C<d_semctl_semun> is undefined because it fails a configure test and on
-Win9x the shm*() functions seem to hang.
+C<d_semctl_semun> is undefined because it fails a Configure test
+and on Win9x the I<shm*()> functions seem to hang.  It also creates
+a compile time dependency because F<perl.h> includes F<<sys/ipc.h>>
+and F<<sys/sem.h>> (which will be required in the future when compiling
+CPAN modules).
 
 =back
 
@@ -250,10 +221,9 @@ You may see some messages during Configure that seem suspicious.
 
 =item * Whoa There
 
-Cygwin does not yet implement chroot(), setegid() or seteuid()
-functionality, but has stub functions that return C<ENOSYS>.  You will
-see a message when Configure detects that its guess conflicts with the
-hint file.
+Cygwin does not yet implement chroot() functionality, but has a stub
+function that returns C<ENOSYS>.  You will see a message when Configure
+detects that its guess conflicts with the hint file.
 
   *** WHOA THERE!!! ***
       The recommended value for $d_chroot on this machine was "undef"!
@@ -261,19 +231,20 @@ hint file.
 
 You should keep the recommended value.
 
-=item * dlsym
+=item * I<dlsym()>
 
 I<ld2> is needed to build dynamic libraries, but it does not exist
 when dlsym() checking occurs (it is not created until `C<make>' runs).
 You will see the following message:
 
   Checking whether your dlsym() needs a leading underscore ...
+  ld2: not found
   I can't compile and run the test program.
   I'm guessing that dlsym doesn't need a leading underscore.
 
 Since the guess is correct, this is not a problem.
 
-=item * Win9x and d_eofnblk
+=item * Win9x and C<d_eofnblk>
 
 Win9x does not correctly report C<EOF> with a non-blocking read on a
 closed pipe.  You will see the following messages:
@@ -310,7 +281,7 @@ This failure does not seem to cause any problems.
 
 =head1 MAKE
 
-Simply run make and wait:
+Simply run I<make> and wait:
 
   make 2>&1 | tee log.make
 
@@ -332,9 +303,9 @@ wait until the `C<make install>' process to install the I<ld2> script,
 this is because the remainder of the `C<make>' refers to I<ld2> without
 fully specifying its path and does this from multiple subdirectories.
 The assumption is that $installbin is in your current C<PATH>.  If this
-is not the case or if you do not have an I<install> program, `C<make>'
-will fail at some point.  If this happens, just manually copy I<ld2>
-from the source directory to someplace in your C<PATH>.
+is not the case `C<make>' will fail at some point.  If this happens,
+just manually copy I<ld2> from the source directory to somewhere in
+your C<PATH>.
 
 =head1 TEST
 
@@ -348,21 +319,23 @@ The same tests are run both times, but more information is provided when
 running as `C<./perl harness>'.
 
 Test results vary depending on your host system and your Cygwin
-configuration.  It is possible that Cygwin will pass all the tests,
-but it is more likely that some tests will fail for one of these reasons.
+configuration.  If a test can pass in some Cygwin setup, it is always
+attempted and explainable test failures are documented.  It is possible
+that Perl will pass all the tests, but it is more likely that some tests
+will fail for one of these reasons.
 
 =head2 File Permissions
 
 UNIX file permissions are based on sets of mode bits for
-{read,write,execute} for each {user,group,other}.  By default Cygwin only
-tracks the Win32 readonly attribute represented as the UNIX file user
-write bit (files are always readable, files are executable if they have
-a F<.{com,bat,exe}> extension or begin with C<#!>, directories are always
-readable and executable).  On WinNT with the I<ntea> C<CYGWIN> setting,
-the remaining mode bits are stored as extended attributes.  On WinNT
-with the I<ntsec> C<CYGWIN> setting, permissions use the standard WinNT
-security descriptors and access control lists.  Without one of these
-options, these tests will fail:
+{read,write,execute} for each {user,group,other}.  By default Cygwin
+only tracks the Win32 read-only attribute represented as the UNIX file
+user write bit (files are always readable, files are executable if they
+have a F<.{com,bat,exe}> extension or begin with C<#!>, directories are
+always readable and executable).  On WinNT with the I<ntea> C<CYGWIN>
+setting, the additional mode bits are stored as extended file attributes.
+On WinNT with the I<ntsec> C<CYGWIN> setting, permissions use the standard
+WinNT security descriptors and access control lists.  Without one of
+these options, these tests will fail:
 
   Failed Test           List of failed
   ------------------------------------
@@ -420,8 +393,13 @@ will fail:
   ------------------------------------
   op/taint.t            1, 3, 31, 37
 
-Alternatively, you can copy F<cygwin1.dll> into one of the Windows system
-directories (although, this is B<not> recommended).
+Alternatively, you can copy F<cygwin1.dll> into the directory where the
+tests run:
+
+  cp `type -p cygwin1.dll` t
+
+or one of the Windows system directories (although, this is B<not>
+recommended).
 
 =head2 /etc/group
 
@@ -433,19 +411,12 @@ see entries that use the members field, otherwise this test will fail:
   ------------------------------------
   op/grent.t            1
 
-=head2 Unexplained Failures
-
-Any additional tests that fail are likely due to bugs in Cygwin or the
-optional libraries.  It is expected that by the time of the next net
-release most of these will be solved so they are not described here.
-
 =head2 Script Portability
 
-Cygwin does an outstanding job of providing UNIX-like semantics on
-top of Win32 systems.  However, in addition to the items noted above,
-there are some differences that you should know about.  This is only a
-very brief guide to portability, more information can be found in the
-Cygwin documentation.
+Cygwin does an outstanding job of providing UNIX-like semantics on top of
+Win32 systems.  However, in addition to the items noted above, there are
+some differences that you should know about.  This is a very brief guide
+to portability, more information can be found in the Cygwin documentation.
 
 =over 4
 
@@ -454,20 +425,13 @@ Cygwin documentation.
 Cygwin pathnames can be separated by forward (F</>) or backward (F<\>)
 slashes.  They may also begin with drive letters (F<C:>) or Universal
 Naming Codes (F<//UNC>).  DOS device names (F<aux>, F<con>, F<prn>,
-F<com*>, F<lpt?>) are invalid as base filenames.  However, they can be
-used in extensions (e.g., F<hello.aux>).  Names may not contain these
-characters:
+F<com*>, F<lpt?>, F<nul>) are invalid as base filenames.  However, they
+can be used in extensions (e.g., F<hello.aux>).  Names may contain all
+printable characters except these:
 
   : * ? " < > |
 
-File names are case insensitive, but case preserving.  With the I<mixed>
-C<CYGWIN> setting, file names are mixed-case (although, directory names
-remain case insensitive).
-
-The I<mixed> setting is only available with the "coolview" version of
-F<cygwin1.dll> provided by Sergey Okhapkin at:
-
-  ftp://ftp.franken.de/pub/win32/develop/gnuwin32/cygwin/porters/Okhapkin_Sergey/
+File names are case insensitive, but case preserving.
 
 =item * Text/Binary
 
@@ -487,22 +451,17 @@ The text/binary issue is covered at length in the Cygwin documentation.
 =item * F<.exe>
 
 The Cygwin stat() makes the F<.exe> extension transparent by looking for
-a F<foo.exe> when you ask for F<foo> (unless a F<foo> also exists).
-Cygwin does not require a F<.exe> extension, but I<gcc> adds it
-automatically when building a program.  However, when accessing an
-executable as a normal file (e.g., I<install> or I<cp> in a makefile)
-the F<.exe> is not transparent.
-
-NOTE: There is a version of I<install> that understands the F<.exe>
-semantics, it can be found at:
-
-  ftp://ftp.franken.de/pub/win32/develop/gnuwin32/cygwin/porters/Humblet_Pierre_A/
+F<foo.exe> when you ask for F<foo> (unless a F<foo> also exists).  Cygwin
+does not require a F<.exe> extension, but I<gcc> adds it automatically
+when building a program.  However, when accessing an executable as a
+normal file (e.g., I<cp> in a makefile) the F<.exe> is not transparent.
+The I<install> included with Cygwin automatically appends a F<.exe>
+when necessary.
 
 =item * chown()
 
-On WinNT with the I<ntsec> C<CYGWIN> setting, chown() can change a file's
-user and group IDs.  In all other configurations chown() is a no-op,
-although this is appropriate on Win9x since there is no security model.
+On WinNT chown() can change a file's user and group IDs.  On Win9x chown()
+is a no-op, although this is appropriate since there is no security model.
 
 =item * Miscellaneous
 
@@ -515,7 +474,7 @@ Win9x can not rename() an open file (although WinNT can).
 
 =head1 INSTALL
 
-This will install Perl, including man pages.
+This will install Perl, including I<man> pages.
 
   make install | tee log.make-install
 
@@ -543,7 +502,7 @@ be kept as clean as possible.
   Changes Changes5.005 Changes5.004
   AUTHORS MAINTAIN MANIFEST README.win32
   pod/perl.pod pod/perlfaq3.pod pod/perlhist.pod pod/perlmodlib.pod
-  pod/perlport.pod pod/perltoc.pod pod/perl5004delta.pod
+  pod/perlport.pod pod/perltoc.pod pod/perldelta.pod pod/perl5004delta.pod
 
 =item Build, Configure, Make, Install
 
@@ -575,11 +534,11 @@ be kept as clean as possible.
 
   EXTERN.h              - __declspec(dllimport)
   XSUB.h                - __declspec(dllexport)
-  cygwin/cygwin.c       - os_extras (getcwd)
+  cygwin/cygwin.c       - os_extras (getcwd, spawn)
   perl.c                - os_extras
   perl.h                - binmode
   doio.c                - win9x can not rename a file when it is open
-  pp_sys.c              - do not define h_errno
+  pp_sys.c              - do not define h_errno, pp_system with spawn
   mg.c                  - environ WORKAROUND
   unixish.h             - environ WORKAROUND
   util.c                - environ WORKAROUND
@@ -608,24 +567,23 @@ be kept as clean as possible.
 
 =head1 BUGS
 
-Upon each start, I<make> warns that a rule for F<perlmain.o> is overridden
-(but there seems to be no better solution than adding an explicit define).
+When I<make> starts, it warns about overriding commands for F<perlmain.o>.
 
 `C<make clean>' does not remove library F<.def> and F<.exe.stackdump>
 files.
 
 The I<ld2> script contains references to the source directory.  You should
-change these to C</usr/local/bin> (or whatever) after install.
+change these to $installbin after `C<make install>'.
 
 =head1 AUTHORS
 
-Charles Wilson E<lt>cwilson@ece.gatech.eduE<gt>,
-Eric Fifer E<lt>efifer@sanwaint.comE<gt>,
-alexander smishlajev E<lt>als@turnhere.comE<gt>,
-Steven Morlock E<lt>newspost@morlock.netE<gt>,
-Sebastien Barre E<lt>Sebastien.Barre@utc.frE<gt>,
-Teun Burgers E<lt>burgers@ecn.nlE<gt>.
+Charles Wilson <cwilson@ece.gatech.edu>,
+Eric Fifer <efifer@sanwaint.com>,
+alexander smishlajev <als@turnhere.com>,
+Steven Morlock <newspost@morlock.net>,
+Sebastien Barre <Sebastien.Barre@utc.fr>,
+Teun Burgers <burgers@ecn.nl>.
 
 =head1 HISTORY
 
-Last updated: 1 March 2000
+Last updated: 5 May 2000
index 4cdcf58..06b39b9 100644 (file)
@@ -14,9 +14,9 @@ runs.
 
 =head2 Compiling Perl 5 on HP-UX
 
-When compiling Perl, the use of an ANSI C compiler is highly recommended.
-The C compiler that ships with all HP-UX systems is a K&R compiler that
-should only be used to build new kernels.
+An ANSI C compiler is required to build Perl.  The C compiler that ships
+with all HP-UX systems is a K&R compiler that can only be used to build
+new kernels.
 
 Perl can be compiled with either HP's ANSI C compiler or with gcc.  The
 former is recommended, as not only can it compile Perl with no difficulty,
@@ -69,7 +69,7 @@ The following systems contain PA-RISC 2.0 chips (this is very likely to be
 out of date):
 
     D270, D280, D370, D380, K250, K260, K370, K380, K450, K460, K570, K580,
-    T600, V2200
+    T600, V2200, N-class
 
 A complete list of models at the time the OS was built is in the file
 /opt/langtools/lib/sched.models.
@@ -116,7 +116,7 @@ If these dependent libraries are not listed at shared library creation
 time, you will get fatal "Unresolved symbol" errors at run time when the
 library is loaded.
 
-You may create a shared library that referers to another library, which
+You may create a shared library that refers to another library, which
 may be either an archive library or a shared library.  If it is a
 shared library, this is called a "dependent library".
 The dependent library's name is recorded in the main shared library,
@@ -144,19 +144,21 @@ Beginning with HP-UX version 10.20, files larger than 2GB (2^31) may be
 created and manipulated.
 Three separate methods of doing this are available.
 Of these methods,
-the best method for Perl is to compile using the -D_FILE_OFFSET_BITS=64
-compiler flag.
+the best method for Perl is to compile using the -Duselargefiles
+flag to Configure.
+This will cause the -D_FILE_OFFSET_BITS=64 compiler flag to be used
+when building Perl.
 This causes Perl to be compiled using structures and functions in which
 these are 64 bits wide, rather than 32 bits wide.
-
-There are only two drawbacks to this approach:
-the first is that the seek and tell functions (both the builtin version
-and the POSIX module's version) will not correctly
-function for these large files
-(the offset arguments in seek and tell are implemented as type long).
-The second is that any extension which calls any file-manipulating C function
-will need to be recompiled using the above-mentioned -D_FILE_OFFSET_BITS=64
-flag.
+(Note that this will only work with HP's ANSI C compiler.
+If you want to compile Perl using gcc, you will have to get a version
+of the compiler that support 64-bit operations.)
+
+The one drawback to this approach is that
+any extension which calls any file-manipulating C function
+will need to be recompiled
+(just follow the usual "perl Makefile.PL; make; make test; make install"
+procedure).
 The list of functions that will need to recompiled is:
 creat,         fgetpos,        fopen,
 freopen,       fsetpos,        fstat,
@@ -178,7 +180,8 @@ Ensure that the -D_POSIX_C_SOURCE=199506L compiler flag is automatically
 added to the list of flags.  Also make sure that -lpthread is listed before
 -lc in the list of libraries to link Perl with.
 
-As of the date of this document, Perl threads are not fully supported on HP-UX.
+As of the date of this document,
+Perl threads are not fully supported on HP-UX.
 
 =head2 64-bit Perl
 
@@ -193,12 +196,25 @@ numbers larger than 2^32 with complete precision.
 As of the date of this document, Perl is not 64-bit compliant on HP-UX.
 
 Should a user wish to experiment with compiling Perl in the LP64 environment,
-the following steps must be taken: libraries must be searched only within
-/lib/pa20_64, the compiler flag +DD64 must be used, and the C library is
-now located at /lib/pa20_64/libc.sl.
-
-On the brighter side, the large file problem goes away, as longs are now
-64 bits wide.
+use the -Duse64bitall flag to Configure.
+This will force Perl to be compiled in a pure LP64 environment (via the
++DD64 flag).
+
+You can also use the -Duse64bitint flag to Configure.
+Although there are some minor differences between compiling Perl with
+this flag versus the -Duse64bitall flag,
+they should not be noticeable from a Perl user's perspective.
+
+In both cases, it is strongly recommended that you use these flags
+when you run Configure.
+If you do not use them, but answer the questions about 64-bit numbers
+when Configure asks you,
+you may get a configuration that cannot be compiled, or that does
+not function as expected.
+
+(Note that these Configure flags will only work with HP's ANSI C compiler.
+If you want to compile Perl using gcc, you will have to get a version
+of the compiler that support 64-bit operations.)
 
 =head2 GDBM and Threads
 
@@ -221,6 +237,6 @@ With much assistance regarding shared libraries from Marc Sabatella.
 
 =head1 DATE
 
-Version 0.2: 1999/03/01
+Version 0.3: 2000/03/31
 
 =cut
diff --git a/README.machten b/README.machten
new file mode 100644 (file)
index 0000000..8e14fc7
--- /dev/null
@@ -0,0 +1,89 @@
+If you read this file _as_is_, just ignore the funny characters you
+see. It is written in the POD format (see pod/perlpod.pod) which is
+specially designed to be readable as is.
+
+=head1 NAME
+
+README.machten - Perl version 5 on Power MachTen systems
+
+=head1 DESCRIPTION
+
+This document describes how to build Perl 5 on Power MachTen systems,
+and discusses a few wrinkles in the implementation.
+
+=head2 Compiling Perl 5 on MachTen
+
+To compile perl under MachTen 4.1.4 (and probably earlier versions):
+
+  ./Configure -de
+  make
+  make test
+  make install
+
+This builds and installs a statically-linked perl; MachTen's dynamic
+linking facilities are not adequate to support Perl's use of
+dynamically linked libraries.  (See F<hints/machten.sh> for more
+information.)
+
+You should have at least 32 megabytes of free memory on your
+system before running the C<make> command.
+
+For much more information on building perl -- for example, on how to
+change the default installation directory -- see F<INSTALL>.
+
+=head2 Failures during C<make test>
+
+=over 4
+
+=item op/lexassign.t
+
+This test may fail when first run after building perl.  It does not
+fail subsequently.  The cause is unknown.
+
+=item pragma/warnings.t
+
+Test 257 fails due to a failure to warn about attempts to read from a
+filehandle which is a duplicate of stdout when stdout is attached to a
+pipe.  The output of the test contains a block comment which discusses
+a different failure, not applicable to MachTen.
+
+The root of the problem is that Machten does not assign a file type to
+either end of a pipe (see L<stat>), resulting, among other things
+in Perl's C<-p> test failing on file descriptors belonging to pipes.
+As a result, perl becomes confused, and the test for reading from a
+write-only file fails.  I am reluctant to patch perl to get around
+this, as it's clearly an OS bug (about which Tenon has been informed),
+and limited in its effect on practical Perl programs.
+
+=back
+
+=head2 Building external modules
+
+To add an external module to perl, build in the normal way, which
+is documented in L<ExtUtils::MakeMaker>, or which can be driven
+automatically by the CPAN module (see L<CPAN>), which is part of the
+standard distribution.  If you want to install a module which
+contains XS code (C or C++ source which compiles to object code
+for linking with perl), you will have to replace your perl binary with
+a new version containing the new statically-linked object module.  The
+build process tells you how to do this.
+
+There is a gotcha, however, which users usually encounter immediately
+they respond to CPAN's invitation to C<install Bundle::CPAN>. When
+installing a I<bundle> -- a group of modules which together achieve
+some particular purpose, the installation process for later modules in
+the bundle tends to assume that earlier modules have been fully
+installed and are available for use.  This is not true on a
+statically-linked system for earlier modules which contain XS code.
+As a result the installation of the bundle fails.  The work-around is
+not to install the bundle as a one-shot operation, but instead to see
+what modules it contains, and install these one-at-a-time by hand in
+the order given.
+
+=head1 AUTHOR
+
+Dominic Dunlop <domo@computer.org>
+
+=head1 DATE
+
+Version 1.0.1 2000-03-27
index 9cd4808..1915129 100644 (file)
@@ -63,17 +63,11 @@ and fix its stack.  I have made good experiences with
 This doesn't establish a stack of 2 Bytes only as you might
 think.  It really reserves one half of the available memory
 for cc1's stack.  A setting of 1 would reserve the entire
-memory for cc1, 3 would reserve three thirds.  You will have
+memory for cc1, 3 would reserve three fourths.  You will have
 to find out the value that suits to your system yourself.
 
-BTW, cc1 is maybe a little hard to find.  It is generally installed
-as
-       /usr/local/lib/gcc-lib/<platform>/<gcc-version>/cc1
-
-where <platform> is probably something like "m68k-atari-mint"
-and <version> is the gcc version you use (find out with
-"gcc --version").  Maybe "gcc-lib" is not installed in
-"/usr/local/lib" but "/usr/lib" on your system.
+To find out the location of the program `cc1' simply type
+`gcc --print-prog-name cc1' at your shell prompt.
 
 Now run make (maybe "make -k").  If you get a fatal signal 10 
 increase cc1's stacksize, if you run out of memory you should 
index a69ea0d..1e7464b 100644 (file)
@@ -1481,7 +1481,7 @@ this works as well under DOS if you use DOS-enabled port of pdksh
 
 B<Disadvantages:> currently F<sh.exe> of pdksh calls external programs
 via fork()/exec(), and there is I<no> functioning exec() on
-OS/2. exec() is emulated by EMX by asyncroneous call while the caller
+OS/2. exec() is emulated by EMX by asynchronous call while the caller
 waits for child completion (to pretend that the C<pid> did not change). This
 means that 1 I<extra> copy of F<sh.exe> is made active via fork()/exec(),
 which may lead to some resources taken from the system (even if we do
@@ -1525,8 +1525,8 @@ as when processing B<-S> command-line switch.
 
 Perl uses its own malloc() under OS/2 - interpreters are usually malloc-bound
 for speed, but perl is not, since its malloc is lightning-fast.
-Perl-memory-usage-tuned benchmarks show that Perl's malloc is 5 times quickier
-than EMX one.  I do not have convincing data about memory footpring, but
+Perl-memory-usage-tuned benchmarks show that Perl's malloc is 5 times quicker
+than EMX one.  I do not have convincing data about memory footprint, but
 a (pretty random) benchmark showed that Perl one is 5% better.
 
 Combination of perl's malloc() and rigid DLL name resolution creates
index 5fcdfc0..1821846 100644 (file)
@@ -142,7 +142,7 @@ L<INSTALL>, L<perlport>, L<ExtUtils::MakeMaker>.
 
 The Perl Institute (http://www.perl.org/) maintains a perl-mvs 
 mailing list of interest to all folks building and/or
-using perl on EBCDIC platforms.  To subscibe, send a message of:
+using perl on EBCDIC platforms.  To subscribe, send a message of:
 
     subscribe perl-mvs
 
index 34bcad7..1105f67 100644 (file)
@@ -92,25 +92,21 @@ We build perl using both GNU make and the native make.
 TESTING:
 ========
 
-We still got a few errors during 'make test'.  Most of them are the
+We still got a few errors during 'make test'.  Some of them are the
 result of using bison.  Bison prints 'parser error' instead of 'syntax
-error', so we may ignore them.  One error in the test op/regexp (and
-op/regexp_noamp) seems a bit critical, the result was an 'Out of
-memory' (core dump with op/regexp_noamp).  The following list shows
+error', so we may ignore them.  The following list shows
 our errors, your results may differ:
 
-op/misc.............FAILED tests 45-46
-op/pack.............FAILED tests 58-60
-op/regexp...........FAILED tests 405-492      (core dump)
-op/regexp_noamp.....FAILED tests 405-492      (core dump)
+op/numconvert.......FAILED tests 1409-1440
+op/regexp...........FAILED tests 483, 496
+op/regexp_noamp.....FAILED tests 483, 496
 pragma/overload.....FAILED tests 152-153, 170-171
-pragma/subs.........FAILED tests 1-2
-pragma/warning......FAILED tests 121, 127, 130, 142
-lib/cgi-html........dubious, FAILED tests 1-17 (ALL)
-lib/complex.........FAILED tests 264, 484
-lib/dumper..........FAILED tests MANY
-Failed 7/190 test scripts, 96.32% okay. 234/6549 subtests failed, 96.43% okay.
-
+pragma/warnings.....FAILED tests 14, 82, 129, 155, 192, 205, 207
+lib/bigfloat........FAILED tests 351-352, 355
+lib/bigfltpm........FAILED tests 354-355, 358
+lib/complex.........FAILED tests 267, 487
+lib/dumper..........FAILED tests 43, 45
+Failed 11/231 test scripts, 95.24% okay. 57/10595 subtests failed, 99.46% okay.
 
 INSTALLING:
 ===========
index b39961b..f7bf25c 100644 (file)
@@ -8,13 +8,8 @@ perlwin32 - Perl under Win32
 
 =head1 SYNOPSIS
 
-These are instructions for building Perl under Windows NT (versions
-3.51 or 4.0).  Currently, this port is reported to build under
-Windows95 using the 4DOS shell--the default shell that infests
-Windows95 may not work fully (but see below).  Note that this caveat
-is only about B<building> perl.  Once built, you should be able to
-B<use> it on either Win32 platform (modulo the problems arising from
-the inferior command shell).
+These are instructions for building Perl under Windows (9x, NT and
+2000).
 
 =head1 DESCRIPTION
 
@@ -62,19 +57,37 @@ See L<Usage Hints> below for general hints about this.
 
 =over 4
 
+=item Make
+
+You need a "make" program to build the sources.  If you are using
+Visual C++ under Windows NT or 2000, nmake will work.  All other
+builds need dmake.
+
+dmake is a freely available make that has very nice macro features
+and parallelability.
+
+A port of dmake for Windows is available from:
+
+    http://www.cpan.org/authors/id/GSAR/dmake-4.1pl1-win32.zip
+
+(This is a fixed version of original dmake sources obtained from
+http://www.wticorp.com/dmake/.  As of version 4.1PL1, the original
+sources did not build as shipped, and had various other problems.
+A patch is included in the above fixed version.)
+
+Fetch and install dmake somewhere on your path (follow the instructions
+in the README.NOW file).
+
 =item Command Shell
 
 Use the default "cmd" shell that comes with NT.  Some versions of the
 popular 4DOS/NT shell have incompatibilities that may cause you trouble.
 If the build fails under that shell, try building again with the cmd
-shell.  The nmake Makefile also has known incompatibilites with the
-"command.com" shell that comes with Windows95.
+shell.
 
-However, there have been reports of successful build attempts using
-4DOS/NT version 6.01 under Windows95, using dmake, but your mileage
-may vary.  There is also some basic support for building using dmake
-under command.com.  Nevertheless, if building under command.com
-doesn't work, try 4DOS/NT.
+The nmake Makefile also has known incompatibilities with the
+"command.com" shell that comes with Windows 9x.  You will need to
+use dmake and makefile.mk to build under Windows 9x.
 
 The surest way to build it is on Windows NT, using the cmd shell.
 
@@ -83,22 +96,11 @@ build usually works in this circumstance, but some tests will fail.
 
 =item Borland C++
 
-If you are using the Borland compiler, you will need dmake, a freely
-available make that has very nice macro features and parallelability.
+If you are using the Borland compiler, you will need dmake.
 (The make that Borland supplies is seriously crippled, and will not
 work for MakeMaker builds.)
 
-A port of dmake for win32 platforms is available from:
-
-    http://cpan.perl.org/authors/id/GSAR/dmake-4.1pl1-win32.zip
-
-(This is a fixed version of original dmake sources obtained from
-http://www.wticorp.com/dmake/.  As of version 4.1PL1, the original
-sources did not build as shipped, and had various other problems.
-A patch is included in the above fixed version.)
-
-Fetch and install dmake somewhere on your path (follow the instructions
-in the README.NOW file).
+See L/"Make"> above.
 
 =item Microsoft Visual C++
 
@@ -125,7 +127,11 @@ Make sure you install the binaries that work with MSVCRT.DLL as indicated
 in the README for the GCC bundle.  You may need to set up a few environment
 variables (usually run from a batch file).
 
-You also need dmake.  See L</"Borland C++"> above on how to get it.
+The version of gcc-2.95.2-msvcrt.exe released 7 November 1999 left out
+a fix for certain command line quotes, so be sure to download and install
+fixes/quote-fix-msvcrt.exe too.
+
+You also need dmake.  See L</"Make"> above on how to get it.
 
 =back
 
@@ -139,39 +145,20 @@ Make sure you are in the "win32" subdirectory under the perl toplevel.
 This directory contains a "Makefile" that will work with
 versions of nmake that come with Visual C++, and a dmake "makefile.mk"
 that will work for all supported compilers.  The defaults in the dmake
-makefile are setup to build using the Borland compiler.
+makefile are setup to build using the GCC compiler.
 
 =item *
 
 Edit the makefile.mk (or Makefile, if using nmake) and change the values
 of INST_DRV and INST_TOP.   You can also enable various build
-flags.
-
-Beginning with version 5.005, there is experimental support for building
-a perl interpreter that supports the Perl Object abstraction (courtesy
-ActiveState Tool Corp.)  PERL_OBJECT uses C++, and the binaries are
-therefore incompatible with the regular C build.  However, the
-PERL_OBJECT build does provide something called the C-API, for linking
-it with extensions that won't compile under PERL_OBJECT. Using the C_API
-is typically requested through:
-
-    perl Makefile.PL CAPI=TRUE
-
-PERL_OBJECT requires VC++ 5.0 (Service Pack 3 recommended) or later. It
-is not yet supported under GCC.  WARNING:  Binaries built with
-PERL_OBJECT enabled are B<not> compatible with binaries built without.
-Perl installs PERL_OBJECT binaries under a distinct architecture name,
-so they B<can> coexist, though.
-
-Beginning with version 5.005, there is experimental support for building
-a perl interpreter that is capable of native threading.  Binaries built
-with thread support enabled are also incompatible with the vanilla C
-build.  WARNING:  Binaries built with threads enabled are B<not> compatible
-with binaries built without.  Perl installs threads enabled binaries under
-a distinct architecture name, so they B<can> coexist, though.
-
-At the present time, you cannot enable both threading and PERL_OBJECT.
-You can get only one of them in a Perl interpreter.
+flags.  These are explained in the makefiles.
+
+You will have to make sure CCTYPE is set correctly, and CCHOME points
+to wherever you installed your compiler.
+
+The default value for CCHOME in the makefiles for Visual C++
+may not be correct for some versions.  Make sure the default exists
+and is valid.
 
 If you have either the source or a library that contains des_fcrypt(),
 enable the appropriate option in the makefile.  des_fcrypt() is not
@@ -192,39 +179,31 @@ in des_fcrypt.patch.
 Perl will also build without des_fcrypt(), but the crypt() builtin will
 fail at run time.
 
-You will also have to make sure CCHOME points to wherever you installed
-your compiler.
-
-The default value for CCHOME in the makefiles for Visual C++
-may not be correct for some versions.  Make sure the default exists
-and is valid.
-
-Other options are explained in the makefiles.  Be sure to read the
-instructions carefully.
+Be sure to read the instructions near the top of the makefiles carefully.
 
 =item *
 
 Type "dmake" (or "nmake" if you are using that make).
 
 This should build everything.  Specifically, it will create perl.exe,
-perl.dll (or perl56.dll), and perlglob.exe at the perl toplevel, and
-various other extension dll's under the lib\auto directory.  If the build
-fails for any reason, make sure you have done the previous steps correctly.
-
-The build process may produce "harmless" compiler warnings (more or
-less copiously, depending on how picky your compiler gets).  The
-maintainers are aware of these warnings, thankyouverymuch. :)
+perl56.dll at the perl toplevel, and various other extension dll's
+under the lib\auto directory.  If the build fails for any reason, make
+sure you have done the previous steps correctly.
 
 =back
 
 =head2 Testing
 
 Type "dmake test" (or "nmake test").  This will run most of the tests from
-the testsuite (many tests will be skipped, and but no test should fail).
+the testsuite (many tests will be skipped).
 
-If some tests do fail, it may be because you are using a different command
-shell than the native "cmd.exe", or because you are building from a path
-that contains spaces.  So don't do that.
+There should be no test failures when running under Windows NT 4.0 or
+Windows 2000.  Many tests I<will> fail under Windows 9x due to the inferior
+command shell.
+
+Some test failures may occur if you use a command shell other than the
+native "cmd.exe", or if you are building from a path that contains
+spaces.  So don't do that.
 
 If you are running the tests from a emacs shell window, you may see
 failures in op/stat.t.  Run "dmake test-notty" in that case.
@@ -248,8 +227,13 @@ you will need to add two components to your PATH environment variable,
 C<$INST_TOP\$VERSION\bin>, and C<$INST_TOP\$VERSION\bin\$ARCHNAME>.
 For example:
 
-    set PATH c:\perl\5.005\bin;c:\perl\5.005\bin\MSWin32-x86;%PATH%
+    set PATH c:\perl\5.6.0\bin;c:\perl\5.6.0\bin\MSWin32-x86;%PATH%
+
+If you opt to comment out INST_VER and INST_ARCH in the makefiles, the
+installation structure is much simpler.  In that case, it will be
+sufficient to add a single entry to the path, for instance:
 
+    set PATH c:\perl\bin;%PATH%
 
 =head2 Usage Hints
 
@@ -289,32 +273,19 @@ separated with semicolons, as usual on win32.
 
 =item File Globbing
 
-By default, perl spawns an external program to do file globbing.
-The install process installs both a perlglob.exe and a perlglob.bat
-that perl can use for this purpose.  Note that with the default
-installation, perlglob.exe will be found by the system before
-perlglob.bat.
-
-perlglob.exe relies on the argv expansion done by the C Runtime of
-the particular compiler you used, and therefore behaves very
-differently depending on the Runtime used to build it.  To preserve
-compatiblity, perlglob.bat (a perl script that can be used portably)
-is installed.  Besides being portable, perlglob.bat also offers
-enhanced globbing functionality.
-
-If you want perl to use perlglob.bat instead of perlglob.exe, just
-delete perlglob.exe from the install location (or move it somewhere
-perl cannot find).  Using File::DosGlob.pm (which implements the core
-functionality of perlglob.bat) to override the internal CORE::glob()
-works about 10 times faster than spawing perlglob.exe, and you should
-take this approach when writing new modules.  See File::DosGlob for
+By default, perl handles file globbing using the File::Glob extension,
+which provides portable globbing.
+
+If you want perl to use globbing that emulates the quirks of DOS
+filename conventions, you might want to consider using File::DosGlob
+to override the internal glob() implementation.  See L<File::DosGlob> for
 details.
 
 =item Using perl from the command line
 
 If you are accustomed to using perl from various command-line
 shells found in UNIX environments, you will be less than pleased
-with what Windows NT offers by way of a command shell.
+with what Windows offers by way of a command shell.
 
 The crucial thing to understand about the "cmd" shell (which is
 the default on Windows NT) is that it does not do any wildcard
@@ -375,14 +346,19 @@ This pipes "foo" to the pager and writes "bar" in the file "blurch":
     perl -e "print 'foo'; print STDERR 'bar'" 2> blurch | less
 
 
-Discovering the usefulness of the "command.com" shell on Windows95
+Discovering the usefulness of the "command.com" shell on Windows 9x
 is left as an exercise to the reader :)
 
 =item Building Extensions
 
 The Comprehensive Perl Archive Network (CPAN) offers a wealth
 of extensions, some of which require a C compiler to build.
-Look in http://www.perl.com/ for more information on CPAN.
+Look in http://www.cpan.org/ for more information on CPAN.
+
+Note that not all of the extensions available from CPAN may work
+in the Win32 environment; you should check the information at
+http://testers.cpan.org/ before investing too much effort into
+porting modules that don't readily build.
 
 Most extensions (whether they require a C compiler or not) can
 be built, tested and installed with the standard mantra:
@@ -407,9 +383,9 @@ old version of nmake reportedly available from:
 Another option is to use the make written in Perl, available from
 CPAN:
 
-    http://www.perl.com/CPAN/authors/id/NI-S/Make-0.03.tar.gz
+    http://www.cpan.org/authors/id/NI-S/Make-0.03.tar.gz
 
-You may also use dmake.  See L</"Borland C++"> above on how to get it.
+You may also use dmake.  See L</"Make"> above on how to get it.
 
 Note that MakeMaker actually emits makefiles with different syntax
 depending on what 'make' it thinks you are using.  Therefore, it is
@@ -502,7 +478,7 @@ all of the ActiveState extensions and most other Win32 extensions from
 CPAN in source form, along with many added bugfixes, and with MakeMaker
 support.  This bundle is available at:
 
-   http://www.perl.com/CPAN/authors/id/GSAR/libwin32-0.14.zip
+   http://www.cpan.org/authors/id/GSAR/libwin32-0.151.zip
 
 See the README in that distribution for building and installation
 instructions.  Look for later versions that may be available at the
@@ -599,75 +575,18 @@ find a mailer on your system).
 
 =head1 BUGS AND CAVEATS
 
-An effort has been made to ensure that the DLLs produced by the two
-supported compilers are compatible with each other (despite the
-best efforts of the compiler vendors).  Extension binaries produced
-by one compiler should also coexist with a perl binary built by
-a different compiler.  In order to accomplish this, PERL.DLL provides
-a layer of runtime code that uses the C Runtime that perl was compiled
-with.  Extensions which include "perl.h" will transparently access
-the functions in this layer, thereby ensuring that both perl and
-extensions use the same runtime functions.
-
-If you have had prior exposure to Perl on Unix platforms, you will notice
-this port exhibits behavior different from what is documented.  Most of the
-differences fall under one of these categories.  We do not consider
-any of them to be serious limitations (especially when compared to the
-limited nature of some of the Win32 OSes themselves :)
-
-=over 8
-
-=item *
-
-C<stat()> and C<lstat()> functions may not behave as documented.  They
-may return values that bear no resemblance to those reported on Unix
-platforms, and some fields (like the the one for inode) may be completely
-bogus.
-
-=item *
-
-The following functions are currently unavailable: C<fork()>,
-C<dump()>, C<chown()>, C<link()>, C<symlink()>, C<chroot()>,
-C<setpgrp()> and related security functions, C<setpriority()>,
-C<getpriority()>, C<syscall()>, C<fcntl()>, C<getpw*()>,
-C<msg*()>, C<shm*()>, C<sem*()>, C<alarm()>, C<socketpair()>,
-C<*netent()>, C<*protoent()>, C<*servent()>, C<*hostent()>,
-C<getnetby*()>.
-This list is possibly incomplete.
-
-=item *
-
-Various C<socket()> related calls are supported, but they may not
-behave as on Unix platforms.
-
-=item *
-
-The four-argument C<select()> call is only supported on sockets.
-
-=item *
-
-The C<ioctl()> call is only supported on sockets (where it provides the
-functionality of ioctlsocket() in the Winsock API).
-
-=item *
-
-Failure to spawn() a subprocess is indicated by setting $? to "255 << 8".
-C<$?> is set in a way compatible with Unix (i.e. the exitstatus of the
-subprocess is obtained by "$? >> 8", as described in the documentation).
-
-=item *
-
-You can expect problems building modules available on CPAN if you
-build perl itself with -DUSE_THREADS.  These problems should be resolved
-as we get closer to 5.005.
-
-=item *
+Some of the built-in functions do not act exactly as documented in
+L<perlfunc>, and a few are not implemented at all.  To avoid
+surprises, particularly if you have had prior exposure to Perl
+in other operating environments or if you intend to write code
+that will be portable to other environments, see L<perlport>
+for a reasonably definitive list of these differences.
 
-C<utime()>, C<times()> and process-related functions may not
-behave as described in the documentation, and some of the
-returned values or effects may be bogus.
+Not all extensions available from CPAN may build or work properly
+in the Win32 environment.  See L</"Building Extensions">.
 
-=item *
+Most C<socket()> related calls are supported, but they may not
+behave as on Unix platforms.  See L<perlport> for the full list.
 
 Signal handling may not behave as on Unix platforms (where it
 doesn't exactly "behave", either :).  For instance, calling C<die()>
@@ -677,31 +596,6 @@ Thus, signals may work only for simple things like setting a flag
 variable in the handler.  Using signals under this port should
 currently be considered unsupported.
 
-=item *
-
-C<kill()> is implemented, but doesn't have the semantics of
-C<raise()>, i.e. it doesn't send a signal to the identified process
-like it does on Unix platforms.  Instead it immediately calls
-C<TerminateProcess(process,signal)>.  Thus the signal argument is
-used to set the exit-status of the terminated process.  However,
-a signal of 0 can be used to safely check if the specified process
-exists, as on Unix.
-
-=item *
-
-File globbing may not behave as on Unix platforms.  In particular,
-if you don't use perlglob.bat for globbing, it will understand
-wildcards only in the filename component (and not in the pathname).
-In other words, something like "print <*/*.pl>" will not print all the
-perl scripts in all the subdirectories one level under the current one
-(like it does on UNIX platforms).  perlglob.exe is also dependent on
-the particular implementation of wildcard expansion in the vendor
-libraries used to build it (which varies wildly at the present time).
-Using perlglob.bat (or File::DosGlob) avoids these limitations, but
-still only provides DOS semantics (read "warts") for globbing.
-
-=back
-
 Please send detailed descriptions of any problems and solutions that 
 you may find to <F<perlbug@perl.com>>, along with the output produced
 by C<perl -V>.
@@ -741,6 +635,6 @@ Support for fork() emulation was added in 5.6 (ActiveState Tool Corp).
 
 Win9x support was added in 5.6 (Benjamin Stuhl).
 
-Last updated: 28 December 1999
+Last updated: 22 March 2000
 
 =cut
diff --git a/Todo b/Todo
index 0db8ae2..ba01d33 100644 (file)
--- a/Todo
+++ b/Todo
@@ -1,6 +1,11 @@
 Always check out the latest perl5-porters discussions on these subjects
 before embarking on an implementation tour.
 
+Bugs
+       remove recursion in regular expression engine
+       fix memory leaks during compile failures
+       make signal handling safe
+
 Tie Modules
        VecArray                Implement array using vec()
        SubstrArray             Implement array using substr()
@@ -22,6 +27,11 @@ Would be nice to have
        support in perlmain to rerun debugger
        regression tests using __DIE__ hook
        lexically scoped functions: my sub foo { ... }
+               the basic concept is easy and sound,
+               the difficulties begin with self-referential
+               and mutually referential lexical subs: how to
+               declare the subs?
+       lexically scoped typeglobs? (lexical I/O handles work now)
         wantlvalue?  more generalized want()/caller()?
        named prototypes: sub foo ($foo, @bar) { ... } ?
        regression/sanity tests for suidperl
@@ -41,6 +51,15 @@ Would be nice to have
            an extension (Devel::MProf?) that would return the malloc
            stats in a nice Perl datastructure (also a simple interface
            to return just the grand total would be good)
+       cross-compilation support
+           host vs target: compile in the host, get the executable to
+           the target, get the possible input files to the target,
+           execute in the target (and do not assume a UNIXish shell
+           in the target! e.g. no command redirection can be assumed),
+           get possible output files back to to host.  this needs to work
+           both during Configure and during the build.  You cannot assume
+           shared filesystems between the host and the target (you may need
+           e.g. ftp), executing the target executable may involve e.g. rsh
        a way to make << and >> to shift bitvectors instead of numbers
 
 Possible pragmas
index b9f05fd..fac325c 100644 (file)
--- a/Todo-5.6
+++ b/Todo-5.6
@@ -1,6 +1,3 @@
-Bugs
-    fix small memory leaks on compile-time failures
-
 Unicode support
     finish byte <-> utf8 and localencoding <-> utf8 conversions
     make substr($bytestr,0,0,$charstr) do the right conversion
@@ -13,7 +10,6 @@ Unicode support
        - a way to set default disciplines for all handle constructors:
            use open IN => ":any", OUT => ":utf8", SYS => ":utf16"
     eliminate need for "use utf8;"
-    autoload utf8_heavy.pl's swash routines in swash_init()
     autoload byte.pm when byte:: is seen by the parser
     check uv_to_utf8() calls for buffer overflow
     (see also "Locales", "Regexen", and "Miscellaneous")
@@ -43,13 +39,17 @@ Namespace cleanup
     API-space:    complete the list of things that constitute public api
 
 Configure
+    fix the vicious cyclic multidependency of cc <-> libpth <-> loclibpth
+       libswanted <-> usethreads <-> use64bitint <-> use64bitall <->
+       uselargefiles <-> ...  
     make configuring+building away from source directory work (VPATH et al)
-    _r support
-    cross-compilation configuring
+       this is related to: cross-compilation configuring (see Todo)
+    _r support (see Todo for mode detailed description)
     POSIX 1003.1 1996 Edition support--realtime stuff:
        POSIX semaphores, message queues, shared memory, realtime clocks,
        timers, signals (the metaconfig units mostly already exist for these)
     UNIX98 support: reader-writer locks, realtime/asynchronous IO
+    IPv6 support: see RFC2292, RFC2553
 
 Long doubles
     figure out where the PV->NV->PV conversion gets it wrong at least
@@ -82,6 +82,18 @@ Locales
 
 Regexen
    make RE engine thread-safe
+   a way to do full character set arithmetics: now one can do
+       addition, negate a whole class, and negate certain subclasses
+       (e.g. \D, [:^digit:]), but a more generic way to add/subtract/
+       intersect characters/classes, like described in the Unicode technical
+       report on Regular Expression Guidelines,
+       http://www.unicode.org/unicode/reports/tr18/
+       (amusingly, the TR notes that difference and intersection
+        can be done using "Perl-style look-ahead")
+       difference syntax?  maybe [[:alpha:][^abc]] meaning
+       "all alphabetic expect a, b, and c"? or [[:alpha:]-[abc]]?
+       (maybe bad, as we explicitly disallow such 'ranges')
+       intersection syntax? maybe [[..]&[...]]?
    POSIX [=bar=] and [.zap.] would nice too but there's no API for them
        =bar= could be done with Unicode, though, see the Unicode TR #15 about
        normalization forms:
@@ -113,12 +125,14 @@ Miscellaneous
        Configure doesn't yet probe for usleep/nanosleep/ualarm but
        the units exist)
     floating point handling: nans, infinities, fp exception masks, etc.
-       at least the following interfaces exist: fp_classify(), fp_class(),
-       class(), isnan(), isinf(), isfinite(), finite(), isnormal(),
-       ordered(), fp_setmask(), fp_getmask(), fp_setround(), fp_getround(), 
-       ieeefp.h, fp_class.h.  There are metaconfig units for most of these.
-        Search for ifdef __osf__ in pp.c to find a temporary fix that
-       needs to be done right.
+       At least the following interfaces exist: fp_classify(), fp_class(),
+       class(), isinf(), isfinite(), finite(), isnormal(), unordered(),
+       <ieeefp.h>, <fp_class.h> (there are metaconfig units for all these),
+       fp_setmask(), fp_getmask(), fp_setround(), fp_getround()
+       (no metaconfig units yet for these).
+        Don't forget finitel(), fp_classl(), fp_class_l(), (yes, both do,
+       unfortunately, exist), and unorderedl().
+       As of 5.6.1 there is cpp macro Perl_isnan().
     fix the basic arithmetics (+ - * / %) to preserve IVness/UVness if
        both arguments are IVs/UVs
     replace pod2html with new PodtoHtml? (requires other modules from CPAN)
index 108b673..5bb7ddd 100644 (file)
@@ -189,12 +189,6 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$d_fgetpos HAS_FGETPOS        /**/
 
-/* FLEXFILENAMES:
- *     This symbol, if defined, indicates that the system supports filenames
- *     longer than 14 characters.
- */
-#$d_flexfnam   FLEXFILENAMES           /**/
-
 /* HAS_FLOCK:
  *     This symbol, if defined, indicates that the flock routine is
  *     available to do file locking.
@@ -1147,7 +1141,7 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #define BIN_EXP "$binexp"      /**/
 
 /* PERL_BINCOMPAT_5005:
- *     This symbol, if defined, indicates that Perl 5.006 should be
+ *     This symbol, if defined, indicates that this version of Perl should be
  *     binary-compatible with Perl 5.005.  This is impossible for builds
  *     that use features like threads and multiplicity it is always $undef
  *     for those versions.
@@ -1218,7 +1212,7 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #  define STRINGIFY(a) PeRl_StGiFy(a)
 #endif
 #if $cpp_stuff != 1 && $cpp_stuff != 42
-#include "Bletch: How does this C preprocessor catenate tokens?"
+#   include "Bletch: How does this C preprocessor catenate tokens?"
 #endif
 
 /* CPPSTDIN:
@@ -1360,11 +1354,24 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$d_fd_set HAS_FD_SET  /**/
 
+/* FLEXFILENAMES:
+ *     This symbol, if defined, indicates that the system supports filenames
+ *     longer than 14 characters.
+ */
+#$d_flexfnam   FLEXFILENAMES           /**/
+
 /* HAS_FPOS64_T:
  *     This symbol will be defined if the C compiler supports fpos64_t.
  */
 #$d_fpos64_t   HAS_FPOS64_T            /**/
 
+/* HAS_FREXPL:
+ *     This symbol, if defined, indicates that the frexpl routine is
+ *     available to break a long double floating-point number into
+ *     a normalized fraction and an integral power of 2.
+ */
+#$d_frexpl HAS_FREXPL          /**/
+
 /* HAS_STRUCT_FS_DATA:
  *     This symbol, if defined, indicates that the struct fs_data
  *     to do statfs() is supported.
@@ -1644,6 +1651,25 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$d_isascii HAS_ISASCII                /**/
 
+/* HAS_ISNAN:
+ *     This symbol, if defined, indicates that the isnan routine is
+ *     available to check whether a double is a NaN.
+ */
+#$d_isnan HAS_ISNAN            /**/
+
+/* HAS_ISNANL:
+ *     This symbol, if defined, indicates that the isnanl routine is
+ *     available to check whether a long double is a NaN.
+ */
+#$d_isnanl HAS_ISNANL          /**/
+
+/* HAS_LCHOWN:
+ *     This symbol, if defined, indicates that the lchown routine is
+ *     available to operate on a symbolic link (instead of following the
+ *     link).
+ */
+#$d_lchown HAS_LCHOWN          /**/
+
 /* HAS_LDBL_DIG:
  *     This symbol, if defined, indicates that this system's <float.h>
  *     or <limits.h> defines the symbol LDBL_DIG, which is the number
@@ -2224,6 +2250,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #define        Gid_t_f         $gidformat              /**/
 
+/* Gid_t_sign:
+ *     This symbol holds the signedess of a Gid_t.
+ *     1 for unsigned, -1 for signed.
+ */
+#define Gid_t_sign     $gidsign                /* GID sign */
+
 /* Gid_t_size:
  *     This symbol holds the size of a Gid_t in bytes.
  */
@@ -2233,19 +2265,19 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  *     This symbol holds the return type of getgid() and the type of
  *     argument to setrgid() and related functions.  Typically,
  *     it is the type of group ids in the kernel. It can be int, ushort,
- *     uid_t, etc... It may be necessary to include <sys/types.h> to get
+ *     gid_t, etc... It may be necessary to include <sys/types.h> to get
  *     any typedef'ed information.
  */
 #define Gid_t $gidtype         /* Type for getgid(), etc... */
 
 /* Groups_t:
  *     This symbol holds the type used for the second argument to
- *     getgroups() and setgropus().  Usually, this is the same as
+ *     getgroups() and setgroups().  Usually, this is the same as
  *     gidtype (gid_t) , but sometimes it isn't.
- *     It can be int, ushort, uid_t, etc... 
+ *     It can be int, ushort, gid_t, etc... 
  *     It may be necessary to include <sys/types.h> to get any 
  *     typedef'ed information.  This is only required if you have
- *     getgroups() or setgropus()..
+ *     getgroups() or setgroups()..
  */
 #if defined(HAS_GETGROUPS) || defined(HAS_SETGROUPS)
 #define Groups_t $groupstype   /* Type for 2nd arg to [sg]etgroups() */
@@ -2574,6 +2606,16 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #define Netdb_name_t           $netdb_name_type /**/
 #define Netdb_net_t            $netdb_net_type /**/
 
+/* PERL_OTHERLIBDIRS:
+ *     This variable contains a colon-separated set of paths for the perl
+ *     binary to search for additional library files or modules.
+ *     These directories will be tacked to the end of @INC.
+ *     Perl will automatically search below each path for version-
+ *     and architecture-specific directories.  See PERL_INC_VERSION_LIST
+ *     for more details.
+ */
+#$d_perl_otherlibdirs PERL_OTHERLIBDIRS "$otherlibdirs"                /**/
+
 /* IVTYPE:
  *     This symbol defines the C type used for Perl's IV.
  */
@@ -2637,6 +2679,9 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 /* U64SIZE:
  *     This symbol contains the sizeof(U64).
  */
+/* NVSIZE:
+ *     This symbol contains the sizeof(NV).
+ */
 /* NV_PRESERVES_UV:
  *     This symbol, if defined, indicates that a variable of type NVTYPE
  *     can preserve all the bit of a variable of type UVSIZE.
@@ -2666,6 +2711,7 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #define        I64SIZE         $i64size        /**/
 #define        U64SIZE         $u64size        /**/
 #endif
+#define        NVSIZE          $nvsize         /**/
 #$d_nv_preserves_uv    NV_PRESERVES_UV
 
 /* IVdf:
@@ -2832,6 +2878,11 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #define SITELIB_EXP "$sitelibexp"              /**/
 #define SITELIB_STEM "$sitelib_stem"           /**/
 
+/* Size_t_size:
+ *     This symbol holds the size of a Size_t in bytes.
+ */
+#define Size_t_size $sizesize          /* */
+
 /* Size_t:
  *     This symbol holds the type used to declare length parameters
  *     for string functions.  It is usually size_t, but may be
@@ -2879,6 +2930,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #define        Uid_t_f         $uidformat              /**/
 
+/* Uid_t_sign:
+ *     This symbol holds the signedess of a Uid_t.
+ *     1 for unsigned, -1 for signed.
+ */
+#define Uid_t_sign     $uidsign                /* UID sign */
+
 /* Uid_t_size:
  *     This symbol holds the size of a Uid_t in bytes.
  */
@@ -3075,12 +3132,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #define PERL_XS_APIVERSION "$xs_apiversion"
 #define PERL_PM_APIVERSION "$pm_apiversion"
 
-/* HAS_LCHOWN:
- *     This symbol, if defined, indicates that the lchown routine is
- *     available to operate on a symbolic link (instead of following the
- *     link).
+/* HAS_MODFL:
+ *     This symbol, if defined, indicates that the modfl routine is
+ *     available to split a long double x into a fractional part f and
+ *     an integer part i such that |f| < 1.0 and (f + i) = x.
  */
-#$d_lchown HAS_LCHOWN          /**/
+#$d_modfl HAS_MODFL            /**/
 
 #endif
 !GROK!THIS!
index 19d0d71..c64af8a 100755 (executable)
--- a/configpm
+++ b/configpm
@@ -38,6 +38,9 @@ sub import {
 }
 
 ENDOFBEG_NOQ
+die "Perl lib version ($myver) doesn't match executable version (\$])"
+    unless \$^V;
+
 \$^V eq $myver
   or die "Perl lib version ($myver) doesn't match executable version (" .
     (sprintf "v%vd",\$^V) . ")";
index f21ce8c..003a047 100644 (file)
@@ -1941,7 +1941,10 @@ $ echo "default file types, however, you can configure Perl to try default"
 $ echo "file types of nothing, .pl, and .com, in that order (e.g. typing"
 $ echo """$ perl foo"" would cause Perl to look for foo., then foo.pl, and"
 $ echo "finally foo.com)."
-$ dflt = "y"
+$ echo ""
+$ echo "This is currently broken in some configurations. Only enable it if
+$ echo "you know what you're doing. "
+$ dflt = "N"
 $ rp = "Always use default file types? [''dflt'] "
 $ GOSUB myread
 $ if ans.eqs."" then ans="''dflt'"
diff --git a/cop.h b/cop.h
index 5dd937e..e588675 100644 (file)
--- a/cop.h
+++ b/cop.h
@@ -181,6 +181,7 @@ struct block_loop {
     OP *       last_op;
 #ifdef USE_ITHREADS
     void *     iterdata;
+    SV **      oldcurpad;
 #else
     SV **      itervar;
 #endif
@@ -195,10 +196,11 @@ struct block_loop {
 #  define CxITERVAR(c)                                                 \
        ((c)->blk_loop.iterdata                                         \
         ? (CxPADLOOP(cx)                                               \
-           ? &PL_curpad[(PADOFFSET)(c)->blk_loop.iterdata]             \
+           ? &((c)->blk_loop.oldcurpad)[(PADOFFSET)(c)->blk_loop.iterdata]     \
            : &GvSV((GV*)(c)->blk_loop.iterdata))                       \
         : (SV**)NULL)
 #  define CX_ITERDATA_SET(cx,idata)                                    \
+       cx->blk_loop.oldcurpad = PL_curpad;                             \
        if ((cx->blk_loop.iterdata = (idata)))                          \
            cx->blk_loop.itersave = SvREFCNT_inc(*CxITERVAR(cx));
 #else
index df15826..ca083d4 100644 (file)
@@ -159,9 +159,6 @@ esac
 #
 $spitshell >>Makefile <<'!NO!SUBS!'
 
-opmini$(OBJ_EXT) : op.c
-       $(CCCMD) $(PLDLFLAGS) -DPERL_EXTERNAL_GLOB -o opmini$(OBJ_EXT) op.c
-
 perl: $& perlmain$(OBJ_EXT) $(LIBPERL)$(LIB_EXT) $(DYNALOADER) $(static_ext) ext.libs
        $(SHRPENV) $(LDLIBPTH) $(CC) $(LARGE) $(CLDFLAGS) $(CCDLFLAGS) -o perl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
 
index bece81b..db1c426 100644 (file)
@@ -8,7 +8,134 @@
 #include "XSUB.h"
 
 #include <unistd.h>
+#include <process.h>
 
+/*
+ * pp_system() implemented via spawn()
+ * - more efficient and useful when embedding Perl in non-Cygwin apps
+ * - code mostly borrowed from djgpp.c
+ */
+static int
+do_spawnvp (const char *path, const char * const *argv)
+{
+    dTHXo;
+    Sigsave_t ihand,qhand;
+    int childpid, result, status;
+
+    rsignal_save(SIGINT, SIG_IGN, &ihand);
+    rsignal_save(SIGQUIT, SIG_IGN, &qhand);
+    childpid = spawnvp(_P_NOWAIT,path,argv);
+    if (childpid < 0) {
+       status = -1;
+       if(ckWARN(WARN_EXEC)) {
+           dTHR;
+           Perl_warner(aTHX_ WARN_EXEC,"Can't spawn \"%s\": %s",
+                   path,Strerror (errno));
+       }
+    } else {
+       do {
+           result = wait4pid(childpid, &status, 0);
+       } while (result == -1 && errno == EINTR);
+       if(result < 0)
+           status = -1;
+    }
+    (void)rsignal_restore(SIGINT, &ihand);
+    (void)rsignal_restore(SIGQUIT, &qhand);
+    return status;
+}
+
+int
+do_aspawn (SV *really, void **mark, void **sp)
+{
+    dTHXo;
+    int  rc;
+    char **a,*tmps,**argv; 
+    STRLEN n_a; 
+
+    if (sp<=mark)
+        return -1;
+    a=argv=(char**) alloca ((sp-mark+3)*sizeof (char*));
+
+    while (++mark <= sp)
+        if (*mark)
+            *a++ = SvPVx(*mark, n_a);
+        else
+            *a++ = "";
+    *a = Nullch;
+
+    if (argv[0][0] != '/' && argv[0][0] != '\\'
+        && !(argv[0][0] && argv[0][1] == ':'
+        && (argv[0][2] == '/' || argv[0][2] != '\\'))
+     ) /* will swawnvp use PATH? */
+         TAINT_ENV();  /* testing IFS here is overkill, probably */
+
+    if (really && *(tmps = SvPV(really, n_a)))
+        rc=do_spawnvp (tmps,(const char * const *)argv);
+    else
+        rc=do_spawnvp (argv[0],(const char *const *)argv);
+
+    return rc;
+}
+
+int
+do_spawn (char *cmd)
+{
+    dTHXo;
+    char **a,*s,*metachars = "$&*(){}[]'\";\\?>|<~`\n";
+    const char *command[4];
+
+    while (*cmd && isSPACE(*cmd))
+       cmd++;
+
+    if (strnEQ (cmd,"/bin/sh",7) && isSPACE (cmd[7]))
+        cmd+=5;
+
+    /* save an extra exec if possible */
+    /* see if there are shell metacharacters in it */
+    if (strstr (cmd,"..."))
+       goto doshell;
+    if (*cmd=='.' && isSPACE (cmd[1]))
+       goto doshell;
+    if (strnEQ (cmd,"exec",4) && isSPACE (cmd[4]))
+       goto doshell;
+    for (s=cmd; *s && isALPHA (*s); s++) ;     /* catch VAR=val gizmo */
+       if (*s=='=')
+           goto doshell;
+
+    for (s=cmd; *s; s++)
+       if (strchr (metachars,*s))
+       {
+           if (*s=='\n' && s[1]=='\0')
+           {
+               *s='\0';
+               break;
+           }
+       doshell:
+           command[0] = "sh";
+           command[1] = "-c";
+           command[2] = cmd;
+           command[3] = NULL;
+
+           return do_spawnvp("sh",command);
+       }
+
+    New (1303,PL_Argv,(s-cmd)/2+2,char*);
+    PL_Cmd=savepvn (cmd,s-cmd);
+    a=PL_Argv;
+    for (s=PL_Cmd; *s;) {
+       while (*s && isSPACE (*s)) s++;
+       if (*s)
+           *(a++)=s;
+       while (*s && !isSPACE (*s)) s++;
+       if (*s)
+           *s++='\0';
+    }
+    *a=Nullch;
+    if (!PL_Argv[0])
+        return -1;
+
+    return do_spawnvp(PL_Argv[0],(const char * const *)PL_Argv);
+}
 
 /* see also Cwd.pm */
 static
@@ -19,7 +146,7 @@ XS(Cygwin_cwd)
 
     if(items != 0)
        Perl_croak(aTHX_ "Usage: Cwd::cwd()");
-    if(cwd = getcwd(NULL, 0)) {
+    if((cwd = getcwd(NULL, 0))) {
        ST(0) = sv_2mortal(newSVpv(cwd, 0));
        safesysfree(cwd);
        XSRETURN(1);
diff --git a/doio.c b/doio.c
index e22902f..0121633 100644 (file)
--- a/doio.c
+++ b/doio.c
@@ -1926,6 +1926,10 @@ Perl_do_msgrcv(pTHX_ SV **mark, SV **sp)
     if (ret >= 0) {
        SvCUR_set(mstr, sizeof(long)+ret);
        *SvEND(mstr) = '\0';
+#ifndef INCOMPLETE_TAINTS
+       /* who knows who has been playing with this message? */
+       SvTAINTED_on(mstr);
+#endif
     }
     return ret;
 #else
@@ -1994,6 +1998,10 @@ Perl_do_shmio(pTHX_ I32 optype, SV **mark, SV **sp)
        SvCUR_set(mstr, msize);
        *SvEND(mstr) = '\0';
        SvSETMAGIC(mstr);
+#ifndef INCOMPLETE_TAINTS
+       /* who knows who has been playing with this shared memory? */
+       SvTAINTED_on(mstr);
+#endif
     }
     else {
        I32 n;
diff --git a/doop.c b/doop.c
index 06b1b38..4224b0e 100644 (file)
--- a/doop.c
+++ b/doop.c
@@ -660,12 +660,9 @@ Perl_do_join(pTHX_ register SV *sv, SV *del, register SV **mark, register SV **s
     if (items-- > 0) {
        char *s;
 
-       if (*mark) {
-           s = SvPV(*mark, tmplen);
-           sv_setpvn(sv, s, tmplen);
-       }
-       else
-           sv_setpv(sv, "");
+       sv_setpv(sv, "");
+       if (*mark)
+           sv_catsv(sv, *mark);
        mark++;
     }
     else
index 371d420..f7d7a53 100644 (file)
@@ -4503,7 +4503,7 @@ the sections using `cperl-pod-head-face', `cperl-pod-face',
              (if (eq (char-syntax (preceding-char)) ?w) ; else {}
                  (save-excursion
                    (forward-sexp -1)
-                   (or (looking-at "\\(else\\|grep\\|map\\|BEGIN\\|END\\)\\>")
+                   (or (looking-at "\\(else\\|grep\\|map\\|BEGIN\\|END\\|CHECK\\|INIT\\)\\>")
                        ;; sub f {}
                        (progn
                          (cperl-backward-to-noncomment lim)
@@ -5242,7 +5242,8 @@ indentation and initial hashes.  Behaves usually outside of comment."
               '("if" "until" "while" "elsif" "else" "unless" "for"
                 "foreach" "continue" "exit" "die" "last" "goto" "next"
                 "redo" "return" "local" "exec" "sub" "do" "dump" "use"
-                "require" "package" "eval" "my" "BEGIN" "END")
+                "require" "package" "eval" "my" "our"
+                "BEGIN" "END" "CHECK" "INIT")
               "\\|")                   ; Flow control
              "\\)\\>") 2)              ; was "\\)[ \n\t;():,\|&]"
                                        ; In what follows we use `type' style
@@ -5321,19 +5322,19 @@ indentation and initial hashes.  Behaves usually outside of comment."
            (list
             (concat
              "\\(^\\|[^$@%&\\]\\)\\<\\("
-             ;; "AUTOLOAD" "BEGIN" "DESTROY" "END" "__END__" "chomp"
+             ;; "AUTOLOAD" "BEGIN" "CHECK" "DESTROY" "END" "__END__" "INIT" "chomp"
              ;; "chop" "defined" "delete" "do" "each" "else" "elsif"
              ;; "eval" "exists" "for" "foreach" "format" "goto"
              ;; "grep" "if" "keys" "last" "local" "map" "my" "next"
-             ;; "no" "package" "pop" "pos" "print" "printf" "push"
+             ;; "no" "our" "package" "pop" "pos" "print" "printf" "push"
              ;; "q" "qq" "qw" "qx" "redo" "return" "scalar" "shift"
              ;; "sort" "splice" "split" "study" "sub" "tie" "tr"
              ;; "undef" "unless" "unshift" "untie" "until" "use"
              ;; "while" "y"
-             "AUTOLOAD\\|BEGIN\\|cho\\(p\\|mp\\)\\|d\\(e\\(fined\\|lete\\)\\|"
+             "AUTOLOAD\\|BEGIN\\|CHECK\\|cho\\(p\\|mp\\)\\|d\\(e\\(fined\\|lete\\)\\|"
              "o\\)\\|DESTROY\\|e\\(ach\\|val\\|xists\\|ls\\(e\\|if\\)\\)\\|"
-             "END\\|for\\(\\|each\\|mat\\)\\|g\\(rep\\|oto\\)\\|if\\|keys\\|"
-             "l\\(ast\\|ocal\\)\\|m\\(ap\\|y\\)\\|n\\(ext\\|o\\)\\|"
+             "END\\|for\\(\\|each\\|mat\\)\\|g\\(rep\\|oto\\)\\|if\\|INIT\\|keys\\|"
+             "l\\(ast\\|ocal\\)\\|m\\(ap\\|y\\)\\|n\\(ext\\|o\\)\\|our|"
              "p\\(ackage\\|rint\\(\\|f\\)\\|ush\\|o\\(p\\|s\\)\\)\\|"
              "q\\(\\|q\\|w\\|x\\|r\\)\\|re\\(turn\\|do\\)\\|s\\(pli\\(ce\\|t\\)\\|"
              "calar\\|tudy\\|ub\\|hift\\|ort\\)\\|t\\(r\\|ie\\)\\|"
@@ -5372,7 +5373,7 @@ indentation and initial hashes.  Behaves usually outside of comment."
            '("\\<\\(continue\\|next\\|last\\|redo\\|goto\\)\\>[ \t]+\\([a-zA-Z0-9_:]+\\)" ; labels as targets
              2 font-lock-constant-face)
            (cond ((featurep 'font-lock-extra)
-                  '("^[ \t]*\\(my\\|local\\)[ \t]*\\(([ \t]*\\)?\\([$@%*][a-zA-Z0-9_:]+\\)\\([ \t]*,\\)?"
+                  '("^[ \t]*\\(my\\|local\\|our\\)[ \t]*\\(([ \t]*\\)?\\([$@%*][a-zA-Z0-9_:]+\\)\\([ \t]*,\\)?"
                     (3 font-lock-variable-name-face)
                     (4 '(another 4 nil
                                  ("\\=[ \t]*,[ \t]*\\([$@%*][a-zA-Z0-9_:]+\\)\\([ \t]*,\\)?"
@@ -5380,12 +5381,12 @@ indentation and initial hashes.  Behaves usually outside of comment."
                                   (2 '(restart 2 nil) nil t))) 
                        nil t)))        ; local variables, multiple
                  (font-lock-anchored
-                  '("^[ \t{}]*\\(my\\|local\\)[ \t]*\\(([ \t]*\\)?\\([$@%*][a-zA-Z0-9_:]+\\)"
+                  '("^[ \t{}]*\\(my\\|local\\|our\\)[ \t]*\\(([ \t]*\\)?\\([$@%*][a-zA-Z0-9_:]+\\)"
                     (3 font-lock-variable-name-face)
                     ("\\=[ \t]*,[ \t]*\\([$@%*][a-zA-Z0-9_:]+\\)"
                      nil nil
                      (1 font-lock-variable-name-face))))
-                 (t '("^[ \t{}]*\\(my\\|local\\)[ \t]*\\(([ \t]*\\)?\\([$@%*][a-zA-Z0-9_:]+\\)"
+                 (t '("^[ \t{}]*\\(my\\|local\\|our\\)[ \t]*\\(([ \t]*\\)?\\([$@%*][a-zA-Z0-9_:]+\\)"
                       3 font-lock-variable-name-face)))
            '("\\<for\\(each\\)?[ \t]*\\(\\$[a-zA-Z_][a-zA-Z_0-9]*\\)[ \t]*("
              2 font-lock-variable-name-face)))
diff --git a/embed.h b/embed.h
index b597558..b19115f 100644 (file)
--- a/embed.h
+++ b/embed.h
@@ -9,6 +9,9 @@
 
 /* provide binary compatible (but inconsistent) names */
 #if defined(PERL_BINCOMPAT_5005)
+#  define  Perl_call_atexit            perl_atexit
+#  define  Perl_eval_sv                        perl_eval_sv
+#  define  Perl_eval_pv                        perl_eval_pv
 #  define  Perl_call_argv              perl_call_argv
 #  define  Perl_call_method            perl_call_method
 #  define  Perl_call_pv                        perl_call_pv
 #define to_uni_upper_lc                Perl_to_uni_upper_lc
 #define to_uni_title_lc                Perl_to_uni_title_lc
 #define to_uni_lower_lc                Perl_to_uni_lower_lc
+#define is_utf8_char           Perl_is_utf8_char
 #define is_utf8_alnum          Perl_is_utf8_alnum
 #define is_utf8_alnumc         Perl_is_utf8_alnumc
 #define is_utf8_idfirst                Perl_is_utf8_idfirst
 #define newSVREF               Perl_newSVREF
 #define newSVOP                        Perl_newSVOP
 #define newSViv                        Perl_newSViv
+#define newSVuv                        Perl_newSVuv
 #define newSVnv                        Perl_newSVnv
 #define newSVpv                        Perl_newSVpv
 #define newSVpvn               Perl_newSVpvn
 #define ptr_table_store                Perl_ptr_table_store
 #define ptr_table_split                Perl_ptr_table_split
 #endif
+#if defined(HAVE_INTERP_INTERN)
+#define sys_intern_init                Perl_sys_intern_init
+#endif
 #if defined(PERL_OBJECT)
 #else
 #endif
 #define ck_eval                        Perl_ck_eval
 #define ck_exec                        Perl_ck_exec
 #define ck_exists              Perl_ck_exists
+#define ck_exit                        Perl_ck_exit
 #define ck_ftst                        Perl_ck_ftst
 #define ck_fun                 Perl_ck_fun
 #define ck_fun_locale          Perl_ck_fun_locale
 #define to_uni_upper_lc(a)     Perl_to_uni_upper_lc(aTHX_ a)
 #define to_uni_title_lc(a)     Perl_to_uni_title_lc(aTHX_ a)
 #define to_uni_lower_lc(a)     Perl_to_uni_lower_lc(aTHX_ a)
+#define is_utf8_char(a)                Perl_is_utf8_char(aTHX_ a)
 #define is_utf8_alnum(a)       Perl_is_utf8_alnum(aTHX_ a)
 #define is_utf8_alnumc(a)      Perl_is_utf8_alnumc(aTHX_ a)
 #define is_utf8_idfirst(a)     Perl_is_utf8_idfirst(aTHX_ a)
 #define newSVREF(a)            Perl_newSVREF(aTHX_ a)
 #define newSVOP(a,b,c)         Perl_newSVOP(aTHX_ a,b,c)
 #define newSViv(a)             Perl_newSViv(aTHX_ a)
+#define newSVuv(a)             Perl_newSVuv(aTHX_ a)
 #define newSVnv(a)             Perl_newSVnv(aTHX_ a)
 #define newSVpv(a,b)           Perl_newSVpv(aTHX_ a,b)
 #define newSVpvn(a,b)          Perl_newSVpvn(aTHX_ a,b)
 #define ptr_table_store(a,b,c) Perl_ptr_table_store(aTHX_ a,b,c)
 #define ptr_table_split(a)     Perl_ptr_table_split(aTHX_ a)
 #endif
+#if defined(HAVE_INTERP_INTERN)
+#define sys_intern_init()      Perl_sys_intern_init(aTHX)
+#endif
 #if defined(PERL_OBJECT)
 #else
 #endif
 #define ck_eval(a)             Perl_ck_eval(aTHX_ a)
 #define ck_exec(a)             Perl_ck_exec(aTHX_ a)
 #define ck_exists(a)           Perl_ck_exists(aTHX_ a)
+#define ck_exit(a)             Perl_ck_exit(aTHX_ a)
 #define ck_ftst(a)             Perl_ck_ftst(aTHX_ a)
 #define ck_fun(a)              Perl_ck_fun(aTHX_ a)
 #define ck_fun_locale(a)       Perl_ck_fun_locale(aTHX_ a)
 #define to_uni_title_lc                Perl_to_uni_title_lc
 #define Perl_to_uni_lower_lc   CPerlObj::Perl_to_uni_lower_lc
 #define to_uni_lower_lc                Perl_to_uni_lower_lc
+#define Perl_is_utf8_char      CPerlObj::Perl_is_utf8_char
+#define is_utf8_char           Perl_is_utf8_char
 #define Perl_is_utf8_alnum     CPerlObj::Perl_is_utf8_alnum
 #define is_utf8_alnum          Perl_is_utf8_alnum
 #define Perl_is_utf8_alnumc    CPerlObj::Perl_is_utf8_alnumc
 #define newSVOP                        Perl_newSVOP
 #define Perl_newSViv           CPerlObj::Perl_newSViv
 #define newSViv                        Perl_newSViv
+#define Perl_newSVuv           CPerlObj::Perl_newSVuv
+#define newSVuv                        Perl_newSVuv
 #define Perl_newSVnv           CPerlObj::Perl_newSVnv
 #define newSVnv                        Perl_newSVnv
 #define Perl_newSVpv           CPerlObj::Perl_newSVpv
 #define Perl_ptr_table_split   CPerlObj::Perl_ptr_table_split
 #define ptr_table_split                Perl_ptr_table_split
 #endif
+#if defined(HAVE_INTERP_INTERN)
+#define Perl_sys_intern_init   CPerlObj::Perl_sys_intern_init
+#define sys_intern_init                Perl_sys_intern_init
+#endif
 #if defined(PERL_OBJECT)
 #else
 #endif
 #define ck_exec                        Perl_ck_exec
 #define Perl_ck_exists         CPerlObj::Perl_ck_exists
 #define ck_exists              Perl_ck_exists
+#define Perl_ck_exit           CPerlObj::Perl_ck_exit
+#define ck_exit                        Perl_ck_exit
 #define Perl_ck_ftst           CPerlObj::Perl_ck_ftst
 #define ck_ftst                        Perl_ck_ftst
 #define Perl_ck_fun            CPerlObj::Perl_ck_fun
index 8b6c887..bbea4dc 100755 (executable)
--- a/embed.pl
+++ b/embed.pl
@@ -291,6 +291,9 @@ print EM <<'END';
 
 /* provide binary compatible (but inconsistent) names */
 #if defined(PERL_BINCOMPAT_5005)
+#  define  Perl_call_atexit            perl_atexit
+#  define  Perl_eval_sv                        perl_eval_sv
+#  define  Perl_eval_pv                        perl_eval_pv
 #  define  Perl_call_argv              perl_call_argv
 #  define  Perl_call_method            perl_call_method
 #  define  Perl_call_pv                        perl_call_pv
@@ -685,7 +688,7 @@ print EM <<'END';
 
 #endif /* PERL_GLOBAL_STRUCT */
 
-#ifdef PERL_POLLUTE            /* disabled by default in 5.006 */
+#ifdef PERL_POLLUTE            /* disabled by default in 5.6.0 */
 
 END
 
@@ -867,6 +870,7 @@ print CAPIH <<'EOT';
 #endif /* __perlapi_h__ */
 
 EOT
+close CAPIH;
 
 print CAPI <<'EOT';
 /* !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!! 
@@ -1231,7 +1235,7 @@ perlintern - autogenerated documentation of purely B<internal>
 =head1 DESCRIPTION
 
 This file is the autogenerated documentation of functions in the 
-Perl intrepreter that are documented using Perl's internal documentation
+Perl interpreter that are documented using Perl's internal documentation
 format but are not marked as part of the Perl API. In other words, 
 B<they are not for use in extensions>!
 
@@ -1248,7 +1252,7 @@ print GUTS <<'END';
 
 =head1 AUTHORS
 
-The autodocumentation system was orignally added to the Perl core by 
+The autodocumentation system was originally added to the Perl core by 
 Benjamin Stuhl. Documentation is by whoever was kind enough to 
 document their functions.
 
@@ -1415,9 +1419,9 @@ Afnp      |int    |fprintf_nocontext|PerlIO* stream|const char* fmt|...
 #endif
 p      |void   |cv_ckproto     |CV* cv|GV* gv|char* p
 p      |CV*    |cv_clone       |CV* proto
-     |SV*    |cv_const_sv    |CV* cv
+Ap     |SV*    |cv_const_sv    |CV* cv
 p      |SV*    |op_const_sv    |OP* o|CV* cv
-     |void   |cv_undef       |CV* cv
+Ap     |void   |cv_undef       |CV* cv
 Ap     |void   |cx_dump        |PERL_CONTEXT* cs
 Ap     |SV*    |filter_add     |filter_t funcp|SV* datasv
 Ap     |void   |filter_del     |filter_t funcp
@@ -1443,9 +1447,9 @@ p |OP*    |die_where      |char* message|STRLEN msglen
 Ap     |void   |dounwind       |I32 cxix
 p      |bool   |do_aexec       |SV* really|SV** mark|SV** sp
 p      |bool   |do_aexec5      |SV* really|SV** mark|SV** sp|int fd|int flag
-Ap     |int    |do_binmode     |PerlIO *fp|int iotype|int flag
+Ap     |int    |do_binmode     |PerlIO *fp|int iotype|int mode
 p      |void   |do_chop        |SV* asv|SV* sv
-     |bool   |do_close       |GV* gv|bool not_implicit
+Ap     |bool   |do_close       |GV* gv|bool not_implicit
 p      |bool   |do_eof         |GV* gv
 p      |bool   |do_exec        |char* cmd
 #if !defined(WIN32)
@@ -1460,7 +1464,7 @@ p |I32    |do_msgsnd      |SV** mark|SV** sp
 p      |I32    |do_semop       |SV** mark|SV** sp
 p      |I32    |do_shmio       |I32 optype|SV** mark|SV** sp
 #endif
-     |void   |do_join        |SV* sv|SV* del|SV** mark|SV** sp
+Ap     |void   |do_join        |SV* sv|SV* del|SV** mark|SV** sp
 p      |OP*    |do_kv
 Ap     |bool   |do_open        |GV* gv|char* name|I32 len|int as_raw \
                                |int rawmode|int rawperm|PerlIO* supplied_fp
@@ -1597,6 +1601,7 @@ Ap        |bool   |is_uni_xdigit_lc|U32 c
 Ap     |U32    |to_uni_upper_lc|U32 c
 Ap     |U32    |to_uni_title_lc|U32 c
 Ap     |U32    |to_uni_lower_lc|U32 c
+Ap     |int    |is_utf8_char   |U8 *p
 Ap     |bool   |is_utf8_alnum  |U8 *p
 Ap     |bool   |is_utf8_alnumc |U8 *p
 Ap     |bool   |is_utf8_idfirst|U8 *p
@@ -1765,6 +1770,7 @@ Ap        |SV*    |newSV          |STRLEN len
 Ap     |OP*    |newSVREF       |OP* o
 Ap     |OP*    |newSVOP        |I32 type|I32 flags|SV* sv
 Apd    |SV*    |newSViv        |IV i
+Apd    |SV*    |newSVuv        |UV u
 Apd    |SV*    |newSVnv        |NV n
 Apd    |SV*    |newSVpv        |const char* s|STRLEN len
 Apd    |SV*    |newSVpvn       |const char* s|STRLEN len
@@ -1854,7 +1860,7 @@ p |void   |regprop        |SV* sv|regnode* o
 Ap     |void   |repeatcpy      |char* to|const char* from|I32 len|I32 count
 Ap     |char*  |rninstr        |const char* big|const char* bigend \
                                |const char* little|const char* lend
-     |Sighandler_t|rsignal   |int i|Sighandler_t t
+Ap     |Sighandler_t|rsignal   |int i|Sighandler_t t
 p      |int    |rsignal_restore|int i|Sigsave_t* t
 p      |int    |rsignal_save   |int i|Sighandler_t t1|Sigsave_t* t2
 p      |Sighandler_t|rsignal_state|int i
@@ -2049,7 +2055,7 @@ Ap        |void   |vwarn          |const char* pat|va_list* args
 Afp    |void   |warner         |U32 err|const char* pat|...
 Ap     |void   |vwarner        |U32 err|const char* pat|va_list* args
 p      |void   |watch          |char** addr
-     |I32    |whichsig       |char* sig
+Ap     |I32    |whichsig       |char* sig
 p      |int    |yyerror        |char* s
 #if defined(USE_PURE_BISON)
 p      |int    |yylex          |YYSTYPE *lvalp|int *lcharp
@@ -2155,6 +2161,9 @@ Ap        |void*  |ptr_table_fetch|PTR_TBL_t *tbl|void *sv
 Ap     |void   |ptr_table_store|PTR_TBL_t *tbl|void *oldsv|void *newsv
 Ap     |void   |ptr_table_split|PTR_TBL_t *tbl
 #endif
+#if defined(HAVE_INTERP_INTERN)
+Ap     |void   |sys_intern_init
+#endif
 
 #if defined(PERL_OBJECT)
 protected:
index f8387c5..889b4d4 100644 (file)
 #define PL_nomemok             (PERL_GET_INTERP->Inomemok)
 #define PL_nthreads            (PERL_GET_INTERP->Inthreads)
 #define PL_nthreads_cond       (PERL_GET_INTERP->Inthreads_cond)
+#define PL_nullstash           (PERL_GET_INTERP->Inullstash)
 #define PL_numeric_local       (PERL_GET_INTERP->Inumeric_local)
 #define PL_numeric_name                (PERL_GET_INTERP->Inumeric_name)
 #define PL_numeric_radix       (PERL_GET_INTERP->Inumeric_radix)
 #define PL_nomemok             (vTHX->Inomemok)
 #define PL_nthreads            (vTHX->Inthreads)
 #define PL_nthreads_cond       (vTHX->Inthreads_cond)
+#define PL_nullstash           (vTHX->Inullstash)
 #define PL_numeric_local       (vTHX->Inumeric_local)
 #define PL_numeric_name                (vTHX->Inumeric_name)
 #define PL_numeric_radix       (vTHX->Inumeric_radix)
 #define PL_nomemok             (aTHXo->interp.Inomemok)
 #define PL_nthreads            (aTHXo->interp.Inthreads)
 #define PL_nthreads_cond       (aTHXo->interp.Inthreads_cond)
+#define PL_nullstash           (aTHXo->interp.Inullstash)
 #define PL_numeric_local       (aTHXo->interp.Inumeric_local)
 #define PL_numeric_name                (aTHXo->interp.Inumeric_name)
 #define PL_numeric_radix       (aTHXo->interp.Inumeric_radix)
 #define PL_Inomemok            PL_nomemok
 #define PL_Inthreads           PL_nthreads
 #define PL_Inthreads_cond      PL_nthreads_cond
+#define PL_Inullstash          PL_nullstash
 #define PL_Inumeric_local      PL_numeric_local
 #define PL_Inumeric_name       PL_numeric_name
 #define PL_Inumeric_radix      PL_numeric_radix
 
 #endif /* PERL_GLOBAL_STRUCT */
 
-#ifdef PERL_POLLUTE            /* disabled by default in 5.006 */
+#ifdef PERL_POLLUTE            /* disabled by default in 5.6.0 */
 
 #define DBsingle               PL_DBsingle
 #define DBsub                  PL_DBsub
index a3051d4..714185a 100644 (file)
@@ -1,16 +1,15 @@
 #!/bin/sh
 #
-# This file was produced by running the Configure script. It holds all the
-# definitions figured out by Configure. Should you modify one of these values,
-# do not forget to propagate your changes by running "Configure -der". You may
-# instead choose to run each of the .SH files by yourself, or "Configure -S".
+# This file is manually maintained.
+#
+# It is NOT produced by running the Configure script.
 #
 
 # Package name      : perl5
 # Source directory  : .
-# Configuration time: Sun Oct  3 02:17:38 EET DST 1999
-# Configured by     : jhi
-# Target system     : osf1 alpha.hut.fi v4.0 878 alpha 
+# Configuration time: 
+# Configured by     : Olaf Flebbe
+# Target system     : EPOC
 
 Author=''
 Date='$Date'
@@ -34,8 +33,8 @@ apirevision=''
 apisubversion=''
 apiversion=''
 ar='arm-pe-ar'
-archlib='/perl/lib/5.5.670/epoc'
-archlibexp='/perl/lib/5.5.670/epoc'
+archlib='/perl/lib/5.6.1/epoc'
+archlibexp='/perl/lib/5.6.1/epoc'
 archname64=''
 archname='epoc'
 archobjs='epoc.o epocish.o epoc_stubs.o'
@@ -150,6 +149,7 @@ d_flock='undef'
 d_fork='undef'
 d_fpathconf='undef'
 d_fpos64_t='undef'
+d_frexpl='undef'
 d_fseeko='undef'
 d_fsetpos='define'
 d_fstatfs='define'
@@ -197,6 +197,8 @@ d_inetaton='define'
 d_int64t='undef'
 d_iovec_s='undef'
 d_isascii='define'
+d_isnan='define'
+d_isnanl='undef'
 d_killpg='undef'
 d_lchown='undef'
 d_ldbl_dig='undef'
@@ -221,6 +223,7 @@ d_mkdir='define'
 d_mkfifo='undef'
 d_mktime='define'
 d_mmap='undef'
+d_modfl='undef'
 d_mprotect='undef'
 d_msg='undef'
 d_msg_ctrunc='undef'
@@ -244,6 +247,7 @@ d_oldsock='undef'
 d_open3='define'
 d_pathconf='undef'
 d_pause='undef'
+d_perl_otherlibdirs='undef'
 d_phostname='undef'
 d_pipe='undef'
 d_poll='undef'
@@ -566,6 +570,7 @@ optimize='-fomit-frame-pointer -DNDEBUG -O'
 orderlib=''
 osname='epoc'
 osvers=''
+otherlibdirs=''
 package=''
 pager=''
 passcat=''
@@ -582,8 +587,8 @@ pmake=''
 pr=''
 prefix=''
 prefixexp=''
-privlib='/perl/lib/5.5.670'
-privlibexp='/perl/lib/5.5.670'
+privlib='/perl/lib/5.6.1'
+privlibexp='/perl/lib/5.6.1'
 prototype='define'
 ptrsize='4'
 randbits='31'
@@ -627,13 +632,14 @@ sig_name_init='"ZERO", 0'
 sig_num='0'
 sig_num_init='0, 0'
 signal_t='void'
-sitearch='/perl/lib/site_perl/5.5.670/epoc'
-sitearchexp='/perl/lib/site_perl/5.5.670/epoc'
-sitelib='/perl/lib/site_perl/5.5.670/'
+sitearch='/perl/lib/site_perl/5.6.1/epoc'
+sitearchexp='/perl/lib/site_perl/5.6.1/epoc'
+sitelib='/perl/lib/site_perl/5.6.1/'
 sitelib_stem='/perl/lib/site_perl'
-sitelibexp='/perl/lib/site_perl/5.5.670/'
+sitelibexp='/perl/lib/site_perl/5.6.1/'
 siteprefix=''
 siteprefixexp=''
+sizesize='4'
 sizetype='size_t'
 sleep=''
 smail=''
@@ -702,7 +708,7 @@ vendorlib_stem=''
 vendorlibexp=''
 vendorprefix=''
 vendorprefixexp=''
-version='5.5.670'
+version='5.6.1'
 vi=''
 voidflags='15'
 xlibpth=''
@@ -724,11 +730,11 @@ config_arg9=''
 config_arg10=''
 config_arg11=''
 PERL_REVISION=5
-PERL_VERSION=5
-PERL_SUBVERSION=670
+PERL_VERSION=6
+PERL_SUBVERSION=1
 PERL_API_REVISION=5
-PERL_API_VERSION=5
-PERL_API_SUBVERSION=670
+PERL_API_VERSION=6
+PERL_API_SUBVERSION=0
 CONFIGDOTSH=true
 # Variables propagated from previous config.sh file.
 pp_sys_cflags=''
@@ -770,7 +776,9 @@ i_sysstatfs='undef'
 i_sysvfs='undef'
 i_ustat='undef'
 uidsize='2'
+uidsign='1'
 gidsize='2'
+gidsign='1'
 ivdformat='"ld"'
 uvuformat='"lu"'
 uvoformat='"lo"'
index b914bc6..fe7fc52 100644 (file)
@@ -169,7 +169,9 @@ B::Bblock - Walk basic blocks
 
 =head1 DESCRIPTION
 
-See F<ext/B/README>.
+This module is used by the B::CC back end.  It walks "basic blocks".
+A basic block is a series of operations which is known to execute from
+start to finish, with no possiblity of branching or halting.
 
 =head1 AUTHOR
 
index 27003b6..941a818 100644 (file)
@@ -654,8 +654,8 @@ sub bytecompile_main {
     warn "done main program, now walking symbol table\n" if $debug_bc;
     my ($pack, %exclude);
     foreach $pack (qw(B O AutoLoader DynaLoader XSLoader Config DB VMS strict vars
-                     FileHandle Exporter Carp UNIVERSAL IO Fcntl Symbol
-                     SelectSaver blib Cwd))
+                     FileHandle Exporter Carp UNIVERSAL IO Fcntl Symbol warnings
+                     attributes File::Spec SelectSaver blib Cwd))
     {
        $exclude{$pack."::"} = 1;
     }
index cd53c11..b6e1097 100644 (file)
@@ -1,5 +1,5 @@
 # B::Deparse.pm
-# Copyright (c) 1998, 1999 Stephen McCamant. All rights reserved.
+# Copyright (c) 1998, 1999, 2000 Stephen McCamant. All rights reserved.
 # This module is free software; you can redistribute and/or modify
 # it under the same terms as Perl itself.
 
@@ -8,7 +8,6 @@
 
 package B::Deparse;
 use Carp 'cluck', 'croak';
-use Config;
 use B qw(class main_root main_start main_cv svref_2object opnumber
         OPf_WANT OPf_WANT_VOID OPf_WANT_SCALAR OPf_WANT_LIST
         OPf_KIDS OPf_REF OPf_STACKED OPf_SPECIAL
@@ -17,7 +16,7 @@ use B qw(class main_root main_start main_cv svref_2object opnumber
         SVf_IOK SVf_NOK SVf_ROK SVf_POK
         PMf_KEEP PMf_GLOBAL PMf_CONTINUE PMf_EVAL PMf_ONCE
         PMf_MULTILINE PMf_SINGLELINE PMf_FOLD PMf_EXTENDED);
-$VERSION = 0.59;
+$VERSION = 0.591;
 use strict;
 
 # Changes between 0.50 and 0.51:
@@ -252,17 +251,17 @@ sub walk_sub {
     walk_tree($op, sub {
        my $op = shift;
        if ($op->name eq "gv") {
-           my $gv = $self->maybe_padgv($op);
+           my $gv = $self->gv_or_padgv($op);
            if ($op->next->name eq "entersub") {
-               next if $self->{'subs_done'}{$$gv}++;
-               next if class($gv->CV) eq "SPECIAL";
+               return if $self->{'subs_done'}{$$gv}++;
+               return if class($gv->CV) eq "SPECIAL";
                $self->todo($gv, $gv->CV, 0);
                $self->walk_sub($gv->CV);
            } elsif ($op->next->name eq "enterwrite"
                     or ($op->next->name eq "rv2gv"
                         and $op->next->next->name eq "enterwrite")) {
-               next if $self->{'forms_done'}{$$gv}++;
-               next if class($gv->FORM) eq "SPECIAL";
+               return if $self->{'forms_done'}{$$gv}++;
+               return if class($gv->FORM) eq "SPECIAL";
                $self->todo($gv, $gv->FORM, 1);
                $self->walk_sub($gv->FORM);
            }
@@ -378,7 +377,7 @@ sub compile {
        while (scalar(@{$self->{'subs_todo'}})) {
            push @text, $self->next_todo;
        }
-       print indent(join("", @text)), "\n" if @text;
+       print $self->indent(join("", @text)), "\n" if @text;
     }
 }
 
@@ -1653,6 +1652,13 @@ sub pp_list {
     }
 }
 
+sub is_ifelse_cont {
+    my $op = shift;
+    return ($op->name eq "null" and class($op) eq "UNOP"
+           and $op->first->name =~ /^(and|cond_expr)$/
+           and is_scope($op->first->first->sibling));
+}
+
 sub pp_cond_expr {
     my $self = shift;
     my($op, $cx) = @_;
@@ -1660,36 +1666,34 @@ sub pp_cond_expr {
     my $true = $cond->sibling;
     my $false = $true->sibling;
     my $cuddle = $self->{'cuddle'};
-    unless ($cx == 0 and is_scope($true) and is_scope($false)) {
+    unless ($cx == 0 and (is_scope($true) and $true->name ne "null") and
+           (is_scope($false) || is_ifelse_cont($false))) {
        $cond = $self->deparse($cond, 8);
        $true = $self->deparse($true, 8);
        $false = $self->deparse($false, 8);
        return $self->maybe_parens("$cond ? $true : $false", $cx, 8);
-    } 
+    }
+
     $cond = $self->deparse($cond, 1);
     $true = $self->deparse($true, 0);    
-    if ($false->name eq "lineseq") { # braces w/o scope => elsif
-       my $head = "if ($cond) {\n\t$true\n\b}";
-       my @elsifs;
-       while (!null($false) and $false->name eq "lineseq") {
-           my $newop = $false->first->sibling->first;
-           my $newcond = $newop->first;
-           my $newtrue = $newcond->sibling;
-           $false = $newtrue->sibling; # last in chain is OP_AND => no else
-           $newcond = $self->deparse($newcond, 1);
-           $newtrue = $self->deparse($newtrue, 0);
-           push @elsifs, "elsif ($newcond) {\n\t$newtrue\n\b}";
-       }
-       if (!null($false)) {        
-           $false = $cuddle . "else {\n\t" .
-             $self->deparse($false, 0) . "\n\b}\cK";
-       } else {
-           $false = "\cK";
-       }
-       return $head . join($cuddle, "", @elsifs) . $false; 
+    my $head = "if ($cond) {\n\t$true\n\b}";
+    my @elsifs;
+    while (!null($false) and is_ifelse_cont($false)) {
+       my $newop = $false->first;
+       my $newcond = $newop->first;
+       my $newtrue = $newcond->sibling;
+       $false = $newtrue->sibling; # last in chain is OP_AND => no else
+       $newcond = $self->deparse($newcond, 1);
+       $newtrue = $self->deparse($newtrue, 0);
+       push @elsifs, "elsif ($newcond) {\n\t$newtrue\n\b}";
+    }
+    if (!null($false)) {           
+       $false = $cuddle . "else {\n\t" .
+         $self->deparse($false, 0) . "\n\b}\cK";
+    } else {
+       $false = "\cK";
     }
-    $false = $self->deparse($false, 0);
-    return "if ($cond) {\n\t$true\n\b}${cuddle}else {\n\t$false\n\b}\cK";
+    return $head . join($cuddle, "", @elsifs) . $false; 
 }
 
 sub pp_leaveloop {
@@ -1780,7 +1784,7 @@ sub pp_leaveloop {
           if (is_state $state) {
               $expr = $self->deparse($state, 0);
               $state = $state->sibling;
-              last if null $kid;
+              last if null $state;
           }
           $expr .= $self->deparse($state, 0);
           push @exprs, $expr if $expr;
@@ -1814,7 +1818,7 @@ sub pp_null {
     } elsif ($op->first->name eq "enter") {
        return $self->pp_leave($op, $cx);
     } elsif ($op->targ == OP_STRINGIFY) {
-       return $self->dquote($op);
+       return $self->dquote($op, $cx);
     } elsif (!null($op->first->sibling) and
             $op->first->sibling->name eq "readline" and
             $op->first->sibling->flags & OPf_STACKED) {
@@ -1879,37 +1883,34 @@ sub pp_threadsv {
     return $self->maybe_local($op, $cx, "\$" .  $threadsv_names[$op->targ]);
 }    
 
-sub maybe_padgv {
+sub gv_or_padgv {
     my $self = shift;
     my $op = shift;
-    my $gv;
-    if ($Config{useithreads}) {
-       $gv = $self->padval($op->padix);
-    }
-    else {
-       $gv = $op->gv;
+    if (class($op) eq "PADOP") {
+       return $self->padval($op->padix);
+    } else { # class($op) eq "SVOP"
+       return $op->gv;
     }
-    return $gv;
 }
 
 sub pp_gvsv {
     my $self = shift;
     my($op, $cx) = @_;
-    my $gv = $self->maybe_padgv($op);
+    my $gv = $self->gv_or_padgv($op);
     return $self->maybe_local($op, $cx, "\$" . $self->gv_name($gv));
 }
 
 sub pp_gv {
     my $self = shift;
     my($op, $cx) = @_;
-    my $gv = $self->maybe_padgv($op);
+    my $gv = $self->gv_or_padgv($op);
     return $self->gv_name($gv);
 }
 
 sub pp_aelemfast {
     my $self = shift;
     my($op, $cx) = @_;
-    my $gv = $self->maybe_padgv($op);
+    my $gv = $self->gv_or_padgv($op);
     return "\$" . $self->gv_name($gv) . "[" . $op->private . "]";
 }
 
@@ -2220,7 +2221,7 @@ sub pp_entersub {
        $amper = "&";
        $kid = "{" . $self->deparse($kid, 0) . "}";
     } elsif ($kid->first->name eq "gv") {
-       my $gv = $self->maybe_padgv($kid->first);
+       my $gv = $self->gv_or_padgv($kid->first);
        if (class($gv->CV) ne "SPECIAL") {
            $proto = $gv->CV->PV if $gv->CV->FLAGS & SVf_POK;
        }
@@ -2252,9 +2253,9 @@ sub pp_entersub {
     } else {
        if (defined $proto and $proto eq "") {
            return $kid;
-       } elsif ($proto eq "\$") {
+       } elsif (defined $proto and $proto eq "\$") {
            return $self->maybe_parens_func($kid, $args, $cx, 16);
-       } elsif ($proto or $simple) {
+       } elsif (defined($proto) && $proto or $simple) {
            return $self->maybe_parens_func($kid, $args, $cx, 5);
        } else {
            return "$kid(" . $args . ")";
@@ -2418,7 +2419,7 @@ sub pp_backtick {
 
 sub dquote {
     my $self = shift;
-    my($op, $cx) = shift;
+    my($op, $cx) = @_;
     my $kid = $op->first->sibling; # skip ex-stringify, pushmark
     return $self->deparse($kid, $cx) if $self->{'unquote'};
     $self->maybe_targmy($kid, $cx,
index d054a2d..212532b 100644 (file)
@@ -31,6 +31,13 @@ sub GET_U16 {
     return unpack("n", $str);
 }
 
+sub GET_NV {
+    my $fh = shift;
+    my $str = $fh->readn(8);
+    croak "reached EOF while reading NV" unless length($str) == 8;
+    return unpack("N", $str);
+}
+
 sub GET_U32 {
     my $fh = shift;
     my $str = $fh->readn(4);
index 0a3543e..b9b828f 100644 (file)
@@ -6,7 +6,7 @@ BEGIN { %Seen = %INC }
 
 CHECK {
        my @arr=scan($main::{"main::"});
-       @arr=map{s/\:\:$//;$_;}  @arr;
+       @arr=map{s/\:\:$//;$_ eq "<none>"?():$_;}  @arr;
        print "-umain,-u", join (",-u",@arr) ,"\n";
 }
 sub scan{
index 95eb487..ad54382 100644 (file)
      to David Harris for spotting the underlying problem, contributing
      the updates to the documentation and writing DB_File::Lock (available
      on CPAN).
+
+1.73 27th April 2000
+
+   * Added support in version.c for building with threaded Perl.
+
index 00b24b9..a1ec0e6 100644 (file)
@@ -1,8 +1,8 @@
 # DB_File.pm -- Perl 5 interface to Berkeley DB 
 #
 # written by Paul Marquess (Paul.Marquess@btinternet.com)
-# last modified 16th January 2000
-# version 1.72
+# last modified 26th April 2000
+# version 1.73
 #
 #     Copyright (c) 1995-2000 Paul Marquess. All rights reserved.
 #     This program is free software; you can redistribute it and/or
@@ -147,7 +147,7 @@ use vars qw($VERSION @ISA @EXPORT $AUTOLOAD $DB_BTREE $DB_HASH $DB_RECNO
 use Carp;
 
 
-$VERSION = "1.72" ;
+$VERSION = "1.73" ;
 
 #typedef enum { DB_BTREE, DB_HASH, DB_RECNO } DBTYPE;
 $DB_BTREE = new DB_File::BTREEINFO ;
index 2b76bab..cb8fd80 100644 (file)
@@ -3,8 +3,8 @@
  DB_File.xs -- Perl 5 interface to Berkeley DB 
 
  written by Paul Marquess <Paul.Marquess@btinternet.com>
- last modified 16th January 2000
- version 1.72
+ last modified 27th April 2000
+ version 1.73
 
  All comments/suggestions/problems are welcome
 
@@ -82,6 +82,7 @@
                Support for Berkeley DB 2/3's backward compatability mode.
                Rewrote push
         1.72 -  No change to DB_File.xs
+        1.73 -  No change to DB_File.xs
 
 */
 
index f8c6cac..f3e2c94 100644 (file)
@@ -4,7 +4,7 @@
 
  written by Paul Marquess <Paul.Marquess@btinternet.com>
  last modified 16th January 2000
- version 1.72
+ version 1.73
 
  All comments/suggestions/problems are welcome
 
@@ -16,6 +16,7 @@
         1.71 -  Support for Berkeley DB version 3.
                Support for Berkeley DB 2/3's backward compatability mode.
         1.72 -  No change.
+        1.73 -  Added support for threading
 
 */
 
@@ -28,6 +29,9 @@
 void
 __getBerkeleyDBInfo()
 {
+#ifdef dTHX    
+    dTHX;
+#endif    
     SV * version_sv = perl_get_sv("DB_File::db_version", GV_ADD|GV_ADDMULTI) ;
     SV * ver_sv = perl_get_sv("DB_File::db_ver", GV_ADD|GV_ADDMULTI) ;
     SV * compat_sv = perl_get_sv("DB_File::db_185_compat", GV_ADD|GV_ADDMULTI) ;
index 990ea74..bb606f4 100644 (file)
@@ -584,8 +584,7 @@ DD_dump(pTHX_ SV *val, char *name, STRLEN namelen, SV *retval, HV *seenhv,
 
        if (SvIOK(val)) {
             STRLEN len;
-           i = SvIV(val);
-            (void) sprintf(tmpbuf, "%"IVdf, (IV)i);
+            (void) sprintf(tmpbuf, "%"IVdf, SvIV(val));
             len = strlen(tmpbuf);
            sv_catpvn(retval, tmpbuf, len);
        }
index e7f5746..9837e9c 100644 (file)
@@ -127,7 +127,7 @@ DeadCode(pTHX)
 
 #define _CvGV(cv)                                      \
        (SvROK(cv) && (SvTYPE(SvRV(cv))==SVt_PVCV)      \
-        ? (SV*)CvGV((CV*)SvRV(cv)) : &PL_sv_undef)
+        ? SvREFCNT_inc(CvGV((CV*)SvRV(cv))) : &PL_sv_undef)
 
 MODULE = Devel::Peek           PACKAGE = Devel::Peek
 
index e0eb604..55b8eca 100644 (file)
@@ -114,9 +114,9 @@ push(@dl_library_path, split(/:/, $ENV{LD_LIBRARY_PATH}))
 }
 
 # No prizes for guessing why we don't say 'bootstrap DynaLoader;' here.
+# NOTE: All dl_*.xs (including dl_none.xs) define a dl_error() XSUB
 boot_DynaLoader('DynaLoader') if defined(&boot_DynaLoader) &&
-                                !defined(&dl_load_file);
-
+                                !defined(&dl_error);
 
 if ($dl_debug) {
     print STDERR "DynaLoader.pm loaded (@INC, @dl_library_path)\n";
index 8cdfd63..7657410 100644 (file)
@@ -37,10 +37,12 @@ print OUT '  my $dl_dlext = ', to_string($Config::Config{'dlext'}), ";\n" ;
 
 print OUT <<'EOT';
 
-# No prizes for guessing why we don't say 'bootstrap DynaLoader;' here.
 package DynaLoader;
+
+# No prizes for guessing why we don't say 'bootstrap DynaLoader;' here.
+# NOTE: All dl_*.xs (including dl_none.xs) define a dl_error() XSUB
 boot_DynaLoader('DynaLoader') if defined(&boot_DynaLoader) &&
-                                !defined(&dl_load_file);
+                                !defined(&dl_error);
 package XSLoader;
 
 1; # End of main code
index 35242ed..d6acc68 100644 (file)
@@ -36,6 +36,8 @@
 #include <sys/types.h>
 #include <sys/ldr.h>
 #include <a.out.h>
+#undef FREAD
+#undef FWRITE
 #include <ldfcn.h>
 
 #ifdef USE_64_BIT_ALL
@@ -87,6 +89,8 @@
 
 /* If using PerlIO, redefine these macros from <ldfcn.h> */
 #ifdef USE_PERLIO
+#undef FSEEK
+#undef FREAD
 #define FSEEK(ldptr,o,p)        PerlIO_seek(IOPTR(ldptr),(p==BEGINNING)?(OFFSET(ldptr)+o):o,p)
 #define FREAD(p,s,n,ldptr)      PerlIO_read(IOPTR(ldptr),p,s*n)
 #endif
@@ -116,8 +120,8 @@ typedef struct Module {
 } Module, *ModulePtr;
 
 /*
- * We keep a list of all loaded modules to be able to call the fini
- * handlers at atexit() time.
+ * We keep a list of all loaded modules to be able to reference count
+ * duplicate dlopen's.
  */
 static ModulePtr modList;              /* XXX threaded */
 
@@ -130,7 +134,7 @@ static int errvalid;                        /* XXX threaded */
 
 static void caterr(char *);
 static int readExports(ModulePtr);
-static void terminate(void);
+static void *findMain(void);
 
 static char *strerror_failed   = "(strerror failed)";
 static char *strerror_r_failed = "(strerror_r failed)";
@@ -197,15 +201,15 @@ void *dlopen(char *path, int mode)
 {
        dTHX;
        register ModulePtr mp;
-       static int inited;                      /* XXX threaded */
+       static void *mainModule;                /* XXX threaded */
 
        /*
         * Upon the first call register a terminate handler that will
         * close all libraries.
         */
-       if (!inited) {
-               inited++;
-               atexit(terminate);
+       if (mainModule == NULL) {
+               if ((mainModule = findMain()) == NULL)
+                       return NULL;
        }
        /*
         * Scan the list of modules if have the module already loaded.
@@ -273,9 +277,13 @@ void *dlopen(char *path, int mode)
        /*
         * Assume anonymous exports come from the module this dlopen
         * is linked into, that holds true as long as dlopen and all
-        * of the perl core are in the same shared object.
+        * of the perl core are in the same shared object. Also bind
+        * against the main part, in the case a perl is not the main
+        * part, e.g mod_perl as DSO in Apache so perl modules can
+        * also reference Apache symbols.
         */
-       if (loadbind(0, (void *)dlopen, mp->entry) == -1) {
+       if (loadbind(0, (void *)dlopen, mp->entry) == -1 ||
+           loadbind(0, mainModule, mp->entry)) {
                int saverrno = errno;
 
                dlclose(mp);
@@ -393,12 +401,6 @@ int dlclose(void *handle)
        return result;
 }
 
-static void terminate(void)
-{
-       while (modList)
-               dlclose(modList);
-}
-
 /* Added by Wayne Scott 
  * This is needed because the ldopen system call calls
  * calloc to allocated a block of date.  The ldclose call calls free.
@@ -590,6 +592,52 @@ static int readExports(ModulePtr mp)
        return 0;
 }
 
+/*
+ * Find the main modules entry point. This is used as export pointer
+ * for loadbind() to be able to resolve references to the main part.
+ */
+static void * findMain(void)
+{
+       struct ld_info *lp;
+       char *buf;
+       int size = 4*1024;
+       int i;
+       void *ret;
+
+       if ((buf = safemalloc(size)) == NULL) {
+               errvalid++;
+               strcpy(errbuf, "findMain: ");
+               strerrorcat(errbuf, errno);
+               return NULL;
+       }
+       while ((i = loadquery(L_GETINFO, buf, size)) == -1 && errno == ENOMEM) {
+               safefree(buf);
+               size += 4*1024;
+               if ((buf = safemalloc(size)) == NULL) {
+                       errvalid++;
+                       strcpy(errbuf, "findMain: ");
+                       strerrorcat(errbuf, errno);
+                       return NULL;
+               }
+       }
+       if (i == -1) {
+               errvalid++;
+               strcpy(errbuf, "findMain: ");
+               strerrorcat(errbuf, errno);
+               safefree(buf);
+               return NULL;
+       }
+       /*
+        * The first entry is the main module. The entry point
+        * returned by load() does actually point to the data
+        * segment origin.
+        */
+       lp = (struct ld_info *)buf;
+       ret = lp->ldinfo_dataorg;
+       safefree(buf);
+       return ret;
+}
+
 /* dl_dlopen.xs
  * 
  * Platform:   SunOS/Solaris, possibly others which use dlopen.
@@ -642,6 +690,17 @@ dl_load_file(filename, flags=0)
        else
            sv_setiv( ST(0), PTR2IV(RETVAL) );
 
+int
+dl_unload_file(libref)
+    void *     libref
+  CODE:
+    DLDEBUG(1,PerlIO_printf(Perl_debug_log, "dl_unload_file(%lx):\n", libref));
+    RETVAL = (dlclose(libref) == 0 ? 1 : 0);
+    if (!RETVAL)
+        SaveError(aTHX_ "%s", dlerror()) ;
+    DLDEBUG(2,PerlIO_printf(Perl_debug_log, " retval = %d\n", RETVAL));
+  OUTPUT:
+    RETVAL
 
 void *
 dl_find_symbol(libhandle, symbolname)
index 5c6bbea..9d88f5f 100644 (file)
@@ -21,7 +21,7 @@ static HV *dl_loaded_files = Nullhv;  /* only needed on a few systems */
 
 
 #ifdef DEBUGGING
-static int dl_debug = 0;       /* value copied from $DynaLoader::dl_error */
+static int dl_debug = 0;       /* value copied from $DynaLoader::dl_debug */
 #define DLDEBUG(level,code)    if (dl_debug>=level) { code; }
 #else
 #define DLDEBUG(level,code)
@@ -69,7 +69,9 @@ dl_generic_private_init(pTHXo)        /* called by dl_*.xs dl_private_init() */
     if (!dl_loaded_files)
        dl_loaded_files = newHV(); /* provide cache for dl_*.xs if needed */
 #endif
+#ifdef DL_UNLOAD_ALL_AT_EXIT
     call_atexit(&dl_unload_all_files, (void*)0);
+#endif
 }
 
 
index 171538e..92103a1 100644 (file)
@@ -118,11 +118,15 @@ $VERSION = "1.03";
        O_NDELAY
        O_NOCTTY
        O_NOFOLLOW
+       O_NOINHERIT
        O_NONBLOCK
+       O_RANDOM
+       O_RAW
        O_RDONLY
        O_RDWR
        O_RSRC
        O_RSYNC
+       O_SEQUENTIAL
        O_SHLOCK
        O_SYNC
        O_TEMPORARY
index 8d4a073..b597e03 100644 (file)
@@ -46,7 +46,7 @@ constant(char *name, int arg)
     errno = 0;
     switch (*name) {
     case '_':
-       if (strEQ(name, "_S_IFMT")) /* Yes, _S_IFMT. */
+       if (strEQ(name, "_S_IFMT")) /* Yes, on name _S_IFMT return S_IFMT. */
 #ifdef S_IFMT
          return S_IFMT;
 #else
@@ -476,12 +476,30 @@ constant(char *name, int arg)
 #else
                goto not_there;
 #endif
+           if (strEQ(name, "O_NOINHERIT"))
+#ifdef O_NOINHERIT
+               return O_NOINHERIT;
+#else
+               goto not_there;
+#endif
            if (strEQ(name, "O_NONBLOCK"))
 #ifdef O_NONBLOCK
                return O_NONBLOCK;
 #else
                goto not_there;
 #endif
+           if (strEQ(name, "O_RANDOM"))
+#ifdef O_RANDOM
+               return O_RANDOM;
+#else
+               goto not_there;
+#endif
+           if (strEQ(name, "O_RAW"))
+#ifdef O_RAW
+               return O_RAW;
+#else
+               goto not_there;
+#endif
            if (strEQ(name, "O_RDONLY"))
 #ifdef O_RDONLY
                return O_RDONLY;
@@ -500,6 +518,12 @@ constant(char *name, int arg)
 #else
                goto not_there;
 #endif
+           if (strEQ(name, "O_SEQUENTIAL"))
+#ifdef O_SEQUENTIAL
+               return O_SEQUENTIAL;
+#else
+               goto not_there;
+#endif
            if (strEQ(name, "O_SHLOCK"))
 #ifdef O_SHLOCK
                return O_SHLOCK;
index 4b7e54b..98ee34d 100644 (file)
@@ -11,8 +11,12 @@ require AutoLoader;
 
 @ISA = qw(Exporter AutoLoader);
 
+# NOTE: The glob() export is only here for compatibility with 5.6.0.
+# csh_glob() should not be used directly, unless you know what you're doing.
+
 @EXPORT_OK   = qw(
     csh_glob
+    bsd_glob
     glob
     GLOB_ABEND
     GLOB_ALTDIRFUNC
@@ -47,6 +51,7 @@ require AutoLoader;
         GLOB_QUOTE
         GLOB_TILDE
         glob
+        bsd_glob
     ) ],
 );
 
@@ -108,12 +113,18 @@ if ($^O =~ /^(?:MSWin32|VMS|os2|dos|riscos|MacOS)$/) {
 
 # Autoload methods go after =cut, and are processed by the autosplit program.
 
-sub glob {
+sub bsd_glob {
     my ($pat,$flags) = @_;
     $flags = $DEFAULT_FLAGS if @_ < 2;
     return doglob($pat,$flags);
 }
 
+# File::Glob::glob() is deprecated because its prototype is different from
+# CORE::glob() (use bsd_glob() instead)
+sub glob {
+    goto &bsd_glob;
+}
+
 ## borrowed heavily from gsar's File::DosGlob
 my %iter;
 my %entries;
@@ -177,13 +188,13 @@ File::Glob - Perl extension for BSD glob routine
 =head1 SYNOPSIS
 
   use File::Glob ':glob';
-  @list = glob('*.[ch]');
-  $homedir = glob('~gnat', GLOB_TILDE | GLOB_ERR);
+  @list = bsd_glob('*.[ch]');
+  $homedir = bsd_glob('~gnat', GLOB_TILDE | GLOB_ERR);
   if (GLOB_ERROR) {
     # an error occurred reading $homedir
   }
 
-  ## override the core glob (core glob() does this automatically
+  ## override the core glob (CORE::glob() does this automatically
   ## by default anyway, since v5.6.0)
   use File::Glob ':globally';
   my @sources = <*.{c,h,y}>
@@ -198,19 +209,27 @@ File::Glob - Perl extension for BSD glob routine
 
 =head1 DESCRIPTION
 
-File::Glob implements the FreeBSD glob(3) routine, which is a superset
-of the POSIX glob() (described in IEEE Std 1003.2 "POSIX.2").  The
-glob() routine takes a mandatory C<pattern> argument, and an optional
+File::Glob::bsd_glob() implements the FreeBSD glob(3) routine, which is
+a superset of the POSIX glob() (described in IEEE Std 1003.2 "POSIX.2").
+bsd_glob() takes a mandatory C<pattern> argument, and an optional
 C<flags> argument, and returns a list of filenames matching the
 pattern, with interpretation of the pattern modified by the C<flags>
-variable.  The POSIX defined flags are:
+variable.
+
+Since v5.6.0, Perl's CORE::glob() is implemented in terms of bsd_glob().
+Note that they don't share the same prototype--CORE::glob() only accepts
+a single argument.  Due to historical reasons, CORE::glob() will also
+split its argument on whitespace, treating it as multiple patterns,
+whereas bsd_glob() considers them as one pattern.
+
+The POSIX defined flags for bsd_glob() are:
 
 =over 4
 
 =item C<GLOB_ERR>
 
-Force glob() to return an error when it encounters a directory it
-cannot open or read.  Ordinarily glob() continues to find matches.
+Force bsd_glob() to return an error when it encounters a directory it
+cannot open or read.  Ordinarily bsd_glob() continues to find matches.
 
 =item C<GLOB_MARK>
 
@@ -220,18 +239,18 @@ appended.
 =item C<GLOB_NOCASE>
 
 By default, file names are assumed to be case sensitive; this flag
-makes glob() treat case differences as not significant.
+makes bsd_glob() treat case differences as not significant.
 
 =item C<GLOB_NOCHECK>
 
-If the pattern does not match any pathname, then glob() returns a list
+If the pattern does not match any pathname, then bsd_glob() returns a list
 consisting of only the pattern.  If C<GLOB_QUOTE> is set, its effect
 is present in the pattern returned.
 
 =item C<GLOB_NOSORT>
 
 By default, the pathnames are sorted in ascending ASCII order; this
-flag prevents that sorting (speeding up glob()).
+flag prevents that sorting (speeding up bsd_glob()).
 
 =back
 
@@ -277,7 +296,7 @@ interaction with the underlying C structures.
 
 =head1 DIAGNOSTICS
 
-glob() returns a list of matching paths, possibly zero length.  If an
+bsd_glob() returns a list of matching paths, possibly zero length.  If an
 error occurred, &File::Glob::GLOB_ERROR will be non-zero and C<$!> will be
 set.  &File::Glob::GLOB_ERROR is guaranteed to be zero if no error occurred,
 or one of the following values otherwise:
@@ -294,12 +313,12 @@ The glob was stopped because an error was encountered.
 
 =back
 
-In the case where glob() has found some matching paths, but is
-interrupted by an error, glob() will return a list of filenames B<and>
+In the case where bsd_glob() has found some matching paths, but is
+interrupted by an error, it will return a list of filenames B<and>
 set &File::Glob::ERROR.
 
-Note that glob() deviates from POSIX and FreeBSD glob(3) behaviour by
-not considering C<ENOENT> and C<ENOTDIR> as errors - glob() will
+Note that bsd_glob() deviates from POSIX and FreeBSD glob(3) behaviour
+by not considering C<ENOENT> and C<ENOTDIR> as errors - bsd_glob() will
 continue processing despite those errors, unless the C<GLOB_ERR> flag is
 set.
 
@@ -311,10 +330,10 @@ Be aware that all filenames returned from File::Glob are tainted.
 
 =item *
 
-If you want to use multiple patterns, e.g. C<glob "a* b*">, you should
-probably throw them in a set as in C<glob "{a*,b*}>.  This is because
-the argument to glob isn't subjected to parsing by the C shell.  Remember
-that you can use a backslash to escape things.
+If you want to use multiple patterns, e.g. C<bsd_glob "a* b*">, you should
+probably throw them in a set as in C<bsd_glob "{a*,b*}">.  This is because
+the argument to bsd_glob() isn't subjected to parsing by the C shell.
+Remember that you can use a backslash to escape things.
 
 =item *
 
index 819b4b1..569c280 100644 (file)
@@ -113,9 +113,8 @@ use IO::Seekable;
 use File::Spec;
 
 require Exporter;
-require DynaLoader;
 
-@ISA = qw(IO::Handle IO::Seekable Exporter DynaLoader);
+@ISA = qw(IO::Handle IO::Seekable Exporter);
 
 $VERSION = "1.08";
 
index 687664b..70a3469 100644 (file)
@@ -1,3 +1,4 @@
+
 # IO::Poll.pm
 #
 # Copyright (c) 1997-8 Graham Barr <gbarr@pobox.com>. All rights reserved.
@@ -12,28 +13,31 @@ use Exporter ();
 our(@ISA, @EXPORT_OK, @EXPORT, $VERSION);
 
 @ISA = qw(Exporter);
-$VERSION = "0.01";
+$VERSION = "0.05";
 
-@EXPORT = qw(poll);
+@EXPORT = qw( POLLIN
+             POLLOUT
+             POLLERR
+             POLLHUP
+             POLLNVAL
+           );
 
 @EXPORT_OK = qw(
- POLLIN    
  POLLPRI   
- POLLOUT   
  POLLRDNORM
  POLLWRNORM
  POLLRDBAND
  POLLWRBAND
  POLLNORM  
- POLLERR   
- POLLHUP   
- POLLNVAL  
-);
+              );
 
+# [0] maps fd's to requested masks
+# [1] maps fd's to returned  masks
+# [2] maps fd's to handles
 sub new {
     my $class = shift;
 
-    my $self = bless [{},{}], $class;
+    my $self = bless [{},{},{}], $class;
 
     $self;
 }
@@ -42,20 +46,21 @@ sub mask {
     my $self = shift;
     my $io = shift;
     my $fd = fileno($io);
-    if(@_) {
+    if (@_) {
        my $mask = shift;
-       $self->[0]{$fd} ||= {};
        if($mask) {
-           $self->[0]{$fd}{$io} = $mask;
-       }
-       else {
+         $self->[0]{$fd}{$io} = $mask; # the error events are always returned
+         $self->[1]{$fd}      = 0;     # output mask
+         $self->[2]{$io}      = $io;   # remember handle
+       } else {
            delete $self->[0]{$fd}{$io};
+         delete $self->[1]{$fd} unless %{$self->[0]{$fd}};
+         delete $self->[2]{$io};
        }
     }
-    elsif(exists $self->[0]{$fd}{$io}) {
+    
+    return unless exists $self->[0]{$fd} and exists $self->[0]{$fd}{$io};
        return $self->[0]{$fd}{$io};
-    }
-    return;
 }
 
 
@@ -64,13 +69,13 @@ sub poll {
 
     $self->[1] = {};
 
-    my($fd,$ref);
+    my($fd,$mask,$iom);
     my @poll = ();
 
-    while(($fd,$ref) = each %{$self->[0]}) {
-       my $events = 0;
-       map { $events |= $_ } values %{$ref};
-       push(@poll,$fd, $events);
+    while(($fd,$iom) = each %{$self->[0]}) {
+       $mask   = 0;
+       $mask  |= $_ for values(%$iom);
+       push(@poll,$fd => $mask);
     }
 
     my $ret = @poll ? _poll(defined($timeout) ? $timeout * 1000 : -1,@poll) : 0;
@@ -80,8 +85,7 @@ sub poll {
 
     while(@poll) {
        my($fd,$got) = splice(@poll,0,2);
-       $self->[1]{$fd} = $got
-           if $got;
+       $self->[1]{$fd} = $got if $got;
     }
 
     return $ret;  
@@ -91,9 +95,8 @@ sub events {
     my $self = shift;
     my $io = shift;
     my $fd = fileno($io);
-
-    exists $self->[1]{$fd} && exists $self->[0]{$fd}{$io}
-       ? $self->[1]{$fd} & $self->[0]{$fd}{$io}
+    exists $self->[1]{$fd} and exists $self->[0]{$fd}{$io} 
+                ? $self->[1]{$fd} & ($self->[0]{$fd}{$io}|POLLHUP|POLLERR|POLLNVAL)
        : 0;
 }
 
@@ -105,20 +108,16 @@ sub remove {
 
 sub handles {
     my $self = shift;
-
-    return map { keys %$_ } values %{$self->[0]}
-       unless(@_);
+    return values %{$self->[2]} unless @_;
 
     my $events = shift || 0;
     my($fd,$ev,$io,$mask);
     my @handles = ();
 
     while(($fd,$ev) = each %{$self->[1]}) {
-       if($ev & $events) {
-           while(($io,$mask) = each %{$self->[0][$fd]}) {
-               push(@handles, $io)
-                   if $events & $mask;
-           }
+       while (($io,$mask) = each %{$self->[0]{$fd}}) {
+           $mask |= POLLHUP|POLLERR|POLLNVAL;  # must allow these
+           push @handles,$self->[2]{$io} if ($ev & $mask) & $events;
        }
     }
     return @handles;
@@ -138,8 +137,8 @@ IO::Poll - Object interface to system poll call
 
     $poll = new IO::Poll;
 
-    $poll->mask($input_handle => POLLRDNORM | POLLIN | POLLHUP);
-    $poll->mask($output_handle => POLLWRNORM);
+    $poll->mask($input_handle => POLLIN);
+    $poll->mask($output_handle => POLLOUT);
 
     $poll->poll($timeout);
 
index bfcfc13..e09d48b 100644 (file)
@@ -48,7 +48,10 @@ require 5.005_64;
 use Carp;
 use strict;
 our($VERSION, @EXPORT, @ISA);
-use IO::Handle qw(SEEK_SET SEEK_CUR SEEK_END);
+use IO::Handle ();
+# XXX we can't get these from IO::Handle or we'll get prototype
+# mismatch warnings on C<use POSIX; use IO::File;> :-(
+use Fcntl qw(SEEK_SET SEEK_CUR SEEK_END);
 require Exporter;
 
 @EXPORT = qw(SEEK_SET SEEK_CUR SEEK_END);
index 1d8cda6..df92b04 100644 (file)
@@ -7,10 +7,11 @@
 package IO::Select;
 
 use     strict;
+use warnings::register;
 use     vars qw($VERSION @ISA);
 require Exporter;
 
-$VERSION = "1.13";
+$VERSION = "1.14";
 
 @ISA = qw(Exporter); # This is only so we can do version checking
 
@@ -129,9 +130,8 @@ sub has_exception
 
 sub has_error
 {
- require Carp;
- Carp::carp("Call to depreciated method 'has_error', use 'has_exception'")
-       if $^W;
+ warnings::warn("Call to depreciated method 'has_error', use 'has_exception'")
+       if warnings::enabled();
  goto &has_exception;
 }
 
index 27a3d4d..c922bf3 100644 (file)
@@ -34,6 +34,7 @@ sub new {
 
 sub _sock_info {
   my($addr,$port,$proto) = @_;
+  my $origport = $port;
   my @proto = ();
   my @serv = ();
 
@@ -59,14 +60,14 @@ sub _sock_info {
     my $defport = $1 || undef;
     my $pnum = ($port =~ m,^(\d+)$,)[0];
 
-    if ($port =~ m,\D,) {
-      unless (@serv = getservbyname($port, $proto[0] || "")) {
-       $@ = "Bad service '$port'";
-       return;
-      }
-    }
+    @serv = getservbyname($port, $proto[0] || "")
+       if ($port =~ m,\D,);
 
     $port = $pnum || $serv[2] || $defport || undef;
+    unless (defined $port) {
+       $@ = "Bad service '$origport'";
+       return;
+    }
 
     $proto = (getprotobyname($serv[3]))[2] || undef
        if @serv && !$proto;
index 0f8c843..024c52f 100644 (file)
@@ -5,8 +5,8 @@
  * This program is free software; you can redistribute it and/or
  * modify it under the same terms as Perl itself.
  *
- * For systems that do not have the poll() system call (for example Linux)
- * try to emulate it as closely as possible using select()
+ * For systems that do not have the poll() system call (for example Linux
+ * kernels < v2.1.23) try to emulate it as closely as possible using select()
  *
  */
 
index 0993298..120a5b2 100644 (file)
@@ -90,14 +90,14 @@ sub rcv {
     msgrcv($$self,$buf,$_[1],$_[2] || 0, $_[3] || 0) or
        return;
     my $type;
-    ($type,$_[0]) = unpack("L a*",$buf);
+    ($type,$_[0]) = unpack("l! a*",$buf);
     $type;
 }
 
 sub snd {
     @_ <= 4 && @_ >= 3 or  croak '$msg->snd( TYPE, BUF, FLAGS )';
     my $self = shift;
-    msgsnd($$self,pack("L a*",$_[0],$_[1]), $_[2] || 0);
+    msgsnd($$self,pack("l! a*",$_[0],$_[1]), $_[2] || 0);
 }
 
 
@@ -111,12 +111,12 @@ IPC::Msg - SysV Msg IPC object class
 
 =head1 SYNOPSIS
 
-    use IPC::SysV qw(IPC_PRIVATE S_IRWXU S_IRWXG S_IRWXO);
+    use IPC::SysV qw(IPC_PRIVATE S_IRWXU);
     use IPC::Msg;
 
-    $msg = new IPC::Msg(IPC_PRIVATE, S_IRWXU | S_IRWXG | S_IRWXO);
+    $msg = new IPC::Msg(IPC_PRIVATE, S_IRWXU);
 
-    $msg->snd(pack("L a*",$msgtype,$msg));
+    $msg->snd(pack("l! a*",$msgtype,$msg));
 
     $msg->rcv($buf,256);
 
@@ -157,8 +157,8 @@ Returns the system message queue identifier.
 
 =item rcv ( BUF, LEN [, TYPE [, FLAGS ]] )
 
-Read a message from the queue. Returns the type of the message read. See
-L<msgrcv>
+Read a message from the queue. Returns the type of the message read.
+See L<msgrcv>.  The  BUF becomes tainted.
 
 =item remove
 
index 15256cf..55c5c1f 100644 (file)
@@ -1,7 +1,17 @@
 use ExtUtils::MakeMaker;
+use Config;
+my @libs;
+if ($^O ne 'MSWin32') {
+    if ($Config{archname} =~ /RM\d\d\d-svr4/) {
+       @libs = ('LIBS' => ["-lm -lc -lposix -lcposix"]);
+    }
+    else {
+       @libs = ('LIBS' => ["-lm -lposix -lcposix"]);
+    }
+}
 WriteMakefile(
     NAME       => 'POSIX',
-    ($^O eq 'MSWin32' ? () : (LIBS => ["-lm -lposix -lcposix"])),
+    @libs,
     MAN3PODS   => {},  # Pods will be built by installman.
     XSPROTOARG => '-noprototypes',             # XXX remove later?
     VERSION_FROM => 'POSIX.pm', 
index 3a523d1..b33e961 100644 (file)
@@ -1517,6 +1517,11 @@ constant(char *name, int arg)
        break;
     case 'H':
        if (strEQ(name, "HUGE_VAL"))
+#if defined(USE_LONG_DOUBLE) && defined(HUGE_VALL)
+         /* HUGE_VALL is admittedly non-POSIX but if are using long doubles
+          * we might as well use long doubles. --jhi */
+           return HUGE_VALL;
+#endif
 #ifdef HUGE_VAL
            return HUGE_VAL;
 #else
index f83cb18..02f098d 100644 (file)
@@ -1,7 +1,7 @@
 package Socket;
 
 our($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
-$VERSION = "1.71";
+$VERSION = "1.72";
 
 =head1 NAME
 
@@ -160,6 +160,7 @@ have AF_UNIX in the right place.
 =cut
 
 use Carp;
+use warnings::register;
 
 require Exporter;
 use XSLoader ();
@@ -302,7 +303,8 @@ BEGIN {
 sub sockaddr_in {
     if (@_ == 6 && !wantarray) { # perl5.001m compat; use this && die
        my($af, $port, @quad) = @_;
-       carp "6-ARG sockaddr_in call is deprecated" if $^W;
+       warnings::warn "6-ARG sockaddr_in call is deprecated" 
+           if warnings::enabled();
        pack_sockaddr_in($port, inet_aton(join('.', @quad)));
     } elsif (wantarray) {
        croak "usage:   (port,iaddr) = sockaddr_in(sin_sv)" unless @_ == 1;
index 752c3dd..0584e78 100644 (file)
 # ifdef I_SYS_UN
 #  include <sys/un.h>
 # endif
+/* XXX Configure test for <netinet/in_systm.h needed XXX */
+# if defined(NeXT) || defined(__NeXT__)
+#  include <netinet/in_systm.h>
+# endif
 # ifdef I_NETINET_IN
 #  include <netinet/in.h>
 # endif
index 17ebb37..c7ce3de 100644 (file)
@@ -70,9 +70,11 @@ Sets the socket type to be used for the next call to
 C<openlog()> or C<syslog()> and returns TRUE on success,
 undef on failure.
 
-A value of 'unix' will connect to the UNIX domain socket returned by
-C<_PATH_LOG> in F<syslog.ph>.  A value of 'inet' will connect to an
-INET socket returned by getservbyname().  Any other value croaks.
+A value of 'unix' will connect to the UNIX domain socket returned by the
+C<_PATH_LOG> macro (if you system defines it) in F<syslog.h>.  A value of
+'inet' will connect to an INET socket returned by getservbyname().  If
+C<_PATH_LOG> is unavailable or if getservbyname() fails, returns undef.  Any
+other value croaks.
 
 The default is for the INET socket to be used.
 
@@ -107,10 +109,15 @@ L<syslog(3)>
 
 =head1 AUTHOR
 
-Tom Christiansen E<lt>F<tchrist@perl.com>E<gt> and Larry Wall E<lt>F<larry@wall.org>E<gt>.
-UNIX domain sockets added by Sean Robinson E<lt>F<robinson_s@sc.maricopa.edu>E<gt>
-with support from Tim Bunce <Tim.Bunce@ig.co.uk> and the perl5-porters mailing list.
-Dependency on F<syslog.ph> replaced with XS code bu Tom Hughes E<lt>F<tom@compton.nu>E<gt>.
+Tom Christiansen E<lt>F<tchrist@perl.com>E<gt> and Larry Wall
+E<lt>F<larry@wall.org>E<gt>.
+
+UNIX domain sockets added by Sean Robinson
+E<lt>F<robinson_s@sc.maricopa.edu>E<gt> with support from Tim Bunce
+E<lt>F<Tim.Bunce@ig.co.uk>E<gt> and the perl5-porters mailing list.
+
+Dependency on F<syslog.ph> replaced with XS code by Tom Hughes
+E<lt>F<tom@compton.nu>E<gt>.
 
 =cut
 
@@ -122,7 +129,7 @@ sub AUTOLOAD {
     our $AUTOLOAD;
     ($constname = $AUTOLOAD) =~ s/.*:://;
     croak "& not defined" if $constname eq 'constant';
-    my $val = constant($constname, @_ ? $_[0] : 0);
+    my $val = constant($constname);
     if ($! != 0) {
        croak "Your vendor has not defined Sys::Syslog macro $constname";
     }
@@ -159,7 +166,7 @@ sub setlogsock {
     local($setsock) = shift;
     &disconnect if $connected;
     if (lc($setsock) eq 'unix') {
-        if (defined &_PATH_LOG) {
+        if (length _PATH_LOG()) {
             $sock_type = 1;
         } else {
             return undef;
@@ -244,9 +251,9 @@ sub syslog {
            else {
                if (open(CONS,">/dev/console")) {
                    print CONS "<$facility.$priority>$whoami: $message\r";
-                   exit if defined $pid;               # if fork failed, we're parent
                    close CONS;
                }
+               exit if defined $pid;           # if fork failed, we're parent
            }
        }
     }
@@ -274,7 +281,8 @@ sub connect {
         socket(SYSLOG,AF_INET,SOCK_DGRAM,$udp)           || croak "socket: $!";
         connect(SYSLOG,$that)                            || croak "connect: $!";
     } else {
-        my $syslog = &_PATH_LOG                          || croak "_PATH_LOG not found in syslog.ph";
+        my $syslog = _PATH_LOG();
+       length($syslog)                                  || croak "_PATH_LOG unavailable in syslog.h";
         my $that = sockaddr_un($syslog)                  || croak "Can't locate $syslog";
         socket(SYSLOG,AF_UNIX,SOCK_STREAM,0)             || croak "socket: $!";
         if (!connect(SYSLOG,$that)) {
index 511df9f..31c0e84 100644 (file)
@@ -7,7 +7,7 @@
 #endif
 
 static double
-constant_LOG_NO(char *name, int len, int arg)
+constant_LOG_NO(char *name, int len)
 {
     switch (name[6 + 0]) {
     case 'T':
@@ -36,7 +36,7 @@ not_there:
 }
 
 static double
-constant_LOG_N(char *name, int len, int arg)
+constant_LOG_N(char *name, int len)
 {
     switch (name[5 + 0]) {
     case 'D':
@@ -64,7 +64,7 @@ constant_LOG_N(char *name, int len, int arg)
 #endif
        }
     case 'O':
-       return constant_LOG_NO(name, len, arg);
+       return constant_LOG_NO(name, len);
     }
     errno = EINVAL;
     return 0;
@@ -75,7 +75,7 @@ not_there:
 }
 
 static double
-constant_LOG_P(char *name, int len, int arg)
+constant_LOG_P(char *name, int len)
 {
     switch (name[5 + 0]) {
     case 'I':
@@ -104,7 +104,7 @@ not_there:
 }
 
 static double
-constant_LOG_AU(char *name, int len, int arg)
+constant_LOG_AU(char *name, int len)
 {
     if (6 + 2 >= len ) {
        errno = EINVAL;
@@ -137,7 +137,7 @@ not_there:
 }
 
 static double
-constant_LOG_A(char *name, int len, int arg)
+constant_LOG_A(char *name, int len)
 {
     switch (name[5 + 0]) {
     case 'L':
@@ -149,7 +149,7 @@ constant_LOG_A(char *name, int len, int arg)
 #endif
        }
     case 'U':
-       return constant_LOG_AU(name, len, arg);
+       return constant_LOG_AU(name, len);
     }
     errno = EINVAL;
     return 0;
@@ -160,7 +160,7 @@ not_there:
 }
 
 static double
-constant_LOG_CR(char *name, int len, int arg)
+constant_LOG_CR(char *name, int len)
 {
     switch (name[6 + 0]) {
     case 'I':
@@ -189,7 +189,7 @@ not_there:
 }
 
 static double
-constant_LOG_C(char *name, int len, int arg)
+constant_LOG_C(char *name, int len)
 {
     switch (name[5 + 0]) {
     case 'O':
@@ -201,7 +201,7 @@ constant_LOG_C(char *name, int len, int arg)
 #endif
        }
     case 'R':
-       return constant_LOG_CR(name, len, arg);
+       return constant_LOG_CR(name, len);
     }
     errno = EINVAL;
     return 0;
@@ -212,7 +212,7 @@ not_there:
 }
 
 static double
-constant_LOG_D(char *name, int len, int arg)
+constant_LOG_D(char *name, int len)
 {
     switch (name[5 + 0]) {
     case 'A':
@@ -241,7 +241,7 @@ not_there:
 }
 
 static double
-constant_LOG_U(char *name, int len, int arg)
+constant_LOG_U(char *name, int len)
 {
     switch (name[5 + 0]) {
     case 'S':
@@ -270,7 +270,7 @@ not_there:
 }
 
 static double
-constant_LOG_E(char *name, int len, int arg)
+constant_LOG_E(char *name, int len)
 {
     switch (name[5 + 0]) {
     case 'M':
@@ -299,7 +299,7 @@ not_there:
 }
 
 static double
-constant_LOG_F(char *name, int len, int arg)
+constant_LOG_F(char *name, int len)
 {
     switch (name[5 + 0]) {
     case 'A':
@@ -328,7 +328,7 @@ not_there:
 }
 
 static double
-constant_LOG_LO(char *name, int len, int arg)
+constant_LOG_LO(char *name, int len)
 {
     if (6 + 3 >= len ) {
        errno = EINVAL;
@@ -409,7 +409,7 @@ not_there:
 }
 
 static double
-constant_LOG_L(char *name, int len, int arg)
+constant_LOG_L(char *name, int len)
 {
     switch (name[5 + 0]) {
     case 'F':
@@ -421,7 +421,7 @@ constant_LOG_L(char *name, int len, int arg)
 #endif
        }
     case 'O':
-       return constant_LOG_LO(name, len, arg);
+       return constant_LOG_LO(name, len);
     case 'P':
        if (strEQ(name + 5, "PR")) {    /* LOG_L removed */
 #ifdef LOG_LPR
@@ -440,7 +440,7 @@ not_there:
 }
 
 static double
-constant(char *name, int len, int arg)
+constant(char *name, int len)
 {
     errno = 0;
     if (0 + 4 >= len ) {
@@ -451,23 +451,23 @@ constant(char *name, int len, int arg)
     case 'A':
        if (!strnEQ(name + 0,"LOG_", 4))
            break;
-       return constant_LOG_A(name, len, arg);
+       return constant_LOG_A(name, len);
     case 'C':
        if (!strnEQ(name + 0,"LOG_", 4))
            break;
-       return constant_LOG_C(name, len, arg);
+       return constant_LOG_C(name, len);
     case 'D':
        if (!strnEQ(name + 0,"LOG_", 4))
            break;
-       return constant_LOG_D(name, len, arg);
+       return constant_LOG_D(name, len);
     case 'E':
        if (!strnEQ(name + 0,"LOG_", 4))
            break;
-       return constant_LOG_E(name, len, arg);
+       return constant_LOG_E(name, len);
     case 'F':
        if (!strnEQ(name + 0,"LOG_", 4))
            break;
-       return constant_LOG_F(name, len, arg);
+       return constant_LOG_F(name, len);
     case 'I':
        if (strEQ(name + 0, "LOG_INFO")) {      /*  removed */
 #ifdef LOG_INFO
@@ -487,7 +487,7 @@ constant(char *name, int len, int arg)
     case 'L':
        if (!strnEQ(name + 0,"LOG_", 4))
            break;
-       return constant_LOG_L(name, len, arg);
+       return constant_LOG_L(name, len);
     case 'M':
        if (strEQ(name + 0, "LOG_MAIL")) {      /*  removed */
 #ifdef LOG_MAIL
@@ -499,7 +499,7 @@ constant(char *name, int len, int arg)
     case 'N':
        if (!strnEQ(name + 0,"LOG_", 4))
            break;
-       return constant_LOG_N(name, len, arg);
+       return constant_LOG_N(name, len);
     case 'O':
        if (strEQ(name + 0, "LOG_ODELAY")) {    /*  removed */
 #ifdef LOG_ODELAY
@@ -511,7 +511,7 @@ constant(char *name, int len, int arg)
     case 'P':
        if (!strnEQ(name + 0,"LOG_", 4))
            break;
-       return constant_LOG_P(name, len, arg);
+       return constant_LOG_P(name, len);
     case 'S':
        if (strEQ(name + 0, "LOG_SYSLOG")) {    /*  removed */
 #ifdef LOG_SYSLOG
@@ -523,7 +523,7 @@ constant(char *name, int len, int arg)
     case 'U':
        if (!strnEQ(name + 0,"LOG_", 4))
            break;
-       return constant_LOG_U(name, len, arg);
+       return constant_LOG_U(name, len);
     case 'W':
        if (strEQ(name + 0, "LOG_WARNING")) {   /*  removed */
 #ifdef LOG_WARNING
@@ -550,8 +550,7 @@ _PATH_LOG()
 #ifdef _PATH_LOG
        RETVAL = _PATH_LOG;
 #else
-       croak("Your vendor has not defined the Sys::Syslog macro _PATH_LOG");
-       RETVAL = NULL;
+       RETVAL = "";
 #endif
     OUTPUT:
        RETVAL
@@ -629,15 +628,14 @@ LOG_UPTO(pri)
 
 
 double
-constant(sv,arg)
+constant(sv)
     PREINIT:
        STRLEN          len;
     INPUT:
        SV *            sv
        char *          s = SvPV(sv, len);
-       int             arg
     CODE:
-       RETVAL = constant(s,len,arg);
+       RETVAL = constant(s,len);
     OUTPUT:
        RETVAL
 
index 3e50a99..c752e3d 100644 (file)
@@ -36,16 +36,15 @@ Thread - manipulate threads in Perl (EXPERIMENTAL, subject to change)
 
 =head1 DESCRIPTION
 
-The C<Thread> module provides multithreading support for perl.
-
-WARNING: Threading is an experimental feature.  Both the interface
-and implementation are subject to change drastically.
+    WARNING: Threading is an experimental feature.  Both the interface
+    and implementation are subject to change drastically.  In fact, this
+    documentation describes the flavor of threads that was in version
+    5.005.  Perl 5.6.0 and later have the beginnings of support for
+    interpreter threads, which (when finished) is expected to be
+    significantly different from what is described here.  The information
+    contained here may therefore soon be obsolete.  Use at your own risk!
 
-In fact, this documentation describes the flavor of threads that was in
-version 5.005.  Perl v5.6 has the beginnings of support for interpreter
-threads, which (when finished) is expected to be significantly different
-from what is described here.  The information contained here may therefore
-soon be obsolete.  Use at your own risk!
+The C<Thread> module provides multithreading support for perl.
 
 =head1 FUNCTIONS
 
@@ -131,7 +130,7 @@ signal is discarded.
 
 =item cond_broadcast VARIABLE
 
-The C<cond_broadcast> function works similarly to C<cond_wait>.
+The C<cond_broadcast> function works similarly to C<cond_signal>.
 C<cond_broadcast>, though, will unblock B<all> the threads that are blocked
 in a C<cond_wait> on the locked variable, rather than only one.
 
index 6e2fba8..831573c 100644 (file)
@@ -67,13 +67,13 @@ sub new {
     return bless [@_], $class;
 }
 
-sub dequeue : locked, method {
+sub dequeue : locked : method {
     my $q = shift;
     cond_wait $q until @$q;
     return shift @$q;
 }
 
-sub dequeue_nb : locked, method {
+sub dequeue_nb : locked : method {
   my $q = shift;
   if (@$q) {
     return shift @$q;
@@ -82,12 +82,12 @@ sub dequeue_nb : locked, method {
   }
 }
 
-sub enqueue : locked, method {
+sub enqueue : locked : method {
     my $q = shift;
     push(@$q, @_) and cond_broadcast $q;
 }
 
-sub pending : locked, method {
+sub pending : locked : method {
   my $q = shift;
   return scalar(@$q);
 }
index f50f96c..3cd6338 100644 (file)
@@ -69,14 +69,14 @@ sub new {
     bless \$val, $class;
 }
 
-sub down : locked, method {
+sub down : locked : method {
     my $s = shift;
     my $inc = @_ ? shift : 1;
     cond_wait $s until $$s >= $inc;
     $$s -= $inc;
 }
 
-sub up : locked, method {
+sub up : locked : method {
     my $s = shift;
     my $inc = @_ ? shift : 1;
     ($$s += $inc) > 0 and cond_broadcast $s;
index da3f937..a6271a4 100644 (file)
@@ -15,12 +15,13 @@ C<key_create> returns a unique thread-specific key.
 
 =cut
 
-sub import : locked, method {
+sub import : locked : method {
     require fields;
     fields::->import(@_);
 }      
 
-sub key_create : locked, method {
+sub key_create : locked : method {
+    our %FIELDS;   # suppress "used only once"
     return ++$FIELDS{__MAX__};
 }
 
index 10b5303..796f851 100644 (file)
@@ -68,6 +68,8 @@ Perl_sv_setpvf_nocontext
 Perl_sv_catpvf_mg_nocontext
 Perl_sv_setpvf_mg_nocontext
 Perl_fprintf_nocontext
+Perl_cv_const_sv
+Perl_cv_undef
 Perl_cx_dump
 Perl_filter_add
 Perl_filter_del
@@ -85,6 +87,8 @@ Perl_delimcpy
 Perl_die
 Perl_dounwind
 Perl_do_binmode
+Perl_do_close
+Perl_do_join
 Perl_do_open
 Perl_do_open9
 Perl_dowantarray
@@ -180,6 +184,7 @@ Perl_is_uni_xdigit_lc
 Perl_to_uni_upper_lc
 Perl_to_uni_title_lc
 Perl_to_uni_lower_lc
+Perl_is_utf8_char
 Perl_is_utf8_alnum
 Perl_is_utf8_alnumc
 Perl_is_utf8_idfirst
@@ -268,6 +273,7 @@ Perl_newSV
 Perl_newSVREF
 Perl_newSVOP
 Perl_newSViv
+Perl_newSVuv
 Perl_newSVnv
 Perl_newSVpv
 Perl_newSVpvn
@@ -315,6 +321,7 @@ Perl_regexec_flags
 Perl_regnext
 Perl_repeatcpy
 Perl_rninstr
+Perl_rsignal
 Perl_savepv
 Perl_savepvn
 Perl_savestack_grow
@@ -458,6 +465,7 @@ Perl_warn
 Perl_vwarn
 Perl_warner
 Perl_vwarner
+Perl_whichsig
 Perl_dump_mstats
 Perl_get_mstats
 Perl_safesysmalloc
@@ -532,3 +540,4 @@ Perl_ptr_table_new
 Perl_ptr_table_fetch
 Perl_ptr_table_store
 Perl_ptr_table_split
+Perl_sys_intern_init
diff --git a/gv.c b/gv.c
index 587d3dc..5ab21b1 100644 (file)
--- a/gv.c
+++ b/gv.c
@@ -448,10 +448,10 @@ Perl_gv_autoload4(pTHX_ HV *stash, const char *name, STRLEN len, I32 method)
 /*
 =for apidoc gv_stashpv
 
-Returns a pointer to the stash for a specified package.  If C<create> is
-set then the package will be created if it does not already exist.  If
-C<create> is not set and the package does not exist then NULL is
-returned.
+Returns a pointer to the stash for a specified package.  C<name> should
+be a valid UTF-8 string.  If C<create> is set then the package will be
+created if it does not already exist.  If C<create> is not set and the
+package does not exist then NULL is returned.
 
 =cut
 */
@@ -494,8 +494,8 @@ Perl_gv_stashpvn(pTHX_ const char *name, U32 namelen, I32 create)
 /*
 =for apidoc gv_stashsv
 
-Returns a pointer to the stash for a specified package.  See
-C<gv_stashpv>.
+Returns a pointer to the stash for a specified package, which must be a
+valid UTF-8 string.  See C<gv_stashpv>.
 
 =cut
 */
@@ -520,7 +520,6 @@ Perl_gv_fetchpv(pTHX_ const char *nambeg, I32 add, I32 sv_type)
     I32 len;
     register const char *namend;
     HV *stash = 0;
-    U32 add_gvflags = 0;
 
     if (*name == '*' && isALPHA(name[1])) /* accidental stringify on a GV? */
        name++;
@@ -631,7 +630,7 @@ Perl_gv_fetchpv(pTHX_ const char *nambeg, I32 add, I32 sv_type)
                            sv_type == SVt_PVHV ? '%' : '$',
                            name);
                        if (GvCVu(*gvp))
-                           Perl_warn(aTHX_ "(Did you mean &%s instead?)\n", name);
+                           Perl_warn(aTHX_ "\t(Did you mean &%s instead?)\n", name);
                        stash = 0;
                    }
                }
@@ -653,8 +652,10 @@ Perl_gv_fetchpv(pTHX_ const char *nambeg, I32 add, I32 sv_type)
                  : sv_type == SVt_PVAV ? "@"
                  : sv_type == SVt_PVHV ? "%"
                  : ""), name));
+           stash = PL_nullstash;
        }
-       return Nullgv;
+       else
+           return Nullgv;
     }
 
     if (!SvREFCNT(stash))      /* symbol table under destruction */
@@ -680,7 +681,6 @@ Perl_gv_fetchpv(pTHX_ const char *nambeg, I32 add, I32 sv_type)
        Perl_warner(aTHX_ WARN_INTERNAL, "Had to create %s unexpectedly", nambeg);
     gv_init(gv, stash, name, len, add & GV_ADDMULTI);
     gv_init_sv(gv, sv_type);
-    GvFLAGS(gv) |= add_gvflags;
 
     if (isLEXWARN_on && isALPHA(name[0]) && ! ckWARN(WARN_ONCE))
         GvMULTI_on(gv) ;
diff --git a/handy.h b/handy.h
index 2c5d706..81f4745 100644 (file)
--- a/handy.h
+++ b/handy.h
@@ -260,18 +260,18 @@ C<strncmp>).
 
 /*
 =for apidoc Am|bool|isALNUM|char ch
-Returns a boolean indicating whether the C C<char> is an ascii alphanumeric
+Returns a boolean indicating whether the C C<char> is an ASCII alphanumeric
 character or digit.
 
 =for apidoc Am|bool|isALPHA|char ch
-Returns a boolean indicating whether the C C<char> is an ascii alphabetic
+Returns a boolean indicating whether the C C<char> is an ASCII alphabetic
 character.
 
 =for apidoc Am|bool|isSPACE|char ch
 Returns a boolean indicating whether the C C<char> is whitespace.
 
 =for apidoc Am|bool|isDIGIT|char ch
-Returns a boolean indicating whether the C C<char> is an ascii
+Returns a boolean indicating whether the C C<char> is an ASCII
 digit.
 
 =for apidoc Am|bool|isUPPER|char ch
@@ -524,7 +524,7 @@ The XSUB-writer's interface to the C C<memzero> function.  The C<dest> is the
 destination, C<nitems> is the number of items, and C<type> is the type.
 
 =for apidoc Am|void|StructCopy|type src|type dest|type
-This is an architecture-independant macro to copy one structure to another.
+This is an architecture-independent macro to copy one structure to another.
 
 =cut
 */
index 42114c2..47c2092 100644 (file)
@@ -22,6 +22,7 @@ so='dll'
 # - eliminate -lc, implied by gcc
 libswanted=`echo " $libswanted " | sed -e 's/ c / /g'`
 libswanted="$libswanted cygipc cygwin kernel32"
+test -z "$optimize" && optimize='-O2'
 # - otherwise i686-cygwin
 archname='cygwin'
 
@@ -36,8 +37,6 @@ bincompat5005='undef'
 
 # stubs (ENOSYS, not implemented)
 d_chroot='undef'
-d_seteuid='undef'
-d_setegid='undef'
 
 # Win9x problem with non-blocking read from a closed pipe
 d_eofnblk='define'
index c149ae0..db7b869 100644 (file)
@@ -65,10 +65,34 @@ cc=${cc:-cc}
        # reset
        _DEC_cc_style=
 case "`$cc -v 2>&1 | grep cc`" in
-*gcc*) ;; # pass
+*gcc*) _gcc_version=`$cc -v 2>&1 | grep "gcc version" | sed 's%^gcc version \([0-9]*\)\.\([0-9]*\) .*%\1 \2%'`
+       set $_gcc_version
+       if test "$1" -lt 2 -o \( "$1" -eq 2 -a "$2" -lt 95 \); then
+           cat >&4 <<EOF
+
+Your cc seems to be gcc and its version seems to be less than 2.95.
+This is not a good idea since old versions of gcc are known to produce
+buggy code when compiling Perl (and no doubt for other programs, too).
+
+Therefore, I strongly suggest upgrading your gcc.  (Why don't you
+use the vendor cc is also a good question.  It comes with the operating
+system and produces good code.)
+
+Note that as of gcc 2.95 (19990728) and Perl 5.6.0 (end of March 2000)
+if the said Perl is compiled with the said gcc the lib/sdbm test will 
+dump core.  As this doesn't happen with the vendor cc, this is
+most probably a lingering bug in gcc.  Therefore unless you have
+a better gcc you are still better off using the vendor cc.
+
+Cannot continue, aborting.
+
+EOF
+           exit 1
+       fi
+        ;;
 *)     # compile something small: taint.c is fine for this.
        # the main point is the '-v' flag of 'cc'.
-               case "`cc -v -I. -c taint.c -o /tmp/taint$$.o 2>&1`" in
+               case "`cc -v -I. -c taint.c -o taint$$.o 2>&1`" in
        */gemc_cc*)     # we have the new DEC GEM CC
                        _DEC_cc_style=new
                        ;;
@@ -77,7 +101,7 @@ case "`$cc -v 2>&1 | grep cc`" in
                        ;;
        esac
        # cleanup
-       rm -f /tmp/taint$$.o
+       rm -f taint$$.o
        ;;
 esac
 
index 478c076..d50bca4 100644 (file)
@@ -28,6 +28,9 @@ lns='cp'
 
 usenm='true'
 
+# this reportedly causes compile errors in system includes
+i_ieeefp='undef'
+
 d_link='undef'      # these are empty functions in libc.a
 d_symlink='undef'
 d_fork='undef'
index 9967207..b1d697c 100644 (file)
@@ -21,8 +21,8 @@ d_suidsafe=define
 usevfork='false'
 if test "$osvers" = "3.0"; then
        d_gconvert='undef'
-       grep 'define[   ]*AF_OSI[       ]' /usr/include/sys/socket.h | grep '/\*[^*]*$' >/tmp/esix$$
-       if test -s /tmp/esix$$; then
+       grep 'define[   ]*AF_OSI[       ]' /usr/include/sys/socket.h | grep '/\*[^*]*$' >esix$$
+       if test -s esix$$; then
                cat <<EOM >&2
 
 WARNING: You are likely to have problems compiling the Socket extension
@@ -31,6 +31,6 @@ unless you fix the unterminated comment for AF_OSI in the file
 
 EOM
        fi
-       rm -f /tmp/esix$$
+       rm -f esix$$
 fi
 
index 2609261..fd60ba3 100644 (file)
@@ -99,7 +99,11 @@ esac
 case "$osvers" in
 0.*|1.0*) ;;
 
-3.*|4.0*)
+1*|2*) cccdlflags='-DPIC -fpic'
+       lddlflags="-Bshareable $lddlflags"
+       ;;
+
+*)
         objformat=`/usr/bin/objformat`
         if [ x$objformat = xelf ]; then
             libpth="/usr/lib /usr/local/lib"
@@ -108,24 +112,23 @@ case "$osvers" in
             lddlflags="-shared "
         else
             if [ -e /usr/lib/aout ]; then
-            libpth="/usr/lib/aout /usr/local/lib /usr/lib"
-            glibpth="/usr/lib/aout /usr/local/lib /usr/lib"
-        fi
-        lddlflags='-Bshareable'
+                libpth="/usr/lib/aout /usr/local/lib /usr/lib"
+                glibpth="/usr/lib/aout /usr/local/lib /usr/lib"
+            fi
+            lddlflags='-Bshareable'
         fi
         cccdlflags='-DPIC -fpic'
         ;;
-
-*)     cccdlflags='-DPIC -fpic'
-       lddlflags="-Bshareable $lddlflags"
-       ;;
 esac
 
 case "$osvers" in
-4.0*)
-       if /usr/bin/file /usr/lib/libc.so.3 | /usr/bin/grep -vq "not stripped" ; then
+0*|1*|2*|3*) ;;
+
+*)
+       if /usr/bin/file -L /usr/lib/libc.so | /usr/bin/grep -vq "not stripped" ; then
            usenm=false
        fi
+        ;;
 esac
 
 cat <<'EOM' >&4
@@ -173,20 +176,15 @@ case "$usethreads" in
 $define|true|[yY]*)
         lc_r=`/sbin/ldconfig -r|grep ':-lc_r'|awk '{print $NF}'|tail -1`
         case "$osvers" in  
-       2.2.8*|3.*|4.*)
-             if [ ! -r "$lc_r" ]; then
-             cat <<EOM >&4
-POSIX threads should be supported by FreeBSD $osvers --
-but your system is missing the shared libc_r.
-(/sbin/ldconfig -r doesn't find any).
+       0*|1*|2.0*|2.1*)   cat <<EOM >&4
+I did not know that FreeBSD $osvers supports POSIX threads.
 
-Consider using the latest STABLE release.
+Feel free to tell perlbug@perl.com otherwise.
 EOM
-                exit 1
-             fi
-             ldflags="-pthread $ldflags"
+             exit 1
              ;;
-        2.2*)
+
+        2.2.[0-7]*)
               cat <<EOM >&4
 POSIX threads are not supported well by FreeBSD $osvers.
 
@@ -199,13 +197,21 @@ or preferably to 3.something.
 EOM
              exit 1
              ;;
-        *)   cat <<EOM >&4
-I did not know that FreeBSD $osvers supports POSIX threads.
 
-Feel free to tell perlbug@perl.com otherwise.
+       *)
+             if [ ! -r "$lc_r" ]; then
+             cat <<EOM >&4
+POSIX threads should be supported by FreeBSD $osvers --
+but your system is missing the shared libc_r.
+(/sbin/ldconfig -r doesn't find any).
+
+Consider using the latest STABLE release.
 EOM
-             exit 1
+                exit 1
+             fi
+             ldflags="-pthread $ldflags"
              ;;
+
        esac
 
        set `echo X "$libswanted "| sed -e 's/ c / c_r /'`
index 91ba868..ce15f55 100644 (file)
@@ -179,32 +179,26 @@ EOM
 *LP64*|*PA-RISC2.0*) ;;
 *) xxx=/no/64-bit$xxx ;;
 esac'
-    case "$ccisgcc" in
-    "$define") ld=$cc ;;
-    *) ld=/usr/bin/ld ;;
-    esac
+    if test -n "$ccisgcc" -o -n "$gccversion"; then
+       ld="$cc"
+    else       
+       ld=/usr/bin/ld
+    fi
     ar=/usr/bin/ar
     full_ar=$ar
 
-    case "$ccisgcc" in
-    "$define") ;;
-    *) # The strict ANSI mode (-Aa) doesn't like the LL suffixes.
+    if test -z "$ccisgcc" -a -z "$gccversion"; then
+       # The strict ANSI mode (-Aa) doesn't like the LL suffixes.
+       ccflags=`echo " $ccflags "|sed 's@ -Aa @ @g'`
        case "$ccflags" in
-       *-Aa*)
-           echo "(Changing from strict ANSI compilation to extended because of 64-bitness)"
-           ccflags=`echo $ccflags|sed 's@ -Aa @ -Ae @'`
-           ;;
+       *-Ae*) ;;
        *) ccflags="$ccflags -Ae" ;;
        esac
-       ;;
-    esac    
+    fi
 
     set `echo " $libswanted " | sed -e 's@ dl @ @'`
     libswanted="$*"
 
-    case "$ccisgcc" in
-    "$define") ;;
-    esac
     ;;
 esac
 
@@ -213,7 +207,6 @@ case "$ccisgcc" in
 "$define") test -d /lib/pa1.1 && ccflags="$ccflags -L/lib/pa1.1" ;;
 esac
     
-
 case "$ccisgcc" in
 "$define") ;;
 *)  case "`getconf KERNEL_BITS 2>/dev/null`" in
@@ -247,7 +240,10 @@ libswanted="$*"
 # ccdlflags="-Wl,-E -Wl,-B,immediate,-B,nonfatal $ccdlflags"
 ccdlflags="-Wl,-E -Wl,-B,deferred $ccdlflags"
 
-usemymalloc='y'
+case "$usemymalloc" in
+'') usemymalloc='y' ;;
+esac
+
 alignbytes=8
 # For native nm, you need "-p" to produce BSD format output.
 nm_opt='-p'
@@ -394,14 +390,15 @@ case "$uselargefiles" in
        # but we cheat for now.
        ccflags="$ccflags -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
 
-        # The strict ANSI mode (-Aa) doesn't like large files.
-       case "$ccflags" in
-       -Aa*)
-           echo "(Changing from strict ANSI compilation to extended because of large files)"
-           ccflags=`echo $ccflags|sed 's@ -Aa @ -Ae @'`
-           ;;
-       *)  ccflags="$ccflags -Ae" ;;
-       esac
+        if test -z "$ccisgcc" -a -z "$gccversion"; then
+           # The strict ANSI mode (-Aa) doesn't like large files.
+           ccflags=`echo " $ccflags "|sed 's@ -Aa @ @g'`
+           case "$ccflags" in
+           *-Ae*) ;;
+           *) ccflags="$ccflags -Ae" ;;
+           esac
+       fi
+
        ;;
 esac
 EOCBU
index 9d9852d..8be23ac 100644 (file)
@@ -77,9 +77,19 @@ esac
 case "$cc" in
 *"cc -n32"*)
 
-       libscheck='case "`/usr/bin/file $xxx`" in
-*N32*) ;;
-*) xxx=/no/n32$xxx ;;
+       # If a library is requested to link against, make sure the
+       # objects in the library are of the same ABI we are compiling
+       # against. Albert Chin-A-Young <china@thewrittenword.com>
+       libscheck='case "$xxx" in
+*.a) /bin/ar p $xxx `/bin/ar t $xxx | /usr/bsd/head -1` >$$.o;
+  case "`/usr/bin/file $$.o`" in
+  *N32*) rm -f $$.o ;;
+  *) rm -f $$.o; xxx=/no/n32$xxx ;;
+  esac ;;
+*) case "`/usr/bin/file $xxx`" in
+  *N32*) ;;
+  *) xxx=/no/n32$xxx ;;
+  esac ;;
 esac'
 
        # NOTE: -L/usr/lib32 -L/lib32 are automatically selected by the linker
index 80fda07..4fb2f89 100644 (file)
@@ -63,7 +63,7 @@ ignore_versioned_solibs='y'
 # intending to replace /usr/bin/perl (at least just yet).
 # This change makes linux consistent with most other unix platforms
 # in having a default of prefix=/usr/local.
-# These notes can probably safely be removed in 5.006_50 and beyond.
+# These notes can probably safely be removed in 5.005_50 and beyond.
 #
 #      9 April 1999  Andy Dougherty  <doughera@lafayette.edu>
 #
index 5ad4dba..b4409c1 100644 (file)
@@ -176,6 +176,30 @@ d_sem=${d_sem:-undef}
 d_shm=${d_shm:-undef}
 fi
 
+
+# As of MachTen 4.1.4 the msg* and shm* are in libc but unimplemented
+# (an attempt to use them causes a runtime error)
+# XXX Configure probe for really functional msg*() is needed XXX
+# XXX Configure probe for really functional shm*() is needed XXX
+if test "$d_msg" = ""; then
+    d_msgget=${d_msgget:-undef}
+    d_msgctl=${d_msgctl:-undef}
+    d_msgsnd=${d_msgsnd:-undef}
+    d_msgrcv=${d_msgrcv:-undef}
+    case "$d_msgget$d_msgsnd$d_msgctl$d_msgrcv" in
+    *"undef"*) d_msg="$undef" ;;
+    esac
+fi
+if test "$d_shm" = ""; then
+    d_shmat=${d_shmat:-undef}
+    d_shmdt=${d_shmdt:-undef}
+    d_shmget=${d_shmget:-undef}
+    d_shmctl=${d_shmctl:-undef}
+    case "$d_shmat$d_shmctl$d_shmdt$d_shmget" in
+    *"undef"*) d_shm="$undef" ;;
+    esac
+fi
+
 # Get rid of some extra libs which it takes Configure a tediously
 # long time never to find on MachTen, or which break perl
 set `echo X "$libswanted "|sed -e 's/ net / /' -e 's/ socket / /' \
index a33cb31..3e447a5 100644 (file)
@@ -6,11 +6,10 @@ echo
 echo 'Compiling Tips:'
 echo 'When you have found that ld complains "multiple defined" error'
 echo 'on linking /lib/libdbm.a, do following instructions.'
-echo '    cd /tmp                                (working on /tmp)'
 echo '    cp /lib/libdbm.a dbm.o                 (copy current libdbm.a)'
 echo '    ar cr libdbm.a dbm.o                   (make archive)'
 echo '    mv /lib/libdbm.a /lib/libdbm.a.backup  (backup original library)'
-echo '    cp /tmp/libdbm.a /lib                  (copy newer one)'
+echo '    cp libdbm.a /lib                       (copy newer one)'
 echo '    ranlib /lib/libdbm.a                   (ranlib for later use)'
 echo
 
index 7e68402..a7d8bf2 100644 (file)
@@ -68,7 +68,11 @@ cat > UU/usethreads.cbu <<'EOCBU'
 case "$usethreads" in
 $define|true|[yY]*)
        # any openbsd version dependencies with pthreads?
+       ccflags="-pthread $ccflags"
+       ldflags="-pthread $ldflags"
        libswanted="$libswanted pthread"
+       # This is strange.
+       usevfork="$undef"
 esac
 EOCBU
 
index ec21bc3..2e46b8c 100644 (file)
@@ -6,19 +6,19 @@
 #  thanks to the authors of the os390.sh
 #
 
-# To get ANSI C, we need to use c89, and ld doesn't exist
+# To get ANSI C, we need to use c89, and ld does not exist
 cc='c89'
 ld='c89'
 
 # C-Flags:
-ccflags='-DPOSIX_BC -DUSE_PURE_BISON -D_XOPEN_SOURCE_EXTENDED'
+ccflags='-K enum_long,llm_case_lower,llm_keep,no_integer_overflow -DPOSIX_BC -DUSE_PURE_BISON -D_XOPEN_SOURCE_EXTENDED'
 
 # Flags on a RISC-Host (SUNRISE):
 if [ -n "`bs2cmd SHOW-SYSTEM-INFO | egrep 'HSI-ATT.*TYPE.*SR'`" ]; then
     echo
     echo "Congratulations, you are running a machine with Sunrise CPUs."
     echo "Let's hope you have the matching RISC compiler as well."
-    ccflags='-K risc_4000 -DPOSIX_BC -DUSE_PURE_BISON -D_XOPEN_SOURCE_EXTENDED'
+    ccflags="-K risc_4000 $ccflags"
     ldflags='-K risc_4000'
 fi
 
@@ -30,7 +30,7 @@ so='none'
 usedl='no'
 dlext='none'
 
-# On BS2000/Posix, libc.a doesn't really hold anything at all,
+# On BS2000/Posix, libc.a does not really hold anything at all,
 # so running nm on it is pretty useless.
 usenm='no'
 
index 547a6e1..4070c01 100644 (file)
@@ -63,6 +63,12 @@ lddlflags='-Zlink=so'
 #
 i_ndbm='undef'
 
+# I have no clude what perl thinks it wants <sys/mode.h> for, but if
+# you include it in a program in PowerMAX without first including
+# <sys/vnode.h> the code don't compile...
+#
+i_sysmode='undef'
+
 # There is a bug in memcmp (which I hope will be fixed soon) which sometimes
 # fails to provide the correct compare status (it is data dependant), so just
 # pretend there is no memcmp...
@@ -85,6 +91,15 @@ useshrplib='false'
 #
 dont_use_nlink=define
 
+# Configure comes up with the wrong type for these for some reason.  The
+# pointers shouldn't have const in them. (And it looks like I have to
+# provide netdb_hlen_type as well becuase when I predefine the others it
+# comes up empty :-).
+#
+netdb_host_type='char *'
+netdb_name_type='char *'
+netdb_hlen_type='int'
+
 # Misc other flags that might be able to change, but I know these work right.
 #
 d_suidsafe='define'
index 5a8cbfa..8aee6d4 100644 (file)
@@ -45,31 +45,53 @@ case "$archname" in
     ;;
 esac
 
-######################################################
-# General sanity testing.  See below for excerpts from the Solaris FAQ.
-
-# From roehrich@ironwood-fddi.cray.com Wed Sep 27 12:51:46 1995
-# Date: Thu, 7 Sep 1995 16:31:40 -0500
-# From: Dean Roehrich <roehrich@ironwood-fddi.cray.com>
-# To: perl5-porters@africa.nicoh.com
-# Subject: Re: On perl5/solaris/gcc
-
-# Here's another draft of the perl5/solaris/gcc sanity-checker. 
-
 test -z "`${cc:-cc} -V 2>&1|grep -i workshop`" || ccisworkshop="$define"
 test -z "`${cc:-cc} -v 2>&1|grep -i gcc`"      || ccisgcc="$define"
 
+cat >UU/workshoplibpth.cbu<<'EOCBU'
+case "$workshoplibpth_done" in
+'')    case "$use64bitall" in
+       "$define"|true|[yY]*)
+            loclibpth="$loclibpth /usr/lib/sparcv9"
+            if test -n "$workshoplibs"; then
+                loclibpth=`echo $loclibpth | sed -e "s% $workshoplibs%%" `
+                for lib in $workshoplibs; do
+                    # Logically, it should be sparcv9.
+                    # But the reality fights back, it's v9.
+                    loclibpth="$loclibpth $lib/sparcv9 $lib/v9"
+                done
+            fi 
+           ;;
+       *)  loclibpth="$loclibpth $workshoplibs"  
+           ;;
+       esac
+       workshoplibpth_done="$define"
+       ;;
+esac
+EOCBU
+
 case "$ccisworkshop" in
 "$define")
        cat >try.c <<EOF
 #include <sunmath.h>
 int main() { return(0); }
 EOF
-       workshoplibs=`cc -### try.c -lsunmath -o try 2>&1|grep " -Y "|sed 's%.* -Y "P,\(.*\)".*%\1%'|tr ':' '\n'|grep '/SUNWspro/'|sort -u`
-       loclibpth="$loclibpth $workshoplibs"
+       workshoplibs=`cc -### try.c -lsunmath -o try 2>&1|grep " -Y "|sed 's%.* -Y "P,\(.*\)".*%\1%'|tr ':' '\n'|grep '/SUNWspro/'`
+       . ./UU/workshoplibpth.cbu
        ;;
 esac
 
+######################################################
+# General sanity testing.  See below for excerpts from the Solaris FAQ.
+#
+# From roehrich@ironwood-fddi.cray.com Wed Sep 27 12:51:46 1995
+# Date: Thu, 7 Sep 1995 16:31:40 -0500
+# From: Dean Roehrich <roehrich@ironwood-fddi.cray.com>
+# To: perl5-porters@africa.nicoh.com
+# Subject: Re: On perl5/solaris/gcc
+#
+# Here's another draft of the perl5/solaris/gcc sanity-checker. 
+
 case `type ${cc:-cc}` in
 */usr/ucb/cc*) cat <<END >&4
 
@@ -392,16 +414,7 @@ Cannot continue, aborting.
 EOM
                exit 1
            fi 
-           if test -n "$workshoplibs"; then
-               loclibpth=`echo $loclibpth | sed -e "s% $workshoplibs%%" `
-               for lib in $workshoplibs; do
-                   # Logically, it should be sparcv9.
-                   # But the reality fights back, it's v9.
-                   loclibpth="$loclibpth $lib/sparcv9 $lib/v9"
-               done
-               loclibpth="$loclibpth $workshoplibs"
-           fi 
-           loclibpth="$loclibpth /usr/lib/sparcv9"
+           . ./UU/workshoplibpth.cbu
            case "$cc -v 2>/dev/null" in
            *gcc*)
                echo 'main() { return 0; }' > try.c
@@ -455,17 +468,18 @@ cat > UU/uselongdouble.cbu <<'EOCBU'
 case "$uselongdouble-$uselongdouble_done" in
 "$define-"|true-|[yY]*-)
        case "$ccisworkshop" in
-       '')     cat <<EOM
-
-I do not see the Sun Workshop compiler; therefore there is no libsunmath.so;
-therefore I cannot do long doubles, sorry.  Cannot continue, aborting.
+       '')     cat >&4 <<EOM
 
+I do not see the Sun Workshop compiler; therefore I do not see
+the libsunmath; therefore I do not know how to do long doubles, sorry.
+I'm disabling the use of long doubles.
 EOM
-               exit 1
+               uselongdouble="$undef"
+               ;;
+       *)      libswanted="$libswanted sunmath"
+               loclibpth="$loclibpth /opt/SUNWspro/lib"
                ;;
        esac
-       libswanted="$libswanted sunmath"
-       loclibpth="$loclibpth /opt/SUNWspro/lib"
        uselongdouble_done=yes
        ;;
 esac
index 7ffd73f..33974f2 100644 (file)
@@ -2,13 +2,19 @@ case `uname -r` in
 6.1*) shellflags="-m+65536" ;;
 esac
 case "$optimize" in
-'') optimize="-O1" ;;
+# If we used fastmd (the default) integer values would be limited to 43 bits.
+# --Mark P. Lutz
+'') optimize="$optimize -h nofastmd" ;;
 esac
-d_setregid='undef'
-d_setreuid='undef'
+# The default is to die on math overflows with an runtime error.
+# Let's not do that. --jhi
+ccflags="$ccflags -h matherror=errno" 
+# Avoid an optimizer bug where a volatile variables
+# isn't correctly saved and restored --Mark P. Lutz 
+pp_ctl_cflags='ccflags="$ccflags -h scalar0 -h vector0"'
 case "$usemymalloc" in
 '') # The perl malloc.c SHOULD work says Ilya.
-    # But for the time being (5.004_68), alas, it doesn't.
+    # But for the time being (5.004_68), alas, it doesn't. --jhi
     # usemymalloc='y'
     # ccflags="$ccflags -DNO_RCHECK"
     usemymalloc='n'
@@ -16,3 +22,6 @@ case "$usemymalloc" in
 esac
 # Configure gets fooled for some reason.  There is no getpgid().
 d_getpgid='undef'
+# These exist but do not really work.
+d_setregid='undef'
+d_setreuid='undef'
index 6113cc3..f3416ff 100644 (file)
@@ -16,3 +16,17 @@ case ":$PATH:" in
     esac
     ;;
 esac
+# As of UNICOS/mk 2.0.5.24 the shm* are in libc but unimplemented
+# (an attempt to use them causes a runtime error)
+# XXX Configure probe for really functional shm*() is needed XXX
+if test "$d_shm" = ""; then
+    d_shmat=${d_shmat:-undef}
+    d_shmdt=${d_shmdt:-undef}
+    d_shmget=${d_shmget:-undef}
+    d_shmctl=${d_shmctl:-undef}
+    case "$d_shmat$d_shmctl$d_shmdt$d_shmget" in
+    *"undef"*) d_shm="$undef" ;;
+    esac
+fi
+
+
index b2ddc84..09ffc80 100755 (executable)
@@ -254,9 +254,9 @@ else {
 mkpath("$installarchlib/CORE", 1, 0777);
 my @corefiles;
 if ($Is_VMS) {  # We did core file selection during build
-    my $coredir = "lib/$Config{'arch'}/$ver";
+    my $coredir = "lib/$Config{archname}/$ver/CORE";
     $coredir =~ tr/./_/;
-    @corefiles = map { s|^$coredir/||i; } <$coredir/*.*>;
+    map { s|^$coredir/||i; } @corefiles = <$coredir/*.*>;
 }
 else {
     # [als] hard-coded 'libperl' name... not good!
index 39d14c9..8ed93f8 100644 (file)
@@ -443,3 +443,5 @@ PERLVAR(IProc,              struct IPerlProc*)
 #if defined(USE_ITHREADS)
 PERLVAR(Iptr_table,    PTR_TBL_t*)
 #endif
+
+PERLVAR(Inullstash,    HV *)           /* illegal symbols end up here */
index f36dcd5..59da474 100644 (file)
@@ -551,7 +551,7 @@ struct IPerlDirInfo
 
 #define PerlDir_mkdir(name, mode)      Mkdir((name), (mode))
 #ifdef VMS
-#  define PerlDir_chdir(n)             chdir(((n) && *(n)) ? (n) : "SYS$LOGIN")
+#  define PerlDir_chdir(n)             Chdir(((n) && *(n)) ? (n) : "SYS$LOGIN")
 #else 
 #  define PerlDir_chdir(name)          chdir((name))
 #endif
index 3e03257..6380554 100644 (file)
@@ -17,12 +17,13 @@ require 5.004;
 # The most recent version and complete docs are available at:
 #   http://stein.cshl.org/WWW/software/CGI/
 
-$CGI::revision = '$Id: CGI.pm,v 1.19 1999/08/31 17:04:37 lstein Exp $';
-$CGI::VERSION='2.56';
+$CGI::revision = '$Id: CGI.pm,v 1.30 2000/03/28 21:31:40 lstein Exp $';
+$CGI::VERSION='2.66';
 
 # HARD-CODED LOCATION FOR FILE UPLOAD TEMPORARY FILES.
 # UNCOMMENT THIS ONLY IF YOU KNOW WHAT YOU'RE DOING.
 # $TempFile::TMPDIRECTORY = '/usr/tmp';
+use CGI::Util qw(rearrange make_attributes unescape escape expires);
 
 # >>>>> Here are some globals that you might want to adjust <<<<<<
 sub initialize_globals {
@@ -31,24 +32,31 @@ sub initialize_globals {
 
     # Change this to the preferred DTD to print in start_html()
     # or use default_dtd('text of DTD to use');
-    $DEFAULT_DTD = '-//IETF//DTD HTML//EN';
+    $DEFAULT_DTD = [ '-//W3C//DTD HTML 4.01 Transitional//EN',
+                    'http://www.w3.org/TR/html4/loose.dtd' ] ;
+
+    # Set this to 1 to enable NOSTICKY scripts
+    # or: 
+    #    1) use CGI qw(-nosticky)
+    #    2) $CGI::nosticky(1)
+    $NOSTICKY = 0;
 
     # Set this to 1 to enable NPH scripts
     # or: 
     #    1) use CGI qw(-nph)
-    #    2) $CGI::nph(1)
+    #    2) CGI::nph(1)
     #    3) print header(-nph=>1)
     $NPH = 0;
 
-    # Set this to 1 to disable debugging from the
-    # command line
-    $NO_DEBUG = 0;
+    # Set this to 1 to enable debugging from @ARGV
+    # Set to 2 to enable debugging from STDIN
+    $DEBUG = 1;
 
     # Set this to 1 to make the temporary files created
     # during file uploads safe from prying eyes
     # or do...
     #    1) use CGI qw(:private_tempfiles)
-    #    2) $CGI::private_tempfiles(1);
+    #    2) CGI::private_tempfiles(1);
     $PRIVATE_TEMPFILES = 0;
 
     # Set this to a positive value to limit the size of a POSTing
@@ -65,7 +73,7 @@ sub initialize_globals {
     $HEADERS_ONCE = 0;
 
     # separate the name=value pairs by semicolons rather than ampersands
-    $USE_PARAM_SEMICOLONS = 0;
+    $USE_PARAM_SEMICOLONS = 1;
 
     # Other globals that you shouldn't worry about.
     undef $Q;
@@ -153,27 +161,6 @@ if ($OS eq 'VMS') {
   $CRLF = "\015\012";
 }
 
-if ($EBCDIC) {
-@A2E = (
-  0,  1,  2,  3, 55, 45, 46, 47, 22,  5, 21, 11, 12, 13, 14, 15,
- 16, 17, 18, 19, 60, 61, 50, 38, 24, 25, 63, 39, 28, 29, 30, 31,
- 64, 90,127,123, 91,108, 80,125, 77, 93, 92, 78,107, 96, 75, 97,
-240,241,242,243,244,245,246,247,248,249,122, 94, 76,126,110,111,
-124,193,194,195,196,197,198,199,200,201,209,210,211,212,213,214,
-215,216,217,226,227,228,229,230,231,232,233,173,224,189, 95,109,
-121,129,130,131,132,133,134,135,136,137,145,146,147,148,149,150,
-151,152,153,162,163,164,165,166,167,168,169,192, 79,208,161,  7,
- 32, 33, 34, 35, 36, 37,  6, 23, 40, 41, 42, 43, 44,  9, 10, 27,
- 48, 49, 26, 51, 52, 53, 54,  8, 56, 57, 58, 59,  4, 20, 62,255,
- 65,170, 74,177,159,178,106,181,187,180,154,138,176,202,175,188,
-144,143,234,250,190,160,182,179,157,218,155,139,183,184,185,171,
-100,101, 98,102, 99,103,158,104,116,113,114,115,120,117,118,119,
-172,105,237,238,235,239,236,191,128,253,254,251,252,186,174, 89,
- 68, 69, 66, 70, 67, 71,156, 72, 84, 81, 82, 83, 88, 85, 86, 87,
-140, 73,205,206,203,207,204,225,112,221,222,219,220,141,142,223
-      );
-}
-
 if ($needs_binmode) {
     $CGI::DefaultClass->binmode(main::STDOUT);
     $CGI::DefaultClass->binmode(main::STDIN);
@@ -184,7 +171,7 @@ if ($needs_binmode) {
                ':html2'=>['h1'..'h6',qw/p br hr ol ul li dl dt dd menu code var strong em
                           tt u i b blockquote pre img a address cite samp dfn html head
                           base body Link nextid title meta kbd start_html end_html
-                          input Select option comment/],
+                          input Select option comment charset escapeHTML/],
                ':html3'=>[qw/div table caption th td TR Tr sup Sub strike applet Param 
                           embed basefont style span layer ilayer font frameset frame script small big/],
                ':netscape'=>[qw/blink fontsize center/],
@@ -195,7 +182,7 @@ if ($needs_binmode) {
                ':cgi'=>[qw/param upload path_info path_translated url self_url script_name cookie Dump
                         raw_cookie request_method query_string Accept user_agent remote_host content_type
                         remote_addr referer server_name server_software server_port server_protocol
-                        virtual_host remote_ident auth_type http use_named_parameters 
+                        virtual_host remote_ident auth_type http
                         save_parameters restore_parameters param_fetch
                         remote_user user_name header redirect import_names put 
                         Delete Delete_all url_param cgi_error/],
@@ -259,9 +246,9 @@ sub new {
     my($class,$initializer) = @_;
     my $self = {};
     bless $self,ref $class || $class || $DefaultClass;
-    if ($MOD_PERL) {
-       Apache->request->register_cleanup(\&CGI::_reset_globals);
-       undef $NPH;
+    if ($MOD_PERL && defined Apache->request) {
+      Apache->request->register_cleanup(\&CGI::_reset_globals);
+      undef $NPH;
     }
     $self->_reset_globals if $PERLEX;
     $self->init($initializer);
@@ -291,10 +278,10 @@ sub param {
     # For compatibility between old calling style and use_named_parameters() style, 
     # we have to special case for a single parameter present.
     if (@p > 1) {
-       ($name,$value,@other) = $self->rearrange([NAME,[DEFAULT,VALUE,VALUES]],@p);
+       ($name,$value,@other) = rearrange([NAME,[DEFAULT,VALUE,VALUES]],@p);
        my(@values);
 
-       if (substr($p[0],0,1) eq '-' || $self->use_named_parameters) {
+       if (substr($p[0],0,1) eq '-') {
            @values = defined($value) ? (ref($value) && ref($value) eq 'ARRAY' ? @{$value} : $value) : ();
        } else {
            foreach ($value,@other) {
@@ -322,7 +309,7 @@ sub self_or_default {
        $Q = $CGI::DefaultClass->new unless defined($Q);
        unshift(@_,$Q);
     }
-    return @_;
+    return wantarray ? @_ : $Q;
 }
 
 sub self_or_CGI {
@@ -432,6 +419,7 @@ sub init {
              $query_string = Apache->request->args;
          } else {
              $query_string = $ENV{'QUERY_STRING'} if defined $ENV{'QUERY_STRING'};
+             $query_string ||= $ENV{'REDIRECT_QUERY_STRING'} if defined $ENV{'REDIRECT_QUERY_STRING'};
          }
          last METHOD;
       }
@@ -450,13 +438,13 @@ sub init {
       # Check the command line and then the standard input for data.
       # We use the shellwords package in order to behave the way that
       # UN*X programmers expect.
-      $query_string = read_from_cmdline() unless $NO_DEBUG;
+      $query_string = read_from_cmdline() if $DEBUG;
   }
 
     # We now have the query string in hand.  We do slightly
     # different things for keyword lists and parameter lists.
     if (defined $query_string && $query_string) {
-       if ($query_string =~ /=/) {
+       if ($query_string =~ /[&=;]/) {
            $self->parse_params($query_string);
        } else {
            $self->add_parameter('keywords');
@@ -479,6 +467,9 @@ sub init {
     # Clear out our default submission button flag if present
     $self->delete('.submit');
     $self->delete('.cgifields');
+
+    # set charset to the safe ISO-8859-1
+    $self->charset('ISO-8859-1');
     $self->save_request unless $initializer;
 }
 
@@ -518,29 +509,6 @@ sub cgi_error {
     return $self->{'.cgi_error'};
 }
 
-# unescape URL-encoded data
-sub unescape {
-  shift() if ref($_[0]) || (defined $_[1] && $_[0] eq $DefaultClass);
-  my $todecode = shift;
-  return undef unless defined($todecode);
-  $todecode =~ tr/+/ /;       # pluses become spaces
-    if ($EBCDIC) {
-      $todecode =~ s/%([0-9a-fA-F]{2})/pack("c",$A2E[hex($1)])/ge;
-    } else {
-      $todecode =~ s/%([0-9a-fA-F]{2})/pack("c",hex($1))/ge;
-    }
-  return $todecode;
-}
-
-# URL-encode data
-sub escape {
-  shift() if ref($_[0]) || (defined $_[1] && $_[0] eq $DefaultClass);
-  my $toencode = shift;
-  return undef unless defined($toencode);
-  $toencode=~s/([^a-zA-Z0-9_.-])/uc sprintf("%%%02x",ord($1))/eg;
-  return $toencode;
-}
-
 sub save_request {
     my($self) = @_;
     # We're going to play with the package globals now so that if we get called
@@ -548,7 +516,8 @@ sub save_request {
     # us to have several of these objects.
     @QUERY_PARAM = $self->param; # save list of parameters
     foreach (@QUERY_PARAM) {
-       $QUERY_PARAM{$_}=$self->{$_};
+      next unless defined $_;
+      $QUERY_PARAM{$_}=$self->{$_};
     }
 }
 
@@ -558,6 +527,7 @@ sub parse_params {
     my($param,$value);
     foreach (@pairs) {
        ($param,$value) = split('=',$_,2);
+       $value = '' unless defined $value;
        $param = unescape($param);
        $value = unescape($value);
        $self->add_parameter($param);
@@ -567,6 +537,7 @@ sub parse_params {
 
 sub add_parameter {
     my($self,$param)=@_;
+    return unless defined $param;
     push (@{$self->{'.parameters'}},$param) 
        unless defined($self->{$param});
 }
@@ -586,16 +557,14 @@ sub binmode {
 sub _make_tag_func {
     my ($self,$tagname) = @_;
     my $func = qq(
-       sub $tagname { 
-           shift if \$_[0] && 
-#              (!ref(\$_[0]) && \$_[0] eq \$CGI::DefaultClass) ||
-                   (ref(\$_[0]) &&
-                    (substr(ref(\$_[0]),0,3) eq 'CGI' ||
-                   UNIVERSAL::isa(\$_[0],'CGI')));
-           
+       sub $tagname {
+            shift if \$_[0] && 
+                    (ref(\$_[0]) &&
+                     (substr(ref(\$_[0]),0,3) eq 'CGI' ||
+                    UNIVERSAL::isa(\$_[0],'CGI')));
            my(\$attr) = '';
            if (ref(\$_[0]) && ref(\$_[0]) eq 'HASH') {
-               my(\@attr) = make_attributes( '',shift() );
+               my(\@attr) = make_attributes(shift()||undef,1);
                \$attr = " \@attr" if \@attr;
            }
        );
@@ -607,7 +576,8 @@ sub _make_tag_func {
        $func .= qq#
            my(\$tag,\$untag) = ("\U<$tagname\E\$attr>","\U</$tagname>\E");
            return \$tag unless \@_;
-           my \@result = map { "\$tag\$_\$untag" } (ref(\$_[0]) eq 'ARRAY') ? \@{\$_[0]} : "\@_";
+           my \@result = map { "\$tag\$_\$untag" } 
+                              (ref(\$_[0]) eq 'ARRAY') ? \@{\$_[0]} : "\@_";
            return "\@result";
             }#;
     }
@@ -620,47 +590,6 @@ sub AUTOLOAD {
     goto &$func;
 }
 
-# PRIVATE SUBROUTINE
-# Smart rearrangement of parameters to allow named parameter
-# calling.  We do the rearangement if:
-# 1. The first parameter begins with a -
-# 2. The use_named_parameters() method returns true
-sub rearrange {
-    my($self,$order,@param) = @_;
-    return () unless @param;
-
-    if (ref($param[0]) eq 'HASH') {
-       @param = %{$param[0]};
-    } else {
-       return @param 
-           unless (defined($param[0]) && substr($param[0],0,1) eq '-')
-               || $self->use_named_parameters;
-    }
-
-    # map parameters into positional indices
-    my ($i,%pos);
-    $i = 0;
-    foreach (@$order) {
-       foreach (ref($_) eq 'ARRAY' ? @$_ : $_) { $pos{$_} = $i; }
-       $i++;
-    }
-
-    my (@result,%leftover);
-    $#result = $#$order;  # preextend
-    while (@param) {
-       my $key = uc(shift(@param));
-       $key =~ s/^\-//;
-       if (exists $pos{$key}) {
-           $result[$pos{$key}] = shift(@param);
-       } else {
-           $leftover{$key} = shift(@param);
-       }
-    }
-
-    push (@result,$self->make_attributes(\%leftover)) if %leftover;
-    @result;
-}
-
 sub _compile {
     my($func) = $AUTOLOAD;
     my($pack,$func_name);
@@ -711,8 +640,11 @@ sub _setup_symbols {
     foreach (@_) {
        $HEADERS_ONCE++,         next if /^[:-]unique_headers$/;
        $NPH++,                  next if /^[:-]nph$/;
-       $NO_DEBUG++,             next if /^[:-]no_?[Dd]ebug$/;
+       $NOSTICKY++,             next if /^[:-]nosticky$/;
+       $DEBUG=0,                next if /^[:-]no_?[Dd]ebug$/;
+       $DEBUG=2,                next if /^[:-][Dd]ebug$/;
        $USE_PARAM_SEMICOLONS++, next if /^[:-]newstyle_urls$/;
+       $USE_PARAM_SEMICOLONS=0, next if /^[:-]oldstyle_urls$/;
        $PRIVATE_TEMPFILES++,    next if /^[:-]private_tempfiles$/;
        $EXPORT{$_}++,           next if /^[:-]any$/;
        $compile++,              next if /^[:-]compile$/;
@@ -736,6 +668,12 @@ sub _setup_symbols {
     _compile_all(keys %EXPORT) if $compile;
 }
 
+sub charset {
+  my ($self,$charset) = self_or_default(@_);
+  $self->{'.charset'} = $charset if defined $charset;
+  $self->{'.charset'};
+}
+
 ###############################################################################
 ################# THESE FUNCTIONS ARE AUTOLOADED ON DEMAND ####################
 ###############################################################################
@@ -756,21 +694,6 @@ END_OF_FUNC
 sub SERVER_PUSH { 'multipart/x-mixed-replace; boundary="' . shift() . '"'; }
 END_OF_FUNC
 
-'use_named_parameters' => <<'END_OF_FUNC',
-#### Method: use_named_parameters
-# Force CGI.pm to use named parameter-style method calls
-# rather than positional parameters.  The same effect
-# will happen automatically if the first parameter
-# begins with a -.
-sub use_named_parameters {
-    my($self,$use_named) = self_or_default(@_);
-    return $self->{'.named'} unless defined ($use_named);
-
-    # stupidity to avoid annoying warnings
-    return $self->{'.named'}=$use_named;
-}
-END_OF_FUNC
-
 'new_MultipartBuffer' => <<'END_OF_FUNC',
 # Create a new multipart buffer
 sub new_MultipartBuffer {
@@ -920,13 +843,16 @@ END_OF_FUNC
 'TIEHASH' => <<'END_OF_FUNC',
 sub TIEHASH { 
     return $_[1] if defined $_[1];
-    return $Q || new shift;
+    return $Q ||= new shift;
 }
 END_OF_FUNC
 
 'STORE' => <<'END_OF_FUNC',
 sub STORE {
-    $_[0]->param($_[1],split("\0",$_[2]));
+    my $self = shift;
+    my $tag  = shift;
+    my @vals = split("\0",shift);
+    $self->param(-name=>$tag,-value=>\@vals);
 }
 END_OF_FUNC
 
@@ -976,7 +902,7 @@ END_OF_FUNC
 'append' => <<'EOF',
 sub append {
     my($self,@p) = @_;
-    my($name,$value) = $self->rearrange([NAME,[VALUE,VALUES]],@p);
+    my($name,$value) = rearrange([NAME,[VALUE,VALUES]],@p);
     my(@values) = defined($value) ? (ref($value) ? @{$value} : $value) : ();
     if (@values) {
        $self->add_parameter($name);
@@ -1030,21 +956,6 @@ sub version {
 }
 END_OF_FUNC
 
-'make_attributes' => <<'END_OF_FUNC',
-sub make_attributes {
-    my($self,$attr) = @_;
-    return () unless $attr && ref($attr) && ref($attr) eq 'HASH';
-    my(@att);
-    foreach (keys %{$attr}) {
-       my($key) = $_;
-       $key=~s/^\-//;     # get rid of initial - if present
-       $key=~tr/a-z_/A-Z-/; # parameters are upper case, use dashes
-       push(@att,defined($attr->{$_}) ? qq/$key="$attr->{$_}"/ : qq/$key/);
-    }
-    return @att;
-}
-END_OF_FUNC
-
 #### Method: url_param
 # Return a parameter in the QUERY_STRING, regardless of
 # whether this was a POST or a GET
@@ -1076,13 +987,13 @@ sub url_param {
 }
 END_OF_FUNC
 
-#### Method: dump
+#### Method: Dump
 # Returns a string in which all the known parameter/value 
 # pairs are represented as nested lists, mainly for the purposes 
 # of debugging.
 ####
-'dump' => <<'END_OF_FUNC',
-sub dump {
+'Dump' => <<'END_OF_FUNC',
+sub Dump {
     my($self) = self_or_default(@_);
     my($param,$value,@result);
     return '<UL></UL>' unless $self->param;
@@ -1109,7 +1020,7 @@ END_OF_FUNC
 ####
 'as_string' => <<'END_OF_FUNC',
 sub as_string {
-    &dump(@_);
+    &Dump(@_);
 }
 END_OF_FUNC
 
@@ -1167,7 +1078,7 @@ END_OF_FUNC
 'multipart_init' => <<'END_OF_FUNC',
 sub multipart_init {
     my($self,@p) = self_or_default(@_);
-    my($boundary,@other) = $self->rearrange([BOUNDARY],@p);
+    my($boundary,@other) = rearrange([BOUNDARY],@p);
     $boundary = $boundary || '------- =_aaaaaaaaaa0';
     $self->{'separator'} = "\n--$boundary\n";
     $type = SERVER_PUSH($boundary);
@@ -1189,7 +1100,7 @@ END_OF_FUNC
 'multipart_start' => <<'END_OF_FUNC',
 sub multipart_start {
     my($self,@p) = self_or_default(@_);
-    my($type,@other) = $self->rearrange([TYPE],@p);
+    my($type,@other) = rearrange([TYPE],@p);
     $type = $type || 'text/html';
     return $self->header(
        -type => $type,
@@ -1224,11 +1135,18 @@ sub header {
 
     return undef if $self->{'.header_printed'}++ and $HEADERS_ONCE;
 
-    my($type,$status,$cookie,$target,$expires,$nph,@other) = 
-       $self->rearrange([['TYPE','CONTENT_TYPE','CONTENT-TYPE'],
-                         STATUS,[COOKIE,COOKIES],TARGET,EXPIRES,NPH],@p);
+    my($type,$status,$cookie,$target,$expires,$nph,$charset,@other) = 
+       rearrange([['TYPE','CONTENT_TYPE','CONTENT-TYPE'],
+                           'STATUS',['COOKIE','COOKIES'],'TARGET',
+                            'EXPIRES','NPH','CHARSET'],@p);
+
+    $nph     ||= $NPH;
+    if (defined $charset) {
+      $self->charset($charset);
+    } else {
+      $charset = $self->charset;
+    }
 
-    $nph ||= $NPH;
     # rearrange() was designed for the HTML portion, so we
     # need to fix it up a little.
     foreach (@other) {
@@ -1237,6 +1155,7 @@ sub header {
     }
 
     $type ||= 'text/html' unless defined($type);
+    $type .= "; charset=$charset" if $type ne '' and $type !~ /\bcharset\b/;
 
     # Maybe future compatibility.  Maybe not.
     my $protocol = $ENV{SERVER_PROTOCOL} || 'HTTP/1.0';
@@ -1296,7 +1215,7 @@ END_OF_FUNC
 'redirect' => <<'END_OF_FUNC',
 sub redirect {
     my($self,@p) = self_or_default(@_);
-    my($url,$target,$cookie,$nph,@other) = $self->rearrange([[LOCATION,URI,URL],TARGET,COOKIE,NPH],@p);
+    my($url,$target,$cookie,$nph,@other) = rearrange([[LOCATION,URI,URL],TARGET,COOKIE,NPH],@p);
     $url = $url || $self->self_url;
     my(@o);
     foreach (@other) { tr/\"//d; push(@o,split("=",$_,2)); }
@@ -1335,15 +1254,27 @@ END_OF_FUNC
 sub start_html {
     my($self,@p) = &self_or_default(@_);
     my($title,$author,$base,$xbase,$script,$noscript,$target,$meta,$head,$style,$dtd,@other) = 
-       $self->rearrange([TITLE,AUTHOR,BASE,XBASE,SCRIPT,NOSCRIPT,TARGET,META,HEAD,STYLE,DTD],@p);
+       rearrange([TITLE,AUTHOR,BASE,XBASE,SCRIPT,NOSCRIPT,TARGET,META,HEAD,STYLE,DTD],@p);
 
     # strangely enough, the title needs to be escaped as HTML
     # while the author needs to be escaped as a URL
     $title = $self->escapeHTML($title || 'Untitled Document');
     $author = $self->escape($author);
     my(@result);
-    $dtd = $DEFAULT_DTD unless $dtd && $dtd =~ m|^-//|;
-    push(@result,qq(<!DOCTYPE HTML PUBLIC "$dtd">)) if $dtd;
+    if ($dtd) {
+        if (ref $dtd && $ref eq 'ARRAY') {
+            $dtd = $DEFAULT_DTD unless $dtd->[0] =~ m|^-//|;
+        } else {
+            $dtd = $DEFAULT_DTD unless $dtd =~ m|^-//|;
+        }
+    } else {
+        $dtd = $DEFAULT_DTD;
+    }
+    if (ref($dtd) && ref($dtd) eq 'ARRAY') {
+        push(@result,qq(<!DOCTYPE HTML PUBLIC "$dtd->[0]"\n\t"$dtd->[1]">));
+    } else {
+        push(@result,qq(<!DOCTYPE HTML PUBLIC "$dtd">));
+    }
     push(@result,"<HTML><HEAD><TITLE>$title</TITLE>");
     push(@result,"<LINK REV=MADE HREF=\"mailto:$author\">") if defined $author;
 
@@ -1386,7 +1317,7 @@ sub _style {
     my $type = 'text/css';
     if (ref($style)) {
        my($src,$code,$stype,@other) =
-           $self->rearrange([SRC,CODE,TYPE],
+           rearrange([SRC,CODE,TYPE],
                             '-foo'=>'bar',     # a trick to allow the '-' to be omitted
                             ref($style) eq 'ARRAY' ? @$style : %$style);
        $type = $stype if $stype;
@@ -1408,21 +1339,32 @@ sub _script {
     foreach $script (@scripts) {
        my($src,$code,$language);
        if (ref($script)) { # script is a hash
-           ($src,$code,$language) =
-               $self->rearrange([SRC,CODE,LANGUAGE],
+           ($src,$code,$language, $type) =
+               rearrange([SRC,CODE,LANGUAGE,TYPE],
                                 '-foo'=>'bar', # a trick to allow the '-' to be omitted
                                 ref($script) eq 'ARRAY' ? @$script : %$script);
-           
+            # User may not have specified language
+            $language ||= 'JavaScript';
+            unless (defined $type) {
+                $type = lc $language;
+                # strip '1.2' from 'javascript1.2'
+                $type =~ s/^(\D+).*$/text\/$1/;
+            }
        } else {
-           ($src,$code,$language) = ('',$script,'JavaScript');
+           ($src,$code,$language, $type) = ('',$script,'JavaScript', 'text/javascript');
        }
        my(@satts);
        push(@satts,'src'=>$src) if $src;
-       push(@satts,'language'=>$language || 'JavaScript');
+       push(@satts,'language'=>$language);
+        push(@satts,'type'=>$type);
        $code = "<!-- Hide script\n$code\n// End script hiding -->"
-           if $code && $language=~/javascript/i;
+           if $code && $type=~/javascript/i;
+       $code = "<!-- Hide script\n$code\n\# End script hiding -->"
+           if $code && $type=~/perl/i;
        $code = "<!-- Hide script\n$code\n\# End script hiding -->"
-           if $code && $language=~/perl/i;
+           if $code && $type=~/tcl/i;
+        $code = "<!-- Hide script\n$code\n' End script hiding -->"
+            if $code && $type=~/vbscript/i;
        push(@result,script({@satts},$code || ''));
     }
     @result;
@@ -1453,7 +1395,7 @@ END_OF_FUNC
 'isindex' => <<'END_OF_FUNC',
 sub isindex {
     my($self,@p) = self_or_default(@_);
-    my($action,@other) = $self->rearrange([ACTION],@p);
+    my($action,@other) = rearrange([ACTION],@p);
     $action = qq/ACTION="$action"/ if $action;
     my($other) = @other ? " @other" : '';
     return "<ISINDEX $action$other>";
@@ -1472,7 +1414,7 @@ sub startform {
     my($self,@p) = self_or_default(@_);
 
     my($method,$action,$enctype,@other) = 
-       $self->rearrange([METHOD,ACTION,ENCTYPE],@p);
+       rearrange([METHOD,ACTION,ENCTYPE],@p);
 
     $method = $method || 'POST';
     $enctype = $enctype || &URL_ENCODED;
@@ -1504,14 +1446,13 @@ END_OF_FUNC
 'start_multipart_form' => <<'END_OF_FUNC',
 sub start_multipart_form {
     my($self,@p) = self_or_default(@_);
-    if ($self->use_named_parameters || 
-       (defined($param[0]) && substr($param[0],0,1) eq '-')) {
+    if (defined($param[0]) && substr($param[0],0,1) eq '-') {
        my(%p) = @p;
        $p{'-enctype'}=&MULTIPART;
        return $self->startform(%p);
     } else {
        my($method,$action,@other) = 
-           $self->rearrange([METHOD,ACTION],@p);
+           rearrange([METHOD,ACTION],@p);
        return $self->startform($method,$action,&MULTIPART,@other);
     }
 }
@@ -1523,8 +1464,12 @@ END_OF_FUNC
 'endform' => <<'END_OF_FUNC',
 sub endform {
     my($self,@p) = self_or_default(@_);    
+    if ( $NOSTICKY ) {
+    return wantarray ? ("</FORM>") : "\n</FORM>";
+    } else {
     return wantarray ? ($self->get_fields,"</FORM>") : 
                         $self->get_fields ."\n</FORM>";
+    }
 }
 END_OF_FUNC
 
@@ -1542,7 +1487,7 @@ END_OF_FUNC
 sub _textfield {
     my($self,$tag,@p) = self_or_default(@_);
     my($name,$default,$size,$maxlength,$override,@other) = 
-       $self->rearrange([NAME,[DEFAULT,VALUE],SIZE,MAXLENGTH,[OVERRIDE,FORCE]],@p);
+       rearrange([NAME,[DEFAULT,VALUE],SIZE,MAXLENGTH,[OVERRIDE,FORCE]],@p);
 
     my $current = $override ? $default : 
        (defined($self->param($name)) ? $self->param($name) : $default);
@@ -1626,7 +1571,7 @@ sub textarea {
     my($self,@p) = self_or_default(@_);
     
     my($name,$default,$rows,$cols,$override,@other) =
-       $self->rearrange([NAME,[DEFAULT,VALUE],ROWS,[COLS,COLUMNS],[OVERRIDE,FORCE]],@p);
+       rearrange([NAME,[DEFAULT,VALUE],ROWS,[COLS,COLUMNS],[OVERRIDE,FORCE]],@p);
 
     my($current)= $override ? $default :
        (defined($self->param($name)) ? $self->param($name) : $default);
@@ -1655,7 +1600,7 @@ END_OF_FUNC
 sub button {
     my($self,@p) = self_or_default(@_);
 
-    my($label,$value,$script,@other) = $self->rearrange([NAME,[VALUE,LABEL],
+    my($label,$value,$script,@other) = rearrange([NAME,[VALUE,LABEL],
                                                         [ONCLICK,SCRIPT]],@p);
 
     $label=$self->escapeHTML($label);
@@ -1687,12 +1632,12 @@ END_OF_FUNC
 sub submit {
     my($self,@p) = self_or_default(@_);
 
-    my($label,$value,@other) = $self->rearrange([NAME,[VALUE,LABEL]],@p);
+    my($label,$value,@other) = rearrange([NAME,[VALUE,LABEL]],@p);
 
     $label=$self->escapeHTML($label);
     $value=$self->escapeHTML($value);
 
-    my($name) = ' NAME=".submit"';
+    my($name) = ' NAME=".submit"' unless $NOSTICKY;
     $name = qq/ NAME="$label"/ if defined($label);
     $value = defined($value) ? $value : $label;
     my($val) = '';
@@ -1713,7 +1658,7 @@ END_OF_FUNC
 'reset' => <<'END_OF_FUNC',
 sub reset {
     my($self,@p) = self_or_default(@_);
-    my($label,@other) = $self->rearrange([NAME],@p);
+    my($label,@other) = rearrange([NAME],@p);
     $label=$self->escapeHTML($label);
     my($value) = defined($label) ? qq/ VALUE="$label"/ : '';
     my($other) = @other ? " @other" : '';
@@ -1737,7 +1682,7 @@ END_OF_FUNC
 sub defaults {
     my($self,@p) = self_or_default(@_);
 
-    my($label,@other) = $self->rearrange([[NAME,VALUE]],@p);
+    my($label,@other) = rearrange([[NAME,VALUE]],@p);
 
     $label=$self->escapeHTML($label);
     $label = $label || "Defaults";
@@ -1775,7 +1720,7 @@ sub checkbox {
     my($self,@p) = self_or_default(@_);
 
     my($name,$checked,$value,$label,$override,@other) = 
-       $self->rearrange([NAME,[CHECKED,SELECTED,ON],VALUE,LABEL,[OVERRIDE,FORCE]],@p);
+       rearrange([NAME,[CHECKED,SELECTED,ON],VALUE,LABEL,[OVERRIDE,FORCE]],@p);
     
     $value = defined $value ? $value : 'on';
 
@@ -1823,7 +1768,7 @@ sub checkbox_group {
 
     my($name,$values,$defaults,$linebreak,$labels,$rows,$columns,
        $rowheaders,$colheaders,$override,$nolabels,@other) =
-       $self->rearrange([NAME,[VALUES,VALUE],[DEFAULTS,DEFAULT],
+       rearrange([NAME,[VALUES,VALUE],[DEFAULTS,DEFAULT],
                          LINEBREAK,LABELS,ROWS,[COLUMNS,COLS],
                          ROWHEADERS,COLHEADERS,
                          [OVERRIDE,FORCE],NOLABELS],@p);
@@ -1865,11 +1810,20 @@ sub escapeHTML {
     my ($self,$toencode) = self_or_default(@_);
     return undef unless defined($toencode);
     return $toencode if ref($self) && $self->{'dontescape'};
-
-    $toencode=~s/&/&amp;/g;
-    $toencode=~s/\"/&quot;/g;
-    $toencode=~s/>/&gt;/g;
-    $toencode=~s/</&lt;/g;
+    if (uc $self->{'.charset'} eq 'ISO-8859-1') {
+       # fix non-compliant bug in IE and Netscape
+       $toencode =~ s{(.)}{
+              if    ($1 eq '<')                            { '&lt;'    }
+              elsif ($1 eq '>')                            { '&gt;'    }
+              elsif ($1 eq '&')                            { '&amp;'   }
+              elsif ($1 eq '"')                            { '&quot;'  }
+              elsif ($1 eq "\x8b")                         { '&#139;'  }
+              elsif ($1 eq "\x9b")                         { '&#155;'  }
+              else                                         { $1        }
+       }gsex;
+     } else {
+        $toencode =~ s/(.)/'&#'.ord($1).';'/gsex;
+     }
     return $toencode;
 }
 END_OF_FUNC
@@ -1911,7 +1865,7 @@ sub _tableize {
     $result = "<TABLE>";
     my($row,$column);
     unshift(@$colheaders,'') if @$colheaders && @$rowheaders;
-    $result .= "<TR>" if @$colheaders;
+    $result .= "<TR>" if @{$colheaders};
     foreach (@{$colheaders}) {
        $result .= "<TH>$_</TH>";
     }
@@ -1953,7 +1907,7 @@ sub radio_group {
 
     my($name,$values,$default,$linebreak,$labels,
        $rows,$columns,$rowheaders,$colheaders,$override,$nolabels,@other) =
-       $self->rearrange([NAME,[VALUES,VALUE],DEFAULT,LINEBREAK,LABELS,
+       rearrange([NAME,[VALUES,VALUE],DEFAULT,LINEBREAK,LABELS,
                          ROWS,[COLUMNS,COLS],
                          ROWHEADERS,COLHEADERS,
                          [OVERRIDE,FORCE],NOLABELS],@p);
@@ -2011,7 +1965,7 @@ sub popup_menu {
     my($self,@p) = self_or_default(@_);
 
     my($name,$values,$default,$labels,$override,@other) =
-       $self->rearrange([NAME,[VALUES,VALUE],[DEFAULT,DEFAULTS],LABELS,[OVERRIDE,FORCE]],@p);
+       rearrange([NAME,[VALUES,VALUE],[DEFAULT,DEFAULTS],LABELS,[OVERRIDE,FORCE]],@p);
     my($result,$selected);
 
     if (!$override && defined($self->param($name))) {
@@ -2065,7 +2019,7 @@ END_OF_FUNC
 sub scrolling_list {
     my($self,@p) = self_or_default(@_);
     my($name,$values,$defaults,$size,$multiple,$labels,$override,@other)
-       = $self->rearrange([NAME,[VALUES,VALUE],[DEFAULTS,DEFAULT],
+       = rearrange([NAME,[VALUES,VALUE],[DEFAULTS,DEFAULT],
                            SIZE,MULTIPLE,LABELS,[OVERRIDE,FORCE]],@p);
 
     my($result,@values);
@@ -2086,7 +2040,7 @@ sub scrolling_list {
        $label = $labels->{$_} if defined($labels) && defined($labels->{$_});
        $label=$self->escapeHTML($label);
        my($value)=$self->escapeHTML($_);
-       $result .= "<OPTION $selectit VALUE=\"$value\">$label\n";
+       $result .= "<OPTION $selectit VALUE=\"$value\">$label</OPTION>\n";
     }
     $result .= "</SELECT>\n";
     $self->register_parameter($name);
@@ -2112,10 +2066,10 @@ sub hidden {
     # calling scheme, so we have to special-case (darn)
     my(@result,@value);
     my($name,$default,$override,@other) = 
-       $self->rearrange([NAME,[DEFAULT,VALUE,VALUES],[OVERRIDE,FORCE]],@p);
+       rearrange([NAME,[DEFAULT,VALUE,VALUES],[OVERRIDE,FORCE]],@p);
 
     my $do_override = 0;
-    if ( ref($p[0]) || substr($p[0],0,1) eq '-' || $self->use_named_parameters ) {
+    if ( ref($p[0]) || substr($p[0],0,1) eq '-') {
        @value = ref($default) ? @{$default} : $default;
        $do_override = $override;
     } else {
@@ -2151,7 +2105,7 @@ sub image_button {
     my($self,@p) = self_or_default(@_);
 
     my($name,$src,$alignment,@other) =
-       $self->rearrange([NAME,SRC,ALIGN],@p);
+       rearrange([NAME,SRC,ALIGN],@p);
 
     my($align) = $alignment ? " ALIGN=\U$alignment" : '';
     my($other) = @other ? " @other" : '';
@@ -2192,7 +2146,7 @@ END_OF_FUNC
 sub url {
     my($self,@p) = self_or_default(@_);
     my ($relative,$absolute,$full,$path_info,$query) = 
-       $self->rearrange(['RELATIVE','ABSOLUTE','FULL',['PATH','PATH_INFO'],['QUERY','QUERY_STRING']],@p);
+       rearrange(['RELATIVE','ABSOLUTE','FULL',['PATH','PATH_INFO'],['QUERY','QUERY_STRING']],@p);
     my $url;
     $full++ if !($relative || $absolute);
 
@@ -2204,8 +2158,10 @@ sub url {
         # strip query string
         substr($script_name,$index) = '' if ($index = index($script_name,'?')) >= 0;
         # and path
-        substr($script_name,$index) = '' if exists($ENV{PATH_INFO})
-                                     and ($index = rindex($script_name,$ENV{PATH_INFO})) >= 0;
+        if (exists($ENV{PATH_INFO})) {
+           my $decoded_path = unescape($ENV{PATH_INFO});
+           substr($script_name,$index) = '' if ($index = rindex($script_name,$decoded_path)) >= 0;
+         }
     } else {
        $script_name = $self->script_name;
     }
@@ -2231,6 +2187,8 @@ sub url {
     }
     $url .= $path if $path_info and defined $path;
     $url .= "?" . $self->query_string if $query and $self->query_string;
+    $url = '' unless defined $url;
+    $url =~ s/([^a-zA-Z0-9_.%;&?\/\\:+=~-])/uc sprintf("%%%02x",ord($1))/eg;
     return $url;
 }
 
@@ -2252,7 +2210,7 @@ END_OF_FUNC
 sub cookie {
     my($self,@p) = self_or_default(@_);
     my($name,$value,$path,$domain,$secure,$expires) =
-       $self->rearrange([NAME,[VALUE,VALUES],PATH,DOMAIN,SECURE,EXPIRES],@p);
+       rearrange([NAME,[VALUE,VALUES],PATH,DOMAIN,SECURE,EXPIRES],@p);
 
     require CGI::Cookie;
 
@@ -2285,69 +2243,6 @@ sub cookie {
 }
 END_OF_FUNC
 
-# This internal routine creates an expires time exactly some number of
-# hours from the current time.  It incorporates modifications from 
-# Mark Fisher.
-'expire_calc' => <<'END_OF_FUNC',
-sub expire_calc {
-    my($time) = @_;
-    my(%mult) = ('s'=>1,
-                 'm'=>60,
-                 'h'=>60*60,
-                 'd'=>60*60*24,
-                 'M'=>60*60*24*30,
-                 'y'=>60*60*24*365);
-    # format for time can be in any of the forms...
-    # "now" -- expire immediately
-    # "+180s" -- in 180 seconds
-    # "+2m" -- in 2 minutes
-    # "+12h" -- in 12 hours
-    # "+1d"  -- in 1 day
-    # "+3M"  -- in 3 months
-    # "+2y"  -- in 2 years
-    # "-3m"  -- 3 minutes ago(!)
-    # If you don't supply one of these forms, we assume you are
-    # specifying the date yourself
-    my($offset);
-    if (!$time || (lc($time) eq 'now')) {
-        $offset = 0;
-    } elsif ($time=~/^\d+/) {
-        return $time;
-    } elsif ($time=~/^([+-]?(?:\d+|\d*\.\d*))([mhdMy]?)/) {
-        $offset = ($mult{$2} || 1)*$1;
-    } else {
-        return $time;
-    }
-    return (time+$offset);
-}
-END_OF_FUNC
-
-# This internal routine creates date strings suitable for use in
-# cookies and HTTP headers.  (They differ, unfortunately.)
-# Thanks to Mark Fisher for this.
-'expires' => <<'END_OF_FUNC',
-sub expires {
-    my($time,$format) = @_;
-    $format ||= 'http';
-
-    my(@MON)=qw/Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec/;
-    my(@WDAY) = qw/Sun Mon Tue Wed Thu Fri Sat/;
-
-    # pass through preformatted dates for the sake of expire_calc()
-    $time = expire_calc($time);
-    return $time unless $time =~ /^\d+$/;
-
-    # make HTTP/cookie date string from GMT'ed time
-    # (cookies use '-' as date separator, HTTP uses ' ')
-    my($sc) = ' ';
-    $sc = '-' if $format eq "cookie";
-    my($sec,$min,$hour,$mday,$mon,$year,$wday) = gmtime($time);
-    $year += 1900;
-    return sprintf("%s, %02d$sc%s$sc%04d %02d:%02d:%02d GMT",
-                   $WDAY[$wday],$mday,$MON[$mon],$year,$hour,$min,$sec);
-}
-END_OF_FUNC
-
 'parse_keywordlist' => <<'END_OF_FUNC',
 sub parse_keywordlist {
     my($self,$tosplit) = @_;
@@ -2361,7 +2256,7 @@ END_OF_FUNC
 'param_fetch' => <<'END_OF_FUNC',
 sub param_fetch {
     my($self,@p) = self_or_default(@_);
-    my($name) = $self->rearrange([NAME],@p);
+    my($name) = rearrange([NAME],@p);
     unless (exists($self->{$name})) {
        $self->add_parameter($name);
        $self->{$name} = [];
@@ -2730,6 +2625,17 @@ sub user_name {
 }
 END_OF_FUNC
 
+#### Method: nosticky
+# Set or return the NOSTICKY global flag
+####
+'nosticky' => <<'END_OF_FUNC',
+sub nosticky {
+    my ($self,$param) = self_or_CGI(@_);
+    $CGI::NOSTICKY = $param if defined($param);
+    return $CGI::NOSTICKY;
+}
+END_OF_FUNC
+
 #### Method: nph
 # Set or return the NPH global flag
 ####
@@ -2757,8 +2663,12 @@ END_OF_FUNC
 ####
 'default_dtd' => <<'END_OF_FUNC',
 sub default_dtd {
-    my ($self,$param) = self_or_CGI(@_);
-    $CGI::DEFAULT_DTD = $param if defined($param);
+    my ($self,$param,$param2) = self_or_CGI(@_);
+    if (defined $param2 && defined $param) {
+        $CGI::DEFAULT_DTD = [ $param, $param2 ];
+    } elsif (defined $param) {
+        $CGI::DEFAULT_DTD = $param;
+    }
     return $CGI::DEFAULT_DTD;
 }
 END_OF_FUNC
@@ -2803,9 +2713,9 @@ END_OF_FUNC
 sub read_from_cmdline {
     my($input,@words);
     my($query_string);
-    if (@ARGV) {
+    if ($DEBUG && @ARGV) {
        @words = @ARGV;
-    } else {
+    } elsif ($DEBUG > 1) {
        require "shellwords.pl";
        print STDERR "(offline mode: enter name=value pairs on standard input)\n";
        chomp(@lines = <STDIN>); # remove newlines
@@ -3010,7 +2920,9 @@ END_OF_FUNC
 sub new {
     my($pack,$name,$file,$delete) = @_;
     require Fcntl unless defined &Fcntl::O_RDWR;
-    my $ref = \*{'Fh::' .  ++$FH . quotemeta($name)};
+    my $fv = ('Fh::' .  ++$FH . quotemeta($name));
+    warn unless *{$fv};
+    my $ref = \*{$fv};
     sysopen($ref,$file,Fcntl::O_RDWR()|Fcntl::O_CREAT()|Fcntl::O_EXCL(),0600) || return;
     unlink($file) if $delete;
     CORE::delete $Fh::{$FH};
@@ -3073,6 +2985,7 @@ sub new {
 
     # Netscape seems to be a little bit unreliable
     # about providing boundary strings.
+    my $boundary_read = 0;
     if ($boundary) {
 
        # Under the MIME spec, the boundary consists of the 
@@ -3089,6 +3002,7 @@ sub new {
        $length -= length($boundary);
        chomp($boundary);               # remove the CRLF
        $/ = $old;                      # restore old line separator
+        $boundary_read++;
     }
 
     my $self = {LENGTH=>$length,
@@ -3104,7 +3018,9 @@ sub new {
     my $retval = bless $self,ref $package || $package;
 
     # Read the preamble and the topmost (boundary) line plus the CRLF.
-    while ($self->read(0)) { }
+    unless ($boundary_read) {
+      while ($self->read(0)) { }
+    }
     die "Malformed multipart POST\n" if $self->eof;
 
     return $retval;
@@ -3118,9 +3034,7 @@ sub readHeader {
     my($ok) = 0;
     my($bad) = 0;
 
-    if ($CGI::OS eq 'VMS') {  # tssk, tssk: inconsistency alert!
-       local($CRLF) = "\015\012";
-    }
+    local($CRLF) = "\015\012" if $CGI::OS eq 'VMS';
 
     do {
        $self->fillBuffer($FILLUNIT);
@@ -3280,17 +3194,18 @@ my ($vol) = $MAC ? MacPerl::Volumes() =~ /:(.*)/ : "";
 unless ($TMPDIRECTORY) {
     @TEMP=("${SL}usr${SL}tmp","${SL}var${SL}tmp",
           "C:${SL}temp","${SL}tmp","${SL}temp",
-          "${vol}${SL}Temporary Items","${SL}sys\$scratch",
-          "${SL}WWW_ROOT");
+          "${vol}${SL}Temporary Items",
+           "${SL}WWW_ROOT", "${SL}SYS\$SCRATCH");
     unshift(@TEMP,$ENV{'TMPDIR'}) if exists $ENV{'TMPDIR'};
 
-    #
+    # this feature was supposed to provide per-user tmpfiles, but
+    # it is problematic.
     #    unshift(@TEMP,(getpwuid($<))[7].'/tmp') if $CGI::OS eq 'UNIX';
     # Rob: getpwuid() is unfortunately UNIX specific. On brain dead OS'es this
     #    : can generate a 'getpwuid() not implemented' exception, even though
     #    : it's never called.  Found under DOS/Win with the DJGPP perl port.
     #    : Refer to getpwuid() only at run-time if we're fortunate and have  UNIX.
-    unshift(@TEMP,(eval {(getpwuid($<))[7]}).'/tmp') if $CGI::OS eq 'UNIX';
+    # unshift(@TEMP,(eval {(getpwuid($>))[7]}).'/tmp') if $CGI::OS eq 'UNIX' and $> != 0;
 
     foreach (@TEMP) {
        do {$TMPDIRECTORY = $_; last} if -d $_ && -w _;
@@ -3319,7 +3234,7 @@ sub new {
        last if ! -f ($filename = sprintf("${TMPDIRECTORY}${SL}CGItemp%d",$sequence++));
     }
     # untaint the darn thing
-    return unless $filename =~ m!^([a-zA-Z0-9_ '":/\\]+)$!;
+    return unless $filename =~ m!^([a-zA-Z0-9_ '":/.\$\\]+)$!;
     $filename = $1;
     return bless \$filename;
 }
@@ -3479,17 +3394,6 @@ acceptable.  In fact, only the first argument needs to begin with a
 dash.  If a dash is present in the first argument, CGI.pm assumes
 dashes for the subsequent ones.
 
-You don't have to use the hyphen at all if you don't want to.  After
-creating a CGI object, call the B<use_named_parameters()> method with
-a nonzero value.  This will tell CGI.pm that you intend to use named
-parameters exclusively:
-
-   $query = new CGI;
-   $query->use_named_parameters(1);
-   $field = $query->radio_group('name'=>'OS',
-                               'values'=>['Unix','Windows','Macintosh'],
-                               'default'=>'Unix');
-
 Several routines are commonly called with just one argument.  In the
 case of these routines you can provide the single argument without an
 argument name.  header() happens to be one of these routines.  In this
@@ -3506,7 +3410,7 @@ For example, the param() routine is used to set a CGI parameter to a
 single or a multi-valued value.  The two cases are shown below:
 
    $q->param(-name=>'veggie',-value=>'tomato');
-   $q->param(-name=>'veggie',-value=>'[tomato','tomahto','potato','potahto']);
+   $q->param(-name=>'veggie',-value=>['tomato','tomahto','potato','potahto']);
 
 A large number of routines in CGI.pm actually aren't specifically
 defined in the module, but are generated automatically as needed.
@@ -3655,10 +3559,11 @@ parsed keywords can be obtained as an array using the keywords() method.
      @names = $query->param
 
 If the script was invoked with a parameter list
-(e.g. "name1=value1&name2=value2&name3=value3"), the param()
-method will return the parameter names as a list.  If the
-script was invoked as an <ISINDEX> script, there will be a
-single parameter named 'keywords'.
+(e.g. "name1=value1&name2=value2&name3=value3"), the param() method
+will return the parameter names as a list.  If the script was invoked
+as an <ISINDEX> script and contains a string without ampersands
+(e.g. "value1+value2+value3") , there will be a single parameter named
+"keywords" containing the "+"-delimited keywords.
 
 NOTE: As of version 1.5, the array of parameter names returned will
 be in the same order as they were submitted by the browser.
@@ -3679,6 +3584,10 @@ named parameter. If the parameter is multivalued (e.g. from multiple
 selections in a scrolling list), you can ask to receive an array.  Otherwise
 the method will return a single value.
 
+If a value is not given in the query string, as in the queries
+"name1=&name2=" or "name1&name2", it will be returned as an empty
+string.  This feature is new in 2.63.
+
 =head2 SETTING THE VALUE(S) OF A NAMED PARAMETER:
 
     $query->param('foo','an','array','of','values');
@@ -3982,10 +3891,10 @@ you can import.  Pragmas, which are always preceded by a hyphen,
 change the way that CGI.pm functions in various ways.  Pragmas,
 function sets, and individual functions can all be imported in the
 same use() line.  For example, the following use statement imports the
-standard set of functions and disables debugging mode (pragma
--no_debug):
+standard set of functions and enables debugging mode (pragma
+-debug):
 
-   use CGI qw/:standard -no_debug/;
+   use CGI qw/:standard -debug/;
 
 The current list of pragmas is as follows:
 
@@ -4025,6 +3934,14 @@ the effect of importing the compiled functions into the current
 namespace.  If you want to compile without importing use the
 compile() method instead (see below).
 
+=item -nosticky
+
+This makes CGI.pm not generating the hidden fields .submit
+and .cgifields. It is very useful if you don't want to
+have the hidden fields appear in the querystring in a GET method.
+For example, a search script generated this way will have
+a very nice url with search parameters for bookmarking.
+
 =item -nph
 
 This makes CGI.pm produce a header appropriate for an NPH (no
@@ -4043,6 +3960,13 @@ Semicolon-delimited query strings are always accepted, but will not be
 emitted by self_url() and query_string() unless the -newstyle_urls
 pragma is specified.
 
+This became the default in version 2.64.
+
+=item -oldstyle_urls
+
+Separate the name=value pairs in CGI parameter query strings with
+ampersands rather than semicolons.  This is no longer the default.
+
 =item -autoload
 
 This overrides the autoloader so that any function in your program
@@ -4059,16 +3983,17 @@ to the top of your script.
 
 This turns off the command-line processing features.  If you want to
 run a CGI.pm script from the command line to produce HTML, and you
-don't want it pausing to request CGI parameters from standard input or
-the command line, then use this pragma:
+don't want it to read CGI parameters from the command line or STDIN,
+then use this pragma:
 
    use CGI qw(-no_debug :standard);
 
-If you'd like to process the command-line parameters but not standard
-input, this should work:
+=item -debug
 
-   use CGI qw(-no_debug :standard);
-   restore_parameters(join('&',@ARGV));
+This turns on full debugging.  In addition to reading CGI arguments
+from the command-line processing, CGI.pm will pause and try to read
+arguments from STDIN, producing the message "(offline mode: enter
+name=value pairs on standard input)" features.
 
 See the section on debugging for more details.
 
@@ -4188,6 +4113,7 @@ pages.
                             -status=>'402 Payment required',
                             -expires=>'+3d',
                             -cookie=>$cookie,
+                             -charset=>'utf-7',
                             -Cost=>'$2.00');
 
 header() returns the Content-type: header.  You can provide your own
@@ -4230,8 +4156,11 @@ session cookies.
 
 The B<-nph> parameter, if set to a true value, will issue the correct
 headers to work with a NPH (no-parse-header) script.  This is important
-to use with certain servers, such as Microsoft Internet Explorer, which
-expect all their scripts to be NPH.
+to use with certain servers that expect all their scripts to be NPH.
+
+The B<-charset> parameter can be used to control the character set
+sent to the browser.  If not provided, defaults to ISO-8859-1.  As a
+side effect, this sets the charset() method as well.
 
 =head2 GENERATING A REDIRECTION HEADER
 
@@ -4294,8 +4223,10 @@ different from the current location, as in
 All relative links will be interpreted relative to this tag.
 
 The argument B<-target> allows you to provide a default target frame
-for all the links and fill-out forms on the page.  See the Netscape
-documentation on frames for details of how to manipulate this.
+for all the links and fill-out forms on the page.  B<This is a
+non-standard HTTP feature which only works with Netscape browsers!>
+See the Netscape documentation on frames for details of how to
+manipulate this.
 
     -target=>"answer_window"
 
@@ -4308,10 +4239,10 @@ into a series of header <META> tags that look something like this:
     <META NAME="keywords" CONTENT="pharaoh secret mummy">
     <META NAME="description" CONTENT="copyright 1996 King Tut">
 
-There is no support for the HTTP-EQUIV type of <META> tag.  This is
-because you can modify the HTTP header directly with the B<header()>
-method.  For example, if you want to send the Refresh: header, do it
-in the header() method:
+There is no direct support for the HTTP-EQUIV type of <META> tag.
+This is because you can modify the HTTP header directly with the
+B<header()> method.  For example, if you want to send the Refresh:
+header, do it in the header() method:
 
     print $q->header(-Refresh=>'10; URL=http://www.capricorn.com');
 
@@ -4464,7 +4395,7 @@ This ends an HTML document by printing the </BODY></HTML> tags.
 =head2 CREATING A SELF-REFERENCING URL THAT PRESERVES STATE INFORMATION:
 
     $myself = $query->self_url;
-    print "<A HREF=$myself>I'm talking to myself.</A>";
+    print q(<A HREF="$myself">I'm talking to myself.</A>);
 
 self_url() will return a URL, that, when selected, will reinvoke
 this script with all its state information intact.  This is most
@@ -4724,6 +4655,49 @@ In addition, start_html(), end_html(), start_form(), end_form(),
 start_multipart_form() and all the fill-out form tags are special.
 See their respective sections.
 
+=head2 AUTOESCAPING HTML
+
+By default, all HTML that is emitted by the form-generating functions
+is passed through a function called escapeHTML():
+
+=over 4
+
+=item $escaped_string = escapeHTML("unescaped string");
+
+Escape HTML formatting characters in a string.
+
+=back
+
+Provided that you have specified a character set of ISO-8859-1 (the
+default), the standard HTML escaping rules will be used.  The "<"
+character becomes "&lt;", ">" becomes "&gt;", "&" becomes "&amp;", and
+the quote character becomes "&quot;".  In addition, the hexadecimal
+0x8b and 0x9b characters, which many windows-based browsers interpret
+as the left and right angle-bracket characters, are replaced by their
+numeric HTML entities ("&#139" and "&#155;").  If you manually change
+the charset, either by calling the charset() method explicitly or by
+passing a -charset argument to header(), then B<all> characters will
+be replaced by their numeric entities, since CGI.pm has no lookup
+table for all the possible encodings.
+
+The automatic escaping does not apply to other shortcuts, such as
+h1().  You should call escapeHTML() yourself on untrusted data in
+order to protect your pages against nasty tricks that people may enter
+into guestbooks, etc..  To change the character set, use charset().
+To turn autoescaping off completely, use autoescape():
+
+=over 4
+
+=item $charset = charset([$charset]);
+
+Get or set the current character set.
+
+=item $flag = autoEscape([$flag]);
+
+Get or set the value of the autoescape flag.
+
+=back
+
 =head2 PRETTY-PRINTING HTML
 
 By default, all the HTML produced by these functions comes out as one
@@ -4769,7 +4743,6 @@ autoEscape() method with a false value immediately after creating the CGI object
    $query = new CGI;
    $query->autoEscape(undef);
 
-
 =head2 CREATING AN ISINDEX TAG
 
    print $query->isindex(-action=>$action);
@@ -4784,7 +4757,7 @@ default is to process the query with the current script.
 
 =head2 STARTING AND ENDING A FORM
 
-    print $query->startform(-method=>$method,
+    print $query->start_form(-method=>$method,
                            -action=>$action,
                            -enctype=>$encoding);
       <... various form stuff ...>
@@ -4792,11 +4765,11 @@ default is to process the query with the current script.
 
        -or-
 
-    print $query->startform($method,$action,$encoding);
+    print $query->start_form($method,$action,$encoding);
       <... various form stuff ...>
     print $query->endform;
 
-startform() will return a <FORM> tag with the optional method,
+start_form() will return a <FORM> tag with the optional method,
 action and form encoding that you specify.  The defaults are:
 
     method: POST
@@ -4805,10 +4778,13 @@ action and form encoding that you specify.  The defaults are:
 
 endform() returns the closing </FORM> tag.  
 
-Startform()'s enctype argument tells the browser how to package the various
+Start_form()'s enctype argument tells the browser how to package the various
 fields of the form before sending the form to the server.  Two
 values are possible:
 
+B<Note:> This method was previously named startform(), and startform()
+is still recognized as an alias.
+
 =over 4
 
 =item B<application/x-www-form-urlencoded>
@@ -4834,10 +4810,10 @@ to handle them.
 
 =back
 
-For compatibility, the startform() method uses the older form of
+For compatibility, the start_form() method uses the older form of
 encoding by default.  If you want to use the newer form of encoding
 by default, you can call B<start_multipart_form()> instead of
-B<startform()>.
+B<start_form()>.
 
 JAVASCRIPTING: The B<-name> and B<-onSubmit> parameters are provided
 for use with JavaScript.  The -name parameter gives the
@@ -4971,9 +4947,9 @@ recognized.  See textfield().
 filefield() will return a file upload field for Netscape 2.0 browsers.
 In order to take full advantage of this I<you must use the new 
 multipart encoding scheme> for the form.  You can do this either
-by calling B<startform()> with an encoding type of B<$CGI::MULTIPART>,
+by calling B<start_form()> with an encoding type of B<$CGI::MULTIPART>,
 or by calling the new method B<start_multipart_form()> instead of
-vanilla B<startform()>.
+vanilla B<start_form()>.
 
 =over 4
 
@@ -5795,7 +5771,7 @@ details.
 You can specify the frame to load in the FORM tag itself.  With
 CGI.pm it looks like this:
 
-    print $q->startform(-target=>'ResultsWindow');
+    print $q->start_form(-target=>'ResultsWindow');
 
 When your script is reinvoked by the form, its output will be loaded
 into the frame named "ResultsWindow".  If one doesn't already exist
@@ -5880,12 +5856,11 @@ http://www.w3.org/pub/WWW/TR/Wd-css-1.html for more information.
 
 =head1 DEBUGGING
 
-If you are running the script
-from the command line or in the perl debugger, you can pass the script
-a list of keywords or parameter=value pairs on the command line or 
-from standard input (you don't have to worry about tricking your
-script into reading from environment variables).
-You can pass keywords like this:
+If you are running the script from the command line or in the perl
+debugger, you can pass the script a list of keywords or
+parameter=value pairs on the command line or from standard input (you
+don't have to worry about tricking your script into reading from
+environment variables).  You can pass keywords like this:
 
     your_script.pl keyword1 keyword2 keyword3
 
@@ -5901,7 +5876,11 @@ or this:
 
     your_script.pl name1=value1&name2=value2
 
-or even as newline-delimited parameters on standard input.
+To turn off this feature, use the -no_debug pragma.
+
+To test the POST method, you may enable full debugging with the -debug
+pragma.  This will allow you to feed newline-delimited name=value
+pairs to the script on standard input.
 
 When debugging, you can use quotes and backslashes to escape 
 characters in the familiar shell manner, letting you place
@@ -5912,11 +5891,11 @@ pairs:
 
 =head2 DUMPING OUT ALL THE NAME/VALUE PAIRS
 
-The dump() method produces a string consisting of all the query's
+The Dump() method produces a string consisting of all the query's
 name/value pairs formatted nicely as a nested list.  This is useful
 for debugging purposes:
 
-    print $query->dump
+    print $query->Dump
 
 
 Produces something that looks like:
@@ -6395,7 +6374,7 @@ for suggestions and bug fixes.
        sub print_prompt {
           my($query) = @_;
 
-          print $query->startform;
+          print $query->start_form;
           print "<EM>What's your name?</EM><BR>";
           print $query->textfield('name');
           print $query->checkbox('Not my real name');
index 90e9552..0a5c121 100644 (file)
@@ -194,14 +194,14 @@ use Carp;
 
 BEGIN {
   $] >= 5.005
-    ? eval q#sub ineval { $^S }#
-      : eval q#sub ineval { _longmess() =~ /eval [\{\']/m }#;
+    ? eval q#sub ineval { defined $^S ? $^S : _longmess() =~ /eval [\{\']/m }#
+    : eval q#sub ineval { _longmess() =~ /eval [\{\']/m }#;
   $@ and die;
 }
 
 $main::SIG{__WARN__}=\&CGI::Carp::warn;
 $main::SIG{__DIE__}=\&CGI::Carp::die;
-$CGI::Carp::VERSION = '1.14';
+$CGI::Carp::VERSION = '1.16';
 $CGI::Carp::CUSTOM_MSG = undef;
 
 # fancy import routine detects and handles 'errorWrap' specially.
@@ -335,8 +335,7 @@ $outer_message
 END
     ;
 
-    if ($mod_perl) {
-       my $r = Apache->request;
+    if ($mod_perl && (my $r = Apache->request)) {
        # If bytes have already been sent, then
        # we print the message out directly.
        # Otherwise we make a custom error
index bd3c3d8..9e5a14b 100644 (file)
@@ -13,9 +13,9 @@ package CGI::Cookie;
 # wish, but if you redistribute a modified version, please attach a note
 # listing the modifications you have made.
 
-$CGI::Cookie::VERSION='1.12';
+$CGI::Cookie::VERSION='1.16';
 
-use CGI qw(-no_debug);
+use CGI::Util qw(rearrange unescape escape);
 use overload '""' => \&as_string,
     'cmp' => \&compare,
     'fallback'=>1;
@@ -63,8 +63,11 @@ sub parse {
     my(@pairs) = split("; ",$raw_cookie);
     foreach (@pairs) {
        my($key,$value) = split("=");
-       my(@values) = map CGI::unescape($_),split('&',$value);
-       $key = CGI::unescape($key);
+       my(@values) = map unescape($_),split('&',$value);
+       $key = unescape($key);
+       # Some foreign cookies are not in name=value format, so ignore
+       # them.
+       next if !defined($value);
        # A bug in Netscape can cause several cookies with same name to
        # appear.  The FIRST one in HTTP_COOKIE is the most recent version.
        $results{$key} ||= $self->new(-name=>$key,-value=>\@values);
@@ -77,7 +80,7 @@ sub new {
     my $class = shift;
     $class = ref($class) if ref($class);
     my($name,$value,$path,$domain,$secure,$expires) =
-       CGI->rearrange([NAME,[VALUE,VALUES],PATH,DOMAIN,SECURE,EXPIRES],@_);
+      rearrange([NAME,[VALUE,VALUES],PATH,DOMAIN,SECURE,EXPIRES],@_);
 
     # Pull out our parameters.
     my @values;
@@ -97,7 +100,7 @@ sub new {
        },$class;
 
     # IE requires the path and domain to be present for some reason.
-    $path   = CGI::url(-absolute=>1) unless defined $path;
+    $path   ||= '/';
 # however, this breaks networks which use host tables without fully qualified
 # names, so we comment it out.
 #    $domain = CGI::virtual_host()    unless defined $domain;
@@ -120,8 +123,8 @@ sub as_string {
     push(@constant_values,"expires=$expires") if $expires = $self->expires;
     push(@constant_values,'secure') if $secure = $self->secure;
 
-    my($key) = CGI::escape($self->name);
-    my($cookie) = join("=",$key,join("&",map CGI::escape($_),$self->value));
+    my($key) = escape($self->name);
+    my($cookie) = join("=",$key,join("&",map escape($_),$self->value));
     return join("; ",$cookie,@constant_values);
 }
 
@@ -163,7 +166,7 @@ sub secure {
 sub expires {
     my $self = shift;
     my $expires = shift;
-    $self->{'expires'} = CGI::expires($expires,'cookie') if defined $expires;
+    $self->{'expires'} = CGI::Util::expires($expires,'cookie') if defined $expires;
     return $self->{'expires'};
 }
 
@@ -252,8 +255,8 @@ against your script's URL before returning the cookie.  For example,
 if you specify the path "/cgi-bin", then the cookie will be returned
 to each of the scripts "/cgi-bin/tally.pl", "/cgi-bin/order.pl", and
 "/cgi-bin/customer_service/complain.pl", but not to the script
-"/cgi-private/site_admin.pl".  By default, the path is set to your
-script, so that only it will receive the cookie.
+"/cgi-private/site_admin.pl".  By default, the path is set to "/", so
+that all scripts at your site will receive the cookie.
 
 =item B<4. secure flag>
 
index 4f2eed4..20173f9 100644 (file)
@@ -10,7 +10,7 @@ package CGI::Pretty;
 use strict;
 use CGI ();
 
-$CGI::Pretty::VERSION = '1.03';
+$CGI::Pretty::VERSION = '1.04';
 $CGI::DefaultClass = __PACKAGE__;
 $CGI::Pretty::AutoloadClass = 'CGI';
 @CGI::Pretty::ISA = qw( CGI );
@@ -62,15 +62,13 @@ sub _make_tag_func {
        sub $tagname { 
            # handle various cases in which we're called
            # most of this bizarre stuff is to avoid -w errors
-           shift if \$_[0] && 
-               (!ref(\$_[0]) && \$_[0] eq \$CGI::DefaultClass) ||
-                   (ref(\$_[0]) &&
-                    (substr(ref(\$_[0]),0,3) eq 'CGI' ||
-                   UNIVERSAL::isa(\$_[0],'CGI')));
-           
+            shift if \$_[0] && 
+                    (ref(\$_[0]) &&
+                     (substr(ref(\$_[0]),0,3) eq 'CGI' ||
+                    UNIVERSAL::isa(\$_[0],'CGI')));
            my(\$attr) = '';
            if (ref(\$_[0]) && ref(\$_[0]) eq 'HASH') {
-               my(\@attr) = make_attributes('',shift);
+               my(\@attr) = make_attributes(shift);
                \$attr = " \@attr" if \@attr;
            }
 
index 80683a2..6b8e012 100644 (file)
@@ -16,8 +16,9 @@ package CGI::Push;
 # The most recent version and complete docs are available at:
 #   http://stein.cshl.org/WWW/software/CGI/
 
-$CGI::Push::VERSION='1.01';
+$CGI::Push::VERSION='1.02';
 use CGI;
+use CGI::Util 'rearrange';
 @ISA = ('CGI');
 
 $CGI::DefaultClass = 'CGI::Push';
@@ -37,7 +38,7 @@ sub do_push {
 
     my (@header);
     my ($type,$callback,$delay,$last_page,$cookie,$target,$expires,@other) =
-       $self->rearrange([TYPE,NEXT_PAGE,DELAY,LAST_PAGE,[COOKIE,COOKIES],TARGET,EXPIRES],@p);
+       rearrange([TYPE,NEXT_PAGE,DELAY,LAST_PAGE,[COOKIE,COOKIES],TARGET,EXPIRES],@p);
     $type = 'text/html' unless $type;
     $callback = \&simple_counter unless $callback && ref($callback) eq 'CODE';
     $delay = 1 unless defined($delay);
@@ -53,7 +54,7 @@ sub do_push {
     push(@o,'-nph'=>1);
     print $self->header(@o);
     print "${boundary}$CGI::CRLF";
-    
+
     # now we enter a little loop
     my @contents;
     while (1) {
@@ -143,6 +144,9 @@ in such a way that it will replace what was there beforehand.  The
 technique will work with HTML pages as well as with graphics files, 
 allowing you to create animated GIFs.
 
+Only Netscape Navigator supports server push.  Internet Explorer
+browsers do not.
+
 =head1 USING CGI::Push
 
 CGI::Push adds one new method to the standard CGI suite, do_push().
diff --git a/lib/CGI/Util.pm b/lib/CGI/Util.pm
new file mode 100644 (file)
index 0000000..0a5c48b
--- /dev/null
@@ -0,0 +1,182 @@
+package CGI::Util;
+
+use strict;
+use vars '$VERSION','@EXPORT_OK','@ISA','$EBCDIC','@A2E';
+require Exporter;
+@ISA = qw(Exporter);
+@EXPORT_OK = qw(rearrange make_attributes unescape escape expires);
+
+$VERSION = '1.1';
+
+$EBCDIC = "\t" ne "\011";
+if ($EBCDIC) {
+@A2E = (
+  0,  1,  2,  3, 55, 45, 46, 47, 22,  5, 21, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 60, 61, 50, 38, 24, 25, 63, 39, 28, 29, 30, 31,
+ 64, 90,127,123, 91,108, 80,125, 77, 93, 92, 78,107, 96, 75, 97,
+240,241,242,243,244,245,246,247,248,249,122, 94, 76,126,110,111,
+124,193,194,195,196,197,198,199,200,201,209,210,211,212,213,214,
+215,216,217,226,227,228,229,230,231,232,233,173,224,189, 95,109,
+121,129,130,131,132,133,134,135,136,137,145,146,147,148,149,150,
+151,152,153,162,163,164,165,166,167,168,169,192, 79,208,161,  7,
+ 32, 33, 34, 35, 36, 37,  6, 23, 40, 41, 42, 43, 44,  9, 10, 27,
+ 48, 49, 26, 51, 52, 53, 54,  8, 56, 57, 58, 59,  4, 20, 62,255,
+ 65,170, 74,177,159,178,106,181,187,180,154,138,176,202,175,188,
+144,143,234,250,190,160,182,179,157,218,155,139,183,184,185,171,
+100,101, 98,102, 99,103,158,104,116,113,114,115,120,117,118,119,
+172,105,237,238,235,239,236,191,128,253,254,251,252,186,174, 89,
+ 68, 69, 66, 70, 67, 71,156, 72, 84, 81, 82, 83, 88, 85, 86, 87,
+140, 73,205,206,203,207,204,225,112,221,222,219,220,141,142,223
+      );
+}
+
+# Smart rearrangement of parameters to allow named parameter
+# calling.  We do the rearangement if:
+# the first parameter begins with a -
+sub rearrange {
+    my($order,@param) = @_;
+    return () unless @param;
+
+    if (ref($param[0]) eq 'HASH') {
+       @param = %{$param[0]};
+    } else {
+       return @param 
+           unless (defined($param[0]) && substr($param[0],0,1) eq '-');
+    }
+
+    # map parameters into positional indices
+    my ($i,%pos);
+    $i = 0;
+    foreach (@$order) {
+       foreach (ref($_) eq 'ARRAY' ? @$_ : $_) { $pos{$_} = $i; }
+       $i++;
+    }
+
+    my (@result,%leftover);
+    $#result = $#$order;  # preextend
+    while (@param) {
+       my $key = uc(shift(@param));
+       $key =~ s/^\-//;
+       if (exists $pos{$key}) {
+           $result[$pos{$key}] = shift(@param);
+       } else {
+           $leftover{$key} = shift(@param);
+       }
+    }
+
+    push (@result,make_attributes(\%leftover)) if %leftover;
+    @result;
+}
+
+sub make_attributes {
+    my $attr = shift;
+    return () unless $attr && ref($attr) && ref($attr) eq 'HASH';
+    my $escape = shift || 0;
+    my(@att);
+    foreach (keys %{$attr}) {
+       my($key) = $_;
+       $key=~s/^\-//;     # get rid of initial - if present
+       $key=~tr/a-z_/A-Z-/; # parameters are upper case, use dashes
+       my $value = $escape ? simple_escape($attr->{$_}) : $attr->{$_};
+       push(@att,defined($attr->{$_}) ? qq/$key="$value"/ : qq/$key/);
+    }
+    return @att;
+}
+
+sub simple_escape {
+  return unless defined (my $toencode = shift);
+  $toencode =~ s{(.)}{
+              if    ($1 eq '<')                            { '&lt;'    }
+              elsif ($1 eq '>')                            { '&gt;'    }
+              elsif ($1 eq '&')                            { '&amp;'   }
+              elsif ($1 eq '"')                            { '&quot;'  }
+              elsif ($1 eq "\x8b")                         { '&#139;'  }
+              elsif ($1 eq "\x9b")                         { '&#155;'  }
+              else                                         { $1        }
+       }gsex;
+  $toencode;
+}
+
+# unescape URL-encoded data
+sub unescape {
+  shift() if ref($_[0]) || (defined $_[1] && $_[0] eq $CGI::DefaultClass);
+  my $todecode = shift;
+  return undef unless defined($todecode);
+  $todecode =~ tr/+/ /;       # pluses become spaces
+    if ($EBCDIC) {
+      $todecode =~ s/%([0-9a-fA-F]{2})/chr $A2E[hex($1)]/ge;
+    } else {
+      $todecode =~ s/%([0-9a-fA-F]{2})/chr hex($1)/ge;
+    }
+  return $todecode;
+}
+
+# URL-encode data
+sub escape {
+  shift() if ref($_[0]) || (defined $_[1] && $_[0] eq $CGI::DefaultClass);
+  my $toencode = shift;
+  return undef unless defined($toencode);
+  $toencode=~s/([^a-zA-Z0-9_.-])/uc sprintf("%%%02x",ord($1))/eg;
+  return $toencode;
+}
+
+# This internal routine creates date strings suitable for use in
+# cookies and HTTP headers.  (They differ, unfortunately.)
+# Thanks to Mark Fisher for this.
+sub expires {
+    my($time,$format) = @_;
+    $format ||= 'http';
+
+    my(@MON)=qw/Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec/;
+    my(@WDAY) = qw/Sun Mon Tue Wed Thu Fri Sat/;
+
+    # pass through preformatted dates for the sake of expire_calc()
+    $time = expire_calc($time);
+    return $time unless $time =~ /^\d+$/;
+
+    # make HTTP/cookie date string from GMT'ed time
+    # (cookies use '-' as date separator, HTTP uses ' ')
+    my($sc) = ' ';
+    $sc = '-' if $format eq "cookie";
+    my($sec,$min,$hour,$mday,$mon,$year,$wday) = gmtime($time);
+    $year += 1900;
+    return sprintf("%s, %02d$sc%s$sc%04d %02d:%02d:%02d GMT",
+                   $WDAY[$wday],$mday,$MON[$mon],$year,$hour,$min,$sec);
+}
+
+# This internal routine creates an expires time exactly some number of
+# hours from the current time.  It incorporates modifications from 
+# Mark Fisher.
+sub expire_calc {
+    my($time) = @_;
+    my(%mult) = ('s'=>1,
+                 'm'=>60,
+                 'h'=>60*60,
+                 'd'=>60*60*24,
+                 'M'=>60*60*24*30,
+                 'y'=>60*60*24*365);
+    # format for time can be in any of the forms...
+    # "now" -- expire immediately
+    # "+180s" -- in 180 seconds
+    # "+2m" -- in 2 minutes
+    # "+12h" -- in 12 hours
+    # "+1d"  -- in 1 day
+    # "+3M"  -- in 3 months
+    # "+2y"  -- in 2 years
+    # "-3m"  -- 3 minutes ago(!)
+    # If you don't supply one of these forms, we assume you are
+    # specifying the date yourself
+    my($offset);
+    if (!$time || (lc($time) eq 'now')) {
+        $offset = 0;
+    } elsif ($time=~/^\d+/) {
+        return $time;
+    } elsif ($time=~/^([+-]?(?:\d+|\d*\.\d*))([mhdMy]?)/) {
+        $offset = ($mult{$2} || 1)*$1;
+    } else {
+        return $time;
+    }
+    return (time+$offset);
+}
+
+1;
index 5e3de49..8cfdcb4 100644 (file)
@@ -42,7 +42,7 @@ sub longmess_heavy {
        #
        # if the $error error string is newline terminated then it
        # is copied into $mess.  Otherwise, $mess gets set (at the end of
-       # the 'else {' section below) to one of two things.  The first time
+       # the 'else' section below) to one of two things.  The first time
        # through, it is set to the "$error at $file line $line" message.
        # $error is then set to 'called' which triggers subsequent loop
        # iterations to append $sub to $mess before appending the "$error
@@ -121,10 +121,7 @@ sub longmess_heavy {
        # $line" makes sense as "called at $file line $line".
        $error = "called";
     }
-    # this kludge circumvents die's incorrect handling of NUL
-    my $msg = \($mess || $error);
-    $$msg =~ tr/\0//d;
-    $$msg;
+    $mess || $error;
 }
 
 
@@ -227,9 +224,7 @@ CALLER:
        }
        else {
            # OK!  We've got a candidate package.  Time to construct the
-           # relevant error message and return it.   die() doesn't like
-           # to be given NUL characters (which $msg may contain) so we
-           # remove them first.
+           # relevant error message and return it.
            my $msg;
            $msg = "$error at $file line $line";
            if (defined &Thread::tid) {
@@ -237,7 +232,6 @@ CALLER:
                $mess .= " thread $tid" if $tid;
            }
            $msg .= "\n";
-           $msg =~ tr/\0//d;
            return $msg;
        }
     }
index b4f2117..63eddac 100644 (file)
@@ -5,6 +5,7 @@ package Class::Struct;
 use 5.005_64;
 
 use strict;
+use warnings::register;
 our(@ISA, @EXPORT, $VERSION);
 
 use Carp;
@@ -167,8 +168,8 @@ sub struct {
     $cnt = 0;
     foreach $name (@methods){
         if ( do { no strict 'refs'; defined &{$class . "::$name"} } ) {
-            carp "function '$name' already defined, overrides struct accessor method"
-                if $^W;
+            warnings::warn "function '$name' already defined, overrides struct accessor method"
+                if warnings::enabled();
         }
         else {
             $pre = $pst = $cmt = $sel = '';
index 94b6aa6..475f4ff 100644 (file)
@@ -227,9 +227,9 @@ sub unwrap {
     if ($self->{compactDump} && !grep(ref $_, @{$v})) {
       if ($#$v >= 0) {
        $short = $sp . "0..$#{$v}  " .
-         join(" ",
-              map {$self->stringify($_)} @{$v}[0..$tArrayDepth])
-           . "$shortmore";
+         join(" ", 
+              map {exists $v->[$_] ? $self->stringify($v->[$_]) : "empty"} ($[..$tArrayDepth)
+             ) . "$shortmore";
       } else {
        $short = $sp . "empty array";
       }
@@ -238,7 +238,11 @@ sub unwrap {
     for my $num ($[ .. $tArrayDepth) {
       return if $DB::signal and $self->{stopDbSignal};
       print "$sp$num  ";
-      $self->DumpElem($v->[$num], $s);
+      if (exists $v->[$num]) {
+        $self->DumpElem($v->[$num], $s);
+      } else {
+       print "empty slot\n";
+      }
     }
     print "$sp  empty array\n" unless @$v;
     print "$sp$more" if defined $more ;
@@ -404,7 +408,8 @@ sub dumpvars {
     next if @vars && !grep( matchvar($key, $_), @vars );
     if ($self->{usageOnly}) {
       $self->globUsage(\$val, $key)
-       unless $package eq 'Dumpvalue' and $key eq 'stab';
+       if ($package ne 'Dumpvalue' or $key ne 'stab')
+          and ref(\$val) eq 'GLOB';
     } else {
       $self->dumpglob($package, 0,$key, $val);
     }
index f6e3ec0..f38c313 100644 (file)
@@ -98,6 +98,8 @@ sub import {
        *OSNAME
        *LAST_REGEXP_CODE_RESULT
        *EXCEPTIONS_BEING_CAUGHT
+       @LAST_MATCH_START
+       @LAST_MATCH_END
 );
 
 # The ground of all being. @ARG is deprecated (5.005 makes @_ lexical)
@@ -110,6 +112,8 @@ sub import {
        *PREMATCH                               = *`    ;
        *POSTMATCH                              = *'    ;
        *LAST_PAREN_MATCH                       = *+    ;
+       *LAST_MATCH_START                       = *-{ARRAY} ;
+       *LAST_MATCH_END                         = *+{ARRAY} ;
 
 # Input.
 
index 47ce3dc..640978a 100644 (file)
@@ -109,6 +109,7 @@ sub _unix_os2_ext {
            } elsif (-f ($fullname="$thispth/lib$thislib.$so")
                 && (($Config{'dlsrc'} ne "dl_dld.xs") || ($thislib eq "m"))){
            } elsif (-f ($fullname="$thispth/lib${thislib}_s$Config_libext")
+                 && (! $Config{'archname'} =~ /RM\d\d\d-svr4/)
                 && ($thislib .= "_s") ){ # we must explicitly use _s version
            } elsif (-f ($fullname="$thispth/lib$thislib$Config_libext")){
            } elsif (-f ($fullname="$thispth/$thislib$Config_libext")){
@@ -229,6 +230,10 @@ sub _win32_ext {
     # add "$Config{installarchlib}/CORE" to default search path
     push @libpath, "$Config{installarchlib}/CORE";
 
+    if ($VC and exists $ENV{LIB} and $ENV{LIB}) {
+        push @libpath, split /;/, $ENV{LIB};
+    }
+
     foreach (Text::ParseWords::quotewords('\s+', 0, $potential_libs)){
 
        $thislib = $_;
index 4c8da33..da22552 100644 (file)
@@ -3496,7 +3496,7 @@ MOD_INSTALL = $(PERL) -I$(INST_LIB) -I$(PERL_LIB) -MExtUtils::Install \
 -e "install({@ARGV},'$(VERBINST)',0,'$(UNINST)');"
 
 DOC_INSTALL = $(PERL) -e '$$\="\n\n";' \
--e 'print "=head2 ", scalar(localtime), ": C<", shift, ">", " L<", shift, ">";' \
+-e 'print "=head2 ", scalar(localtime), ": C<", shift, ">", " L<", $$arg=shift, "|", $$arg, ">";' \
 -e 'print "=over 4";' \
 -e 'while (defined($$key = shift) and defined($$val = shift)){print "=item *";print "C<$$key: $$val>";}' \
 -e 'print "=back";'
index e08c679..7f40ff7 100644 (file)
@@ -684,7 +684,7 @@ MOD_INSTALL = $(PERL) -I$(INST_LIB) -I$(PERL_LIB) -MExtUtils::Install \
 -e "install({ @ARGV },'$(VERBINST)',0,'$(UNINST)');"
 
 DOC_INSTALL = $(PERL) -e "$$\=\"\n\n\";" \
--e "print '=head2 ', scalar(localtime), ': C<', shift, '>', ' L<', shift, '>';" \
+-e "print '=head2 ', scalar(localtime), ': C<', shift, '>', ' L<', $$arg=shift, '|', $$arg, '>';" \
 -e "print '=over 4';" \
 -e "while (defined($$key = shift) and defined($$val = shift)) { print '=item *';print 'C<', \"$$key: $$val\", '>'; }" \
 -e "print '=back';"
index 38cb216..9906fd5 100644 (file)
@@ -189,7 +189,7 @@ sub full_setup {
     AUTHOR ABSTRACT ABSTRACT_FROM BINARY_LOCATION
     C CAPI CCFLAGS CONFIG CONFIGURE DEFINE DIR DISTNAME DL_FUNCS DL_VARS
     EXCLUDE_EXT EXE_FILES FIRST_MAKEFILE FULLPERL FUNCLIST H 
-    HTMLLIBPODS HTMLSCRIPTPOD IMPORTS
+    HTMLLIBPODS HTMLSCRIPTPODS IMPORTS
     INC INCLUDE_EXT INSTALLARCHLIB INSTALLBIN INSTALLDIRS INSTALLHTMLPRIVLIBDIR
     INSTALLHTMLSCRIPTDIR INSTALLHTMLSITELIBDIR INSTALLMAN1DIR
     INSTALLMAN3DIR INSTALLPRIVLIB INSTALLSCRIPT INSTALLSITEARCH
index 96e1bb4..5a71e89 100755 (executable)
@@ -70,6 +70,14 @@ affected is the use of I<target>s by the output C code (see L<perlguts>).
 This may significantly slow down the generated code, but this is the way
 B<xsubpp> of 5.005 and earlier operated.
 
+=item B<-noinout>
+
+Disable recognition of C<IN>, C<OUT_LIST> and C<INOUT_LIST> declarations.
+
+=item B<-noargtypes>
+
+Disable recognition of ANSI-like descriptions of function signature.
+
 =back
 
 =head1 ENVIRONMENT
@@ -114,7 +122,7 @@ if ($^O eq 'VMS') {
 
 $FH = 'File0000' ;
 
-$usage = "Usage: xsubpp [-v] [-C++] [-except] [-prototypes] [-noversioncheck] [-nolinenumbers] [-nooptimize] [-s pattern] [-typemap typemap]... file.xs\n";
+$usage = "Usage: xsubpp [-v] [-C++] [-except] [-prototypes] [-noversioncheck] [-nolinenumbers] [-nooptimize] [-noinout] [-noargtypes] [-s pattern] [-typemap typemap]... file.xs\n";
 
 $proto_re = "[" . quotemeta('\$%&*@;') . "]" ;
 # mjn
@@ -126,6 +134,10 @@ $WantVersionChk = 1 ;
 $ProtoUsed = 0 ;
 $WantLineNumbers = 1 ;
 $WantOptimize = 1 ;
+
+my $process_inout = 1;
+my $process_argtypes = 1;
+
 SWITCH: while (@ARGV and $ARGV[0] =~ /^-./) {
     $flag = shift @ARGV;
     $flag =~ s/^-// ;
@@ -143,6 +155,10 @@ SWITCH: while (@ARGV and $ARGV[0] =~ /^-./) {
     $WantLineNumbers = 1, next SWITCH  if $flag eq 'linenumbers';
     $WantOptimize = 0, next SWITCH     if $flag eq 'nooptimize';
     $WantOptimize = 1, next SWITCH     if $flag eq 'optimize';
+    $process_inout = 0, next SWITCH    if $flag eq 'noinout';
+    $process_inout = 1, next SWITCH    if $flag eq 'inout';
+    $process_argtypes = 0, next SWITCH if $flag eq 'noargtypes';
+    $process_argtypes = 1, next SWITCH if $flag eq 'argtypes';
     (print "xsubpp version $XSUBPP_version\n"), exit
        if $flag eq 'v';
     die $usage;
@@ -385,9 +401,6 @@ sub CASE_handler {
     $_ = '' ;
 }
 
-my $process_inout = 1;
-my $process_argtypes = 1;
-
 sub INPUT_handler {
     for (;  !/^$BLOCK_re/o;  $_ = shift(@line)) {
        last if /^\s*NOT_IMPLEMENTED_YET/;
@@ -997,6 +1010,11 @@ while (fetch_para()) {
     ($ret_type) = TidyType($_);
     $RETVAL_no_return = 1 if $ret_type =~ s/^NO_OUTPUT\s+//;
 
+    # Allow one-line ANSI-like declaration
+    unshift @line, $2
+      if $process_argtypes
+       and $ret_type =~ s/^(.*?\w.*?)\s*\b(\w+\s*\(.*)/$1/s;
+
     # a function definition needs at least 2 lines
     blurt ("Error: Function definition too short '$ret_type'"), next PARAGRAPH
        unless @line ;
index 8a8afac..667e7cb 100644 (file)
@@ -78,7 +78,7 @@ sub compare {
     }
     else {
        unless (defined($size) && $size > 0) {
-           $size = $fromsize;
+           $size = $fromsize || -s TO || 0;
            $size = 1024 if $size < 512;
            $size = $Too_Big if $size > $Too_Big;
        }
index 22a8ab3..ac73f1b 100644 (file)
@@ -349,7 +349,7 @@ sub _find_opt {
 
         unless ($Is_Dir) {
            unless (($_,$dir) = File::Basename::fileparse($abs_dir)) {
-               ($dir,$_) = ('.', $top_item);
+               ($dir,$_) = ('./', $top_item);
            }
 
             $abs_dir = $dir;
@@ -370,9 +370,9 @@ sub _find_opt {
                 warn "Couldn't chdir $abs_dir: $!\n";
                 next Proc_Top_Item;
             }
-            
-            $name = $abs_dir;
-            
+
+            $name = $abs_dir . $_;
+
             &$wanted_callback;
 
         }
index 40f5345..ed26d76 100644 (file)
@@ -3,7 +3,7 @@ package File::Spec;
 use strict;
 use vars qw(@ISA $VERSION);
 
-$VERSION = '0.8';
+$VERSION = '0.81';
 
 my %module = (MacOS   => 'Mac',
              MSWin32 => 'Win32',
index 140738f..0036ac1 100644 (file)
@@ -3,7 +3,9 @@ package File::Spec::Functions;
 use File::Spec;
 use strict;
 
-use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
+use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS $VERSION);
+
+$VERSION = '1.1';
 
 require Exporter;
 
index 959e33d..5315d92 100644 (file)
@@ -1,8 +1,11 @@
 package File::Spec::Mac;
 
 use strict;
-use vars qw(@ISA);
+use vars qw(@ISA $VERSION);
 require File::Spec::Unix;
+
+$VERSION = '1.1';
+
 @ISA = qw(File::Spec::Unix);
 
 =head1 NAME
@@ -79,9 +82,9 @@ sub catdir {
     shift;
     my @args = @_;
     my $result = shift @args;
-    $result =~ s/:\z//;
+    $result =~ s/:\Z(?!\n)//;
     foreach (@args) {
-       s/:\z//;
+       s/:\Z(?!\n)//;
        s/^://s;
        $result .= ":$_";
     }
@@ -150,7 +153,7 @@ sub rootdir {
     require Mac::Files;
     my $system =  Mac::Files::FindFolder(&Mac::Files::kOnSystemDisk,
                                         &Mac::Files::kSystemFolderType);
-    $system =~ s/:.*\z/:/s;
+    $system =~ s/:.*\Z(?!\n)/:/s;
     return $system;
 }
 
@@ -228,7 +231,7 @@ sub splitpath {
     my ($volume,$directory,$file) = ('','','');
 
     if ( $nofile ) {
-        ( $volume, $directory ) = $path =~ m@((?:[^:]+(?::|\z))?)(.*)@s;
+        ( $volume, $directory ) = $path =~ m@((?:[^:]+(?::|\Z(?!\n)))?)(.*)@s;
     }
     else {
         $path =~ 
@@ -242,8 +245,8 @@ sub splitpath {
     }
 
     # Make sure non-empty volumes and directories end in ':'
-    $volume    .= ':' if $volume    =~ m@[^:]\z@ ;
-    $directory .= ':' if $directory =~ m@[^:]\z@ ;
+    $volume    .= ':' if $volume    =~ m@[^:]\Z(?!\n)@ ;
+    $directory .= ':' if $directory =~ m@[^:]\Z(?!\n)@ ;
     return ($volume,$directory,$file);
 }
 
@@ -259,7 +262,7 @@ sub splitdir {
     # check to be sure that there will not be any before handling the
     # simple case.
     #
-    if ( $directories !~ m@:\z@ ) {
+    if ( $directories !~ m@:\Z(?!\n)@ ) {
         return split( m@:@, $directories );
     }
     else {
@@ -286,11 +289,11 @@ sub catpath {
 
     my $segment ;
     for $segment ( @_ ) {
-        if ( $result =~ m@[^/]\z@ && $segment =~ m@^[^/]@s ) {
+        if ( $result =~ m@[^/]\Z(?!\n)@ && $segment =~ m@^[^/]@s ) {
             $result .= "/$segment" ;
         }
-        elsif ( $result =~ m@/\z@ && $segment =~ m@^/@s ) {
-            $result  =~ s@/+\z@/@;
+        elsif ( $result =~ m@/\Z(?!\n)@ && $segment =~ m@^/@s ) {
+            $result  =~ s@/+\Z(?!\n)@/@;
             $segment =~ s@^/+@@s;
             $result  .= "$segment" ;
         }
index 33370f0..20bf8c9 100644 (file)
@@ -1,8 +1,11 @@
 package File::Spec::OS2;
 
 use strict;
-use vars qw(@ISA);
+use vars qw(@ISA $VERSION);
 require File::Spec::Unix;
+
+$VERSION = '1.1';
+
 @ISA = qw(File::Spec::Unix);
 
 sub devnull {
index 0cbc8c7..6ca26d7 100644 (file)
@@ -1,6 +1,9 @@
 package File::Spec::Unix;
 
 use strict;
+use vars qw($VERSION);
+
+$VERSION = '1.1';
 
 use Cwd;
 
@@ -35,7 +38,7 @@ sub canonpath {
     $path =~ s|(/\.)+/|/|g;                        # xx/././xx -> xx/xx
     $path =~ s|^(\./)+||s unless $path eq "./";    # ./xx      -> xx
     $path =~ s|^/(\.\./)+|/|s;                     # /../../xx -> xx
-    $path =~ s|/\z|| unless $path eq "/";          # xx/       -> xx
+    $path =~ s|/\Z(?!\n)|| unless $path eq "/";          # xx/       -> xx
     return $path;
 }
 
@@ -146,7 +149,7 @@ directory. (Does not strip symlinks, only '.', '..', and equivalents.)
 
 sub no_upwards {
     my $self = shift;
-    return grep(!/^\.{1,2}\z/s, @_);
+    return grep(!/^\.{1,2}\Z(?!\n)/s, @_);
 }
 
 =item case_tolerant
@@ -223,7 +226,7 @@ sub splitpath {
         $directory = $path;
     }
     else {
-        $path =~ m|^ ( (?: .* / (?: \.\.?\z )? )? ) ([^/]*) |xs;
+        $path =~ m|^ ( (?: .* / (?: \.\.?\Z(?!\n) )? )? ) ([^/]*) |xs;
         $directory = $1;
         $file      = $2;
     }
@@ -242,11 +245,13 @@ $directories must be only the directory portion of the path on systems
 that have the concept of a volume or that have path syntax that differentiates
 files from directories.
 
-Unlike just splitting the directories on the separator, leading empty and 
-trailing directory entries can be returned, because these are significant
-on some OSs. So,
+Unlike just splitting the directories on the separator, empty
+directory names (C<''>) can be returned, because these are significant
+on some OSs (e.g. MacOS).
+
+On Unix,
 
-    File::Spec->splitdir( "/a/b/c" );
+    File::Spec->splitdir( "/a/b//c/" );
 
 Yields:
 
@@ -261,7 +266,7 @@ sub splitdir {
     # check to be sure that there will not be any before handling the
     # simple case.
     #
-    if ( $directories !~ m|/\z| ) {
+    if ( $directories !~ m|/\Z(?!\n)| ) {
         return split( m|/|, $directories );
     }
     else {
index a2ac8ca..d2be87c 100644 (file)
@@ -1,8 +1,11 @@
 package File::Spec::VMS;
 
 use strict;
-use vars qw(@ISA);
+use vars qw(@ISA $VERSION);
 require File::Spec::Unix;
+
+$VERSION = '1.1';
+
 @ISA = qw(File::Spec::Unix);
 
 use Cwd;
@@ -56,7 +59,7 @@ sub eliminate_macros {
                     $complex = 1;
                 }
             }
-            else { ($macro = unixify($self->{$macro})) =~ s#/\z##; }
+            else { ($macro = unixify($self->{$macro})) =~ s#/\Z(?!\n)##; }
             $npath = "$head$macro$tail";
         }
     }
@@ -86,8 +89,8 @@ sub fixpath {
     $self = bless {} unless ref $self;
     my($fixedpath,$prefix,$name);
 
-    if ($path =~ m#^\$\([^\)]+\)\z#s || $path =~ m#[/:>\]]#) { 
-        if ($force_path or $path =~ /(?:DIR\)|\])\z/) {
+    if ($path =~ m#^\$\([^\)]+\)\Z(?!\n)#s || $path =~ m#[/:>\]]#) { 
+        if ($force_path or $path =~ /(?:DIR\)|\])\Z(?!\n)/) {
             $fixedpath = vmspath($self->eliminate_macros($path));
         }
         else {
@@ -97,7 +100,7 @@ sub fixpath {
     elsif ((($prefix,$name) = ($path =~ m#^\$\(([^\)]+)\)(.+)#s)) && $self->{$prefix}) {
         my($vmspre) = $self->eliminate_macros("\$($prefix)");
         # is it a dir or just a name?
-        $vmspre = ($vmspre =~ m|/| or $prefix =~ /DIR\z/) ? vmspath($vmspre) : '';
+        $vmspre = ($vmspre =~ m|/| or $prefix =~ /DIR\Z(?!\n)/) ? vmspath($vmspre) : '';
         $fixedpath = ($vmspre ? $vmspre : $self->{$prefix}) . $name;
         $fixedpath = vmspath($fixedpath) if $force_path;
     }
@@ -136,7 +139,7 @@ sub canonpath {
     my($self,$path) = @_;
 
     if ($path =~ m|/|) { # Fake Unix
-      my $pathify = $path =~ m|/\z|;
+      my $pathify = $path =~ m|/\Z(?!\n)|;
       $path = $self->SUPER::canonpath($path);
       if ($pathify) { return vmspath($path); }
       else          { return vmsify($path);  }
@@ -169,8 +172,8 @@ sub catdir {
     if (@dirs) {
        my $path = (@dirs == 1 ? $dirs[0] : $self->catdir(@dirs));
        my ($spath,$sdir) = ($path,$dir);
-       $spath =~ s/\.dir\z//; $sdir =~ s/\.dir\z//; 
-       $sdir = $self->eliminate_macros($sdir) unless $sdir =~ /^[\w\-]+\z/s;
+       $spath =~ s/\.dir\Z(?!\n)//; $sdir =~ s/\.dir\Z(?!\n)//; 
+       $sdir = $self->eliminate_macros($sdir) unless $sdir =~ /^[\w\-]+\Z(?!\n)/s;
        $rslt = $self->fixpath($self->eliminate_macros($spath)."/$sdir",1);
 
        # Special case for VMS absolute directory specs: these will have had device
@@ -181,7 +184,7 @@ sub catdir {
     }
     else {
        if    (not defined $dir or not length $dir) { $rslt = ''; }
-       elsif ($dir =~ /^\$\([^\)]+\)\z/s)          { $rslt = $dir; }
+       elsif ($dir =~ /^\$\([^\)]+\)\Z(?!\n)/s)          { $rslt = $dir; }
        else                                        { $rslt = vmspath($dir); }
     }
     return $self->canonpath($rslt);
@@ -202,8 +205,8 @@ sub catfile {
     if (@files) {
        my $path = (@files == 1 ? $files[0] : $self->catdir(@files));
        my $spath = $path;
-       $spath =~ s/\.dir\z//;
-       if ($spath =~ /^[^\)\]\/:>]+\)\z/s && basename($file) eq $file) {
+       $spath =~ s/\.dir\Z(?!\n)//;
+       if ($spath =~ /^[^\)\]\/:>]+\)\Z(?!\n)/s && basename($file) eq $file) {
            $rslt = "$spath$file";
        }
        else {
@@ -310,7 +313,7 @@ Checks for VMS directory spec as well as Unix separators.
 sub file_name_is_absolute {
     my ($self,$file) = @_;
     # If it's a logical name, expand it.
-    $file = $ENV{$file} while $file =~ /^[\w\$\-]+\z/s && $ENV{$file};
+    $file = $ENV{$file} while $file =~ /^[\w\$\-]+\Z(?!\n)/s && $ENV{$file};
     return scalar($file =~ m!^/!s             ||
                  $file =~ m![<\[][^.\-\]>]!  ||
                  $file =~ /:[^<\[]/);
@@ -341,7 +344,7 @@ sub splitdir {
     $dirspec =~ s/\]\[//g;  $dirspec =~ s/\-\-/-.-/g;
     $dirspec = "[$dirspec]" unless $dirspec =~ /[\[<]/; # make legal
     my(@dirs) = split('\.', vmspath($dirspec));
-    $dirs[0] =~ s/^[\[<]//s;  $dirs[-1] =~ s/[\]>]\z//s;
+    $dirs[0] =~ s/^[\[<]//s;  $dirs[-1] =~ s/[\]>]\Z(?!\n)//s;
     @dirs;
 }
 
@@ -355,7 +358,7 @@ Construct a complete filespec using VMS syntax
 sub catpath {
     my($self,$dev,$dir,$file) = @_;
     if ($dev =~ m|^/+([^/]+)|) { $dev = "$1:"; }
-    else { $dev .= ':' unless $dev eq '' or $dev =~ /:\z/; }
+    else { $dev .= ':' unless $dev eq '' or $dev =~ /:\Z(?!\n)/; }
     if (length($dev) or length($dir)) {
       $dir = "[$dir]" unless $dir =~ /[\[<\/]/;
       $dir = vmspath($dir);
@@ -400,17 +403,16 @@ sub abs2rel {
     }
 
     # Split up paths
-    my ( undef, $path_directories, $path_file ) =
-        $self->splitpath( $path, 1 ) ;
+    my ( $path_directories, $path_file ) =
+        ($self->splitpath( $path, 1 ))[1,2] ;
 
     $path_directories = $1
-        if $path_directories =~ /^\[(.*)\]\z/s ;
+        if $path_directories =~ /^\[(.*)\]\Z(?!\n)/s ;
 
-    my ( undef, $base_directories, undef ) =
-        $self->splitpath( $base, 1 ) ;
+    my $base_directories = ($self->splitpath( $base, 1 ))[1] ;
 
     $base_directories = $1
-        if $base_directories =~ /^\[(.*)\]\z/s ;
+        if $base_directories =~ /^\[(.*)\]\Z(?!\n)/s ;
 
     # Now, remove all leading components that are the same
     my @pathchunks = $self->splitdir( $path_directories );
@@ -427,7 +429,7 @@ sub abs2rel {
     # @basechunks now contains the directories to climb out of,
     # @pathchunks now has the directories to descend in to.
     $path_directories = '-.' x @basechunks . join( '.', @pathchunks ) ;
-    $path_directories =~ s{\.\z}{} ;
+    $path_directories =~ s{\.\Z(?!\n)}{} ;
     return $self->canonpath( $self->catpath( '', $path_directories, $path_file ) ) ;
 }
 
@@ -458,17 +460,17 @@ sub rel2abs($;$;) {
         }
 
         # Split up paths
-        my ( undef, $path_directories, $path_file ) =
-            $self->splitpath( $path ) ;
+        my ( $path_directories, $path_file ) =
+            ($self->splitpath( $path ))[1,2] ;
 
-        my ( $base_volume, $base_directories, undef ) =
+        my ( $base_volume, $base_directories ) =
             $self->splitpath( $base ) ;
 
         $path_directories = '' if $path_directories eq '[]' ||
                                   $path_directories eq '<>';
         my $sep = '' ;
         $sep = '.'
-            if ( $base_directories =~ m{[^.\]>]\z} &&
+            if ( $base_directories =~ m{[^.\]>]\Z(?!\n)} &&
                  $path_directories =~ m{^[^.\[<]}s
             ) ;
         $base_directories = "$base_directories$sep$path_directories";
index aa95fbd..b8fe37b 100644 (file)
@@ -2,8 +2,11 @@ package File::Spec::Win32;
 
 use strict;
 use Cwd;
-use vars qw(@ISA);
+use vars qw(@ISA $VERSION);
 require File::Spec::Unix;
+
+$VERSION = '1.1';
+
 @ISA = qw(File::Spec::Unix);
 
 =head1 NAME
@@ -105,8 +108,8 @@ sub canonpath {
     $path =~ s|([^\\])\\+|$1\\|g;                  # xx////xx  -> xx/xx
     $path =~ s|(\\\.)+\\|\\|g;                     # xx/././xx -> xx/xx
     $path =~ s|^(\.\\)+||s unless $path eq ".\\";  # ./xx      -> xx
-    $path =~ s|\\\z||
-             unless $path =~ m#^([A-Z]:)?\\\z#s;   # xx/       -> xx
+    $path =~ s|\\\Z(?!\n)||
+             unless $path =~ m#^([A-Z]:)?\\\Z(?!\n)#s;   # xx/       -> xx
     return $path;
 }
 
@@ -146,7 +149,7 @@ sub splitpath {
                       (?:\\\\|//)[^\\/]+[\\/][^\\/]+
                   )?
                 )
-                ( (?:.*[\\\\/](?:\.\.?\z)?)? )
+                ( (?:.*[\\\\/](?:\.\.?\Z(?!\n))?)? )
                 (.*)
              }xs;
         $volume    = $1;
@@ -187,7 +190,7 @@ sub splitdir {
     # check to be sure that there will not be any before handling the
     # simple case.
     #
-    if ( $directories !~ m|[\\/]\z| ) {
+    if ( $directories !~ m|[\\/]\Z(?!\n)| ) {
         return split( m|[\\/]|, $directories );
     }
     else {
@@ -216,7 +219,7 @@ sub catpath {
     # If it's UNC, make sure the glue separator is there, reusing
     # whatever separator is first in the $volume
     $volume .= $1
-        if ( $volume =~ m@^([\\/])[\\/][^\\/]+[\\/][^\\/]+\z@s &&
+        if ( $volume =~ m@^([\\/])[\\/][^\\/]+[\\/][^\\/]+\Z(?!\n)@s &&
              $directory =~ m@^[^\\/]@s
            ) ;
 
@@ -224,8 +227,8 @@ sub catpath {
 
     # If the volume is not just A:, make sure the glue separator is 
     # there, reusing whatever separator is first in the $volume if possible.
-    if ( $volume !~ m@^[a-zA-Z]:\z@s &&
-         $volume =~ m@[^\\/]\z@      &&
+    if ( $volume !~ m@^[a-zA-Z]:\Z(?!\n)@s &&
+         $volume =~ m@[^\\/]\Z(?!\n)@      &&
          $file   =~ m@[^\\/]@
        ) {
         $volume =~ m@([\\/])@ ;
@@ -293,8 +296,7 @@ sub abs2rel {
     my ( $path_volume, $path_directories, $path_file ) =
         $self->splitpath( $path, 1 ) ;
 
-    my ( undef, $base_directories, undef ) =
-        $self->splitpath( $base, 1 ) ;
+    my $base_directories = ($self->splitpath( $base, 1 ))[1] ;
 
     # Now, remove all leading components that are the same
     my @pathchunks = $self->splitdir( $path_directories );
@@ -378,10 +380,10 @@ sub rel2abs($;$;) {
             $base = $self->canonpath( $base ) ;
         }
 
-        my ( undef, $path_directories, $path_file ) =
-            $self->splitpath( $path, 1 ) ;
+        my ( $path_directories, $path_file ) =
+            ($self->splitpath( $path, 1 ))[1,2] ;
 
-        my ( $base_volume, $base_directories, undef ) =
+        my ( $base_volume, $base_directories ) =
             $self->splitpath( $base, 1 ) ;
 
         $path = $self->catpath( 
diff --git a/lib/File/Temp.pm b/lib/File/Temp.pm
new file mode 100644 (file)
index 0000000..736ef3f
--- /dev/null
@@ -0,0 +1,1584 @@
+package File::Temp;
+
+=head1 NAME
+
+File::Temp - return name and handle of a temporary file safely
+
+=head1 SYNOPSIS
+
+  use File::Temp qw/ tempfile tempdir /; 
+
+  $dir = tempdir( CLEANUP => 1 );
+  ($fh, $filename) = tempfile( DIR => $dir );
+
+  ($fh, $filename) = tempfile( $template, DIR => $dir);
+  ($fh, $filename) = tempfile( $template, SUFFIX => '.dat');
+
+  $fh = tempfile();
+
+MkTemp family:
+
+  use File::Temp qw/ :mktemp  /;
+
+  ($fh, $file) = mkstemp( "tmpfileXXXXX" );
+  ($fh, $file) = mkstemps( "tmpfileXXXXXX", $suffix);
+
+  $tmpdir = mkdtemp( $template );
+
+  $unopened_file = mktemp( $template );
+
+POSIX functions:
+
+  use File::Temp qw/ :POSIX /;
+
+  $file = tmpnam();
+  $fh = tmpfile();
+
+  ($fh, $file) = tmpnam();
+  ($fh, $file) = tmpfile();
+
+
+Compatibility functions:
+
+  $unopened_file = File::Temp::tempnam( $dir, $pfx );
+
+=begin later
+
+Objects (NOT YET IMPLEMENTED):
+
+  require File::Temp;
+
+  $fh = new File::Temp($template);
+  $fname = $fh->filename;
+
+=end later
+
+=head1 DESCRIPTION
+
+C<File::Temp> can be used to create and open temporary files in a safe way.
+The tempfile() function can be used to return the name and the open
+filehandle of a temporary file.  The tempdir() function can 
+be used to create a temporary directory.
+
+The security aspect of temporary file creation is emphasized such that
+a filehandle and filename are returned together.  This helps guarantee that 
+a race condition can not occur where the temporary file is created by another process 
+between checking for the existence of the file and its
+opening.  Additional security levels are provided to check, for 
+example, that the sticky bit is set on world writable directories.
+See L<"safe_level"> for more information.
+
+For compatibility with popular C library functions, Perl implementations of
+the mkstemp() family of functions are provided. These are, mkstemp(),
+mkstemps(), mkdtemp() and mktemp().
+
+Additionally, implementations of the standard L<POSIX|POSIX>
+tmpnam() and tmpfile() functions are provided if required.
+
+Implementations of mktemp(), tmpnam(), and tempnam() are provided,
+but should be used with caution since they return only a filename
+that was valid when function was called, so cannot guarantee
+that the file will not exist by the time the caller opens the filename.
+
+=cut
+
+# 5.6.0 gives us S_IWOTH, S_IWGRP, our and auto-vivifying filehandls
+# People would like a version on 5.005 so give them what they want :-)
+use 5.005;
+use strict;
+use Carp;
+use File::Spec 0.8;
+use File::Path qw/ rmtree /;
+use Fcntl 1.03;
+use Errno qw( EEXIST ENOENT ENOTDIR EINVAL );
+
+# use 'our' on v5.6.0
+use vars qw($VERSION @EXPORT_OK %EXPORT_TAGS $DEBUG);
+
+$DEBUG = 0;
+
+# We are exporting functions
+
+#require Exporter;
+#@ISA = qw/Exporter/;
+use base qw/Exporter/;
+
+# Export list - to allow fine tuning of export table
+
+@EXPORT_OK = qw{
+             tempfile
+             tempdir
+             tmpnam
+             tmpfile
+             mktemp
+             mkstemp 
+             mkstemps
+             mkdtemp
+             unlink0
+               };
+
+# Groups of functions for export
+
+%EXPORT_TAGS = (
+               'POSIX' => [qw/ tmpnam tmpfile /],
+               'mktemp' => [qw/ mktemp mkstemp mkstemps mkdtemp/],
+              );
+
+# add contents of these tags to @EXPORT
+Exporter::export_tags('POSIX','mktemp');
+
+# Version number 
+
+$VERSION = '0.07';
+
+# This is a list of characters that can be used in random filenames
+
+my @CHARS = (qw/ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
+                a b c d e f g h i j k l m n o p q r s t u v w x y z
+                0 1 2 3 4 5 6 7 8 9 _ 
+            /);
+
+# Maximum number of tries to make a temp file before failing
+
+use constant MAX_TRIES => 10;
+
+# Minimum number of X characters that should be in a template
+use constant MINX => 4;
+
+# Default template when no template supplied
+
+use constant TEMPXXX => 'X' x 10;
+
+# Constants for the security level
+
+use constant STANDARD => 0;
+use constant MEDIUM   => 1;
+use constant HIGH     => 2;
+
+# INTERNAL ROUTINES - not to be used outside of package
+
+# Generic routine for getting a temporary filename
+# modelled on OpenBSD _gettemp() in mktemp.c
+
+# The template must contain X's that are to be replaced 
+# with the random values
+
+#  Arguments:
+
+#  TEMPLATE   - string containing the XXXXX's that is converted
+#           to a random filename and opened if required
+
+# Optionally, a hash can also be supplied containing specific options
+#   "open" => if true open the temp file, else just return the name
+#             default is 0
+#   "mkdir"=> if true, we are creating a temp directory rather than tempfile
+#             default is 0
+#   "suffixlen" => number of characters at end of PATH to be ignored.
+#                  default is 0.
+# "open" and "mkdir" can not both be true
+
+# The default options are equivalent to mktemp().
+
+# Returns:
+#   filehandle - open file handle (if called with doopen=1, else undef)
+#   temp name  - name of the temp file or directory
+
+# For example:
+#   ($fh, $name) = _gettemp($template, "open" => 1);
+
+# for the current version, failures are associated with
+# a carp to give the reason whilst debugging
+
+sub _gettemp {
+
+  croak 'Usage: ($fh, $name) = _gettemp($template, OPTIONS);'
+    unless scalar(@_) >= 1;
+
+  # Default options
+  my %options = (
+                "open" => 0,
+                "mkdir" => 0,
+                "suffixlen" => 0,
+               );
+
+  # Read the template
+  my $template = shift;
+  if (ref($template)) {
+    carp "File::Temp::_gettemp: template must not be a reference";
+    return ();
+  }
+
+  # Check that the number of entries on stack are even
+  if (scalar(@_) % 2 != 0) {
+    carp "File::Temp::_gettemp: Must have even number of options";
+    return ();
+  }
+
+  # Read the options and merge with defaults
+  %options = (%options, @_)  if @_;
+  
+  # Can not open the file and make a directory in a single call
+  if ($options{"open"} && $options{"mkdir"}) {
+    carp "File::Temp::_gettemp: doopen and domkdir can not both be true\n";
+    return ();
+  }
+
+  # Find the start of the end of the  Xs (position of last X)
+  # Substr starts from 0
+  my $start = length($template) - 1 - $options{"suffixlen"};
+
+  # Check that we have at least MINX x X (eg 'XXXX") at the end of the string
+  # (taking suffixlen into account). Any fewer is insecure.
+
+  # Do it using substr - no reason to use a pattern match since
+  # we know where we are looking and what we are looking for
+
+  if (substr($template, $start - MINX + 1, MINX) ne 'X' x MINX) {
+    carp "File::Temp::_gettemp: The template must contain at least ". MINX ." 'X' characters\n";
+    return ();
+  }
+
+  # Replace all the X at the end of the substring with a
+  # random character or just all the XX at the end of a full string.
+  # Do it as an if, since the suffix adjusts which section to replace
+  # and suffixlen=0 returns nothing if used in the substr directly
+  # and generate a full path from the template
+
+  my $path = _replace_XX($template, $options{"suffixlen"});
+
+
+  # Split the path into constituent parts - eventually we need to check
+  # whether the directory exists
+  # We need to know whether we are making a temp directory
+  # or a tempfile
+
+  my ($volume, $directories, $file);
+  my $parent; # parent directory
+  if ($options{"mkdir"}) {
+    # There is no filename at the end
+    ($volume, $directories, $file) = File::Spec->splitpath( $path, 1);
+
+    # The parent is then $directories without the last directory
+    # Split the directory and put it back together again
+    my @dirs = File::Spec->splitdir($directories);
+
+    # If @dirs only has one entry that means we are in the current
+    # directory
+    if ($#dirs == 0) {
+      $parent = File::Spec->curdir;
+    } else {
+
+      # Put it back together without the last one
+      $parent = File::Spec->catdir(@dirs[0..$#dirs-1]);
+
+      # ...and attach the volume (no filename)
+      $parent = File::Spec->catpath($volume, $parent, '');
+
+    }
+
+  } else {
+
+    # Get rid of the last filename (use File::Basename for this?)
+    ($volume, $directories, $file) = File::Spec->splitpath( $path );
+
+    # Join up without the file part
+    $parent = File::Spec->catpath($volume,$directories,'');
+
+    # If $parent is empty replace with curdir
+    $parent = File::Spec->curdir
+      unless $directories ne '';
+
+  }
+
+  # Check that the parent directories exist 
+  # Do this even for the case where we are simply returning a name
+  # not a file -- no point returning a name that includes a directory
+  # that does not exist or is not writable
+
+  unless (-d $parent && -w _) {
+    carp "File::Temp::_gettemp: Parent directory ($parent) is not a directory" 
+      . " or is not writable\n";
+      return ();
+  }
+
+  # Check the stickiness of the directory and chown giveaway if required
+  # If the directory is world writable the sticky bit
+  # must be set
+
+  if (File::Temp->safe_level == MEDIUM) {
+    unless (_is_safe($parent)) {
+      carp "File::Temp::_gettemp: Parent directory ($parent) is not safe (sticky bit not set when world writable?)";
+      return ();
+    }
+  } elsif (File::Temp->safe_level == HIGH) {
+    unless (_is_verysafe($parent)) {
+      carp "File::Temp::_gettemp: Parent directory ($parent) is not safe (sticky bit not set when world writable?)";
+      return ();
+    }
+  }
+
+
+  # Calculate the flags that we wish to use for the sysopen
+  # Some of these are not always available
+  my $openflags;
+  if ($options{"open"}) {
+    # Default set
+    $openflags = O_CREAT | O_EXCL | O_RDWR;
+
+    for my $oflag (qw/FOLLOW BINARY LARGEFILE EXLOCK NOINHERIT TEMPORARY/) {
+        my ($bit, $func) = (0, "Fcntl::O_" . $oflag);
+        no strict 'refs';
+        $openflags |= $bit if eval { $bit = &$func(); 1 };
+    }
+
+  }
+  
+
+  # Now try MAX_TRIES time to open the file
+  for (my $i = 0; $i < MAX_TRIES; $i++) {
+
+    # Try to open the file if requested
+    if ($options{"open"}) {
+      my $fh;
+
+      # If we are running before perl5.6.0 we can not auto-vivify
+      if ($] < 5.006) {
+       require Symbol;
+       $fh = &Symbol::gensym;
+      }
+
+      # Try to make sure this will be marked close-on-exec
+      # XXX: Win32 doesn't respect this, nor the proper fcntl,
+      #      but may have O_NOINHERIT. This may or may not be in Fcntl.
+      local $^F = 2; 
+
+      # Store callers umask
+      my $umask = umask();
+
+      # Set a known umask
+      umask(066);
+
+      # Attempt to open the file
+      if ( sysopen($fh, $path, $openflags, 0600) ) {
+
+       # Reset umask
+       umask($umask);
+       
+       # Opened successfully - return file handle and name
+       return ($fh, $path);
+
+      } else {
+       # Reset umask
+       umask($umask);
+
+       # Error opening file - abort with error
+       # if the reason was anything but EEXIST
+       unless ($! == EEXIST) {
+         carp "File::Temp: Could not create temp file $path: $!";
+         return ();
+       }
+
+       # Loop round for another try
+       
+      }
+    } elsif ($options{"mkdir"}) {
+
+      # Store callers umask
+      my $umask = umask();
+
+      # Set a known umask
+      umask(066);
+
+      # Open the temp directory
+      if (mkdir( $path, 0700)) {
+       # created okay
+       # Reset umask
+       umask($umask);
+
+       return undef, $path;
+      } else {
+
+       # Reset umask
+       umask($umask);
+
+       # Abort with error if the reason for failure was anything
+       # except EEXIST
+       unless ($! == EEXIST) {
+         carp "File::Temp: Could not create directory $path: $!";
+         return ();
+       }
+
+       # Loop round for another try
+
+      }
+
+    } else {
+
+      # Return true if the file can not be found
+      # Directory has been checked previously
+
+      return (undef, $path) unless -e $path;
+
+      # Try again until MAX_TRIES 
+
+    }
+    
+    # Did not successfully open the tempfile/dir
+    # so try again with a different set of random letters
+    # No point in trying to increment unless we have only
+    # 1 X say and the randomness could come up with the same
+    # file MAX_TRIES in a row.
+
+    # Store current attempt - in principal this implies that the
+    # 3rd time around the open attempt that the first temp file
+    # name could be generated again. Probably should store each
+    # attempt and make sure that none are repeated
+
+    my $original = $path;
+    my $counter = 0;  # Stop infinite loop
+    my $MAX_GUESS = 50;
+
+    do {
+
+      # Generate new name from original template
+      $path = _replace_XX($template, $options{"suffixlen"});
+
+      $counter++;
+
+    } until ($path ne $original || $counter > $MAX_GUESS);
+
+    # Check for out of control looping
+    if ($counter > $MAX_GUESS) {
+      carp "Tried to get a new temp name different to the previous value$MAX_GUESS times.\nSomething wrong with template?? ($template)";
+      return ();
+    }
+
+  }
+
+  # If we get here, we have run out of tries
+  carp "Have exceeded the maximum number of attempts (".MAX_TRIES .
+    ") to open temp file/dir";
+
+  return ();
+
+}
+
+# Internal routine to return a random character from the
+# character list. Does not do an srand() since rand()
+# will do one automatically
+
+# No arguments. Return value is the random character
+
+sub _randchar {
+
+  $CHARS[ int( rand( $#CHARS ) ) ];
+
+}
+
+# Internal routine to replace the XXXX... with random characters
+# This has to be done by _gettemp() every time it fails to 
+# open a temp file/dir
+
+# Arguments:  $template (the template with XXX), 
+#             $ignore   (number of characters at end to ignore)
+
+# Returns:    modified template
+
+sub _replace_XX {
+
+  croak 'Usage: _replace_XX($template, $ignore)'
+    unless scalar(@_) == 2;
+
+  my ($path, $ignore) = @_;
+
+  # Do it as an if, since the suffix adjusts which section to replace
+  # and suffixlen=0 returns nothing if used in the substr directly
+  # Alternatively, could simply set $ignore to length($path)-1
+  # Don't want to always use substr when not required though.
+
+  if ($ignore) {
+    substr($path, 0, - $ignore) =~ s/X(?=X*\z)/_randchar()/ge;
+  } else {
+    $path =~ s/X(?=X*\z)/_randchar()/ge;
+  }
+
+  return $path;
+}
+
+# internal routine to check to see if the directory is safe
+# First checks to see if the directory is not owned by the 
+# current user or root. Then checks to see if anyone else
+# can write to the directory and if so, checks to see if 
+# it has the sticky bit set
+
+# Will not work on systems that do not support sticky bit
+
+#Args:  directory path to check
+# Returns true if the path is safe and false otherwise.
+# Returns undef if can not even run stat() on the path
+
+# This routine based on version written by Tom Christiansen
+
+# Presumably, by the time we actually attempt to create the
+# file or directory in this directory, it may not be safe
+# anymore... Have to run _is_safe directly after the open.
+
+sub _is_safe {
+
+  my $path = shift;
+
+  # Stat path
+  my @info = stat($path);
+  return 0 unless scalar(@info);
+
+  # Check to see whether owner is neither superuser (or a system uid) nor me
+  # Use the real uid from the $< variable
+  # UID is in [4]
+  if ( $info[4] > File::Temp->top_system_uid() && $info[4] != $<) {
+    carp "Directory owned neither by root nor the current user";
+    return 0;
+  }
+
+  # check whether group or other can write file
+  # use 066 to detect either reading or writing
+  # use 022 to check writability
+  # Do it with S_IWOTH and S_IWGRP for portability (maybe)
+  # mode is in info[2]
+  if (($info[2] & &Fcntl::S_IWGRP) ||   # Is group writable?
+      ($info[2] & &Fcntl::S_IWOTH) ) {  # Is world writable?
+    return 0 unless -d _;       # Must be a directory
+    return 0 unless -k _;       # Must be sticky
+  }
+
+  return 1;
+}
+
+# Internal routine to check whether a directory is safe
+# for temp files. Safer than _is_safe since it checks for 
+# the possibility of chown giveaway and if that is a possibility
+# checks each directory in the path to see if it is safe (with _is_safe)
+
+# If _PC_CHOWN_RESTRICTED is not set, does the full test of each
+# directory anyway.
+
+sub _is_verysafe {
+
+  # Need POSIX - but only want to bother if really necessary due to overhead
+  require POSIX;
+
+  my $path = shift;
+
+  # Should Get the value of _PC_CHOWN_RESTRICTED if it is defined
+  # and If it is not there do the extensive test
+  my $chown_restricted;
+  $chown_restricted = &POSIX::_PC_CHOWN_RESTRICTED()
+    if eval { &POSIX::_PC_CHOWN_RESTRICTED(); 1};
+
+  # If chown_resticted is set to some value we should test it
+  if (defined $chown_restricted) {
+
+    # Return if the current directory is safe
+    return _is_safe($path) if POSIX::sysconf( $chown_restricted );
+
+  }
+
+  # To reach this point either, the _PC_CHOWN_RESTRICTED symbol
+  # was not avialable or the symbol was there but chown giveaway
+  # is allowed. Either way, we now have to test the entire tree for
+  # safety.
+
+  # Convert path to an absolute directory if required
+  unless (File::Spec->file_name_is_absolute($path)) {
+    $path = File::Spec->rel2abs($path);
+  }
+
+  # Split directory into components - assume no file
+  my ($volume, $directories, undef) = File::Spec->splitpath( $path, 1);
+
+  # Slightly less efficient than having a a function in File::Spec
+  # to chop off the end of a directory or even a function that
+  # can handle ../ in a directory tree
+  # Sometimes splitdir() returns a blank at the end
+  # so we will probably check the bottom directory twice in some cases
+  my @dirs = File::Spec->splitdir($directories);
+
+  # Concatenate one less directory each time around
+  foreach my $pos (0.. $#dirs) {
+    # Get a directory name
+    my $dir = File::Spec->catpath($volume,
+                                 File::Spec->catdir(@dirs[0.. $#dirs - $pos]),
+                                 ''
+                                 );
+
+    print "TESTING DIR $dir\n" if $DEBUG;
+
+    # Check the directory
+    return 0 unless _is_safe($dir);
+
+  }
+
+  return 1;
+}
+
+
+
+# internal routine to determine whether unlink works on this
+# platform for files that are currently open.
+# Returns true if we can, false otherwise.
+
+# Currently WinNT can not unlink an opened file
+
+sub _can_unlink_opened_file {
+
+  
+  $^O ne 'MSWin32' ? 1 : 0;
+
+}
+
+
+# This routine sets up a deferred unlinking of a specified
+# filename and filehandle. It is used in the following cases:
+#  - Called by unlink0 if an opend file can not be unlinked
+#  - Called by tempfile() if files are to be removed on shutdown
+#  - Called by tempdir() if directories are to be removed on shutdown
+
+# Arguments:
+#   _deferred_unlink( $fh, $fname, $isdir );
+#
+#   - filehandle (so that it can be expclicitly closed if open
+#   - filename   (the thing we want to remove)
+#   - isdir      (flag to indicate that we are being given a directory)
+#                 [and hence no filehandle]
+
+# Status is not referred since all the magic is done with END blocks
+
+sub _deferred_unlink {
+
+  croak 'Usage:  _deferred_unlink($fh, $fname, $isdir)'
+    unless scalar(@_) == 3;
+
+  my ($fh, $fname, $isdir) = @_;
+
+  warn "Setting up deferred removal of $fname\n"
+    if $DEBUG;
+
+  # If we have a directory, check that it is a directory
+  if ($isdir) {
+
+    if (-d $fname) {
+
+      # Directory exists so set up END block
+      # (quoted to preserve lexical variables)
+      eval q{
+       END {
+         if (-d $fname) {
+           rmtree($fname, $DEBUG, 1);
+         }
+       }
+       1;
+      }  || die;
+
+    } else {
+      carp "Request to remove directory $fname could not be completed since it does not exists!\n";
+    }
+
+
+  } else {
+
+    if (-f $fname) {
+
+      # dile exists so set up END block
+      # (quoted to preserve lexical variables)
+      eval q{
+       END {
+         # close the filehandle without checking its state
+         # in order to make real sure that this is closed
+         # if its already closed then I dont care about the answer
+         # probably a better way to do this
+         close($fh);
+
+         if (-f $fname) {
+           unlink $fname
+             || warn "Error removing $fname";
+         }
+       }
+       1;
+      } || die;
+
+    } else {
+      carp "Request to remove file $fname could not be completed since it is not there!\n";
+    }
+
+
+    
+  }
+
+}
+
+
+=head1 FUNCTIONS
+
+This section describes the recommended interface for generating
+temporary files and directories.
+
+=over 4
+
+=item B<tempfile>
+
+This is the basic function to generate temporary files.
+The behaviour of the file can be changed using various options:
+
+  ($fh, $filename) = tempfile();
+
+Create a temporary file in  the directory specified for temporary
+files, as specified by the tmpdir() function in L<File::Spec>.
+
+  ($fh, $filename) = tempfile($template);
+
+Create a temporary file in the current directory using the supplied
+template.  Trailing `X' characters are replaced with random letters to
+generate the filename.  At least four `X' characters must be present
+in the template.
+
+  ($fh, $filename) = tempfile($template, SUFFIX => $suffix)
+
+Same as previously, except that a suffix is added to the template
+after the `X' translation.  Useful for ensuring that a temporary
+filename has a particular extension when needed by other applications.
+But see the WARNING at the end.
+
+  ($fh, $filename) = tempfile($template, DIR => $dir);
+
+Translates the template as before except that a directory name
+is specified.
+
+If the template is not specified, a template is always
+automatically generated. This temporary file is placed in tmpdir()
+(L<File::Spec>) unless a directory is specified explicitly with the 
+DIR option.
+
+  $fh = tempfile( $template, DIR => $dir );
+
+If called in scalar context, only the filehandle is returned
+and the file will automatically be deleted when closed (see 
+the description of tmpfile() elsewhere in this document).
+This is the preferred mode of operation, as if you only 
+have a filehandle, you can never create a race condition
+by fumbling with the filename. On systems that can not unlink
+an open file (for example, Windows NT) the file is marked for
+deletion when the program ends (equivalent to setting UNLINK to 1).
+
+  (undef, $filename) = tempfile($template, OPEN => 0);
+
+This will return the filename based on the template but
+will not open this file.  Cannot be used in conjunction with
+UNLINK set to true. Default is to always open the file 
+to protect from possible race conditions. A warning is issued
+if warnings are turned on. Consider using the tmpnam()
+and mktemp() functions described elsewhere in this document
+if opening the file is not required.
+
+=cut
+
+sub tempfile {
+
+  # Can not check for argument count since we can have any
+  # number of args
+
+  # Default options
+  my %options = (
+                "DIR"    => undef,  # Directory prefix
+                "SUFFIX" => '',      # Template suffix
+                "UNLINK" => 0,      # Unlink file on exit
+                "OPEN"   => 1,      # Do not open file
+               );
+
+  # Check to see whether we have an odd or even number of arguments
+  my $template = (scalar(@_) % 2 == 1 ? shift(@_) : undef);
+
+  # Read the options and merge with defaults
+  %options = (%options, @_)  if @_;
+
+  # First decision is whether or not to open the file
+  if (! $options{"OPEN"}) {
+
+    warn "tempfile(): temporary filename requested but not opened.\nPossibly unsafe, consider using tempfile() with OPEN set to true\n"
+      if $^W;
+
+  }
+
+  # Construct the template 
+
+  # Have a choice of trying to work around the mkstemp/mktemp/tmpnam etc
+  # functions or simply constructing a template and using _gettemp()
+  # explicitly. Go for the latter
+
+  # First generate a template if not defined and prefix the directory
+  # If no template must prefix the temp directory
+  if (defined $template) {
+    if ($options{"DIR"}) {
+
+      $template = File::Spec->catfile($options{"DIR"}, $template);
+
+    }
+
+  } else {
+
+    if ($options{"DIR"}) {
+
+      $template = File::Spec->catfile($options{"DIR"}, TEMPXXX);
+
+    } else {
+      
+      $template = File::Spec->catfile(File::Spec->tmpdir, TEMPXXX);
+
+    }
+    
+  }
+
+  # Now add a suffix
+  $template .= $options{"SUFFIX"};
+
+  # Create the file
+  my ($fh, $path);
+  croak "Error in tempfile() using $template"
+    unless (($fh, $path) = _gettemp($template,
+                                   "open" => $options{'OPEN'}, 
+                                   "mkdir"=> 0 ,
+                                   "suffixlen" => length($options{'SUFFIX'}),
+                                  ) );  
+
+  # Set up an exit handler that can do whatever is right for the
+  # system. Do not check return status since this is all done with
+  # END blocks
+  _deferred_unlink($fh, $path, 0) if $options{"UNLINK"};
+  
+  # Return
+  if (wantarray()) {
+
+    if ($options{'OPEN'}) {
+      return ($fh, $path);
+    } else {
+      return (undef, $path);
+    }
+
+  } else {
+
+    # Unlink the file. It is up to unlink0 to decide what to do with
+    # this (whether to unlink now or to defer until later)
+    unlink0($fh, $path) or croak "Error unlinking file $path using unlink0";
+    
+    # Return just the filehandle.
+    return $fh;
+  }
+
+
+}
+
+=item B<tempdir>
+
+This is the recommended interface for creation of temporary directories.
+The behaviour of the function depends on the arguments:
+
+  $tempdir = tempdir();
+
+Create a directory in tmpdir() (see L<File::Spec|File::Spec>).
+
+  $tempdir = tempdir( $template );
+
+Create a directory from the supplied template. This template is
+similar to that described for tempfile(). `X' characters at the end
+of the template are replaced with random letters to construct the
+directory name. At least four `X' characters must be in the template.
+
+  $tempdir = tempdir ( DIR => $dir );
+
+Specifies the directory to use for the temporary directory.
+The temporary directory name is derived from an internal template.
+
+  $tempdir = tempdir ( $template, DIR => $dir );
+
+Prepend the supplied directory name to the template. The template
+should not include parent directory specifications itself. Any parent
+directory specifications are removed from the template before
+prepending the supplied directory.
+
+  $tempdir = tempdir ( $template, TMPDIR => 1 );
+
+Using the supplied template, creat the temporary directory in 
+a standard location for temporary files. Equivalent to doing
+
+  $tempdir = tempdir ( $template, DIR => File::Spec->tmpdir);
+
+but shorter. Parent directory specifications are stripped from the
+template itself. The C<TMPDIR> option is ignored if C<DIR> is set
+explicitly.  Additionally, C<TMPDIR> is implied if neither a template
+nor a directory are supplied.
+
+  $tempdir = tempdir( $template, CLEANUP => 1);
+
+Create a temporary directory using the supplied template, but 
+attempt to remove it (and all files inside it) when the program
+exits. Note that an attempt will be made to remove all files from
+the directory even if they were not created by this module (otherwise
+why ask to clean it up?). The directory removal is made with
+the rmtree() function from the L<File::Path|File::Path> module.
+Of course, if the template is not specified, the temporary directory
+will be created in tmpdir() and will also be removed at program exit.
+
+=cut
+
+# '
+
+sub tempdir  {
+
+  # Can not check for argument count since we can have any
+  # number of args
+
+  # Default options
+  my %options = (
+                "CLEANUP"    => 0,  # Remove directory on exit
+                "DIR"        => '', # Root directory
+                "TMPDIR"     => 0,  # Use tempdir with template
+               );
+
+  # Check to see whether we have an odd or even number of arguments
+  my $template = (scalar(@_) % 2 == 1 ? shift(@_) : undef );
+
+  # Read the options and merge with defaults
+  %options = (%options, @_)  if @_;
+
+  # Modify or generate the template
+
+  # Deal with the DIR and TMPDIR options
+  if (defined $template) {
+
+    # Need to strip directory path if using DIR or TMPDIR
+    if ($options{'TMPDIR'} || $options{'DIR'}) {
+
+      # Strip parent directory from the filename
+      # 
+      # There is no filename at the end
+      my ($volume, $directories, undef) = File::Spec->splitpath( $template, 1);
+
+      # Last directory is then our template
+      $template = (File::Spec->splitdir($directories))[-1];
+
+      # Prepend the supplied directory or temp dir
+      if ($options{"DIR"}) {
+
+       $template = File::Spec->catfile($options{"DIR"}, $template);
+
+      } elsif ($options{TMPDIR}) {
+
+       # Prepend tmpdir
+       $template = File::Spec->catdir(File::Spec->tmpdir, $template);
+
+      }
+
+    }
+
+  } else {
+
+    if ($options{"DIR"}) {
+
+      $template = File::Spec->catdir($options{"DIR"}, TEMPXXX);
+
+    } else {
+      
+      $template = File::Spec->catdir(File::Spec->tmpdir, TEMPXXX);
+
+    }
+    
+  }
+
+  # Create the directory
+  my $tempdir;
+  croak "Error in tempdir() using $template"
+    unless ((undef, $tempdir) = _gettemp($template,
+                                   "open" => 0, 
+                                   "mkdir"=> 1 ,
+                                   "suffixlen" => 0,
+                                  ) );  
+  
+  # Install exit handler; must be dynamic to get lexical
+  if ( $options{'CLEANUP'} && -d $tempdir) { 
+    _deferred_unlink(undef, $tempdir, 1);
+  } 
+
+  # Return the dir name
+  return $tempdir;
+
+}
+
+=back
+
+=head1 MKTEMP FUNCTIONS
+
+The following functions are Perl implementations of the 
+mktemp() family of temp file generation system calls.
+
+=over 4
+
+=item B<mkstemp>
+
+Given a template, returns a filehandle to the temporary file and the name
+of the file.
+
+  ($fh, $name) = mkstemp( $template );
+
+In scalar context, just the filehandle is returned.
+
+The template may be any filename with some number of X's appended
+to it, for example F</tmp/temp.XXXX>. The trailing X's are replaced
+with unique alphanumeric combinations.
+
+=cut
+
+
+
+sub mkstemp {
+
+  croak "Usage: mkstemp(template)"
+    if scalar(@_) != 1;
+
+  my $template = shift;
+
+  my ($fh, $path);
+  croak "Error in mkstemp using $template"
+    unless (($fh, $path) = _gettemp($template, 
+                                   "open" => 1, 
+                                   "mkdir"=> 0 ,
+                                   "suffixlen" => 0,
+                                  ) );
+
+  if (wantarray()) {
+    return ($fh, $path);
+  } else {
+    return $fh;
+  }
+
+}
+
+
+=item B<mkstemps>
+
+Similar to mkstemp(), except that an extra argument can be supplied
+with a suffix to be appended to the template.
+
+  ($fh, $name) = mkstemps( $template, $suffix );
+
+For example a template of C<testXXXXXX> and suffix of C<.dat>
+would generate a file similar to F<testhGji_w.dat>.
+
+Returns just the filehandle alone when called in scalar context.
+
+=cut
+
+sub mkstemps {
+
+  croak "Usage: mkstemps(template, suffix)"
+    if scalar(@_) != 2;
+
+
+  my $template = shift;
+  my $suffix   = shift;
+
+  $template .= $suffix;
+  
+  my ($fh, $path);
+  croak "Error in mkstemps using $template"
+    unless (($fh, $path) = _gettemp($template,
+                                   "open" => 1, 
+                                   "mkdir"=> 0 ,
+                                   "suffixlen" => length($suffix),
+                                  ) );
+
+  if (wantarray()) {
+    return ($fh, $path);
+  } else {
+    return $fh;
+  }
+
+}
+
+=item B<mkdtemp>
+
+Create a directory from a template. The template must end in
+X's that are replaced by the routine.
+
+  $tmpdir_name = mkdtemp($template);
+
+Returns the name of the temporary directory created.
+Returns undef on failure.
+
+Directory must be removed by the caller.
+
+=cut
+
+#' # for emacs
+
+sub mkdtemp {
+
+  croak "Usage: mkdtemp(template)"
+    if scalar(@_) != 1;
+  
+  my $template = shift;
+
+  my ($junk, $tmpdir);
+  croak "Error creating temp directory from template $template\n"
+    unless (($junk, $tmpdir) = _gettemp($template,
+                                       "open" => 0, 
+                                       "mkdir"=> 1 ,
+                                       "suffixlen" => 0,
+                                      ) );
+
+  return $tmpdir;
+
+}
+
+=item B<mktemp>
+
+Returns a valid temporary filename but does not guarantee
+that the file will not be opened by someone else.
+
+  $unopened_file = mktemp($template);
+
+Template is the same as that required by mkstemp().
+
+=cut
+
+sub mktemp {
+
+  croak "Usage: mktemp(template)"
+    if scalar(@_) != 1;
+
+  my $template = shift;
+
+  my ($tmpname, $junk);
+  croak "Error getting name to temp file from template $template\n"
+    unless (($junk, $tmpname) = _gettemp($template,
+                                        "open" => 0, 
+                                        "mkdir"=> 0 ,
+                                        "suffixlen" => 0,
+                                        ) );
+
+  return $tmpname;
+}
+
+=back
+
+=head1 POSIX FUNCTIONS
+
+This section describes the re-implementation of the tmpnam()
+and tmpfile() functions described in L<POSIX> 
+using the mkstemp() from this module.
+
+Unlike the L<POSIX|POSIX> implementations, the directory used
+for the temporary file is not specified in a system include
+file (C<P_tmpdir>) but simply depends on the choice of tmpdir()
+returned by L<File::Spec|File::Spec>. On some implementations this
+location can be set using the C<TMPDIR> environment variable, which
+may not be secure.
+If this is a problem, simply use mkstemp() and specify a template.
+
+=over 4
+
+=item B<tmpnam>
+
+When called in scalar context, returns the full name (including path)
+of a temporary file (uses mktemp()). The only check is that the file does
+not already exist, but there is no guarantee that that condition will
+continue to apply.
+
+  $file = tmpnam();
+
+When called in list context, a filehandle to the open file and
+a filename are returned. This is achieved by calling mkstemp()
+after constructing a suitable template.
+
+  ($fh, $file) = tmpnam();
+
+If possible, this form should be used to prevent possible
+race conditions.
+
+See L<File::Spec/tmpdir> for information on the choice of temporary
+directory for a particular operating system.
+
+=cut
+
+sub tmpnam {
+
+   # Retrieve the temporary directory name
+   my $tmpdir = File::Spec->tmpdir;
+
+   croak "Error temporary directory is not writable"
+     if $tmpdir eq '';
+
+   # Use a ten character template and append to tmpdir
+   my $template = File::Spec->catfile($tmpdir, TEMPXXX);
+  
+   if (wantarray() ) {
+       return mkstemp($template);
+   } else {
+       return mktemp($template);
+   }
+
+}
+
+=item B<tmpfile>
+
+In scalar context, returns the filehandle of a temporary file.
+
+  $fh = tmpfile();
+
+The file is removed when the filehandle is closed or when the program
+exits. No access to the filename is provided.
+
+=cut
+
+sub tmpfile {
+
+  # Simply call tmpnam() in an array context
+  my ($fh, $file) = tmpnam();
+
+  # Make sure file is removed when filehandle is closed
+  unlink0($fh, $file) or croak "Unable to unlink temporary file: $!";
+
+  return $fh;
+
+}
+
+=back
+
+=head1 ADDITIONAL FUNCTIONS
+
+These functions are provided for backwards compatibility
+with common tempfile generation C library functions.
+
+They are not exported and must be addressed using the full package
+name. 
+
+=over 4
+
+=item B<tempnam>
+
+Return the name of a temporary file in the specified directory
+using a prefix. The file is guaranteed not to exist at the time
+the function was called, but such guarantees are good for one 
+clock tick only.  Always use the proper form of C<sysopen>
+with C<O_CREAT | O_EXCL> if you must open such a filename.
+
+  $filename = File::Temp::tempnam( $dir, $prefix );
+
+Equivalent to running mktemp() with $dir/$prefixXXXXXXXX
+(using unix file convention as an example) 
+
+Because this function uses mktemp(), it can suffer from race conditions.
+
+=cut
+
+sub tempnam {
+
+  croak 'Usage tempnam($dir, $prefix)' unless scalar(@_) == 2;
+
+  my ($dir, $prefix) = @_;
+
+  # Add a string to the prefix
+  $prefix .= 'XXXXXXXX';
+
+  # Concatenate the directory to the file
+  my $template = File::Spec->catfile($dir, $prefix);
+
+  return mktemp($template);
+
+}
+
+=back
+
+=head1 UTILITY FUNCTIONS
+
+Useful functions for dealing with the filehandle and filename.
+
+=over 4
+
+=item B<unlink0>
+
+Given an open filehandle and the associated filename, make a safe
+unlink. This is achieved by first checking that the filename and
+filehandle initially point to the same file and that the number of
+links to the file is 1 (all fields returned by stat() are compared).
+Then the filename is unlinked and the filehandle checked once again to
+verify that the number of links on that file is now 0.  This is the
+closest you can come to making sure that the filename unlinked was the
+same as the file whose descriptor you hold.
+
+  unlink0($fh, $path) or die "Error unlinking file $path safely";
+
+Returns false on error. The filehandle is not closed since on some
+occasions this is not required.
+
+On some platforms, for example Windows NT, it is not possible to
+unlink an open file (the file must be closed first). On those
+platforms, the actual unlinking is deferred until the program ends
+and good status is returned. A check is still performed to make sure that
+the filehandle and filename are pointing to the same thing (but not at the time 
+the end block is executed since the deferred removal may not have access to
+the filehandle). 
+
+Additionally, on Windows NT not all the fields returned by stat() can
+be compared. For example, the C<dev> and C<rdev> fields seem to be different
+and also. Also, it seems that the size of the file returned by stat()
+does not always agree, with C<stat(FH)> being more accurate than
+C<stat(filename)>, presumably because of caching issues even when
+using autoflush (this is usually overcome by waiting a while after
+writing to the tempfile before attempting to C<unlink0> it).
+
+=cut
+
+sub unlink0 {
+
+  croak 'Usage: unlink0(filehandle, filename)'
+    unless scalar(@_) == 2;
+
+  # Read args
+  my ($fh, $path) = @_;
+
+  warn "Unlinking $path using unlink0\n"
+    if $DEBUG;
+
+  # Stat the filehandle
+  my @fh = stat $fh;
+
+  if ($fh[3] > 1 && $^W) {
+    carp "unlink0: fstat found too many links; SB=@fh";
+  } 
+
+  # Stat the path
+  my @path = stat $path;
+
+  unless (@path) {
+    carp "unlink0: $path is gone already" if $^W;
+    return;
+  } 
+
+  # this is no longer a file, but may be a directory, or worse
+  unless (-f _) {
+    confess "panic: $path is no longer a file: SB=@fh";
+  } 
+
+  # Do comparison of each member of the array
+  # On WinNT dev and rdev seem to be different
+  # depending on whether it is a file or a handle.
+  # Cannot simply compare all members of the stat return
+  # Select the ones we can use
+  my @okstat = (0..$#fh);  # Use all by default
+  if ($^O eq 'MSWin32') {
+    @okstat = (1,2,3,4,5,7,8,9,10);
+  }
+
+  # Now compare each entry explicitly by number
+  for (@okstat) {
+    print "Comparing: $_ : $fh[$_] and $path[$_]\n" if $DEBUG;
+    unless ($fh[$_] == $path[$_]) {
+      warn "Did not match $_ element of stat\n" if $DEBUG;
+      return 0;
+    }
+  }
+  
+  # attempt remove the file (does not work on some platforms)
+  if (_can_unlink_opened_file()) {
+    # XXX: do *not* call this on a directory; possible race
+    #      resulting in recursive removal
+    croak "unlink0: $path has become a directory!" if -d $path;
+    unlink($path) or return 0;
+
+    # Stat the filehandle
+    @fh = stat $fh;
+
+    print "Link count = $fh[3] \n" if $DEBUG;
+
+    # Make sure that the link count is zero
+    return ( $fh[3] == 0 ? 1 : 0);
+
+  } else {
+    _deferred_unlink($fh, $path, 0);
+    return 1;
+  }
+
+}
+
+=back
+
+=head1 PACKAGE VARIABLES
+
+These functions control the global state of the package.
+
+=over 4
+
+=item B<safe_level>
+
+Controls the lengths to which the module will go to check the safety of the
+temporary file or directory before proceeding.
+Options are:
+
+=over 8
+
+=item STANDARD
+
+Do the basic security measures to ensure the directory exists and
+is writable, that the umask() is fixed before opening of the file,
+that temporary files are opened only if they do not already exist, and
+that possible race conditions are avoided.  Finally the L<unlink0|"unlink0">
+function is used to remove files safely.
+
+=item MEDIUM
+
+In addition to the STANDARD security, the output directory is checked
+to make sure that it is owned either by root or the user running the
+program. If the directory is writable by group or by other, it is then
+checked to make sure that the sticky bit is set.
+
+Will not work on platforms that do not support the C<-k> test
+for sticky bit.
+
+=item HIGH
+
+In addition to the MEDIUM security checks, also check for the
+possibility of ``chown() giveaway'' using the L<POSIX|POSIX>
+sysconf() function. If this is a possibility, each directory in the
+path is checked in turn for safeness, recursively walking back to the 
+root directory.
+
+For platforms that do not support the L<POSIX|POSIX>
+C<_PC_CHOWN_RESTRICTED> symbol (for example, Windows NT) it is 
+assumed that ``chown() giveaway'' is possible and the recursive test
+is performed.
+
+=back
+
+The level can be changed as follows:
+
+  File::Temp->safe_level( File::Temp::HIGH );
+
+The level constants are not exported by the module.
+
+Currently, you must be running at least perl v5.6.0 in order to
+run with MEDIUM or HIGH security. This is simply because the 
+safety tests use functions from L<Fcntl|Fcntl> that are not
+available in older versions of perl. The problem is that the version
+number for Fcntl is the same in perl 5.6.0 and in 5.005_03 even though
+they are different versions.....
+
+=cut
+
+{
+  # protect from using the variable itself
+  my $LEVEL = STANDARD;
+  sub safe_level {
+    my $self = shift;
+    if (@_) { 
+      my $level = shift;
+      if (($level != STANDARD) && ($level != MEDIUM) && ($level != HIGH)) {
+       carp "safe_level: Specified level ($level) not STANDARD, MEDIUM or HIGH - ignoring\n";
+      } else {
+       if ($] < 5.006 && $level != STANDARD) {
+         # Cant do MEDIUM or HIGH checks
+         croak "Currently requires perl 5.006 or newer to do the safe checks";
+       }
+        $LEVEL = $level; 
+      }
+    }
+    return $LEVEL;
+  }
+}
+
+=item TopSystemUID
+
+This is the highest UID on the current system that refers to a root
+UID. This is used to make sure that the temporary directory is 
+owned by a system UID (C<root>, C<bin>, C<sys> etc) rather than 
+simply by root.
+
+This is required since on many unix systems C</tmp> is not owned
+by root.
+
+Default is to assume that any UID less than or equal to 10 is a root
+UID.
+
+  File::Temp->top_system_uid(10);
+  my $topid = File::Temp->top_system_uid;
+
+This value can be adjusted to reduce security checking if required.
+The value is only relevant when C<safe_level> is set to MEDIUM or higher.
+
+=back
+
+=cut
+
+{
+  my $TopSystemUID = 10;
+  sub top_system_uid {
+    my $self = shift;
+    if (@_) {
+      my $newuid = shift;
+      croak "top_system_uid: UIDs should be numeric"
+        unless $newuid =~ /^\d+$/s;
+      $TopSystemUID = $newuid;
+    }
+    return $TopSystemUID;
+  }
+}
+
+=head1 WARNING
+
+For maximum security, endeavour always to avoid ever looking at,
+touching, or even imputing the existence of the filename.  You do not
+know that that filename is connected to the same file as the handle
+you have, and attempts to check this can only trigger more race
+conditions.  It's far more secure to use the filehandle alone and
+dispense with the filename altogether.
+
+If you need to pass the handle to something that expects a filename
+then, on a unix system, use C<"/dev/fd/" . fileno($fh)> for arbitrary
+programs, or more generally C<< "+<=&" . fileno($fh) >> for Perl
+programs.  You will have to clear the close-on-exec bit on that file
+descriptor before passing it to another process.
+
+    use Fcntl qw/F_SETFD F_GETFD/;
+    fcntl($tmpfh, F_SETFD, 0)
+        or die "Can't clear close-on-exec flag on temp fh: $!\n";
+
+=head1 HISTORY
+
+Originally began life in May 1999 as an XS interface to the system
+mkstemp() function. In March 2000, the mkstemp() code was
+translated to Perl for total control of the code's
+security checking, to ensure the presence of the function regardless of
+operating system and to help with portability.
+
+=head1 SEE ALSO
+
+L<POSIX/tmpnam>, L<POSIX/tmpfile>, L<File::Spec>, L<File::Path>
+
+See L<File::MkTemp> for a different implementation of temporary
+file handling.
+
+=head1 AUTHOR
+
+Tim Jenness E<lt>t.jenness@jach.hawaii.eduE<gt>
+
+Copyright (C) 1999, 2000 Tim Jenness and the UK Particle Physics and
+Astronomy Research Council. All Rights Reserved.  This program is free
+software; you can redistribute it and/or modify it under the same
+terms as Perl itself.
+
+Original Perl implementation loosely based on the OpenBSD C code for 
+mkstemp(). Thanks to Tom Christiansen for suggesting that this module
+should be written and providing ideas for code improvements and
+security enhancements.
+
+=cut
+
+
+1;
index 097e14a..f474c7c 100644 (file)
@@ -2,12 +2,12 @@
 
 package Getopt::Long;
 
-# RCS Status      : $Id: GetoptLong.pl,v 2.22 2000-03-05 21:08:03+01 jv Exp $
+# RCS Status      : $Id: GetoptLong.pl,v 2.24 2000-03-14 21:28:52+01 jv Exp $
 # Author          : Johan Vromans
 # Created On      : Tue Sep 11 15:00:12 1990
 # Last Modified By: Johan Vromans
-# Last Modified On: Sun Mar  5 21:08:55 2000
-# Update Count    : 720
+# Last Modified On: Tue Mar 14 21:28:40 2000
+# Update Count    : 721
 # Status          : Released
 
 ################ Copyright ################
@@ -36,7 +36,7 @@ BEGIN {
     require 5.004;
     use Exporter ();
     use vars     qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
-    $VERSION     = "2.21";
+    $VERSION     = "2.23";
 
     @ISA         = qw(Exporter);
     @EXPORT      = qw(&GetOptions $REQUIRE_ORDER $PERMUTE $RETURN_IN_ORDER);
@@ -108,12 +108,12 @@ __END__
 
 ################ AutoLoading subroutines ################
 
-# RCS Status      : $Id: GetoptLongAl.pl,v 2.25 2000-03-05 21:08:03+01 jv Exp $
+# RCS Status      : $Id: GetoptLongAl.pl,v 2.27 2000-03-17 09:07:26+01 jv Exp $
 # Author          : Johan Vromans
 # Created On      : Fri Mar 27 11:50:30 1998
 # Last Modified By: Johan Vromans
-# Last Modified On: Sat Mar  4 16:33:02 2000
-# Update Count    : 49
+# Last Modified On: Fri Mar 17 09:00:09 2000
+# Update Count    : 55
 # Status          : Released
 
 sub GetOptions {
@@ -137,7 +137,7 @@ sub GetOptions {
     print STDERR ("GetOpt::Long $Getopt::Long::VERSION ",
                  "called from package \"$pkg\".",
                  "\n  ",
-                 'GetOptionsAl $Revision: 2.25 $ ',
+                 'GetOptionsAl $Revision: 2.27 $ ',
                  "\n  ",
                  "ARGV: (@ARGV)",
                  "\n  ",
@@ -229,17 +229,21 @@ sub GetOptions {
                    if ( $c eq '!' ) {
                        $opctl{"no$_"} = $c;
                        warn ("Ignoring '!' modifier for short option $_\n");
-                       $c = '';
+                       $opctl{$_} = $bopctl{$_} = '';
+                   }
+                   else {
+                       $opctl{$_} = $bopctl{$_} = $c;
                    }
-                   $opctl{$_} = $bopctl{$_} = $c;
                }
                else {
                    $_ = lc ($_) if $ignorecase;
                    if ( $c eq '!' ) {
                        $opctl{"no$_"} = $c;
-                       $c = '';
+                       $opctl{$_} = ''
+                   }
+                   else {
+                       $opctl{$_} = $c;
                    }
-                   $opctl{$_} = $c;
                }
                if ( defined $a ) {
                    # Note alias.
@@ -419,8 +423,10 @@ sub GetOptions {
                            &{$linkage{$opt}}($opt, $arg);
                        };
                        print STDERR ("=> die($@)\n") if $debug && $@ ne '';
-                       if ( $@ =~ /^FINISH\b/ ) {
-                           $goon = 0;
+                       if ( $@ =~ /^!/ ) {
+                           if ( $@ =~ /^!FINISH\b/ ) {
+                               $goon = 0;
+                           }
                        }
                        elsif ( $@ ne '' ) {
                            warn ($@);
@@ -487,8 +493,10 @@ sub GetOptions {
                    &$cb ($tryopt);
                };
                print STDERR ("=> die($@)\n") if $debug && $@ ne '';
-               if ( $@ =~ /^FINISH\b/ ) {
-                   $goon = 0;
+               if ( $@ =~ /^!/ ) {
+                   if ( $@ =~ /^!FINISH\b/ ) {
+                       $goon = 0;
+                   }
                }
                elsif ( $@ ne '' ) {
                    warn ($@);
@@ -1125,10 +1133,10 @@ the desired error message as its argument. GetOptions() will catch the
 die(), issue the error message, and record that an error result must
 be returned upon completion.
 
-It is also possible for a user-defined subroutine to preliminary
-terminate options processing by calling die() with argument
-C<"FINISH">. GetOptions will react as if it encountered a double dash
-C<-->.
+If the text of the error message starts with an exclamantion mark C<!>
+it is interpreted specially by GetOptions(). There is currently one
+special command implemented: C<die("!FINISH")> will cause GetOptions()
+to stop processing options, as if it encountered a double dash C<-->.
 
 =head2 Options with multiple names
 
@@ -1179,7 +1187,11 @@ The argument specification can be
 
 The option does not take an argument and may be negated, i.e. prefixed
 by "no". E.g. C<"foo!"> will allow C<--foo> (a value of 1 will be
-assigned) and C<--nofoo> (a value of 0 will be assigned).
+assigned) and C<--nofoo> (a value of 0 will be assigned). If the
+option has aliases, this applies to the aliases as well.
+
+Using negation on a single letter option when bundling is in effect is
+pointless and will result in a warning.
 
 =item +
 
index 580ca39..64a03a2 100644 (file)
@@ -108,6 +108,7 @@ European character set.
 # ---
 
 use POSIX qw(strxfrm LC_COLLATE);
+use warnings::register;
 
 require Exporter;
 
@@ -123,9 +124,9 @@ cmp         collate_cmp
 sub new {
   my $new = $_[1];
 
-  if ($^W && $] >= 5.003_06) {
+  if (warnings::enabled() && $] >= 5.003_06) {
     unless ($please_use_I18N_Collate_even_if_deprecated) {
-      warn <<___EOD___;
+      warnings::warn <<___EOD___;
 ***
 
   WARNING: starting from the Perl version 5.003_06
index 161620b..a5a3561 100644 (file)
@@ -55,6 +55,13 @@ failure: it just raises an exception matching C</^open2:/>.  However,
 C<exec> failures in the child are not detected.  You'll have to
 trap SIGPIPE yourself.
 
+open2() does not wait for and reap the child process after it exits.
+Except for short programs where it's acceptable to let the operating system
+take care of this, you need to do this yourself.  This is normally as
+simple as calling C<waitpid $pid, 0> when you're done with the process.
+Failing to do this can result in an accumulation of defunct or "zombie"
+processes.  See L<perlfunc/waitpid> for more information.
+
 This whole affair is quite dangerous, as you may block forever.  It
 assumes it's going to talk to something like B<bc>, both writing
 to it and reading from it.  This is presumably safe because you
index d43f1bd..46ebd68 100644 (file)
@@ -49,6 +49,13 @@ failure: it just raises an exception matching C</^open3:/>.  However,
 C<exec> failures in the child are not detected.  You'll have to 
 trap SIGPIPE yourself.
 
+open3() does not wait for and reap the child process after it exits.  
+Except for short programs where it's acceptable to let the operating system
+take care of this, you need to do this yourself.  This is normally as 
+simple as calling C<waitpid $pid, 0> when you're done with the process.
+Failing to do this can result in an accumulation of defunct or "zombie"
+processes.  See L<perlfunc/waitpid> for more information.
+
 If you try to read from the child's stdout writer and their stderr
 writer, you'll have problems with blocking, which means you'll want
 to use select() or the IO::Select, which means you'd best use
index 1a47f4a..e5434f4 100644 (file)
@@ -5,17 +5,26 @@
 # -- Daniel S. Lewart  Since Sep 1997
 #
 
-require Exporter;
 package Math::Complex;
 
-use 5.005_64;
-use strict;
+$VERSION = "1.30";
+
+our($VERSION, @ISA, @EXPORT, %EXPORT_TAGS, $Inf);
+
+BEGIN {
+    my $e = $!;
+    $Inf = CORE::exp(CORE::exp(30)); # We do want an arithmetic overflow.
+    $! = $e; # Clear ERANGE.
+    undef $Inf unless $Inf =~ /^inf(?:inity)?$/i; # Inf INF inf Infinity
+    $Inf = "Inf" if !defined $Inf || !($Inf > 0); # Desperation.
+}
 
-our($VERSION, @ISA, @EXPORT, %EXPORT_TAGS);
+use strict;
 
-my ( $i, $ip2, %logn );
+my $i;
+my %LOGN;
 
-$VERSION = sprintf("%s", q$Id: Complex.pm,v 1.26 1998/11/01 00:00:00 dsl Exp $ =~ /(\d+\.\d+)/);
+require Exporter;
 
 @ISA = qw(Exporter);
 
@@ -49,6 +58,7 @@ use overload
        '*'     => \&multiply,
        '/'     => \&divide,
        '**'    => \&power,
+       '=='    => \&numeq,
        '<=>'   => \&spaceship,
        'neg'   => \&negate,
        '~'     => \&conjugate,
@@ -66,7 +76,6 @@ use overload
 # Package "privates"
 #
 
-my $package        = 'Math::Complex';  # Package name
 my %DISPLAY_FORMAT = ('style' => 'cartesian',
                      'polar_pretty_print' => 1);
 my $eps            = 1e-14;            # Epsilon
@@ -228,6 +237,13 @@ sub i () {
 }
 
 #
+# ip2
+#
+# Half of i.
+#
+sub ip2 () { i / 2 }
+
+#
 # Attribute access/set routines
 #
 
@@ -262,7 +278,8 @@ sub update_polar {
        my ($x, $y) = @{$self->{'cartesian'}};
        $self->{p_dirty} = 0;
        return $self->{'polar'} = [0, 0] if $x == 0 && $y == 0;
-       return $self->{'polar'} = [CORE::sqrt($x*$x + $y*$y), CORE::atan2($y, $x)];
+       return $self->{'polar'} = [CORE::sqrt($x*$x + $y*$y),
+                                  CORE::atan2($y, $x)];
 }
 
 #
@@ -342,7 +359,7 @@ sub _divbyzero {
 
     if (defined $_[1]) {
        $mess .= "(Because in the definition of $_[0], the divisor ";
-       $mess .= "$_[1] " unless ($_[1] eq '0');
+       $mess .= "$_[1] " unless ("$_[1]" eq '0');
        $mess .= "is 0)\n";
     }
 
@@ -416,8 +433,8 @@ sub power {
            return 1 if $z2 == 0 || $z1 == 1;
            return 0 if $z1 == 0 && Re($z2) > 0;
        }
-       my $w = $inverted ? CORE::exp($z1 * CORE::log($z2))
-                         : CORE::exp($z2 * CORE::log($z1));
+       my $w = $inverted ? &exp($z1 * &log($z2))
+                         : &exp($z2 * &log($z1));
        # If both arguments cartesian, return cartesian, else polar.
        return $z1->{c_dirty} == 0 &&
               (not ref $z2 or $z2->{c_dirty} == 0) ?
@@ -440,6 +457,19 @@ sub spaceship {
 }
 
 #
+# (numeq)
+#
+# Computes z1 == z2.
+#
+# (Required in addition to spaceship() because of NaNs.)
+sub numeq {
+       my ($z1, $z2, $inverted) = @_;
+       my ($re1, $im1) = ref $z1 ? @{$z1->cartesian} : ($z1, 0);
+       my ($re2, $im2) = ref $z2 ? @{$z2->cartesian} : ($z2, 0);
+       return $re1 == $re2 && $im1 == $im2 ? 1 : 0;
+}
+
+#
 # (negate)
 #
 # Computes -z.
@@ -477,7 +507,13 @@ sub conjugate {
 #
 sub abs {
        my ($z, $rho) = @_;
-       return $z unless ref $z;
+       unless (ref $z) {
+           if (@_ == 2) {
+               $_[0] = $_[1];
+           } else {
+               return CORE::abs($z);
+           }
+       }
        if (defined $rho) {
            $z->{'polar'} = [ $rho, ${$z->polar}[1] ];
            $z->{p_dirty} = 0;
@@ -533,7 +569,8 @@ sub arg {
 sub sqrt {
        my ($z) = @_;
        my ($re, $im) = ref $z ? @{$z->cartesian} : ($z, 0);
-       return $re < 0 ? cplx(0, CORE::sqrt(-$re)) : CORE::sqrt($re) if $im == 0;
+       return $re < 0 ? cplx(0, CORE::sqrt(-$re)) : CORE::sqrt($re)
+           if $im == 0;
        my ($r, $t) = @{$z->polar};
        return (ref $z)->emake(CORE::sqrt($r), $t/2);
 }
@@ -547,9 +584,12 @@ sub sqrt {
 #
 sub cbrt {
        my ($z) = @_;
-       return $z < 0 ? -CORE::exp(CORE::log(-$z)/3) : ($z > 0 ? CORE::exp(CORE::log($z)/3): 0)
+       return $z < 0 ?
+           -CORE::exp(CORE::log(-$z)/3) :
+               ($z > 0 ? CORE::exp(CORE::log($z)/3): 0)
            unless ref $z;
        my ($r, $t) = @{$z->polar};
+       return 0 if $r == 0;
        return (ref $z)->emake(CORE::exp(CORE::log($r)/3), $t/3);
 }
 
@@ -559,7 +599,7 @@ sub cbrt {
 # Die on bad root.
 #
 sub _rootbad {
-    my $mess = "Root $_[0] not defined, root must be positive integer.\n";
+    my $mess = "Root $_[0] illegal, root rank must be positive integer.\n";
 
     my @up = caller(1);
 
@@ -581,7 +621,8 @@ sub _rootbad {
 sub root {
        my ($z, $n) = @_;
        _rootbad($n) if ($n < 1 or int($n) != $n);
-       my ($r, $t) = ref $z ? @{$z->polar} : (CORE::abs($z), $z >= 0 ? 0 : pi);
+       my ($r, $t) = ref $z ?
+           @{$z->polar} : (CORE::abs($z), $z >= 0 ? 0 : pi);
        my @root;
        my $k;
        my $theta_inc = pit2 / $n;
@@ -723,9 +764,9 @@ sub log10 {
 sub logn {
        my ($z, $n) = @_;
        $z = cplx($z, 0) unless ref $z;
-       my $logn = $logn{$n};
-       $logn = $logn{$n} = CORE::log($n) unless defined $logn; # Cache log(n)
-       return CORE::log($z) / $logn;
+       my $logn = $LOGN{$n};
+       $logn = $LOGN{$n} = CORE::log($n) unless defined $logn; # Cache log(n)
+       return &log($z) / $logn;
 }
 
 #
@@ -735,11 +776,14 @@ sub logn {
 #
 sub cos {
        my ($z) = @_;
+       return CORE::cos($z) unless ref $z;
        my ($x, $y) = @{$z->cartesian};
        my $ey = CORE::exp($y);
-       my $ey_1 = 1 / $ey;
-       return (ref $z)->make(CORE::cos($x) * ($ey + $ey_1)/2,
-                             CORE::sin($x) * ($ey_1 - $ey)/2);
+       my $sx = CORE::sin($x);
+       my $cx = CORE::cos($x);
+       my $ey_1 = $ey ? 1 / $ey : $Inf;
+       return (ref $z)->make($cx * ($ey + $ey_1)/2,
+                             $sx * ($ey_1 - $ey)/2);
 }
 
 #
@@ -749,11 +793,14 @@ sub cos {
 #
 sub sin {
        my ($z) = @_;
+       return CORE::sin($z) unless ref $z;
        my ($x, $y) = @{$z->cartesian};
        my $ey = CORE::exp($y);
-       my $ey_1 = 1 / $ey;
-       return (ref $z)->make(CORE::sin($x) * ($ey + $ey_1)/2,
-                             CORE::cos($x) * ($ey - $ey_1)/2);
+       my $sx = CORE::sin($x);
+       my $cx = CORE::cos($x);
+       my $ey_1 = $ey ? 1 / $ey : $Inf;
+       return (ref $z)->make($sx * ($ey + $ey_1)/2,
+                             $cx * ($ey - $ey_1)/2);
 }
 
 #
@@ -763,9 +810,9 @@ sub sin {
 #
 sub tan {
        my ($z) = @_;
-       my $cz = CORE::cos($z);
-       _divbyzero "tan($z)", "cos($z)" if (CORE::abs($cz) < $eps);
-       return CORE::sin($z) / $cz;
+       my $cz = &cos($z);
+       _divbyzero "tan($z)", "cos($z)" if $cz == 0;
+       return &sin($z) / $cz;
 }
 
 #
@@ -775,7 +822,7 @@ sub tan {
 #
 sub sec {
        my ($z) = @_;
-       my $cz = CORE::cos($z);
+       my $cz = &cos($z);
        _divbyzero "sec($z)", "cos($z)" if ($cz == 0);
        return 1 / $cz;
 }
@@ -787,7 +834,7 @@ sub sec {
 #
 sub csc {
        my ($z) = @_;
-       my $sz = CORE::sin($z);
+       my $sz = &sin($z);
        _divbyzero "csc($z)", "sin($z)" if ($sz == 0);
        return 1 / $sz;
 }
@@ -806,9 +853,9 @@ sub cosec { Math::Complex::csc(@_) }
 #
 sub cot {
        my ($z) = @_;
-       my $sz = CORE::sin($z);
+       my $sz = &sin($z);
        _divbyzero "cot($z)", "sin($z)" if ($sz == 0);
-       return CORE::cos($z) / $sz;
+       return &cos($z) / $sz;
 }
 
 #
@@ -825,8 +872,11 @@ sub cotan { Math::Complex::cot(@_) }
 #
 sub acos {
        my $z = $_[0];
-       return CORE::atan2(CORE::sqrt(1-$z*$z), $z) if (! ref $z) && CORE::abs($z) <= 1;
-       my ($x, $y) = ref $z ? @{$z->cartesian} : ($z, 0);
+       return CORE::atan2(CORE::sqrt(1-$z*$z), $z)
+           if (! ref $z) && CORE::abs($z) <= 1;
+       $z = cplx($z, 0) unless ref $z;
+       my ($x, $y) = @{$z->cartesian};
+       return 0 if $x == 1 && $y == 0;
        my $t1 = CORE::sqrt(($x+1)*($x+1) + $y*$y);
        my $t2 = CORE::sqrt(($x-1)*($x-1) + $y*$y);
        my $alpha = ($t1 + $t2)/2;
@@ -837,7 +887,7 @@ sub acos {
        my $u = CORE::atan2(CORE::sqrt(1-$beta*$beta), $beta);
        my $v = CORE::log($alpha + CORE::sqrt($alpha*$alpha-1));
        $v = -$v if $y > 0 || ($y == 0 && $x < -1);
-       return __PACKAGE__->make($u, $v);
+       return (ref $z)->make($u, $v);
 }
 
 #
@@ -847,8 +897,11 @@ sub acos {
 #
 sub asin {
        my $z = $_[0];
-       return CORE::atan2($z, CORE::sqrt(1-$z*$z)) if (! ref $z) && CORE::abs($z) <= 1;
-       my ($x, $y) = ref $z ? @{$z->cartesian} : ($z, 0);
+       return CORE::atan2($z, CORE::sqrt(1-$z*$z))
+           if (! ref $z) && CORE::abs($z) <= 1;
+       $z = cplx($z, 0) unless ref $z;
+       my ($x, $y) = @{$z->cartesian};
+       return 0 if $x == 0 && $y == 0;
        my $t1 = CORE::sqrt(($x+1)*($x+1) + $y*$y);
        my $t2 = CORE::sqrt(($x-1)*($x-1) + $y*$y);
        my $alpha = ($t1 + $t2)/2;
@@ -859,7 +912,7 @@ sub asin {
        my $u =  CORE::atan2($beta, CORE::sqrt(1-$beta*$beta));
        my $v = -CORE::log($alpha + CORE::sqrt($alpha*$alpha-1));
        $v = -$v if $y > 0 || ($y == 0 && $x < -1);
-       return __PACKAGE__->make($u, $v);
+       return (ref $z)->make($u, $v);
 }
 
 #
@@ -870,11 +923,12 @@ sub asin {
 sub atan {
        my ($z) = @_;
        return CORE::atan2($z, 1) unless ref $z;
+       my ($x, $y) = ref $z ? @{$z->cartesian} : ($z, 0);
+       return 0 if $x == 0 && $y == 0;
        _divbyzero "atan(i)"  if ( $z == i);
-       _divbyzero "atan(-i)" if (-$z == i);
-       my $log = CORE::log((i + $z) / (i - $z));
-       $ip2 = 0.5 * i unless defined $ip2;
-       return $ip2 * $log;
+       _logofzero "atan(-i)" if (-$z == i); # -i is a bad file test...
+       my $log = &log((i + $z) / (i - $z));
+       return ip2 * $log;
 }
 
 #
@@ -913,10 +967,11 @@ sub acosec { Math::Complex::acsc(@_) }
 #
 sub acot {
        my ($z) = @_;
-       _divbyzero "acot(0)"  if (CORE::abs($z)     < $eps);
-       return ($z >= 0) ? CORE::atan2(1, $z) : CORE::atan2(-1, -$z) unless ref $z;
-       _divbyzero "acot(i)"  if (CORE::abs($z - i) < $eps);
-       _logofzero "acot(-i)" if (CORE::abs($z + i) < $eps);
+       _divbyzero "acot(0)"  if $z == 0;
+       return ($z >= 0) ? CORE::atan2(1, $z) : CORE::atan2(-1, -$z)
+           unless ref $z;
+       _divbyzero "acot(i)"  if ($z - i == 0);
+       _logofzero "acot(-i)" if ($z + i == 0);
        return atan(1 / $z);
 }
 
@@ -937,11 +992,11 @@ sub cosh {
        my $ex;
        unless (ref $z) {
            $ex = CORE::exp($z);
-           return ($ex + 1/$ex)/2;
+           return $ex ? ($ex + 1/$ex)/2 : $Inf;
        }
        my ($x, $y) = @{$z->cartesian};
        $ex = CORE::exp($x);
-       my $ex_1 = 1 / $ex;
+       my $ex_1 = $ex ? 1 / $ex : $Inf;
        return (ref $z)->make(CORE::cos($y) * ($ex + $ex_1)/2,
                              CORE::sin($y) * ($ex - $ex_1)/2);
 }
@@ -955,12 +1010,15 @@ sub sinh {
        my ($z) = @_;
        my $ex;
        unless (ref $z) {
+           return 0 if $z == 0;
            $ex = CORE::exp($z);
-           return ($ex - 1/$ex)/2;
+           return $ex ? ($ex - 1/$ex)/2 : "-$Inf";
        }
        my ($x, $y) = @{$z->cartesian};
+       my $cy = CORE::cos($y);
+       my $sy = CORE::sin($y);
        $ex = CORE::exp($x);
-       my $ex_1 = 1 / $ex;
+       my $ex_1 = $ex ? 1 / $ex : $Inf;
        return (ref $z)->make(CORE::cos($y) * ($ex - $ex_1)/2,
                              CORE::sin($y) * ($ex + $ex_1)/2);
 }
@@ -1016,7 +1074,7 @@ sub cosech { Math::Complex::csch(@_) }
 sub coth {
        my ($z) = @_;
        my $sz = sinh($z);
-       _divbyzero "coth($z)", "sinh($z)" if ($sz == 0);
+       _divbyzero "coth($z)", "sinh($z)" if $sz == 0;
        return cosh($z) / $sz;
 }
 
@@ -1035,25 +1093,44 @@ sub cotanh { Math::Complex::coth(@_) }
 sub acosh {
        my ($z) = @_;
        unless (ref $z) {
-           return CORE::log($z + CORE::sqrt($z*$z-1)) if $z >= 1;
            $z = cplx($z, 0);
        }
        my ($re, $im) = @{$z->cartesian};
        if ($im == 0) {
-           return cplx(CORE::log($re + CORE::sqrt($re*$re - 1)), 0) if $re >= 1;
-           return cplx(0, CORE::atan2(CORE::sqrt(1-$re*$re), $re)) if CORE::abs($re) <= 1;
+           return CORE::log($re + CORE::sqrt($re*$re - 1))
+               if $re >= 1;
+           return cplx(0, CORE::atan2(CORE::sqrt(1 - $re*$re), $re))
+               if CORE::abs($re) < 1;
        }
-       return CORE::log($z + CORE::sqrt($z*$z - 1));
+       my $t = &sqrt($z * $z - 1) + $z;
+       # Try Taylor if looking bad (this usually means that
+       # $z was large negative, therefore the sqrt is really
+       # close to abs(z), summing that with z...)
+       $t = 1/(2 * $z) - 1/(8 * $z**3) + 1/(16 * $z**5) - 5/(128 * $z**7)
+           if $t == 0;
+       my $u = &log($t);
+       $u->Im(-$u->Im) if $re < 0 && $im == 0;
+       return $re < 0 ? -$u : $u;
 }
 
 #
 # asinh
 #
-# Computes the arc hyperbolic sine asinh(z) = log(z + sqrt(z*z-1))
+# Computes the arc hyperbolic sine asinh(z) = log(z + sqrt(z*z+1))
 #
 sub asinh {
        my ($z) = @_;
-       return CORE::log($z + CORE::sqrt($z*$z + 1));
+       unless (ref $z) {
+           my $t = $z + CORE::sqrt($z*$z + 1);
+           return CORE::log($t) if $t;
+       }
+       my $t = &sqrt($z * $z + 1) + $z;
+       # Try Taylor if looking bad (this usually means that
+       # $z was large negative, therefore the sqrt is really
+       # close to abs(z), summing that with z...)
+       $t = 1/(2 * $z) - 1/(8 * $z**3) + 1/(16 * $z**5) - 5/(128 * $z**7)
+           if $t == 0;
+       return &log($t);
 }
 
 #
@@ -1067,9 +1144,9 @@ sub atanh {
            return CORE::log((1 + $z)/(1 - $z))/2 if CORE::abs($z) < 1;
            $z = cplx($z, 0);
        }
-       _divbyzero 'atanh(1)',  "1 - $z" if ($z ==  1);
-       _logofzero 'atanh(-1)'           if ($z == -1);
-       return 0.5 * CORE::log((1 + $z) / (1 - $z));
+       _divbyzero 'atanh(1)',  "1 - $z" if (1 - $z == 0);
+       _logofzero 'atanh(-1)'           if (1 + $z == 0);
+       return 0.5 * &log((1 + $z) / (1 - $z));
 }
 
 #
@@ -1079,7 +1156,7 @@ sub atanh {
 #
 sub asech {
        my ($z) = @_;
-       _divbyzero 'asech(0)', $z if ($z == 0);
+       _divbyzero 'asech(0)', "$z" if ($z == 0);
        return acosh(1 / $z);
 }
 
@@ -1108,14 +1185,14 @@ sub acosech { Math::Complex::acsch(@_) }
 #
 sub acoth {
        my ($z) = @_;
-       _divbyzero 'acoth(0)'            if (CORE::abs($z)     < $eps);
+       _divbyzero 'acoth(0)'            if ($z == 0);
        unless (ref $z) {
            return CORE::log(($z + 1)/($z - 1))/2 if CORE::abs($z) > 1;
            $z = cplx($z, 0);
        }
-       _divbyzero 'acoth(1)',  "$z - 1" if (CORE::abs($z - 1) < $eps);
-       _logofzero 'acoth(-1)', "1 / $z" if (CORE::abs($z + 1) < $eps);
-       return CORE::log((1 + $z) / ($z - 1)) / 2;
+       _divbyzero 'acoth(1)',  "$z - 1" if ($z - 1 == 0);
+       _logofzero 'acoth(-1)', "1 + $z" if (1 + $z == 0);
+       return &log((1 + $z) / ($z - 1)) / 2;
 }
 
 #
@@ -1141,8 +1218,8 @@ sub atan2 {
            ($re2, $im2) = ref $z2 ? @{$z2->cartesian} : ($z2, 0);
        }
        if ($im2 == 0) {
-           return cplx(CORE::atan2($re1, $re2), 0) if $im1 == 0;
-           return cplx(($im1<=>0) * pip2, 0) if $re2 == 0;
+           return CORE::atan2($re1, $re2) if $im1 == 0;
+           return ($im1<=>0) * pip2 if $re2 == 0;
        }
        my $w = atan($z1/$z2);
        my ($u, $v) = ref $w ? @{$w->cartesian} : ($w, 0);
@@ -1235,67 +1312,58 @@ sub stringify_cartesian {
        my ($x, $y) = @{$z->cartesian};
        my ($re, $im);
 
-       $x = int($x + ($x < 0 ? -1 : 1) * $eps)
-               if int(CORE::abs($x)) != int(CORE::abs($x) + $eps);
-       $y = int($y + ($y < 0 ? -1 : 1) * $eps)
-               if int(CORE::abs($y)) != int(CORE::abs($y) + $eps);
-
-       $re = "$x" if CORE::abs($x) >= $eps;
-
        my %format = $z->display_format;
        my $format = $format{format};
 
-       if ($y == 1)                           { $im = 'i' }
-       elsif ($y == -1)                       { $im = '-i' }
-       elsif (CORE::abs($y) >= $eps) {
-           $im = (defined $format ? sprintf($format, $y) : $y) . "i";
+       if ($x) {
+           if ($x =~ /^NaN[QS]?$/i) {
+               $re = $x;
+           } else {
+               if ($x =~ /^-?$Inf$/oi) {
+                   $re = $x;
+               } else {
+                   $re = defined $format ? sprintf($format, $x) : $x;
+               }
+           }
+       } else {
+           undef $re;
+       }
+
+       if ($y) {
+           if ($y =~ /^(NaN[QS]?)$/i) {
+               $im = $y;
+           } else {
+               if ($y =~ /^-?$Inf$/oi) {
+                   $im = $y;
+               } else {
+                   $im =
+                       defined $format ?
+                           sprintf($format, $y) :
+                           ($y == 1 ? "" : ($y == -1 ? "-" : $y));
+               }
+           }
+           $im .= "i";
+       } else {
+           undef $im;
        }
 
-       my $str = '';
-       $str = defined $format ? sprintf($format, $re) : $re
-           if defined $re;
+       my $str = $re;
+
        if (defined $im) {
            if ($y < 0) {
                $str .= $im;
-           } elsif ($y > 0)  {
+           } elsif ($y > 0 || $im =~ /^NaN[QS]?i$/i)  {
                $str .= "+" if defined $re;
                $str .= $im;
            }
+       } elsif (!defined $re) {
+           $str = "0";
        }
 
        return $str;
 }
 
 
-# Helper for stringify_polar, a Greatest Common Divisor with a memory.
-
-sub _gcd {
-    my ($a, $b) = @_;
-
-    use integer;
-
-    # Loops forever if given negative inputs.
-
-    if    ($b and $a > $b) { return gcd($a % $b, $b) }
-    elsif ($a and $b > $a) { return gcd($b % $a, $a) }
-    else                   { return $a ? $a : $b     }
-}
-
-my %gcd;
-
-sub gcd {
-    my ($a, $b) = @_;
-
-    my $id = "$a $b";
-
-    unless (exists $gcd{$id}) {
-       $gcd{$id} = _gcd($a, $b);
-       $gcd{"$b $a"} = $gcd{$id};
-    }
-
-    return $gcd{$id};
-}
-
 #
 # ->stringify_polar
 #
@@ -1306,74 +1374,50 @@ sub stringify_polar {
        my ($r, $t) = @{$z->polar};
        my $theta;
 
-       return '[0,0]' if $r <= $eps;
-
        my %format = $z->display_format;
+       my $format = $format{format};
 
-       my $nt = $t / pit2;
-       $nt = ($nt - int($nt)) * pit2;
-       $nt += pit2 if $nt < 0;                 # Range [0, 2pi]
-
-       if (CORE::abs($nt) <= $eps)             { $theta = 0 }
-       elsif (CORE::abs(pi-$nt) <= $eps)       { $theta = 'pi' }
-
-       if (defined $theta) {
-               $r = int($r + ($r < 0 ? -1 : 1) * $eps)
-                       if int(CORE::abs($r)) != int(CORE::abs($r) + $eps);
-               $theta = int($theta + ($theta < 0 ? -1 : 1) * $eps)
-                       if ($theta ne 'pi' and
-                           int(CORE::abs($theta)) != int(CORE::abs($theta) + $eps));
-               return "\[$r,$theta\]";
+       if ($t =~ /^NaN[QS]?$/i || $t =~ /^-?$Inf$/oi) {
+           $theta = $t; 
+       } elsif ($t == pi) {
+           $theta = "pi";
+       } elsif ($r == 0 || $t == 0) {
+           $theta = defined $format ? sprintf($format, $t) : $t;
        }
 
+       return "[$r,$theta]" if defined $theta;
+
        #
-       # Okay, number is not a real. Try to identify pi/n and friends...
+       # Try to identify pi/n and friends.
        #
 
-       $nt -= pit2 if $nt > pi;
-
-       if ($format{polar_pretty_print} && CORE::abs($nt) >= deg1) {
-           my ($n, $k, $kpi);
-
-           for ($k = 1, $kpi = pi; $k < 10; $k++, $kpi += pi) {
-               $n = int($kpi / $nt + ($nt > 0 ? 1 : -1) * 0.5);
-               if (CORE::abs($kpi/$n - $nt) <= $eps) {
-                   $n = CORE::abs($n);
-                   my $gcd = gcd($k, $n);
-                   if ($gcd > 1) {
-                       $k /= $gcd;
-                       $n /= $gcd;
-                   }
-                   next if $n > 360;
-                   $theta = ($nt < 0 ? '-':'').
-                            ($k == 1 ? 'pi':"${k}pi");
-                   $theta .= '/'.$n if $n > 1;
+       $t -= int(CORE::abs($t) / pit2) * pit2;
+
+       if ($format{polar_pretty_print}) {
+           my ($a, $b);
+           for $a (2..9) {
+               $b = $t * $a / pi;
+               if (int($b) == $b) {
+                   $b = $b < 0 ? "-" : "" if CORE::abs($b) == 1;
+                   $theta = "${b}pi/$a";
                    last;
                }
            }
        }
 
-       $theta = $nt unless defined $theta;
-
-       $r = int($r + ($r < 0 ? -1 : 1) * $eps)
-               if int(CORE::abs($r)) != int(CORE::abs($r) + $eps);
-       $theta = int($theta + ($theta < 0 ? -1 : 1) * $eps)
-               if ($theta !~ m(^-?\d*pi/\d+$) and
-                   int(CORE::abs($theta)) != int(CORE::abs($theta) + $eps));
-
-       my $format = $format{format};
         if (defined $format) {
            $r     = sprintf($format, $r);
-           $theta = sprintf($format, $theta);
+           $theta = sprintf($format, $theta) unless defined $theta;
+       } else {
+           $theta = $t unless defined $theta;
        }
 
-       return "\[$r,$theta\]";
+       return "[$r,$theta]";
 }
 
 1;
 __END__
 
-=pod
 =head1 NAME
 
 Math::Complex - complex numbers and associated mathematical functions
@@ -1695,7 +1739,7 @@ For instance:
        print "j = $j\n";               # Prints "j = -0.5+0.866025403784439i"
 
 The polar style attempts to emphasize arguments like I<k*pi/n>
-(where I<n> is a positive integer and I<k> an integer within [-9,+9]),
+(where I<n> is a positive integer and I<k> an integer within [-9, +9]),
 this is called I<polar pretty-printing>.
 
 =head2 CHANGED IN PERL 5.6
@@ -1705,29 +1749,33 @@ C<display_format> object method can now be called using
 a parameter hash instead of just a one parameter.
 
 The old display format style, which can have values C<"cartesian"> or
-C<"polar">, can be changed using the C<"style"> parameter.  (The one
-parameter calling convention also still works.)
+C<"polar">, can be changed using the C<"style"> parameter.
+
+       $j->display_format(style => "polar");
+
+The one parameter calling convention also still works.
+
+       $j->display_format("polar");
 
 There are two new display parameters.
 
-The first one is C<"format">, which is a sprintf()-style format
-string to be used for both parts of the complex number(s).  The
-default is C<undef>, which corresponds usually (this is somewhat
-system-dependent) to C<"%.15g">.  You can revert to the default by
-setting the format string to C<undef>.
+The first one is C<"format">, which is a sprintf()-style format string
+to be used for both numeric parts of the complex number(s).  The is
+somewhat system-dependent but most often it corresponds to C<"%.15g">.
+You can revert to the default by setting the C<format> to C<undef>.
 
        # the $j from the above example
 
        $j->display_format('format' => '%.5f');
        print "j = $j\n";               # Prints "j = -0.50000+0.86603i"
-       $j->display_format('format' => '%.6f');
+       $j->display_format('format' => undef);
        print "j = $j\n";               # Prints "j = -0.5+0.86603i"
 
 Notice that this affects also the return values of the
 C<display_format> methods: in list context the whole parameter hash
-will be returned, as opposed to only the style parameter value.  If
-you want to know the whole truth for a complex number, you must call
-both the class method and the object method:
+will be returned, as opposed to only the style parameter value.
+This is a potential incompatibility with earlier versions if you
+have been calling the C<display_format> method in list context.
 
 The second new display parameter is C<"polar_pretty_print">, which can
 be set to true or false, the default being true.  See the previous
@@ -1791,8 +1839,7 @@ is any integer.
 
 Note that because we are operating on approximations of real numbers,
 these errors can happen when merely `too close' to the singularities
-listed above.  For example C<tan(2*atan2(1,1)+1e-15)> will die of
-division by zero.
+listed above.
 
 =head1 ERRORS DUE TO INDIGESTIBLE ARGUMENTS
 
index 0fd36a9..ae32677 100644 (file)
@@ -1,7 +1,7 @@
 #############################################################################
 # Pod/Checker.pm -- check pod documents for syntax errors
 #
-# Copyright (C) 1994-1999 by Bradford Appleton. All rights reserved.
+# Copyright (C) 1994-2000 by Bradford Appleton. All rights reserved.
 # This file is part of "PodParser". PodParser is free software;
 # you can redistribute it and/or modify it under the same terms
 # as Perl itself.
@@ -11,7 +11,7 @@ package Pod::Checker;
 
 use vars qw($VERSION);
 $VERSION = 1.098;  ## Current version of this package
-require  5.004;    ## requires this Perl version or later
+require  5.005;    ## requires this Perl version or later
 
 use Pod::ParseUtils; ## for hyperlinks and lists
 
index e29c908..8de197b 100644 (file)
@@ -13,8 +13,8 @@
 package Pod::Find;
 
 use vars qw($VERSION);
-$VERSION = 0.11;   ## Current version of this package
-require  5.004;    ## requires this Perl version or later
+$VERSION = 0.12;   ## Current version of this package
+require  5.005;    ## requires this Perl version or later
 
 #############################################################################
 
@@ -49,13 +49,15 @@ Only text files containing at least one valid POD command are found.
 
 A warning is printed if more than one POD file with the same POD name
 is found, e.g. F<CPAN.pm> in different directories. This usually
-indicates duplicate occurences of modules in the I<@INC> search path.
+indicates duplicate occurrences of modules in the I<@INC> search path.
 
 The function B<simplify_name> is equivalent to B<basename>, but also
-strips Perl-like extensions (.pm, .pl, .pod).
+strips Perl-like extensions (.pm, .pl, .pod) and extensions like
+F<.bat>, F<.cmd> on Win32 and OS/2, respectively.
 
 Note that neither B<pod_find> nor B<simplify_name> are exported by
-default so be sure to specify them in the B<use> statement if you need them:
+default so be sure to specify them in the B<use> statement if you need
+them:
 
   use Pod::Find qw(pod_find simplify_name);
 
@@ -86,7 +88,8 @@ B<scriptdir>. This is taken from the local L<Config|Config> module.
 
 =item B<-inc>
 
-Search for PODs in the current Perl interpreter's I<@INC> paths.
+Search for PODs in the current Perl interpreter's I<@INC> paths. This
+automatically considers paths specified in the C<PERL5LIB> environment.
 
 =back
 
@@ -104,6 +107,7 @@ L<Pod::Parser>, L<Pod::Checker>
 use strict;
 #use diagnostics;
 use Exporter;
+use File::Spec;
 use File::Find;
 use Cwd;
 
@@ -144,7 +148,7 @@ sub pod_find
         require Config;
         # this code simplifies the POD name for Perl modules:
         # * remove "site_perl"
-        # * remove e.g. "i586-linux"
+        # * remove e.g. "i586-linux" (from 'archname')
         # * remove e.g. 5.00503
         # * remove pod/ if followed by *.pod (e.g. in pod/perlfunc.pod)
         $SIMPLIFY_RX =
@@ -158,11 +162,12 @@ sub pod_find
     my $pwd = cwd();
 
     foreach my $try (@search) {
-        unless($try =~ m:^/:s) {
-           # make path absolute
-           $try = join('/',$pwd,$try);
-       }
-       $try =~ s:/\.?(?=/|\z)::; # simplify path
+        unless(File::Spec->file_name_is_absolute($try)) {
+            # make path absolute
+            $try = File::Spec->catfile($pwd,$try);
+        }
+        # simplify path
+        $try = File::Spec->canonpath($try);
         my $name;
         if(-f $try) {
             if($name = _check_and_extract_name($try, $opts{-verbose})) {
@@ -170,30 +175,30 @@ sub pod_find
             }
             next;
         }
-       my $root_rx = qq!^\Q$try\E/!;
+        my $root_rx = qq!^\Q$try\E/!;
         File::Find::find( sub {
-           my $item = $File::Find::name;
-           if(-d) {
-               if($dirs_visited{$item}) {
-                   warn "Directory '$item' already seen, skipping.\n"
-                       if($opts{-verbose});
-                   $File::Find::prune = 1;
-                   return;
-               }
-               else {
-                   $dirs_visited{$item} = 1;
-               }
-               if($opts{-perl} && /^(\d+\.[\d_]+)\z/s && eval "$1" != $]) {
+            my $item = $File::Find::name;
+            if(-d) {
+                if($dirs_visited{$item}) {
+                    warn "Directory '$item' already seen, skipping.\n"
+                        if($opts{-verbose});
+                    $File::Find::prune = 1;
+                    return;
+                }
+                else {
+                    $dirs_visited{$item} = 1;
+                }
+                if($opts{-perl} && /^(\d+\.[\d_]+)\z/s && eval "$1" != $]) {
                     $File::Find::prune = 1;
                     warn "Perl $] version mismatch on $_, skipping.\n"
-                       if($opts{-verbose});
-               }
-               return;
-           }
+                        if($opts{-verbose});
+                }
+                return;
+            }
             if($name = _check_and_extract_name($item, $opts{-verbose}, $root_rx)) {
                 _check_for_duplicates($item, $name, \%names, \%pods);
             }
-       }, $try); # end of File::Find::find
+        }, $try); # end of File::Find::find
     }
     chdir $pwd;
     %pods;
@@ -203,8 +208,8 @@ sub _check_for_duplicates {
     my ($file, $name, $names_ref, $pods_ref) = @_;
     if($$names_ref{$name}) {
         warn "Duplicate POD found (shadowing?): $name ($file)\n";
-       warn "    Already seen in ",
-           join(' ', grep($$pods_ref{$_} eq $name, keys %$pods_ref)),"\n";
+        warn "    Already seen in ",
+            join(' ', grep($$pods_ref{$_} eq $name, keys %$pods_ref)),"\n";
     }
     else {
         $$names_ref{$name} = 1;
@@ -215,15 +220,16 @@ sub _check_for_duplicates {
 sub _check_and_extract_name {
     my ($file, $verbose, $root_rx) = @_;
 
-    # check extension or executable
-    unless($file =~ /\.(pod|pm|pl)\z/i || (-f $file && -x _ && -T _)) {
+    # check extension or executable flag
+    # this involves testing the .bat extension on Win32!
+    unless($file =~ /\.(pod|pm|plx?)\z/i || (-f $file && -x _ && -T _)) {
         return undef;
     }
 
     # check for one line of POD
     unless(open(POD,"<$file")) {
         warn "Error: $file is unreadable: $!\n";
-       return undef;
+        return undef;
     }
     local $/ = undef;
     my $pod = <POD>;
@@ -245,8 +251,8 @@ sub _check_and_extract_name {
     else {
         $name =~ s:^.*/::s;
     }
-    $name =~ s/\.(pod|pm|pl)\z//i;
-    $name =~ s!/+!::!g;
+    _simplify($name);
+    $name =~ s!/+!::!g; #/
     $name;
 }
 
@@ -254,10 +260,19 @@ sub _check_and_extract_name {
 # basename & strip extension
 sub simplify_name {
     my ($str) = @_;
+    # remove all path components
     $str =~ s:^.*/::s;
-    $str =~ s:\.p([lm]|od)\z::i;
+    _simplify($str);
     $str;
 }
 
+# internal sub only
+sub _simplify {
+    # strip Perl's own extensions
+    $_[0] =~ s/\.(pod|pm|plx?)\z//i;
+    # strip meaningless extensions on Win32 and OS/2
+    $_[0] =~ s/\.(bat|exe|cmd)\z//i if($^O =~ /win|os2/i);
+}
+
 1;
 
index 646c008..849182b 100644 (file)
@@ -11,8 +11,8 @@
 package Pod::InputObjects;
 
 use vars qw($VERSION);
-$VERSION = 1.11;  ## Current version of this package
-require  5.004;    ## requires this Perl version or later
+$VERSION = 1.12;  ## Current version of this package
+require  5.005;    ## requires this Perl version or later
 
 #############################################################################
 
@@ -522,7 +522,7 @@ sub _set_child2parent_links {
    my ($self, @children) = @_;
    ## Make sure any sequences know who their parent is
    for (@children) {
-      next if (!ref || ref eq 'SCALAR');
+      next  unless (length  and  ref  and  ref ne 'SCALAR');
       if (UNIVERSAL::isa($_, 'Pod::InteriorSequence') or
           UNIVERSAL::can($_, 'nested'))
       {
@@ -922,7 +922,7 @@ sub DESTROY {
 
 =head1 SEE ALSO
 
-See L<Pod::Parser>, L<Pod::Select>, and L<Pod::Callbacks>.
+See L<Pod::Parser>, L<Pod::Select>
 
 =head1 AUTHOR
 
index 898b544..8673ba4 100644 (file)
@@ -1,5 +1,5 @@
 # Pod::Man -- Convert POD data to formatted *roff input.
-# $Id: Man.pm,v 1.0 2000/03/06 10:16:31 eagle Exp $
+# $Id: Man.pm,v 1.4 2000/04/26 04:03:41 eagle Exp $
 #
 # Copyright 1999, 2000 by Russ Allbery <rra@stanford.edu>
 #
@@ -38,7 +38,7 @@ use vars qw(@ISA %ESCAPES $PREAMBLE $VERSION);
 # Perl core and too many things could munge CVS magic revision strings.
 # This number should ideally be the same as the CVS revision in podlators,
 # however.
-$VERSION = 1.00;
+$VERSION = 1.04;
 
 
 ############################################################################
@@ -110,7 +110,7 @@ $PREAMBLE = <<'----END OF PREAMBLE----';
 .if \nF \{\
 .    de IX
 .    tm Index:\\$1\t\\n%\t"\\$2"
-.    .
+..
 .    nr % 0
 .    rr F
 .\}
@@ -264,13 +264,13 @@ $PREAMBLE = <<'----END OF PREAMBLE----';
 # Static helper functions
 ############################################################################
 
-# Protect leading quotes and periods against interpretation as commands.  A
-# leading *roff font escape apparently still leaves a period interpretable
-# as a command by some *roff implementations, so look for a period even
-# after one of those.
+# Protect leading quotes and periods against interpretation as commands.
+# Also protect anything starting with a backslash, since it could expand
+# or hide something that *roff would interpret as a command.  This is
+# overkill, but it's much simpler than trying to parse *roff here.
 sub protect {
     local $_ = shift;
-    s{ ^ ( (?: \\f(?:.|\(..) )* [.\'] ) } {\\&$1}xmg;
+    s/^([.\'\\])/\\&$1/mg;
     $_;
 }
                     
@@ -396,7 +396,8 @@ sub begin_pod {
             #     */lib/*perl*      standard or site_perl module
             #     */*perl*/lib      from -D prefix=/opt/perl
             #     */*perl*/         random module hierarchy
-            # which works.  Should be fixed to use File::Spec.
+            # which works.  Should be fixed to use File::Spec.  Also handle
+            # a leading lib/ since that's what ExtUtils::MakeMaker creates.
             for ($name) {
                 s%//+%/%g;
                 if (     s%^.*?/lib/[^/]*perl[^/]*/%%si
@@ -405,6 +406,7 @@ sub begin_pod {
                     s%^(.*-$^O|$^O-.*)/%%so;  # arch
                     s%^\d+\.\d+%%s;           # version
                 }
+                s%^lib/%%;
                 s%/%::%g;
             }
         }
@@ -548,8 +550,11 @@ sub sequence {
         return bless \ "$tmp", 'Pod::Man::String';
     }
 
-    # C<>, L<>, X<>, and E<> don't apply guesswork to their contents.
-    local $_ = $self->collapse ($seq->parse_tree, $command =~ /^[CELX]$/);
+    # C<>, L<>, X<>, and E<> don't apply guesswork to their contents.  C<>
+    # needs some additional special handling.
+    my $literal = ($command =~ /^[CELX]$/);
+    $literal++ if $command eq 'C';
+    local $_ = $self->collapse ($seq->parse_tree, $literal);
 
     # Handle E<> escapes.
     if ($command eq 'E') {
@@ -574,8 +579,6 @@ sub sequence {
     } elsif ($command eq 'I') {
         return bless \ ('\f(IS' . $_ . '\f(IE'), 'Pod::Man::String';
     } elsif ($command eq 'C') {
-        s/-/\\-/g;
-        s/__/_\\|_/g;
         return bless \ ('\f(FS\*(C`' . $_ . "\\*(C'\\f(FE"),
             'Pod::Man::String';
     }
@@ -669,11 +672,14 @@ sub cmd_back {
 # An individual list item.  Emit an index entry for anything that's
 # interesting, but don't emit index entries for things like bullets and
 # numbers.  rofficate bullets too while we're at it (so for nice output, use
-# * for your lists rather than o or . or - or some other thing).
+# * for your lists rather than o or . or - or some other thing).  Newlines
+# in an item title are turned into spaces since *roff can't handle them
+# embedded.
 sub cmd_item {
     my $self = shift;
     local $_ = $self->parse (@_);
     s/\s+$//;
+    s/\s*\n\s*/ /g;
     my $index;
     if (/\w/ && !/^\w[.\)]\s*$/) {
         $index = $_;
@@ -825,8 +831,10 @@ sub parse {
 # text (not call guesswork on it), and returns the concatenation of all of
 # the text strings in that parse tree.  If the literal flag isn't true,
 # guesswork() will be called on all plain scalars in the parse tree.
-# Assumes that everything in the parse tree is either a scalar or a
-# reference to a scalar.
+# Otherwise, just escape backslashes in the normal case.  If collapse is
+# being called on a C<> sequence, literal is set to 2, and we do some
+# additional cleanup.  Assumes that everything in the parse tree is either a
+# scalar or a reference to a scalar.
 sub collapse {
     my ($self, $ptree, $literal) = @_;
     if ($literal) {
@@ -835,6 +843,8 @@ sub collapse {
                 $$_;
             } else {
                 s/\\/\\e/g;
+                s/-/\\-/g    if $literal > 1;
+                s/__/_\\|_/g if $literal > 1;
                 $_;
             }
         } $ptree->children);
index 00f516e..2cb8cdc 100644 (file)
@@ -11,7 +11,7 @@ package Pod::ParseUtils;
 
 use vars qw($VERSION);
 $VERSION = 0.2;    ## Current version of this package
-require  5.004;    ## requires this Perl version or later
+require  5.005;    ## requires this Perl version or later
 
 =head1 NAME
 
index 88d9aa7..48fc198 100644 (file)
@@ -10,8 +10,8 @@
 package Pod::Parser;
 
 use vars qw($VERSION);
-$VERSION = 1.11;  ## Current version of this package
-require  5.004;    ## requires this Perl version or later
+$VERSION = 1.12;  ## Current version of this package
+require  5.005;    ## requires this Perl version or later
 
 #############################################################################
 
@@ -71,7 +71,7 @@ Pod::Parser - base class for creating POD filters and translators
 
 =head1 REQUIRES
 
-perl5.004, Pod::InputObjects, Exporter, Carp
+perl5.005, Pod::InputObjects, Exporter, Symbol, Carp
 
 =head1 EXPORTS
 
@@ -206,6 +206,12 @@ use Pod::InputObjects;
 use Carp;
 use Exporter;
 require VMS::Filespec if $^O eq 'VMS';
+BEGIN {
+   if ($] < 5.6) {
+      require Symbol;
+      import Symbol;
+   }
+}
 @ISA = qw(Exporter);
 
 ## These "variables" are used as local "glob aliases" for performance
@@ -1146,7 +1152,7 @@ sub parse_from_file {
     my $self = shift;
     my %opts = (ref $_[0] eq 'HASH') ? %{ shift() } : ();
     my ($infile, $outfile) = @_;
-    my ($in_fh,  $out_fh);
+    my ($in_fh,  $out_fh) = (gensym, gensym)  if ($] < 5.6);
     my ($close_input, $close_output) = (0, 0);
     local *myData = $self;
     local $_;
@@ -1197,12 +1203,13 @@ sub parse_from_file {
         elsif (ref $outfile) {
             ## Must be a filehandle-ref (or else assume its a ref to an
             ## object that supports the common IO write operations).
-            $myData{_OUTFILE} = ${$outfile};;
+            $myData{_OUTFILE} = ${$outfile};
             $out_fh = $outfile;
         }
         else {
             ## We have a filename, open it for writing
             $myData{_OUTFILE} = $outfile;
+            (-d $outfile) and croak "$outfile is a directory, not POD input!\n";
             open($out_fh, "> $outfile")  or
                  croak "Can't open $outfile for writing: $!\n";
             $close_output = 1;
index 53e27e5..5dd1595 100644 (file)
@@ -10,8 +10,8 @@
 package Pod::Select;
 
 use vars qw($VERSION);
-$VERSION = 1.11;  ## Current version of this package
-require  5.004;    ## requires this Perl version or later
+$VERSION = 1.12;  ## Current version of this package
+require  5.005;    ## requires this Perl version or later
 
 #############################################################################
 
@@ -62,7 +62,7 @@ or
 
 =head1 REQUIRES
 
-perl5.004, Pod::Parser, Exporter, Carp
+perl5.005, Pod::Parser, Exporter, Carp
 
 =head1 EXPORTS
 
index d93e5a4..f5c1e3d 100644 (file)
@@ -1,7 +1,7 @@
 # Pod::Text -- Convert POD data to formatted ASCII text.
-# $Id: Text.pm,v 2.3 1999/10/07 09:41:57 eagle Exp $
+# $Id: Text.pm,v 2.4 2000/03/17 00:17:08 eagle Exp $
 #
-# Copyright 1999 by Russ Allbery <rra@stanford.edu>
+# Copyright 1999, 2000 by Russ Allbery <rra@stanford.edu>
 #
 # This program is free software; you can redistribute it and/or modify it
 # under the same terms as Perl itself.
@@ -33,7 +33,11 @@ use vars qw(@ISA @EXPORT %ESCAPES $VERSION);
 # We have to export pod2text for backward compatibility.
 @EXPORT = qw(pod2text);
 
-($VERSION = (split (' ', q$Revision: 2.3 $ ))[1]) =~ s/\.(\d)$/.0$1/;
+# Don't use the CVS revision as the version, since this module is also in
+# Perl core and too many things could munge CVS magic revision strings.
+# This number should ideally be the same as the CVS revision in podlators,
+# however.
+$VERSION = 2.04;
 
 
 ############################################################################
@@ -43,7 +47,7 @@ use vars qw(@ISA @EXPORT %ESCAPES $VERSION);
 # This table is taken near verbatim from Pod::PlainText in Pod::Parser,
 # which got it near verbatim from the original Pod::Text.  It is therefore
 # credited to Tom Christiansen, and I'm glad I didn't have to write it.  :)
-# "iexcl" to "divide" added by Tim Jenness
+# "iexcl" to "divide" added by Tim Jenness.
 %ESCAPES = (
     'amp'       =>    '&',      # ampersand
     'lt'        =>    '<',      # left chevron, less-than
@@ -113,42 +117,42 @@ use vars qw(@ISA @EXPORT %ESCAPES $VERSION);
     "yacute"    =>    "\xFD",   # small y, acute accent
     "yuml"      =>    "\xFF",   # small y, dieresis or umlaut mark
                                   
-    "lchevron"  =>    "\xAB",   # left chevron (double less than) laquo
-    "rchevron"  =>    "\xBB",   # right chevron (double greater than) raquo
-
-    "iexcl"  =>   "\xA1",   # inverted exclamation mark
-    "cent"   =>   "\xA2",   # cent sign
-    "pound"  =>   "\xA3",   # (UK) pound sign
-    "curren" =>   "\xA4",   # currency sign
-    "yen"    =>   "\xA5",   # yen sign
-    "brvbar" =>   "\xA6",   # broken vertical bar
-    "sect"   =>   "\xA7",   # section sign
-    "uml"    =>   "\xA8",   # diaresis
-    "copy"   =>   "\xA9",   # Copyright symbol
-    "ordf"   =>   "\xAA",   # feminine ordinal indicator
-    "laquo"  =>   "\xAB",   # left pointing double angle quotation mark
-    "not"    =>   "\xAC",   # not sign
-    "shy"    =>   "\xAD",   # soft hyphen
-    "reg"    =>   "\xAE",   # registered trademark
-    "macr"   =>   "\xAF",   # macron, overline
-    "deg"    =>   "\xB0",   # degree sign
-    "plusmn" =>   "\xB1",   # plus-minus sign
-    "sup2"   =>   "\xB2",   # superscript 2
-    "sup3"   =>   "\xB3",   # superscript 3
-    "acute"  =>   "\xB4",   # acute accent
-    "micro"  =>   "\xB5",   # micro sign
-    "para"   =>   "\xB6",   # pilcrow sign = paragraph sign
-    "middot" =>   "\xB7",   # middle dot = Georgian comma
-    "cedil"  =>   "\xB8",   # cedilla
-    "sup1"   =>   "\xB9",   # superscript 1
-    "ordm"   =>   "\xBA",   # masculine ordinal indicator
-    "raquo"  =>   "\xBB",   # right pointing double angle quotation mark
-    "frac14" =>   "\xBC",   # vulgar fraction one quarter
-    "frac12" =>   "\xBD",   # vulgar fraction one half
-    "frac34" =>   "\xBE",   # vulgar fraction three quarters
-    "iquest" =>   "\xBF",   # inverted question mark
-    "times"  =>   "\xD7",   # multiplication sign
-    "divide" =>   "\xF7",   # division sign
+    "laquo"     =>    "\xAB",   # left pointing double angle quotation mark
+    "lchevron"  =>    "\xAB",   #  synonym (backwards compatibility)
+    "raquo"     =>    "\xBB",   # right pointing double angle quotation mark
+    "rchevron"  =>    "\xBB",   #  synonym (backwards compatibility)
+
+    "iexcl"     =>    "\xA1",   # inverted exclamation mark
+    "cent"      =>    "\xA2",   # cent sign
+    "pound"     =>    "\xA3",   # (UK) pound sign
+    "curren"    =>    "\xA4",   # currency sign
+    "yen"       =>    "\xA5",   # yen sign
+    "brvbar"    =>    "\xA6",   # broken vertical bar
+    "sect"      =>    "\xA7",   # section sign
+    "uml"       =>    "\xA8",   # diaresis
+    "copy"      =>    "\xA9",   # Copyright symbol
+    "ordf"      =>    "\xAA",   # feminine ordinal indicator
+    "not"       =>    "\xAC",   # not sign
+    "shy"       =>    "\xAD",   # soft hyphen
+    "reg"       =>    "\xAE",   # registered trademark
+    "macr"      =>    "\xAF",   # macron, overline
+    "deg"       =>    "\xB0",   # degree sign
+    "plusmn"    =>    "\xB1",   # plus-minus sign
+    "sup2"      =>    "\xB2",   # superscript 2
+    "sup3"      =>    "\xB3",   # superscript 3
+    "acute"     =>    "\xB4",   # acute accent
+    "micro"     =>    "\xB5",   # micro sign
+    "para"      =>    "\xB6",   # pilcrow sign = paragraph sign
+    "middot"    =>    "\xB7",   # middle dot = Georgian comma
+    "cedil"     =>    "\xB8",   # cedilla
+    "sup1"      =>    "\xB9",   # superscript 1
+    "ordm"      =>    "\xBA",   # masculine ordinal indicator
+    "frac14"    =>    "\xBC",   # vulgar fraction one quarter
+    "frac12"    =>    "\xBD",   # vulgar fraction one half
+    "frac34"    =>    "\xBE",   # vulgar fraction three quarters
+    "iquest"    =>    "\xBF",   # inverted question mark
+    "times"     =>    "\xD7",   # multiplication sign
+    "divide"    =>    "\xF7",   # division sign
 );
 
 
index b8abe7d..aa8f712 100644 (file)
@@ -10,8 +10,8 @@
 package Pod::Usage;
 
 use vars qw($VERSION);
-$VERSION = 1.11;  ## Current version of this package
-require  5.004;    ## requires this Perl version or later
+$VERSION = 1.12;  ## Current version of this package
+require  5.005;    ## requires this Perl version or later
 
 =head1 NAME
 
index ae6797c..d4f12d0 100644 (file)
@@ -1,5 +1,5 @@
 package Text::Abbrev;
-require 5.000;
+require 5.005;         # Probably works on earlier versions too.
 require Exporter;
 
 =head1 NAME
@@ -15,7 +15,7 @@ abbrev - create an abbreviation table from a list
 =head1 DESCRIPTION
 
 Stores all unambiguous truncations of each element of LIST
-as keys key in the associative array referenced to by C<$hashref>.
+as keys in the associative array referenced by C<$hashref>.
 The values are the original list elements.
 
 =head1 EXAMPLE
@@ -34,54 +34,48 @@ The values are the original list elements.
 @EXPORT = qw(abbrev);
 
 # Usage:
-#      &abbrev(*foo,LIST);
+#      abbrev \%foo, LIST;
 #      ...
 #      $long = $foo{$short};
 
 sub abbrev {
-    my (%domain);
-    my ($name, $ref, $glob);
+    my ($word, $hashref, $glob, %table, $returnvoid);
 
     if (ref($_[0])) {           # hash reference preferably
-      $ref = shift;
-    } elsif ($_[0] =~ /^\*/) {  # looks like a glob (deprecated)
-      $glob = shift;
-    } 
-    my @cmp = @_;
-
-    foreach $name (@_) {
-       my @extra = split(//,$name);
-       my $abbrev = shift(@extra);
-       my $len = 1;
-        my $cmp;
-       WORD: foreach $cmp (@cmp) {
-           next if $cmp eq $name;
-           while (substr($cmp,0,$len) eq $abbrev) {
-                last WORD unless @extra;
-                $abbrev .= shift(@extra);
-               ++$len;
+      $hashref = shift;
+      $returnvoid = 1;
+    } elsif (ref \$_[0] eq 'GLOB') {  # is actually a glob (deprecated)
+      $hashref = \%{shift()};
+      $returnvoid = 1;
+    }
+    %{$hashref} = ();
+
+    WORD: foreach $word (@_) {
+        for (my $len = (length $word) - 1; $len > 0; --$len) {
+           my $abbrev = substr($word,0,$len);
+           my $seen = ++$table{$abbrev};
+           if ($seen == 1) {       # We're the first word so far to have
+                                   # this abbreviation.
+               $hashref->{$abbrev} = $word;
+           } elsif ($seen == 2) {  # We're the second word to have this
+                                   # abbreviation, so we can't use it.
+               delete $hashref->{$abbrev};
+           } else {                # We're the third word to have this
+                                   # abbreviation, so skip to the next word.
+               next WORD;
            }
        }
-       $domain{$abbrev} = $name;
-       while (@extra) {
-           $abbrev .= shift(@extra);
-           $domain{$abbrev} = $name;
-       }
     }
-    if ($ref) {
-      %$ref = %domain;
-      return;
-    } elsif ($glob) {           # old style
-      local (*hash) = $glob;
-      %hash = %domain;
-      return;
+    # Non-abbreviations always get entered, even if they aren't unique
+    foreach $word (@_) {
+        $hashref->{$word} = $word;
     }
+    return if $returnvoid;
     if (wantarray) {
-      %domain;
+      %{$hashref};
     } else {
-      \%domain;
+      $hashref;
     }
 }
 
 1;
-
index cbac735..588ecea 100644 (file)
@@ -108,6 +108,7 @@ The L<perltie> section contains an example of tying handles.
 =cut
 
 use Carp;
+use warnings::register;
 
 sub new {
     my $pkg = shift;
@@ -119,8 +120,8 @@ sub new {
 sub TIEHANDLE {
     my $pkg = shift;
     if (defined &{"{$pkg}::new"}) {
-       carp "WARNING: calling ${pkg}->new since ${pkg}->TIEHANDLE is missing"
-           if $^W;
+       warnings::warn "WARNING: calling ${pkg}->new since ${pkg}->TIEHANDLE is missing"
+           if warnings::enabled();
        $pkg->new(@_);
     }
     else {
index 928b798..c6ec3d4 100644 (file)
@@ -102,6 +102,7 @@ good working examples.
 =cut
 
 use Carp;
+use warnings::register;
 
 sub new {
     my $pkg = shift;
@@ -113,8 +114,8 @@ sub new {
 sub TIEHASH {
     my $pkg = shift;
     if (defined &{"${pkg}::new"}) {
-       carp "WARNING: calling ${pkg}->new since ${pkg}->TIEHASH is missing"
-           if $^W;
+       warnings::warn "WARNING: calling ${pkg}->new since ${pkg}->TIEHASH is missing"
+           if warnings::enabled();
        $pkg->new(@_);
     }
     else {
index 1e2caee..0c67590 100644 (file)
@@ -79,6 +79,7 @@ process IDs with priority.
 =cut
 
 use Carp;
+use warnings::register;
 
 sub new {
     my $pkg = shift;
@@ -90,8 +91,8 @@ sub new {
 sub TIESCALAR {
     my $pkg = shift;
     if (defined &{"{$pkg}::new"}) {
-       carp "WARNING: calling ${pkg}->new since ${pkg}->TIESCALAR is missing"
-           if $^W;
+       warnings::warn "WARNING: calling ${pkg}->new since ${pkg}->TIESCALAR is missing"
+           if warnings::enabled();
        $pkg->new(@_);
     }
     else {
index 39bfea4..8c05926 100644 (file)
 package User::pwent;
+
+use 5.006;
+
 use strict;
+use warnings;
+
+use Config;
+use Carp;
 
-use 5.005_64;
 our(@EXPORT, @EXPORT_OK, %EXPORT_TAGS);
-BEGIN { 
+BEGIN {
     use Exporter   ();
     @EXPORT      = qw(getpwent getpwuid getpwnam getpw);
     @EXPORT_OK   = qw(
-                       $pw_name   $pw_passwd   $pw_uid  
-                       $pw_gid    $pw_quota    $pw_comment
-                       $pw_gecos  $pw_dir      $pw_shell
-                  );
-    %EXPORT_TAGS = ( FIELDS => [ @EXPORT_OK, @EXPORT ] );
+                        pw_has
+
+                        $pw_name    $pw_passwd  $pw_uid  $pw_gid
+                        $pw_gecos   $pw_dir     $pw_shell
+                        $pw_expire  $pw_change  $pw_class
+                        $pw_age
+                        $pw_quota   $pw_comment
+                        $pw_expire
+
+                   );
+    %EXPORT_TAGS = (
+        FIELDS => [ grep(/^\$pw_/, @EXPORT_OK), @EXPORT ],
+        ALL    => [ @EXPORT, @EXPORT_OK ],
+    );
 }
-use vars      @EXPORT_OK;
+use vars grep /^\$pw_/, @EXPORT_OK;
+
+#
+# XXX: these mean somebody hacked this module's source
+#      without understanding the underlying assumptions.
+#
+my $IE = "[INTERNAL ERROR]";
 
 # Class::Struct forbids use of @ISA
 sub import { goto &Exporter::import }
 
 use Class::Struct qw(struct);
 struct 'User::pwent' => [
-    name    => '$',
-    passwd  => '$',
-    uid            => '$',
-    gid            => '$',
-    quota   => '$',
-    comment => '$',
-    gecos   => '$',
-    dir            => '$',
-    shell   => '$',
+    name    => '$',         # pwent[0]
+    passwd  => '$',         # pwent[1]
+    uid     => '$',         # pwent[2]
+    gid     => '$',         # pwent[3]
+
+    # you'll only have one/none of these three
+    change  => '$',         # pwent[4]
+    age     => '$',         # pwent[4]
+    quota   => '$',         # pwent[4]
+
+    # you'll only have one/none of these two
+    comment => '$',         # pwent[5]
+    class   => '$',         # pwent[5]
+
+    # you might not have this one
+    gecos   => '$',         # pwent[6]
+
+    dir     => '$',         # pwent[7]
+    shell   => '$',         # pwent[8]
+
+    # you might not have this one
+    expire  => '$',         # pwent[9]
+
 ];
 
-sub populate (@) {
+
+# init our groks hash to be true if the built platform knew how
+# to do each struct pwd field that perl can ever under any circumstances
+# know about.  we do not use /^pw_?/, but just the tails.
+sub _feature_init {
+    our %Groks;         # whether build system knew how to do this feature
+    for my $feep ( qw{
+                         pwage      pwchange   pwclass    pwcomment
+                         pwexpire   pwgecos    pwpasswd   pwquota
+                     }
+                 )
+    {
+        my $short = $feep =~ /^pw(.*)/
+                  ? $1
+                  : do {
+                        # not cluck, as we know we called ourselves,
+                        # and a confession is probably imminent anyway
+                        warn("$IE $feep is a funny struct pwd field");
+                        $feep;
+                    };
+
+        exists $Config{ "d_" . $feep }
+            || confess("$IE Configure doesn't d_$feep");
+        $Groks{$short} = defined $Config{ "d_" . $feep };
+    }
+    # assume that any that are left are always there
+    for my $feep (grep /^\$pw_/s, @EXPORT_OK) {
+        $feep =~ /^\$pw_(.*)/;
+        $Groks{$1} = 1 unless defined $Groks{$1};
+    }
+}
+
+# With arguments, reports whether one or more fields are all implemented
+# in the build machine's struct pwd pw_*.  May be whitespace separated.
+# We do not use /^pw_?/, just the tails.
+#
+# Without arguments, returns the list of fields implemented on build
+# machine, space separated in scalar context.
+#
+# Takes exception to being asked whether this machine's struct pwd has
+# a field that Perl never knows how to provide under any circumstances.
+# If the module does this idiocy to itself, the explosion is noisier.
+#
+sub pw_has {
+    our %Groks;         # whether build system knew how to do this feature
+    my $cando = 1;
+    my $sploder = caller() ne __PACKAGE__
+                    ? \&croak
+                    : sub { confess("$IE @_") };
+    if (@_ == 0) {
+        my @valid = sort grep { $Groks{$_} } keys %Groks;
+        return wantarray ? @valid : "@valid";
+    }
+    for my $feep (map { split } @_) {
+        defined $Groks{$feep}
+            || $sploder->("$feep is never a valid struct pwd field");
+        $cando &&= $Groks{$feep};
+    }
+    return $cando;
+}
+
+sub _populate (@) {
     return unless @_;
     my $pwob = new();
 
-    ( $pw_name,   $pw_passwd,   $pw_uid,  
-      $pw_gid,    $pw_quota,    $pw_comment,
-      $pw_gecos,  $pw_dir,      $pw_shell,   )         = @$pwob = @_;
+    # Any that haven't been pw_had are assumed on "all" platforms of
+    # course, this may not be so, but you can't get here otherwise,
+    # since the underlying core call already took exception to your
+    # impudence.
+
+    $pw_name    = $pwob->name   ( $_[0] );
+    $pw_passwd  = $pwob->passwd ( $_[1] )   if pw_has("passwd");
+    $pw_uid     = $pwob->uid    ( $_[2] );
+    $pw_gid     = $pwob->gid    ( $_[3] );
+
+    if (pw_has("change")) {
+        $pw_change      = $pwob->change ( $_[4] );
+    }
+    elsif (pw_has("age")) {
+        $pw_age         = $pwob->age    ( $_[4] );
+    }
+    elsif (pw_has("quota")) {
+        $pw_quota       = $pwob->quota  ( $_[4] );
+    }
+
+    if (pw_has("class")) {
+        $pw_class       = $pwob->class  ( $_[5] );
+    }
+    elsif (pw_has("comment")) {
+        $pw_comment     = $pwob->comment( $_[5] );
+    }
+
+    $pw_gecos   = $pwob->gecos  ( $_[6] ) if pw_has("gecos");
+
+    $pw_dir     = $pwob->dir    ( $_[7] );
+    $pw_shell   = $pwob->shell  ( $_[8] );
+
+    $pw_expire  = $pwob->expire ( $_[9] ) if pw_has("expire");
 
     return $pwob;
-} 
+}
 
-sub getpwent ( ) { populate(CORE::getpwent()) } 
-sub getpwnam ($) { populate(CORE::getpwnam(shift)) } 
-sub getpwuid ($) { populate(CORE::getpwuid(shift)) } 
-sub getpw    ($) { ($_[0] =~ /^\d+/) ? &getpwuid : &getpwnam } 
+sub getpwent ( ) { _populate(CORE::getpwent()) }
+sub getpwnam ($) { _populate(CORE::getpwnam(shift)) }
+sub getpwuid ($) { _populate(CORE::getpwuid(shift)) }
+sub getpw    ($) { ($_[0] =~ /^\d+\z/s) ? &getpwuid : &getpwnam }
+
+_feature_init();
 
 1;
 __END__
@@ -57,42 +185,95 @@ User::pwent - by-name interface to Perl's built-in getpw*() functions
 =head1 SYNOPSIS
 
  use User::pwent;
- $pw = getpwnam('daemon') or die "No daemon user";
- if ( $pw->uid == 1 && $pw->dir =~ m#^/(bin|tmp)?$# ) {
+ $pw = getpwnam('daemon')       || die "No daemon user";
+ if ( $pw->uid == 1 && $pw->dir =~ m#^/(bin|tmp)?\z#s ) {
      print "gid 1 on root dir";
- } 
+ }
+
+ $real_shell = $pw->shell || '/bin/sh';
+
+ for (($fullname, $office, $workphone, $homephone) =
+        split /\s*,\s*/, $pw->gecos)
+ {
+    s/&/ucfirst(lc($pw->name))/ge;
+ }
 
  use User::pwent qw(:FIELDS);
- getpwnam('daemon') or die "No daemon user";
- if ( $pw_uid == 1 && $pw_dir =~ m#^/(bin|tmp)?$# ) {
+ getpwnam('daemon')             || die "No daemon user";
+ if ( $pw_uid == 1 && $pw_dir =~ m#^/(bin|tmp)?\z#s ) {
      print "gid 1 on root dir";
- } 
+ }
 
  $pw = getpw($whoever);
 
+ use User::pwent qw/:DEFAULT pw_has/;
+ if (pw_has(qw[gecos expire quota])) { .... }
+ if (pw_has("name uid gid passwd"))  { .... }
+ print "Your struct pwd has: ", scalar pw_has(), "\n";
+
 =head1 DESCRIPTION
 
 This module's default exports override the core getpwent(), getpwuid(),
 and getpwnam() functions, replacing them with versions that return
-"User::pwent" objects.  This object has methods that return the similarly
-named structure field name from the C's passwd structure from F<pwd.h>; 
-namely name, passwd, uid, gid, quota, comment, gecos, dir, and shell.
+C<User::pwent> objects.  This object has methods that return the
+similarly named structure field name from the C's passwd structure
+from F<pwd.h>, stripped of their leading "pw_" parts, namely C<name>,
+C<passwd>, C<uid>, C<gid>, C<change>, C<age>, C<quota>, C<comment>,
+C<class>, C<gecos>, C<dir>, C<shell>, and C<expire>.  The C<passwd>,
+C<gecos>, and C<shell> fields are tainted when running in taint mode.
 
-You may also import all the structure fields directly into your namespace
-as regular variables using the :FIELDS import tag.  (Note that this still
-overrides your core functions.)  Access these fields as
-variables named with a preceding C<pw_> in front their method names.
-Thus, C<$passwd_obj-E<gt>shell()> corresponds to $pw_shell if you import
-the fields.
+You may also import all the structure fields directly into your
+namespace as regular variables using the :FIELDS import tag.  (Note
+that this still overrides your core functions.)  Access these fields
+as variables named with a preceding C<pw_> in front their method
+names.  Thus, C<< $passwd_obj->shell >> corresponds to $pw_shell
+if you import the fields.
 
 The getpw() function is a simple front-end that forwards
 a numeric argument to getpwuid() and the rest to getpwnam().
 
-To access this functionality without the core overrides,
-pass the C<use> an empty import list, and then access
-function functions with their full qualified names.
-On the other hand, the built-ins are still available
-via the C<CORE::> pseudo-package.
+To access this functionality without the core overrides, pass the
+C<use> an empty import list, and then access function functions
+with their full qualified names.  The built-ins are always still
+available via the C<CORE::> pseudo-package.
+
+=head2 System Specifics
+
+Perl believes that no machine ever has more than one of C<change>,
+C<age>, or C<quota> implemented, nor more than one of either
+C<comment> or C<class>.  Some machines do not support C<expire>,
+C<gecos>, or allegedly, C<passwd>.  You may call these methods
+no matter what machine you're on, but they return C<undef> if
+unimplemented.
+
+You may ask whether one of these was implemented on the system Perl
+was built on by asking the importable C<pw_has> function about them.
+This function returns true if all parameters are supported fields
+on the build platform, false if one or more were not, and raises
+an exception if you asked about a field that Perl never knows how
+to provide.  Parameters may be in a space-separated string, or as
+separate arguments.  If you pass no parameters, the function returns
+the list of C<struct pwd> fields supported by your build platform's
+C library, as a list in list context, or a space-separated string
+in scalar context.  Note that just because your C library had
+a field doesn't necessarily mean that it's fully implemented on
+that system.
+
+Interpretation of the C<gecos> field varies between systems, but
+traditionally holds 4 comma-separated fields containing the user's
+full name, office location, work phone number, and home phone number.
+An C<&> in the gecos field should be replaced by the user's properly
+capitalized login C<name>.  The C<shell> field, if blank, must be
+assumed to be F</bin/sh>.  Perl does not do this for you.  The
+C<passwd> is one-way hashed garble, not clear text, and may not be
+unhashed save by brute-force guessing.  Secure systems use more a
+more secure hashing than DES.  On systems supporting shadow password
+systems, Perl automatically returns the shadow password entry when
+called by a suitably empowered user, even if your underlying
+vendor-provided C library was too short-sighted to realize it should
+do this.
+
+See passwd(5) and getpwent(3) for details.
 
 =head1 NOTE
 
@@ -102,3 +283,15 @@ module to build a struct-like class, you shouldn't rely upon this.
 =head1 AUTHOR
 
 Tom Christiansen
+
+=head1 HISTORY
+
+=over
+
+=item March 18th, 2000
+
+Reworked internals to support better interface to dodgey fields
+than normal Perl function provides.  Added pw_has() field.  Improved
+documentation.
+
+=back
index 21b4dd6..7c2209b 100644 (file)
@@ -2,7 +2,6 @@ package charnames;
 use bytes ();          # for $bytes::hint_bits
 $charnames::hint_bits = 0x20000;
 
-my $fname = 'unicode/UnicodeData-Latest.txt';
 my $txt;
 
 # This is not optimized in any way yet
index b4fcd42..72ad793 100644 (file)
@@ -2,9 +2,10 @@ package constant;
 
 use strict;
 use 5.005_64;
+use warnings::register;
 
 our($VERSION, %declared);
-$VERSION = '1.01';
+$VERSION = '1.02';
 
 #=======================================================================
 
@@ -51,18 +52,17 @@ sub import {
     # Maybe the name is tolerable
     } elsif ($name =~ /^[A-Za-z_]\w*\z/) {
        # Then we'll warn only if you've asked for warnings
-       if ($^W) {
-           require Carp;
+       if (warnings::enabled()) {
            if ($keywords{$name}) {
-               Carp::carp("Constant name '$name' is a Perl keyword");
+               warnings::warn("Constant name '$name' is a Perl keyword");
            } elsif ($forced_into_main{$name}) {
-               Carp::carp("Constant name '$name' is " .
+               warnings::warn("Constant name '$name' is " .
                    "forced into package main::");
            } else {
                # Catch-all - what did I miss? If you get this error,
                # please let me know what your constant's name was.
                # Write to <rootbeer@redcat.com>. Thanks!
-               Carp::carp("Constant name '$name' has unknown problems");
+               warnings::warn("Constant name '$name' has unknown problems");
            }
        }
 
index a2c927b..884ea3c 100755 (executable)
@@ -44,7 +44,7 @@ These still go out B<STDERR>.
 Due to the interaction between runtime and compiletime issues,
 and because it's probably not a very good idea anyway,
 you may not use C<no diagnostics> to turn them off at compiletime.
-However, you may control there behaviour at runtime using the 
+However, you may control their behaviour at runtime using the 
 disable() and enable() methods to turn them off and on respectively.
 
 The B<-verbose> flag first prints out the L<perldiag> introduction before
@@ -167,19 +167,23 @@ Tom Christiansen <F<tchrist@mox.perl.com>>, 25 June 1995.
 
 =cut
 
+use strict;
 use 5.005_64;
 use Carp;
 
-$VERSION = v1.0;
+our $VERSION = v1.0;
+our $DEBUG;
+our $VERBOSE;
+our $PRETTY;
 
 use Config;
-($privlib, $archlib) = @Config{qw(privlibexp archlibexp)};
+my($privlib, $archlib) = @Config{qw(privlibexp archlibexp)};
 if ($^O eq 'VMS') {
     require VMS::Filespec;
     $privlib = VMS::Filespec::unixify($privlib);
     $archlib = VMS::Filespec::unixify($archlib);
 }
-@trypod = (
+my @trypod = (
           "$archlib/pod/perldiag.pod",
           "$privlib/pod/perldiag-$Config{version}.pod",
           "$privlib/pod/perldiag.pod",
@@ -189,21 +193,21 @@ if ($^O eq 'VMS') {
          );
 # handy for development testing of new warnings etc
 unshift @trypod, "./pod/perldiag.pod" if -e "pod/perldiag.pod";
-($PODFILE) = ((grep { -e } @trypod), $trypod[$#trypod])[0];
+(my $PODFILE) = ((grep { -e } @trypod), $trypod[$#trypod])[0];
 
 $DEBUG ||= 0;
 my $WHOAMI = ref bless [];  # nobody's business, prolly not even mine
 
-$| = 1;
-
+local $| = 1;
 local $_;
 
+my $standalone;
+my(%HTML_2_Troff, %HTML_2_Latin_1, %HTML_2_ASCII_7);
+
 CONFIG: {
-    $opt_p = $opt_d = $opt_v = $opt_f = '';
-    %HTML_2_Troff = %HTML_2_Latin_1 = %HTML_2_ASCII_7 = ();  
-    %exact_duplicate = ();
+    our $opt_p = our $opt_d = our $opt_v = our $opt_f = '';
 
-    unless (caller) { 
+    unless (caller) {
        $standalone++;
        require Getopt::Std;
        Getopt::Std::getopts('pdvf:')
@@ -212,7 +216,7 @@ CONFIG: {
        $DEBUG = 2 if $opt_d;
        $VERBOSE = $opt_v;
        $PRETTY = $opt_p;
-    } 
+    }
 
     if (open(POD_DIAG, $PODFILE)) {
        warn "Happy happy podfile from real $PODFILE\n" if $DEBUG;
@@ -221,11 +225,12 @@ CONFIG: {
 
     if (caller) {
        INCPATH: {
-           for $file ( (map { "$_/$WHOAMI.pm" } @INC), $0) {
+           for my $file ( (map { "$_/$WHOAMI.pm" } @INC), $0) {
                warn "Checking $file\n" if $DEBUG;
                if (open(POD_DIAG, $file)) {
                    while (<POD_DIAG>) {
-                       next unless /^__END__\s*# wish diag dbase were more accessible/;
+                       next unless
+                           /^__END__\s*# wish diag dbase were more accessible/;
                        print STDERR "podfile is $file\n" if $DEBUG;
                        last INCPATH;
                    }
@@ -274,6 +279,7 @@ if (eof(POD_DIAG)) {
     # etc
 );
 
+our %HTML_Escapes;
 *HTML_Escapes = do {
     if ($standalone) {
        $PRETTY ? \%HTML_2_Latin_1 : \%HTML_2_ASCII_7; 
@@ -284,20 +290,20 @@ if (eof(POD_DIAG)) {
 
 *THITHER = $standalone ? *STDOUT : *STDERR;
 
-$transmo = <<EOFUNC;
+my $transmo = <<EOFUNC;
 sub transmo {
     #local \$^W = 0;  # recursive warnings we do NOT need!
     study;
 EOFUNC
 
-### sub finish_compilation {  # 5.001e panic: top_level for embedded version
+my %msg;
+{
     print STDERR "FINISHING COMPILATION for $_\n" if $DEBUG;
-    ### local 
-    $RS = '';
+    local $/ = '';
     local $_;
+    my $header;
+    my $for_item;
     while (<POD_DIAG>) {
-       #s/(.*)\n//;
-       #$header = $1;
 
        unescape();
        if ($PRETTY) {
@@ -321,29 +327,35 @@ EOFUNC
                } 
                s/^/    /gm;
                $msg{$header} .= $_;
+               undef $for_item;        
            }
            next;
        } 
-       unless ( s/=item (.*)\s*\Z//) {
+       unless ( s/=item (.*?)\s*\z//) {
 
            if ( s/=head1\sDESCRIPTION//) {
                $msg{$header = 'DESCRIPTION'} = '';
+               undef $for_item;
            }
+           elsif( s/^=for\s+diagnostics\s*\n(.*?)\s*\z// ) {
+               $for_item = $1;
+           } 
            next;
        }
 
        # strip formatting directives in =item line
-       ($header = $1) =~ s/[A-Z]<(.*?)>/$1/g;
+       $header = $for_item || $1;
+       undef $for_item;        
+       $header =~ s/[A-Z]<(.*?)>/$1/g;
 
        if ($header =~ /%[csd]/) {
-           $rhs = $lhs = $header;
-           #if ($lhs =~ s/(.*?)%d(?!%d)(.*)/\Q$1\E\\d+\Q$2\E\$/g)  {
-           if ($lhs =~ s/(.*?)%d(?!%d)(.*)/\Q$1\E\\d+\Q$2\E/g)  {
+           my $rhs = my $lhs = $header;
+           if ($lhs =~ s/(.*?)%d(?!%d)(.*)/\Q$1\E-?\\d+\Q$2\E/g)  {
                $lhs =~ s/\\%s/.*?/g;
            } else {
-               # if i had lookbehind negations, i wouldn't have to do this \377 noise
+               # if i had lookbehind negations,
+               # i wouldn't have to do this \377 noise
                $lhs =~ s/(.*?)%s/\Q$1\E.*?\377/g;
-               #$lhs =~ s/\377([^\377]*)$/\Q$1\E\$/;
                $lhs =~ s/\377([^\377]*)$/\Q$1\E/;
                $lhs =~ s/\377//g;
                $lhs =~ s/\.\*\?$/.*/; # Allow %s at the end to eat it all
@@ -369,25 +381,23 @@ EOFUNC
     print STDERR $transmo if $DEBUG;
     eval $transmo;
     die $@ if $@;
-    $RS = "\n";
-### }
+}
 
 if ($standalone) {
     if (!@ARGV and -t STDIN) { print STDERR "$0: Reading from STDIN\n" } 
-    while (defined ($error = <>)) {
+    while (defined (my $error = <>)) {
        splainthis($error) || print THITHER $error;
     } 
     exit;
-} else { 
-    #$old_w = 0;
-    $oldwarn = ''; $olddie = '';
-}
+} 
+
+my $olddie;
+my $oldwarn;
 
 sub import {
     shift;
-    #$old_w = $^W;
-    $^W = 1; # yup, clobbered the global variable; tough, if you
-            # want diags, you want diags.
+    $^W = 1; # yup, clobbered the global variable; 
+            # tough, if you want diags, you want diags.
     return if $SIG{__WARN__} eq \&warn_trap;
 
     for (@_) {
@@ -421,10 +431,9 @@ sub enable { &import }
 
 sub disable {
     shift;
-    #$^W = $old_w;
     return unless $SIG{__WARN__} eq \&warn_trap;
-    $SIG{__WARN__} = $oldwarn;
-    $SIG{__DIE__} = $olddie;
+    $SIG{__WARN__} = $oldwarn || '';
+    $SIG{__DIE__} = $olddie || '';
 } 
 
 sub warn_trap {
@@ -465,6 +474,10 @@ sub death_trap {
        # into an indirect recursion loop
 };
 
+my %exact_duplicate;
+my %old_diag;
+my $count;
+my $wantspace;
 sub splainthis {
     local $_ = shift;
     local $\;
@@ -473,7 +486,7 @@ sub splainthis {
     my $orig = $_;
     # return unless defined;
     s/, <.*?> (?:line|chunk).*$//;
-    $real = s/(.*?) at .*? (?:line|chunk) \d+.*/$1/;
+    my $real = s/(.*?) at .*? (?:line|chunk) \d+.*/$1/;
     s/^\((.*)\)$/$1/;
     if ($exact_duplicate{$orig}++) {
        return &transmo;
@@ -542,8 +555,5 @@ sub shorten {
 } 
 
 
-# have to do this: RS isn't set until run time, but we're executing at compiletime
-$RS = "\n";
-
 1 unless $standalone;  # or it'll complain about itself
 __END__ # wish diag dbase were more accessible
index c727818..51e9c88 100644 (file)
@@ -195,8 +195,8 @@ sub unwrap {
          if ($#$v >= 0) {
            $short = $sp . "0..$#{$v}  " . 
              join(" ", 
-                  map {stringify $_} @{$v}[0..$tArrayDepth])
-               . "$shortmore";
+                  map {exists $v->[$_] ? stringify $v->[$_] : "empty"} ($[..$tArrayDepth)
+                 ) . "$shortmore";
          } else {
            $short = $sp . "empty array";
          }
@@ -209,7 +209,11 @@ sub unwrap {
        for $num ($[ .. $tArrayDepth) {
            return if $DB::signal;
            print "$sp$num  ";
-           DumpElem $v->[$num], $s;
+           if (exists $v->[$num]) {
+               DumpElem $v->[$num], $s;
+           } else {
+               print "empty slot\n";
+           }
        }
        print "$sp  empty array\n" unless @$v;
        print "$sp$more" if defined $more ;  
@@ -361,7 +365,9 @@ sub main::dumpvar {
       return if $DB::signal;
       next if @vars && !grep( matchvar($key, $_), @vars );
       if ($usageOnly) {
-       globUsage(\$val, $key) unless $package eq 'dumpvar' and $key eq 'stab';
+       globUsage(\$val, $key)
+         if ($package ne 'dumpvar' or $key ne 'stab')
+            and ref(\$val) eq 'GLOB';
       } else {
        dumpglob(0,$key, $val);
       }
index 5a84e28..ac45810 100644 (file)
@@ -130,6 +130,7 @@ L<perlref/Pseudo-hashes: Using an array as a hash>
 use 5.005_64;
 use strict;
 no strict 'refs';
+use warnings::register;
 our(%attr, $VERSION);
 
 $VERSION = "1.01";
@@ -171,7 +172,8 @@ sub import {
        if ($fno and $fno != $next) {
            require Carp;
             if ($fno < $fattr->[0]) {
-                Carp::carp("Hides field '$f' in base class") if $^W;
+                warnings::warn("Hides field '$f' in base class") 
+                   if warnings::enabled();
             } else {
                 Carp::croak("Field name '$f' already in use");
             }
index a845459..cdd20ac 100644 (file)
@@ -56,12 +56,12 @@ When they are eventually supported, this pragma will serve as one of
 the interfaces to declare default disciplines for all I/O.
 
 In future, any default disciplines declared by this pragma will be
-available by the special discipline name ":def", and could be used
+available by the special discipline name ":DEFAULT", and could be used
 within handle constructors that allow disciplines to be specified.
 This would make it possible to stack new disciplines over the default
 ones.
 
-    open FH, "<:para :def", $file or die "can't open $file: $!";
+    open FH, "<:para :DEFAULT", $file or die "can't open $file: $!";
 
 Socket and directory handles will also support disciplines in
 future.
index 7c5b0a9..41430ac 100644 (file)
@@ -2,17 +2,9 @@ package DB;
 
 # Debugger for Perl 5.00x; perl5db.pl patch level:
 
-$VERSION = 1.06;
+$VERSION = 1.07;
 $header = "perl5db.pl version $VERSION";
 
-# Enhanced by ilya@math.ohio-state.edu (Ilya Zakharevich)
-# Latest version available: ftp://ftp.math.ohio-state.edu/pub/users/ilya/perl
-
-# modified Perl debugger, to be run from Emacs in perldb-mode
-# Ray Lischner (uunet!mntgfx!lisch) as of 5 Nov 1990
-# Johan Vromans -- upgrade to 4.0 pl 10
-# Ilya Zakharevich -- patches after 5.001 (and some before ;-)
-
 #
 # This file is automatically included if you do perl -d.
 # It's probably not useful to include this yourself.
@@ -42,7 +34,7 @@ $header = "perl5db.pl version $VERSION";
 # interpreter, though the values used by perl5db.pl have the form
 # "$break_condition\0$action". Values are magical in numeric context.
 #
-# The scalar ${'_<'.$filename} contains "_<$filename".
+# The scalar ${'_<'.$filename} contains $filename.
 #
 # Note that no subroutine call is possible until &DB::sub is defined
 # (for subroutines defined outside of the package DB). In fact the same is
@@ -88,6 +80,15 @@ $header = "perl5db.pl version $VERSION";
 # reset LineInfo to something "interactive"!)
 #
 ##################################################################
+
+# Enhanced by ilya@math.ohio-state.edu (Ilya Zakharevich)
+# Latest version available: ftp://ftp.math.ohio-state.edu/pub/users/ilya/perl
+
+# modified Perl debugger, to be run from Emacs in perldb-mode
+# Ray Lischner (uunet!mntgfx!lisch) as of 5 Nov 1990
+# Johan Vromans -- upgrade to 4.0 pl 10
+# Ilya Zakharevich -- patches after 5.001 (and some before ;-)
+
 # Changelog:
 
 # A lot of things changed after 0.94. First of all, core now informs
@@ -144,6 +145,48 @@ $header = "perl5db.pl version $VERSION";
 #      `b load' strips trailing whitespace.
 #      completion ignores leading `|'; takes into account current package
 #      when completing a subroutine name (same for `l').
+# Changes: 1.07: Many fixed by tchrist 13-March-2000
+#   BUG FIXES:
+#   + Added bare mimimal security checks on perldb rc files, plus
+#     comments on what else is needed.
+#   + Fixed the ornaments that made "|h" completely unusable.
+#     They are not used in print_help if they will hurt.  Strip pod
+#     if we're paging to less.
+#   + Fixed mis-formatting of help messages caused by ornaments
+#     to restore Larry's original formatting.  
+#   + Fixed many other formatting errors.  The code is still suboptimal, 
+#     and needs a lot of work at restructuing. It's also misindented
+#     in many places.
+#   + Fixed bug where trying to look at an option like your pager
+#     shows "1".  
+#   + Fixed some $? processing.  Note: if you use csh or tcsh, you will
+#     lose.  You should consider shell escapes not using their shell,
+#     or else not caring about detailed status.  This should really be
+#     unified into one place, too.
+#   + Fixed bug where invisible trailing whitespace on commands hoses you,
+#     tricking Perl into thinking you wern't calling a debugger command!
+#   + Fixed bug where leading whitespace on commands hoses you.  (One
+#     suggests a leading semicolon or any other irrelevant non-whitespace
+#     to indicate literal Perl code.)
+#   + Fixed bugs that ate warnings due to wrong selected handle.
+#   + Fixed a precedence bug on signal stuff.
+#   + Fixed some unseemly wording.
+#   + Fixed bug in help command trying to call perl method code.
+#   + Fixed to call dumpvar from exception handler.  SIGPIPE killed us.
+#   ENHANCEMENTS:
+#   + Added some comments.  This code is still nasty spaghetti.
+#   + Added message if you clear your pre/post command stacks which was
+#     very easy to do if you just typed a bare >, <, or {.  (A command
+#     without an argument should *never* be a destructive action; this
+#     API is fundamentally screwed up; likewise option setting, which
+#     is equally buggered.)
+#   + Added command stack dump on argument of "?" for >, <, or {.
+#   + Added a semi-built-in doc viewer command that calls man with the
+#     proper %Config::Config path (and thus gets caching, man -k, etc),
+#     or else perldoc on obstreperous platforms.
+#   + Added to and rearranged the help information.
+#   + Detected apparent misuse of { ... } to declare a block; this used
+#     to work but now is a command, and mysteriously gave no complaint.
 
 ####################################################################
 
@@ -230,43 +273,93 @@ $inhibit_exit = $option{PrintRet} = 1;
                 );
 
 # These guys may be defined in $ENV{PERL5DB} :
-$rl = 1 unless defined $rl;
-$warnLevel = 1 unless defined $warnLevel;
-$dieLevel = 1 unless defined $dieLevel;
-$signalLevel = 1 unless defined $signalLevel;
-$pre = [] unless defined $pre;
-$post = [] unless defined $post;
-$pretype = [] unless defined $pretype;
+$rl            = 1     unless defined $rl;
+$warnLevel     = 0     unless defined $warnLevel;
+$dieLevel      = 0     unless defined $dieLevel;
+$signalLevel   = 1     unless defined $signalLevel;
+$pre           = []    unless defined $pre;
+$post          = []    unless defined $post;
+$pretype       = []    unless defined $pretype;
+
 warnLevel($warnLevel);
 dieLevel($dieLevel);
 signalLevel($signalLevel);
-&pager((defined($ENV{PAGER}) 
+
+&pager(
+    (defined($ENV{PAGER}) 
        ? $ENV{PAGER}
        : ($^O eq 'os2' 
           ? 'cmd /c more' 
           : 'more'))) unless defined $pager;
+setman();
 &recallCommand("!") unless defined $prc;
 &shellBang("!") unless defined $psh;
 $maxtrace = 400 unless defined $maxtrace;
 
-if (-e "/dev/tty") {
+if (-e "/dev/tty") {  # this is the wrong metric!
   $rcfile=".perldb";
 } else {
   $rcfile="perldb.ini";
 }
 
+# This isn't really safe, because there's a race
+# between checking and opening.  The solution is to
+# open and fstat the handle, but then you have to read and
+# eval the contents.  But then the silly thing gets
+# your lexical scope, which is unfortunately at best.
+sub safe_do { 
+    my $file = shift;
+
+    # Just exactly what part of the word "CORE::" don't you understand?
+    local $SIG{__WARN__};  
+    local $SIG{__DIE__};    
+
+    unless (is_safe_file($file)) {
+       CORE::warn <<EO_GRIPE;
+perldb: Must not source insecure rcfile $file.
+        You or the superuser must be the owner, and it must not 
+       be writable by anyone but its owner.
+EO_GRIPE
+       return;
+    } 
+
+    do $file;
+    CORE::warn("perldb: couldn't parse $file: $@") if $@;
+}
+
+
+# Verifies that owner is either real user or superuser and that no
+# one but owner may write to it.  This function is of limited use
+# when called on a path instead of upon a handle, because there are
+# no guarantees that filename (by dirent) whose file (by ino) is
+# eventually accessed is the same as the one tested. 
+# Assumes that the file's existence is not in doubt.
+sub is_safe_file {
+    my $path = shift;
+    stat($path) || return;     # mysteriously vaporized
+    my($dev,$ino,$mode,$nlink,$uid,$gid) = stat(_);
+
+    return 0 if $uid != 0 && $uid != $<;
+    return 0 if $mode & 022;
+    return 1;
+}
+
 if (-f $rcfile) {
-    do "./$rcfile";
-} elsif (defined $ENV{LOGDIR} and -f "$ENV{LOGDIR}/$rcfile") {
-    do "$ENV{LOGDIR}/$rcfile";
-} elsif (defined $ENV{HOME} and -f "$ENV{HOME}/$rcfile") {
-    do "$ENV{HOME}/$rcfile";
+    safe_do("./$rcfile");
+} 
+elsif (defined $ENV{HOME} && -f "$ENV{HOME}/$rcfile") {
+    safe_do("$ENV{HOME}/$rcfile");
+}
+elsif (defined $ENV{LOGDIR} && -f "$ENV{LOGDIR}/$rcfile") {
+    safe_do("$ENV{LOGDIR}/$rcfile");
 }
 
 if (defined $ENV{PERLDB_OPTS}) {
   parse_options($ENV{PERLDB_OPTS});
 }
 
+# Here begin the unreadable code.  It needs fixing.
+
 if (exists $ENV{PERLDB_RESTART}) {
   delete $ENV{PERLDB_RESTART};
   # $restart = 1;
@@ -295,9 +388,9 @@ if (exists $ENV{PERLDB_RESTART}) {
 if ($notty) {
   $runnonstop = 1;
 } else {
-  # Is Perl being run from Emacs?
-  $emacs = ((defined $main::ARGV[0]) and ($main::ARGV[0] eq '-emacs'));
-  $rl = 0, shift(@main::ARGV) if $emacs;
+  # Is Perl being run from a slave editor or graphical debugger?
+  $slave_editor = ((defined $main::ARGV[0]) and ($main::ARGV[0] eq '-emacs'));
+  $rl = 0, shift(@main::ARGV) if $slave_editor;
 
   #require Term::ReadLine;
 
@@ -312,12 +405,12 @@ if ($notty) {
     $console = "sys\$command";
   }
 
-  if (($^O eq 'MSWin32') and ($emacs or defined $ENV{EMACS})) {
+  if (($^O eq 'MSWin32') and ($slave_editor or defined $ENV{EMACS})) {
     $console = undef;
   }
 
   # Around a bug:
-  if (defined $ENV{OS2_SHELL} and ($emacs or $ENV{WINDOWID})) { # In OS/2
+  if (defined $ENV{OS2_SHELL} and ($slave_editor or $ENV{WINDOWID})) { # In OS/2
     $console = undef;
   }
 
@@ -363,10 +456,10 @@ if ($notty) {
   $header =~ s/.Header: ([^,]+),v(\s+\S+\s+\S+).*$/$1$2/;
   unless ($runnonstop) {
     print $OUT "\nLoading DB routines from $header\n";
-    print $OUT ("Emacs support ",
-               $emacs ? "enabled" : "available",
+    print $OUT ("Editor support ",
+               $slave_editor ? "enabled" : "available",
                ".\n");
-    print $OUT "\nEnter h or `h h' for help, run `perldoc perldebug' for more help.\n\n";
+    print $OUT "\nEnter h or `h h' for help, or `$doccmd perldebug' for more help.\n\n";
   }
 }
 
@@ -439,7 +532,7 @@ EOP
     $was_signal = $signal;
     $signal = 0;
     if ($single || ($trace & 1) || $was_signal) {
-       if ($emacs) {
+       if ($slave_editor) {
            $position = "\032\032$filename:$line:0\n";
            print $LINEINFO $position;
        } elsif ($package eq 'DB::fake') {
@@ -500,7 +593,8 @@ EOP
               ($term_pid == $$ or &resetterm),
               defined ($cmd=&readline("  DB" . ('<' x $level) .
                                       ($#hist+1) . ('>' x $level) .
-                                      " "))) {
+                                      " "))) 
+        {
                $single = 0;
                $signal = 0;
                $cmd =~ s/\\$/\n/ && do {
@@ -510,8 +604,19 @@ EOP
                $cmd =~ /^$/ && ($cmd = $laststep);
                push(@hist,$cmd) if length($cmd) > 1;
              PIPE: {
+                   $cmd =~ s/^\s+//s;   # trim annoying leading whitespace
+                   $cmd =~ s/\s+$//s;   # trim annoying trailing whitespace
                    ($i) = split(/\s+/,$cmd);
-                   eval "\$cmd =~ $alias{$i}", print $OUT $@ if $alias{$i};
+                   if ($alias{$i}) { 
+                       # squelch the sigmangler
+                       local $SIG{__DIE__};
+                       local $SIG{__WARN__};
+                       eval "\$cmd =~ $alias{$i}";
+                       if ($@) {
+                           print $OUT "Couldn't evaluate `$i' alias: $@";
+                           next CMD;
+                       } 
+                   }
                    $cmd =~ /^q$/ && ($exiting = 1) && exit 0;
                    $cmd =~ /^h$/ && do {
                        print_help($help);
@@ -519,10 +624,14 @@ EOP
                    $cmd =~ /^h\s+h$/ && do {
                        print_help($summary);
                        next CMD; };
-                   $cmd =~ /^h\s+(\S)$/ && do {
-                       my $asked = "\Q$1";
-                       if ($help =~ /^(?:[IB]<)$asked/m) {
-                         while ($help =~ /^((?:[IB]<)$asked([\s\S]*?)\n)(?!\s)/mg) {
+                   # support long commands; otherwise bogus errors
+                   # happen when you ask for h on <CR> for example
+                   $cmd =~ /^h\s+(\S.*)$/ && do {      
+                       my $asked = $1;                 # for proper errmsg
+                       my $qasked = quotemeta($asked); # for searching
+                       # XXX: finds CR but not <CR>
+                       if ($help =~ /^<?(?:[IB]<)$qasked/m) {
+                         while ($help =~ /^(<?(?:[IB]<)$qasked([\s\S]*?)\n)(?!\s)/mg) {
                            print_help($1);
                          }
                        } else {
@@ -555,7 +664,11 @@ EOP
                        if (defined &main::dumpvar) {
                            local $frame = 0;
                            local $doret = -2;
-                           &main::dumpvar($packname,@vars);
+                           # must detect sigpipe failures
+                           eval { &main::dumpvar($packname,@vars) };
+                           if ($@) {
+                               die unless $@ =~ /dumpvar print failed/;
+                           } 
                        } else {
                            print $OUT "dumpvar.pl not available.\n";
                        }
@@ -616,7 +729,7 @@ EOP
                        $file = join(':', @pieces);
                        if ($file ne $filename) {
                            print $OUT "Switching to file '$file'.\n"
-                               unless $emacs;
+                               unless $slave_editor;
                            *dbline = $main::{'_<' . $file};
                            $max = $#dbline;
                            $filename = $file;
@@ -664,7 +777,7 @@ EOP
                        $i = $line if $i eq '.';
                        $i = 1 if $i < 1;
                        $incr = $end - $i;
-                       if ($emacs) {
+                       if ($slave_editor) {
                            print $OUT "\032\032$filename:$i:0\n";
                            $i = $end;
                        } else {
@@ -846,7 +959,7 @@ EOP
                            }
                        }
                        
-                       if (not $had_breakpoints{$file} &= ~2) {
+                       unless ($had_breakpoints{$file} &= ~2) {
                            delete $had_breakpoints{$file};
                        }
                      }
@@ -866,18 +979,75 @@ EOP
                        push @$post, action($1);
                        next CMD; };
                    $cmd =~ /^<\s*(.*)/ && do {
-                       $pre = [], next CMD unless $1;
+                       unless ($1) {
+                           print OUT "All < actions cleared.\n";
+                           $pre = [];
+                           next CMD;
+                       } 
+                       if ($1 eq '?') {
+                           unless (@$pre) {
+                               print OUT "No pre-prompt Perl actions.\n";
+                               next CMD;
+                           } 
+                           print OUT "Perl commands run before each prompt:\n";
+                           for my $action ( @$pre ) {
+                               print "\t< -- $action\n";
+                           } 
+                           next CMD;
+                       } 
                        $pre = [action($1)];
                        next CMD; };
                    $cmd =~ /^>\s*(.*)/ && do {
-                       $post = [], next CMD unless $1;
+                       unless ($1) {
+                           print OUT "All > actions cleared.\n";
+                           $post = [];
+                           next CMD;
+                       }
+                       if ($1 eq '?') {
+                           unless (@$post) {
+                               print OUT "No post-prompt Perl actions.\n";
+                               next CMD;
+                           } 
+                           print OUT "Perl commands run after each prompt:\n";
+                           for my $action ( @$post ) {
+                               print "\t> -- $action\n";
+                           } 
+                           next CMD;
+                       } 
                        $post = [action($1)];
                        next CMD; };
                    $cmd =~ /^\{\{\s*(.*)/ && do {
+                       if ($cmd =~ /^\{.*\}$/ && unbalanced(substr($cmd,2))) { 
+                           print OUT "{{ is now a debugger command\n",
+                               "use `;{{' if you mean Perl code\n";
+                           $cmd = "h {{";
+                           redo CMD;
+                       } 
                        push @$pretype, $1;
                        next CMD; };
                    $cmd =~ /^\{\s*(.*)/ && do {
-                       $pretype = [], next CMD unless $1;
+                       unless ($1) {
+                           print OUT "All { actions cleared.\n";
+                           $pretype = [];
+                           next CMD;
+                       }
+                       if ($1 eq '?') {
+                           unless (@$pretype) {
+                               print OUT "No pre-prompt debugger actions.\n";
+                               next CMD;
+                           } 
+                           print OUT "Debugger commands run before each prompt:\n";
+                           for my $action ( @$pretype ) {
+                               print "\t{ -- $action\n";
+                           } 
+                           next CMD;
+                       } 
+                       if ($cmd =~ /^\{.*\}$/ && unbalanced(substr($cmd,1))) { 
+                           print OUT "{ is now a debugger command\n",
+                               "use `;{' if you mean Perl code\n";
+                           $cmd = "h {";
+                           redo CMD;
+                       } 
                        $pretype = [$1];
                        next CMD; };
                    $cmd =~ /^a\b\s*(\d*)\s*(.*)/ && do {
@@ -957,7 +1127,7 @@ EOP
                        set_list("PERLDB_INC", @ini_INC);
                        if ($0 eq '-e') {
                          for (1..$#{'::_<-e'}) { # The first line is PERL5DB
-                           chomp ($cl =  $ {'::_<-e'}[$_]);
+                               chomp ($cl =  ${'::_<-e'}[$_]);
                            push @script, '-e', $cl;
                          }
                        } else {
@@ -1021,8 +1191,8 @@ EOP
                        set_list("PERLDB_POST", @$post);
                        set_list("PERLDB_TYPEAHEAD", @typeahead);
                        $ENV{PERLDB_RESTART} = 1;
-                       #print "$^X, '-d', @flags, @script, ($emacs ? '-emacs' : ()), @ARGS";
-                       exec $^X, '-d', @flags, @script, ($emacs ? '-emacs' : ()), @ARGS;
+                       #print "$^X, '-d', @flags, @script, ($slave_editor ? '-emacs' : ()), @ARGS";
+                       exec $^X, '-d', @flags, @script, ($slave_editor ? '-emacs' : ()), @ARGS;
                        print $OUT "exec failed: $!\n";
                        last CMD; };
                    $cmd =~ /^T$/ && do {
@@ -1044,6 +1214,9 @@ EOP
                        $inpat = $1;
                        $inpat =~ s:([^\\])/$:$1:;
                        if ($inpat ne "") {
+                           # squelch the sigmangler
+                           local $SIG{__DIE__};
+                           local $SIG{__WARN__};
                            eval '$inpat =~ m'."\a$inpat\a";    
                            if ($@ ne "") {
                                print $OUT "$@";
@@ -1059,7 +1232,7 @@ EOP
                                $start = 1 if ($start > $max);
                                last if ($start == $end);
                                if ($dbline[$start] =~ m' . "\a$pat\a" . 'i) {
-                                   if ($emacs) {
+                                   if ($slave_editor) {
                                        print $OUT "\032\032$filename:$start:0\n";
                                    } else {
                                        print $OUT "$start:\t", $dbline[$start], "\n";
@@ -1073,9 +1246,12 @@ EOP
                        $inpat = $1;
                        $inpat =~ s:([^\\])\?$:$1:;
                        if ($inpat ne "") {
+                           # squelch the sigmangler
+                           local $SIG{__DIE__};
+                           local $SIG{__WARN__};
                            eval '$inpat =~ m'."\a$inpat\a";    
                            if ($@ ne "") {
-                               print $OUT "$@";
+                               print $OUT $@;
                                next CMD;
                            }
                            $pat = $inpat;
@@ -1088,7 +1264,7 @@ EOP
                                $start = $max if ($start <= 0);
                                last if ($start == $end);
                                if ($dbline[$start] =~ m' . "\a$pat\a" . 'i) {
-                                   if ($emacs) {
+                                   if ($slave_editor) {
                                        print $OUT "\032\032$filename:$start:0\n";
                                    } else {
                                        print $OUT "$start:\t", $dbline[$start], "\n";
@@ -1124,31 +1300,56 @@ EOP
                        &system($ENV{SHELL}||"/bin/sh");
                        next CMD; };
                    $cmd =~ /^$sh\s*([\x00-\xff]*)/ && do {
+                       # XXX: using csh or tcsh destroys sigint retvals!
+                       #&system($1);  # use this instead
                        &system($ENV{SHELL}||"/bin/sh","-c",$1);
                        next CMD; };
                    $cmd =~ /^H\b\s*(-(\d+))?/ && do {
-                       $end = $2?($#hist-$2):0;
+                       $end = $2 ? ($#hist-$2) : 0;
                        $hist = 0 if $hist < 0;
                        for ($i=$#hist; $i>$end; $i--) {
                            print $OUT "$i: ",$hist[$i],"\n"
                              unless $hist[$i] =~ /^.?$/;
                        };
                        next CMD; };
+                   $cmd =~ /^(?:man|(?:perl)?doc)\b(?:\s+([^(]*))?$/ && do {
+                       runman($1);
+                       next CMD; };
                    $cmd =~ s/^p$/print {\$DB::OUT} \$_/;
                    $cmd =~ s/^p\b/print {\$DB::OUT} /;
-                   $cmd =~ /^=/ && do {
-                       if (local($k,$v) = ($cmd =~ /^=\s*(\S+)\s+(.*)/)) {
-                           $alias{$k}="s~$k~$v~";
-                           print $OUT "$k = $v\n";
-                       } elsif ($cmd =~ /^=\s*$/) {
-                           foreach $k (sort keys(%alias)) {
-                               if (($v = $alias{$k}) =~ s~^s\~$k\~(.*)\~$~$1~) {
-                                   print $OUT "$k = $v\n";
-                               } else {
+                   $cmd =~ s/^=\s*// && do {
+                       my @keys;
+                       if (length $cmd == 0) {
+                           @keys = sort keys %alias;
+                       } 
+                        elsif (my($k,$v) = ($cmd =~ /^(\S+)\s+(\S.*)/)) {
+                           # can't use $_ or kill //g state
+                           for my $x ($k, $v) { $x =~ s/\a/\\a/g }
+                           $alias{$k} = "s\a$k\a$v\a";
+                           # squelch the sigmangler
+                           local $SIG{__DIE__};
+                           local $SIG{__WARN__};
+                           unless (eval "sub { s\a$k\a$v\a }; 1") {
+                               print $OUT "Can't alias $k to $v: $@\n"; 
+                               delete $alias{$k};
+                               next CMD;
+                           } 
+                           @keys = ($k);
+                       } 
+                       else {
+                           @keys = ($cmd);
+                       } 
+                       for my $k (@keys) {
+                           if ((my $v = $alias{$k}) =~ s\as\a$k\a(.*)\a$\a1\a) {
+                               print $OUT "$k\t= $1\n";
+                           } 
+                           elsif (defined $alias{$k}) {
                                    print $OUT "$k\t$alias{$k}\n";
-                               };
-                           };
-                       };
+                           } 
+                           else {
+                               print "No alias for $k\n";
+                           } 
+                       }
                        next CMD; };
                    $cmd =~ /^\|\|?\s*[^|]/ && do {
                        if ($pager =~ /^\|/) {
@@ -1157,25 +1358,29 @@ EOP
                        } else {
                            open(SAVEOUT,">&OUT") || &warn("Can't save DB::OUT");
                        }
+                       fix_less();
                        unless ($piped=open(OUT,$pager)) {
                            &warn("Can't pipe output to `$pager'");
                            if ($pager =~ /^\|/) {
-                               open(OUT,">&STDOUT") || &warn("Can't restore DB::OUT");
+                               open(OUT,">&STDOUT") # XXX: lost message
+                                   || &warn("Can't restore DB::OUT");
                                open(STDOUT,">&SAVEOUT")
                                  || &warn("Can't restore STDOUT");
                                close(SAVEOUT);
                            } else {
-                               open(OUT,">&STDOUT") || &warn("Can't restore DB::OUT");
+                               open(OUT,">&STDOUT") # XXX: lost message
+                                   || &warn("Can't restore DB::OUT");
                            }
                            next CMD;
                        }
                        $SIG{PIPE}= \&DB::catch if $pager =~ /^\|/
-                         && "" eq $SIG{PIPE}  ||  "DEFAULT" eq $SIG{PIPE};
+                           && ("" eq $SIG{PIPE}  ||  "DEFAULT" eq $SIG{PIPE});
                        $selected= select(OUT);
                        $|= 1;
                        select( $selected ), $selected= "" unless $cmd =~ /^\|\|/;
                        $cmd =~ s/^\|+\s*//;
-                       redo PIPE; };
+                       redo PIPE; 
+                   };
                    # XXX Local variants do not work!
                    $cmd =~ s/^t\s/\$DB::trace |= 1;\n/;
                    $cmd =~ s/^s\s/\$DB::single = 1;\n/ && do {$laststep = 's'};
@@ -1190,14 +1395,27 @@ EOP
        } continue {            # CMD:
            if ($piped) {
                if ($pager =~ /^\|/) {
-                   $?= 0;  close(OUT) || &warn("Can't close DB::OUT");
-                   &warn( "Pager `$pager' failed: ",
-                         ($?>>8) > 128 ? ($?>>8)-256 : ($?>>8),
-                         ( $? & 128 ) ? " (core dumped)" : "",
-                         ( $? & 127 ) ? " (SIG ".($?&127).")" : "", "\n" ) if $?;
+                   $? = 0;  
+                   # we cannot warn here: the handle is missing --tchrist
+                   close(OUT) || print SAVEOUT "\nCan't close DB::OUT\n";
+
+                   # most of the $? crud was coping with broken cshisms
+                   if ($?) {
+                       print SAVEOUT "Pager `$pager' failed: ";
+                       if ($? == -1) {
+                           print SAVEOUT "shell returned -1\n";
+                       } elsif ($? >> 8) {
+                           print SAVEOUT 
+                             ( $? & 127 ) ? " (SIG#".($?&127).")" : "", 
+                             ( $? & 128 ) ? " -- core dumped" : "", "\n";
+                       } else {
+                           print SAVEOUT "status ", ($? >> 8), "\n";
+                       } 
+                   } 
+
                    open(OUT,">&STDOUT") || &warn("Can't restore DB::OUT");
                    open(STDOUT,">&SAVEOUT") || &warn("Can't restore STDOUT");
-                   $SIG{PIPE}= "DEFAULT" if $SIG{PIPE} eq \&DB::catch;
+                   $SIG{PIPE} = "DEFAULT" if $SIG{PIPE} eq \&DB::catch;
                    # Will stop ignoring SIGPIPE if done like nohup(1)
                    # does SIGINT but Perl doesn't give us a choice.
                } else {
@@ -1282,7 +1500,9 @@ sub save {
 # The following takes its argument via $evalarg to preserve current @_
 
 sub eval {
-    local @res;                        # 'my' would make it visible from user code
+    # 'my' would make it visible from user code
+    #    but so does local! --tchrist  
+    local @res;                        
     {
        local $otrace = $trace;
        local $osingle = $single;
@@ -1347,7 +1567,7 @@ sub postponed {
   #%dbline = %{$postponed_file{$filename}}; # Cannot be done: unsufficient magic
   my $key;
   for $key (keys %{$postponed_file{$filename}}) {
-    $dbline{$key} = $ {$postponed_file{$filename}}{$key};
+    $dbline{$key} = ${$postponed_file{$filename}}{$key};
   }
   delete $postponed_file{$filename};
 }
@@ -1463,27 +1683,50 @@ sub action {
     $action;
 }
 
+sub unbalanced { 
+    # i hate using globals!
+    $balanced_brace_re ||= qr{ 
+       ^ \{
+             (?:
+                (?> [^{}] + )              # Non-parens without backtracking
+              |
+                (??{ $balanced_brace_re }) # Group with matching parens
+             ) *
+         \} $
+   }x;
+   return $_[0] !~ m/$balanced_brace_re/;
+}
+
 sub gets {
-    local($.);
-    #<IN>;
     &readline("cont: ");
 }
 
 sub system {
     # We save, change, then restore STDIN and STDOUT to avoid fork() since
-    # many non-Unix systems can do system() but have problems with fork().
+    # some non-Unix systems can do system() but have problems with fork().
     open(SAVEIN,"<&STDIN") || &warn("Can't save STDIN");
     open(SAVEOUT,">&STDOUT") || &warn("Can't save STDOUT");
     open(STDIN,"<&IN") || &warn("Can't redirect STDIN");
     open(STDOUT,">&OUT") || &warn("Can't redirect STDOUT");
+
+    # XXX: using csh or tcsh destroys sigint retvals!
     system(@_);
     open(STDIN,"<&SAVEIN") || &warn("Can't restore STDIN");
     open(STDOUT,">&SAVEOUT") || &warn("Can't restore STDOUT");
-    close(SAVEIN); close(SAVEOUT);
-    &warn( "(Command returned ", ($?>>8) > 128 ? ($?>>8)-256 : ($?>>8), ")",
-         ( $? & 128 ) ? " (core dumped)" : "",
-         ( $? & 127 ) ? " (SIG ".($?&127).")" : "", "\n" ) if $?;
-    $?;
+    close(SAVEIN); 
+    close(SAVEOUT);
+
+
+    # most of the $? crud was coping with broken cshisms
+    if ($? >> 8) {
+       &warn("(Command exited ", ($? >> 8), ")\n");
+    } elsif ($?) { 
+       &warn( "(Command died of SIG#",  ($? & 127),
+           (($? & 128) ? " -- core dumped" : "") , ")", "\n");
+    } 
+
+    return $?;
+
 }
 
 sub setterm {
@@ -1500,7 +1743,7 @@ sub setterm {
            $| = 1;
            select($sel);
        } else {
-           eval "require Term::Rendezvous;" or die $@;
+           eval "require Term::Rendezvous;" or die;
            my $rv = $ENV{PERLDB_NOTTY} || "/tmp/perldbtty$$";
            my $term_rv = new Term::Rendezvous $rv;
            $IN = $term_rv->IN;
@@ -1559,6 +1802,7 @@ EOP
 }
 
 sub readline {
+  local $.;
   if (@typeahead) {
     my $left = @typeahead;
     my $got = shift @typeahead;
@@ -1572,7 +1816,7 @@ sub readline {
   if (ref $OUT and UNIVERSAL::isa($OUT, 'IO::Socket::INET')) {
     print $OUT @_;
     my $stuff;
-    $IN->recv( $stuff, 2048 );
+    $IN->recv( $stuff, 2048 );  # XXX: what's wrong with sysread?
     $stuff;
   }
   else {
@@ -1591,15 +1835,15 @@ sub option_val {
     my ($opt, $default)= @_;
     my $val;
     if (defined $optionVars{$opt}
-       and defined $ {$optionVars{$opt}}) {
-       $val = $ {$optionVars{$opt}};
+       and defined ${$optionVars{$opt}}) {
+       $val = ${$optionVars{$opt}};
     } elsif (defined $optionAction{$opt}
        and defined &{$optionAction{$opt}}) {
        $val = &{$optionAction{$opt}}();
     } elsif (defined $optionAction{$opt}
             and not defined $option{$opt}
             or defined $optionVars{$opt}
-            and not defined $ {$optionVars{$opt}}) {
+            and not defined ${$optionVars{$opt}}) {
        $val = $default;
     } else {
        $val = $option{$opt};
@@ -1609,8 +1853,16 @@ sub option_val {
 
 sub parse_options {
     local($_)= @_;
-    while ($_ ne "") {
-       s/^(\w+)(\s*$|\W)// or print($OUT "Invalid option `$_'\n"), last;
+    # too dangerous to let intuitive usage overwrite important things
+    # defaultion should never be the default
+    my %opt_needs_val = map { ( $_ => 1 ) } qw{
+        arrayDepth hashDepth LineInfo maxTraceLen ornaments
+        pager quote ReadLine recallCommand RemotePort ShellBang TTY
+    };
+    while (length) {
+       my $val_defaulted;
+       s/^\s+// && next;
+       s/^(\w+)(\W?)// or print($OUT "Invalid option `$_'\n"), last;
        my ($opt,$sep) = ($1,$2);
        my $val;
        if ("?" eq $sep) {
@@ -1618,59 +1870,83 @@ sub parse_options {
              if /^\S/;
            #&dump_option($opt);
        } elsif ($sep !~ /\S/) {
-           $val = "1";
+           $val_defaulted = 1;
+           $val = "1";  #  this is an evil default; make 'em set it!
        } elsif ($sep eq "=") {
-           s/^(\S*)($|\s+)//;
+
+            if (s/ (["']) ( (?: \\. | (?! \1 ) [^\\] )* ) \1 //x) { 
+                my $quote = $1;
+                ($val = $2) =~ s/\\([$quote\\])/$1/g;
+           } else { 
+               s/^(\S*)//;
            $val = $1;
+               print OUT qq(Option better cleared using $opt=""\n)
+                   unless length $val;
+           }
+
        } else { #{ to "let some poor schmuck bounce on the % key in B<vi>."
            my ($end) = "\\" . substr( ")]>}$sep", index("([<{",$sep), 1 ); #}
            s/^(([^\\$end]|\\[\\$end])*)$end($|\s+)// or
              print($OUT "Unclosed option value `$opt$sep$_'\n"), last;
-           $val = $1;
-           $val =~ s/\\([\\$end])/$1/g;
+           ($val = $1) =~ s/\\([\\$end])/$1/g;
        }
-       my ($option);
-       my $matches =
-         grep(  /^\Q$opt/ && ($option = $_),  @options  );
-       $matches =  grep(  /^\Q$opt/i && ($option = $_),  @options  )
-         unless $matches;
-       print $OUT "Unknown option `$opt'\n" unless $matches;
-       print $OUT "Ambiguous option `$opt'\n" if $matches > 1;
-       $option{$option} = $val if $matches == 1 and defined $val;
-       eval "local \$frame = 0; local \$doret = -2; 
-             require '$optionRequire{$option}'"
-         if $matches == 1 and defined $optionRequire{$option} and defined $val;
-       $ {$optionVars{$option}} = $val 
-         if $matches == 1
-           and defined $optionVars{$option} and defined $val;
-       & {$optionAction{$option}} ($val) 
-         if $matches == 1
-           and defined $optionAction{$option}
-             and defined &{$optionAction{$option}} and defined $val;
-       &dump_option($option) if $matches == 1 && $OUT ne \*STDERR; # Not $rcfile
-        s/^\s+//;
+
+       my $option;
+       my $matches = grep( /^\Q$opt/  && ($option = $_),  @options  )
+                  || grep( /^\Q$opt/i && ($option = $_),  @options  );
+
+       print($OUT "Unknown option `$opt'\n"), next     unless $matches;
+       print($OUT "Ambiguous option `$opt'\n"), next   if $matches > 1;
+
+       if ($opt_needs_val{$option} && $val_defaulted) {
+           print $OUT "Option `$opt' is non-boolean.  Use `O $option=VAL' to set, `O $option?' to query\n";
+           next;
+       } 
+
+       $option{$option} = $val if defined $val;
+
+       eval qq{
+               local \$frame = 0; 
+               local \$doret = -2; 
+               require '$optionRequire{$option}';
+               1;
+        } || die  # XXX: shouldn't happen
+           if  defined $optionRequire{$option}     &&
+               defined $val;
+
+       ${$optionVars{$option}} = $val      
+           if  defined $optionVars{$option}        &&
+               defined $val;
+
+       &{$optionAction{$option}} ($val)    
+           if defined $optionAction{$option}       &&
+               defined &{$optionAction{$option}}    &&
+               defined $val;
+
+       # Not $rcfile
+       dump_option($option)    unless $OUT eq \*STDERR; 
     }
 }
 
 sub set_list {
   my ($stem,@list) = @_;
   my $val;
-  $ENV{"$ {stem}_n"} = @list;
+  $ENV{"${stem}_n"} = @list;
   for $i (0 .. $#list) {
     $val = $list[$i];
     $val =~ s/\\/\\\\/g;
     $val =~ s/([\0-\37\177\200-\377])/"\\0x" . unpack('H2',$1)/eg;
-    $ENV{"$ {stem}_$i"} = $val;
+    $ENV{"${stem}_$i"} = $val;
   }
 }
 
 sub get_list {
   my $stem = shift;
   my @list;
-  my $n = delete $ENV{"$ {stem}_n"};
+  my $n = delete $ENV{"${stem}_n"};
   my $val;
   for $i (0 .. $n - 1) {
-    $val = delete $ENV{"$ {stem}_$i"};
+    $val = delete $ENV{"${stem}_$i"};
     $val =~ s/\\((\\)|0x(..))/ $2 ? $2 : pack('H2', $3) /ge;
     push @list, $val;
   }
@@ -1734,7 +2010,7 @@ sub RemotePort {
 }
 
 sub tkRunning {
-    if ($ {$term->Features}{tkRunning}) {
+    if (${$term->Features}{tkRunning}) {
         return $term->tkRunning(@_);
     } else {
        print $OUT "tkRunning not supported by current ReadLine package.\n";
@@ -1796,7 +2072,7 @@ sub LineInfo {
     return $lineinfo unless @_;
     $lineinfo = shift;
     my $stream = ($lineinfo =~ /^(\+?\>|\|)/) ? $lineinfo : ">$lineinfo";
-    $emacs = ($stream =~ /^\|/);
+    $slave_editor = ($stream =~ /^\|/);
     open(LINEINFO, "$stream") || &warn("Cannot open `$stream' for write");
     $LINEINFO = \*LINEINFO;
     my $save = select($LINEINFO);
@@ -1814,8 +2090,8 @@ sub list_versions {
     s,/,::,g ;
     s/^perl5db$/DB/;
     s/^Term::ReadLine::readline$/readline/;
-    if (defined $ { $_ . '::VERSION' }) {
-      $version{$file} = "$ { $_ . '::VERSION' } from ";
+    if (defined ${ $_ . '::VERSION' }) {
+      $version{$file} = "${ $_ . '::VERSION' } from ";
     } 
     $version{$file} .= $INC{$file};
   }
@@ -1823,6 +2099,10 @@ sub list_versions {
 }
 
 sub sethelp {
+    # XXX: make sure these are tabs between the command and explantion,
+    #      or print_help will screw up your formatting if you have
+    #      eeevil ornaments enabled.  This is an insane mess.
+
     $help = "
 B<T>           Stack trace.
 B<s> [I<expr>] Single step [in I<expr>].
@@ -1884,39 +2164,16 @@ B<x> I<expr>            Evals expression in array context, dumps the result.
 B<m> I<expr>           Evals expression in array context, prints methods callable
                on the first element of the result.
 B<m> I<class>          Prints methods callable via the given class.
-B<O> [I<opt>[B<=>I<val>]] [I<opt>B<\">I<val>B<\">] [I<opt>B<?>]...
-               Set or query values of options.  I<val> defaults to 1.  I<opt> can
-               be abbreviated.  Several options can be listed.
-    I<recallCommand>, I<ShellBang>:    chars used to recall command or spawn shell;
-    I<pager>:                  program for output of \"|cmd\";
-    I<tkRunning>:                      run Tk while prompting (with ReadLine);
-    I<signalLevel> I<warnLevel> I<dieLevel>:   level of verbosity;
-    I<inhibit_exit>            Allows stepping off the end of the script.
-    I<ImmediateStop>           Debugger should stop as early as possible.
-    I<RemotePort>:                     Remote hostname:port for remote debugging
-  The following options affect what happens with B<V>, B<X>, and B<x> commands:
-    I<arrayDepth>, I<hashDepth>:       print only first N elements ('' for all);
-    I<compactDump>, I<veryCompact>:    change style of array and hash dump;
-    I<globPrint>:                      whether to print contents of globs;
-    I<DumpDBFiles>:            dump arrays holding debugged files;
-    I<DumpPackages>:           dump symbol tables of packages;
-    I<DumpReused>:                     dump contents of \"reused\" addresses;
-    I<quote>, I<HighBit>, I<undefPrint>:       change style of string dump;
-    I<bareStringify>:          Do not print the overload-stringified value;
-  Option I<PrintRet> affects printing of return value after B<r> command,
-         I<frame>    affects printing messages on entry and exit from subroutines.
-         I<AutoTrace> affects printing messages on every possible breaking point.
-        I<maxTraceLen> gives maximal length of evals/args listed in stack trace.
-        I<ornaments> affects screen appearance of the command line.
-               During startup options are initialized from \$ENV{PERLDB_OPTS}.
-               You can put additional initialization options I<TTY>, I<noTTY>,
-               I<ReadLine>, I<NonStop>, and I<RemotePort> there (or use
-               `B<R>' after you set them).
+
+B<<> ?                 List Perl commands to run before each prompt.
 B<<> I<expr>           Define Perl command to run before each prompt.
 B<<<> I<expr>          Add to the list of Perl commands to run before each prompt.
+B<>> ?                 List Perl commands to run after each prompt.
 B<>> I<expr>           Define Perl command to run after each prompt.
 B<>>B<>> I<expr>               Add to the list of Perl commands to run after each prompt.
 B<{> I<db_command>     Define debugger command to run before each prompt.
+B<{> ?                 List debugger commands to run before each prompt.
+B<<> I<expr>           Define Perl command to run before each prompt.
 B<{{> I<db_command>    Add to the list of debugger commands to run before each prompt.
 B<$prc> I<number>      Redo a previous command (default previous command).
 B<$prc> I<-number>     Redo number'th-to-last command.
@@ -1938,13 +2195,49 @@ B<R>            Pure-man-restart of debugger, some of debugger state
                Currently the following setting are preserved: 
                history, breakpoints and actions, debugger B<O>ptions 
                and the following command-line options: I<-w>, I<-I>, I<-e>.
+
+B<O> [I<opt>] ...      Set boolean option to true
+B<O> [I<opt>B<?>]      Query options
+B<O> [I<opt>B<=>I<val>] [I<opt>=B<\">I<val>B<\">] ... 
+               Set options.  Use quotes in spaces in value.
+    I<recallCommand>, I<ShellBang>     chars used to recall command or spawn shell;
+    I<pager>                   program for output of \"|cmd\";
+    I<tkRunning>                       run Tk while prompting (with ReadLine);
+    I<signalLevel> I<warnLevel> I<dieLevel>    level of verbosity;
+    I<inhibit_exit>            Allows stepping off the end of the script.
+    I<ImmediateStop>           Debugger should stop as early as possible.
+    I<RemotePort>                      Remote hostname:port for remote debugging
+  The following options affect what happens with B<V>, B<X>, and B<x> commands:
+    I<arrayDepth>, I<hashDepth>        print only first N elements ('' for all);
+    I<compactDump>, I<veryCompact>     change style of array and hash dump;
+    I<globPrint>                       whether to print contents of globs;
+    I<DumpDBFiles>             dump arrays holding debugged files;
+    I<DumpPackages>            dump symbol tables of packages;
+    I<DumpReused>                      dump contents of \"reused\" addresses;
+    I<quote>, I<HighBit>, I<undefPrint>        change style of string dump;
+    I<bareStringify>           Do not print the overload-stringified value;
+  Other options include:
+    I<PrintRet>                affects printing of return value after B<r> command,
+    I<frame>           affects printing messages on entry and exit from subroutines.
+    I<AutoTrace>       affects printing messages on every possible breaking point.
+    I<maxTraceLen>     gives maximal length of evals/args listed in stack trace.
+    I<ornaments>       affects screen appearance of the command line.
+       During startup options are initialized from \$ENV{PERLDB_OPTS}.
+       You can put additional initialization options I<TTY>, I<noTTY>,
+       I<ReadLine>, I<NonStop>, and I<RemotePort> there (or use
+       `B<R>' after you set them).
+
+B<q> or B<^D>          Quit. Set B<\$DB::finished = 0> to debug global destruction.
 B<h> [I<db_command>]   Get help [on a specific debugger command], enter B<|h> to page.
-               Complete description of debugger is available in B<perldebug>
-               section of Perl documention
 B<h h>         Summary of debugger commands.
-B<q> or B<^D>          Quit. Set B<\$DB::finished = 0> to debug global destruction.
+B<$doccmd> I<manpage>  Runs the external doc viewer B<$doccmd> command on the 
+               named Perl I<manpage>, or on B<$doccmd> itself if omitted.
+               Set B<\$DB::doccmd> to change viewer.
+
+Type `|h' for a paged display if this was too hard to read.
+
+"; # Fix balance of vi % matching: } }}
 
-";
     $summary = <<"END_SUM";
 I<List/search source lines:>               I<Control script execution:>
   B<l> [I<ln>|I<sub>]  List source code            B<T>           Stack trace
@@ -1968,18 +2261,71 @@ I<Data Examination:>          B<expr>     Execute perl code, also see: B<s>,B<n>,B<
   B<S> [[B<!>]I<pat>]  List subroutine names [not] matching pattern
   B<V> [I<Pk> [I<Vars>]]       List Variables in Package.  Vars can be ~pattern or !pattern.
   B<X> [I<Vars>]       Same as \"B<V> I<current_package> [I<Vars>]\".
-I<More help for> B<db_cmd>I<:>  Type B<h> I<cmd_letter>  Run B<perldoc perldebug> for more help.
+For more help, type B<h> I<cmd_letter>, or run B<$doccmd perldebug> for all docs.
 END_SUM
-                               # ')}}; # Fix balance of Emacs parsing
+                               # ')}}; # Fix balance of vi % matching
 }
 
 sub print_help {
-  my $message = shift;
-  if (@Term::ReadLine::TermCap::rl_term_set) {
-    $message =~ s/B<([^>]+|>)>/$Term::ReadLine::TermCap::rl_term_set[2]$1$Term::ReadLine::TermCap::rl_term_set[3]/g;
-    $message =~ s/I<([^>]+|>)>/$Term::ReadLine::TermCap::rl_term_set[0]$1$Term::ReadLine::TermCap::rl_term_set[1]/g;
-  }
-  print $OUT $message;
+    local $_ = shift;
+
+    # Restore proper alignment destroyed by eeevil I<> and B<>
+    # ornaments: A pox on both their houses!
+    #
+    # A help command will have everything up to and including
+    # the first tab sequence paddeed into a field 16 (or if indented 20)
+    # wide.  If it's wide than that, an extra space will be added.
+    s{
+       ^                       # only matters at start of line
+         ( \040{4} | \t )*     # some subcommands are indented
+         ( < ?                 # so <CR> works
+           [BI] < [^\t\n] + )  # find an eeevil ornament
+         ( \t+ )               # original separation, discarded
+         ( .* )                # this will now start (no earlier) than 
+                               # column 16
+    } {
+       my($leadwhite, $command, $midwhite, $text) = ($1, $2, $3, $4);
+       my $clean = $command;
+       $clean =~ s/[BI]<([^>]*)>/$1/g;  
+    # replace with this whole string:
+       (length($leadwhite) ? " " x 4 : "")
+      . $command
+      . ((" " x (16 + (length($leadwhite) ? 4 : 0) - length($clean))) || " ")
+      . $text;
+
+    }mgex;
+
+    s{                         # handle bold ornaments
+       B < ( [^>] + | > ) >
+    } {
+         $Term::ReadLine::TermCap::rl_term_set[2] 
+       . $1
+       . $Term::ReadLine::TermCap::rl_term_set[3]
+    }gex;
+
+    s{                         # handle italic ornaments
+       I < ( [^>] + | > ) >
+    } {
+         $Term::ReadLine::TermCap::rl_term_set[0] 
+       . $1
+       . $Term::ReadLine::TermCap::rl_term_set[1]
+    }gex;
+
+    print $OUT $_;
+}
+
+sub fix_less {
+    return if defined $ENV{LESS} && $ENV{LESS} =~ /r/;
+    my $is_less = $pager =~ /\bless\b/;
+    if ($pager =~ /\bmore\b/) { 
+       my @st_more = stat('/usr/bin/more');
+       my @st_less = stat('/usr/bin/less');
+       $is_less = @st_more    && @st_less 
+               && $st_more[0] == $st_less[0] 
+               && $st_more[1] == $st_less[1];
+    }
+    # changes environment!
+    $ENV{LESS} .= 'r'  if $is_less;
 }
 
 sub diesignal {
@@ -2030,8 +2376,10 @@ sub dbdie {
   }
   eval { require Carp } if defined $^S;        # If error/warning during compilation,
                                        # require may be broken.
+
   die(@_, "\nCannot print stack trace, load with -MCarp option to see stack")
     unless defined &Carp::longmess;
+
   # We do not want to debug this chunk (automatic disabling works
   # inside DB::DB, but not in Carp).
   my ($mysingle,$mytrace) = ($single,$trace);
@@ -2138,18 +2486,81 @@ sub methods_via {
   my $prefix = shift;
   my $prepend = $prefix ? "via $prefix: " : '';
   my $name;
-  for $name (grep {defined &{$ {"$ {class}::"}{$_}}} 
-            sort keys %{"$ {class}::"}) {
+  for $name (grep {defined &{${"${class}::"}{$_}}} 
+            sort keys %{"${class}::"}) {
     next if $seen{ $name }++;
     print $DB::OUT "$prepend$name\n";
   }
   return unless shift;         # Recurse?
-  for $name (@{"$ {class}::ISA"}) {
+  for $name (@{"${class}::ISA"}) {
     $prepend = $prefix ? $prefix . " -> $name" : $name;
     methods_via($name, $prepend, 1);
   }
 }
 
+sub setman { 
+    $doccmd = $^O !~ /^(?:MSWin32|VMS|os2|dos|amigaos|riscos|MacOS)\z/s
+               ? "man"             # O Happy Day!
+               : "perldoc";        # Alas, poor unfortunates
+}
+
+sub runman {
+    my $page = shift;
+    unless ($page) {
+       &system("$doccmd $doccmd");
+       return;
+    } 
+    # this way user can override, like with $doccmd="man -Mwhatever"
+    # or even just "man " to disable the path check.
+    unless ($doccmd eq 'man') {
+       &system("$doccmd $page");
+       return;
+    } 
+
+    $page = 'perl' if lc($page) eq 'help';
+
+    require Config;
+    my $man1dir = $Config::Config{'man1dir'};
+    my $man3dir = $Config::Config{'man3dir'};
+    for ($man1dir, $man3dir) { s#/[^/]*\z## if /\S/ } 
+    my $manpath = '';
+    $manpath .= "$man1dir:" if $man1dir =~ /\S/;
+    $manpath .= "$man3dir:" if $man3dir =~ /\S/ && $man1dir ne $man3dir;
+    chop $manpath if $manpath;
+    # harmless if missing, I figure
+    my $oldpath = $ENV{MANPATH};
+    $ENV{MANPATH} = $manpath if $manpath;
+    my $nopathopt = $^O =~ /dunno what goes here/;
+    if (system($doccmd, 
+               # I just *know* there are men without -M
+               (($manpath && !$nopathopt) ? ("-M", $manpath) : ()),  
+           split ' ', $page) )
+    {
+       unless ($page =~ /^perl\w/) {
+           if (grep { $page eq $_ } qw{ 
+               5004delta 5005delta amiga api apio book boot bot call compile
+               cygwin data dbmfilter debug debguts delta diag doc dos dsc embed
+               faq faq1 faq2 faq3 faq4 faq5 faq6 faq7 faq8 faq9 filter fork
+               form func guts hack hist hpux intern ipc lexwarn locale lol mod
+               modinstall modlib number obj op opentut os2 os390 pod port 
+               ref reftut run sec style sub syn thrtut tie toc todo toot tootc
+               trap unicode var vms win32 xs xstut
+             }) 
+           {
+               $page =~ s/^/perl/;
+               system($doccmd, 
+                       (($manpath && !$nopathopt) ? ("-M", $manpath) : ()),  
+                       $page);
+           }
+       }
+    } 
+    if (defined $oldpath) {
+       $ENV{MANPATH} = $manpath;
+    } else {
+       delete $ENV{MANPATH};
+    } 
+} 
+
 # The following BEGIN is very handy if debugger goes havoc, debugging debugger?
 
 BEGIN {                        # This does not compile, alas.
@@ -2187,7 +2598,7 @@ sub db_complete {
   # Specific code for b c l V m f O, &blah, $blah, @blah, %blah
   my($text, $line, $start) = @_;
   my ($itext, $search, $prefix, $pack) =
-    ($text, "^\Q$ {'package'}::\E([^:]+)\$");
+    ($text, "^\Q${'package'}::\E([^:]+)\$");
   
   return sort grep /^\Q$text/, (keys %sub), qw(postpone load compile), # subroutines
                                (map { /$search/ ? ($1) : () } keys %sub)
index f9d60af..042227f 100644 (file)
@@ -34,6 +34,8 @@ use symbolic references (see L<perlref>).
     print $$ref;       # ok
     $ref = "foo";
     print $$ref;       # runtime error; normally ok
+    $file = "STDOUT";
+    print $file "Hi!"; # error; note: no comma after $file
 
 =item C<strict vars>
 
index 9e03399..70c439b 100644 (file)
 
 package syslog;
 
+use warnings::register;
+
 $host = 'localhost' unless $host;      # set $syslog'host to change
 
-if ($] >= 5) {
-    warn "You should 'use Sys::Syslog' instead; continuing" # if $^W
+if ($] >= 5 && warnings::enabled()) {
+    warnings::warn "You should 'use Sys::Syslog' instead; continuing";
 } 
 
 require 'syslog.ph';
index d44f744..203860b 100644 (file)
@@ -10,11 +10,7 @@ return <<'END';
 00ba   
 00c0   00d6
 00d8   00f6
-00f8   01c4
-01c6   01c7
-01c9   01ca
-01cc   01f1
-01f3   021f
+00f8   021f
 0222   0233
 0250   02ad
 0386   
@@ -210,19 +206,16 @@ return <<'END';
 1f5b   
 1f5d   
 1f5f   1f7d
-1f80   1f87
-1f90   1f97
-1fa0   1fa7
-1fb0   1fb4
-1fb6   1fbb
+1f80   1fb4
+1fb6   1fbc
 1fbe   
 1fc2   1fc4
-1fc6   1fcb
+1fc6   1fcc
 1fd0   1fd3
 1fd6   1fdb
 1fe0   1fec
 1ff2   1ff4
-1ff6   1ffb
+1ff6   1ffc
 207f   
 2102   
 2107   
index 0e94688..90020b8 100644 (file)
@@ -9,11 +9,7 @@ return <<'END';
 00ba   
 00c0   00d6
 00d8   00f6
-00f8   01c4
-01c6   01c7
-01c9   01ca
-01cc   01f1
-01f3   021f
+00f8   021f
 0222   0233
 0250   02ad
 0386   
@@ -193,19 +189,16 @@ return <<'END';
 1f5b   
 1f5d   
 1f5f   1f7d
-1f80   1f87
-1f90   1f97
-1fa0   1fa7
-1fb0   1fb4
-1fb6   1fbb
+1f80   1fb4
+1fb6   1fbc
 1fbe   
 1fc2   1fc4
-1fc6   1fcb
+1fc6   1fcc
 1fd0   1fd3
 1fd6   1fdb
 1fe0   1fec
 1ff2   1ff4
-1ff6   1ffb
+1ff6   1ffc
 207f   
 2102   
 2107   
diff --git a/lib/unicode/Is/LbrkAI.pl b/lib/unicode/Is/LbrkAI.pl
new file mode 100644 (file)
index 0000000..a15f760
--- /dev/null
@@ -0,0 +1,139 @@
+# !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!! 
+# This file is built by mktables.PL from e.g. Unicode.300.
+# Any changes made here will be lost!
+return <<'END';
+00a1   
+00a7   00a8
+00aa   
+00b2   00b3
+00b6   00ba
+00bc   00bf
+00c6   
+00d0   
+00d7   00d8
+00de   00e1
+00e6   
+00e8   00ea
+00ec   00ed
+00f0   
+00f2   00f3
+00f7   00fa
+00fc   
+00fe   
+0101   
+0111   
+0113   
+011b   
+0126   0127
+012b   
+0131   0133
+0138   
+013f   0142
+0144   
+0148   014a
+014d   
+0152   0153
+0166   0167
+016b   
+01ce   
+01d0   
+01d2   
+01d4   
+01d6   
+01d8   
+01da   
+01dc   
+0251   
+0261   
+02c7   
+02c9   02cb
+02cd   
+02d0   
+02d8   02db
+02dd   
+0391   03a1
+03a3   03a9
+03b1   03c1
+03c3   03c9
+0401   
+0410   044f
+0451   
+2016   
+2020   2021
+203b   
+2074   
+207f   
+2081   2084
+2105   
+2113   
+2121   2122
+212b   
+2154   2155
+215b   
+215e   
+2160   216b
+2170   2179
+2190   2199
+21d2   
+21d4   
+2200   
+2202   2203
+2207   2208
+220b   
+220f   
+2211   
+2215   
+221a   
+221d   2220
+2223   
+2225   
+2227   222c
+222e   
+2234   2237
+223c   223d
+2248   
+224c   
+2252   
+2260   2261
+2264   2267
+226a   226b
+226e   226f
+2282   2283
+2286   2287
+2295   
+2299   
+22a5   
+22bf   
+2312   
+2460   24bf
+24d0   24e9
+2500   254b
+2550   2574
+2580   258f
+2592   2595
+25a0   25a1
+25a3   25a9
+25b2   25b3
+25b6   25b7
+25bc   25bd
+25c0   25c1
+25c6   25c7
+25cb   
+25ce   25d1
+25e2   25e5
+25ef   
+2605   2606
+2609   
+260e   260f
+261c   
+261e   
+2640   
+2642   
+2660   2661
+2663   2665
+2667   266a
+266c   266d
+266f   
+e000   f8ff
+fffd   
+END
diff --git a/lib/unicode/Is/LbrkAL.pl b/lib/unicode/Is/LbrkAL.pl
new file mode 100644 (file)
index 0000000..c705dc8
--- /dev/null
@@ -0,0 +1,387 @@
+# !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!! 
+# This file is built by mktables.PL from e.g. Unicode.300.
+# Any changes made here will be lost!
+return <<'END';
+0023   
+0026   
+002a   
+003c   003e
+0040   005a
+005e   007a
+007e   
+00a6   
+00a9   
+00ac   
+00ae   00af
+00b5   
+00c0   00c5
+00c7   00cf
+00d1   00d6
+00d9   00dd
+00e2   00e5
+00e7   
+00eb   
+00ee   00ef
+00f1   
+00f4   00f6
+00fb   
+00fd   
+00ff   0100
+0102   0110
+0112   
+0114   011a
+011c   0125
+0128   012a
+012c   0130
+0134   0137
+0139   013e
+0143   
+0145   0147
+014b   014c
+014e   0151
+0154   0165
+0168   016a
+016c   01cd
+01cf   
+01d1   
+01d3   
+01d5   
+01d7   
+01d9   
+01db   
+01dd   021f
+0222   0233
+0250   
+0252   0260
+0262   02ad
+02b0   02c6
+02ce   02cf
+02d1   02d7
+02dc   
+02de   02ee
+0374   0375
+037a   
+037e   
+0384   038a
+038c   
+038e   0390
+03aa   03b0
+03c2   
+03ca   03ce
+03d0   03d7
+03da   03f3
+0400   
+0402   040f
+0450   
+0452   0482
+048c   04c4
+04c7   04c8
+04cb   04cc
+04d0   04f5
+04f8   04f9
+0531   0556
+0559   055f
+0561   0587
+05be   
+05c0   
+05c3   
+05d0   05ea
+05f0   05f4
+060c   
+061b   
+061f   
+0621   063a
+0640   064a
+066a   066d
+0671   06d5
+06e5   06e6
+06e9   
+06fa   06fe
+0700   070d
+0710   
+0712   072c
+0780   07a5
+0905   0939
+093d   
+0950   
+0958   0961
+0964   0965
+0970   
+0985   098c
+098f   0990
+0993   09a8
+09aa   09b0
+09b2   
+09b6   09b9
+09dc   09dd
+09df   09e1
+09f0   09f1
+09f4   09fa
+0a05   0a0a
+0a0f   0a10
+0a13   0a28
+0a2a   0a30
+0a32   0a33
+0a35   0a36
+0a38   0a39
+0a59   0a5c
+0a5e   
+0a72   0a74
+0a85   0a8b
+0a8d   
+0a8f   0a91
+0a93   0aa8
+0aaa   0ab0
+0ab2   0ab3
+0ab5   0ab9
+0abd   
+0ad0   
+0ae0   
+0b05   0b0c
+0b0f   0b10
+0b13   0b28
+0b2a   0b30
+0b32   0b33
+0b36   0b39
+0b3d   
+0b5c   0b5d
+0b5f   0b61
+0b70   
+0b85   0b8a
+0b8e   0b90
+0b92   0b95
+0b99   0b9a
+0b9c   
+0b9e   0b9f
+0ba3   0ba4
+0ba8   0baa
+0bae   0bb5
+0bb7   0bb9
+0bf0   0bf2
+0c05   0c0c
+0c0e   0c10
+0c12   0c28
+0c2a   0c33
+0c35   0c39
+0c60   0c61
+0c85   0c8c
+0c8e   0c90
+0c92   0ca8
+0caa   0cb3
+0cb5   0cb9
+0cde   
+0ce0   0ce1
+0d05   0d0c
+0d0e   0d10
+0d12   0d28
+0d2a   0d39
+0d60   0d61
+0d85   0d96
+0d9a   0db1
+0db3   0dbb
+0dbd   
+0dc0   0dc6
+0df4   
+0e4f   
+0f00   0f0a
+0f0d   0f17
+0f1a   0f1f
+0f2a   0f34
+0f36   
+0f38   
+0f40   0f47
+0f49   0f6a
+0f85   
+0f88   0f8b
+0fbe   0fc5
+0fc7   0fcc
+0fcf   
+104a   104f
+10a0   10c5
+10d0   10f6
+10fb   
+1200   1206
+1208   1246
+1248   
+124a   124d
+1250   1256
+1258   
+125a   125d
+1260   1286
+1288   
+128a   128d
+1290   12ae
+12b0   
+12b2   12b5
+12b8   12be
+12c0   
+12c2   12c5
+12c8   12ce
+12d0   12d6
+12d8   12ee
+12f0   130e
+1310   
+1312   1315
+1318   131e
+1320   1346
+1348   135a
+1362   1368
+1372   137c
+13a0   13f4
+1401   1676
+1681   169a
+16a0   16f0
+17dc   
+1800   1805
+1807   180a
+1820   1877
+1880   18a8
+1e00   1e9b
+1ea0   1ef9
+1f00   1f15
+1f18   1f1d
+1f20   1f45
+1f48   1f4d
+1f50   1f57
+1f59   
+1f5b   
+1f5d   
+1f5f   1f7d
+1f80   1fb4
+1fb6   1fc4
+1fc6   1fd3
+1fd6   1fdb
+1fdd   1fef
+1ff2   1ff4
+1ff6   1ffe
+2015   
+2017   
+2022   2023
+2038   
+203d   2043
+2048   204d
+2070   
+2075   207c
+2080   
+2085   208c
+2100   2102
+2104   
+2106   2108
+210a   2112
+2114   2115
+2117   2120
+2123   2125
+2127   212a
+212c   213a
+2153   
+2156   215a
+215c   215d
+215f   
+216c   216f
+217a   2183
+219a   21d1
+21d3   
+21d5   21f3
+2201   
+2204   2206
+2209   220a
+220c   220e
+2210   
+2214   
+2216   2219
+221b   221c
+2221   2222
+2224   
+2226   
+222d   
+222f   2233
+2238   223b
+223e   2247
+2249   224b
+224d   2251
+2253   225f
+2262   2263
+2268   2269
+226c   226d
+2270   2281
+2284   2285
+2288   2294
+2296   2298
+229a   22a4
+22a6   22be
+22c0   22f1
+2300   2311
+2313   2328
+232b   237b
+237d   239a
+2400   2426
+2440   244a
+24c0   24cf
+24ea   
+254c   254f
+2575   257f
+2590   2591
+25a2   
+25aa   25b1
+25b4   25b5
+25b8   25bb
+25be   25bf
+25c2   25c5
+25c8   25ca
+25cc   25cd
+25d2   25e1
+25e6   25ee
+25f0   25f7
+2600   2604
+2607   2608
+260a   260d
+2610   2613
+2619   261b
+261d   
+261f   263f
+2641   
+2643   265f
+2662   
+2666   
+266b   
+266e   
+2670   2671
+2701   2704
+2706   2709
+270c   2727
+2729   274b
+274d   
+274f   2752
+2756   
+2758   275e
+2761   2767
+2776   2794
+2798   27af
+27b1   27be
+2800   28ff
+fb00   fb06
+fb13   fb17
+fb1d   
+fb1f   fb36
+fb38   fb3c
+fb3e   
+fb40   fb41
+fb43   fb44
+fb46   fbb1
+fbd3   fd3d
+fd50   fd8f
+fd92   fdc7
+fdf0   fdfb
+fe6b   
+fe70   fe72
+fe74   
+fe76   fefc
+ff66   
+ff71   ff9d
+ffa0   ffbe
+ffc2   ffc7
+ffca   ffcf
+ffd2   ffd7
+ffda   ffdc
+ffe8   ffee
+END
diff --git a/lib/unicode/Is/LbrkB2.pl b/lib/unicode/Is/LbrkB2.pl
new file mode 100644 (file)
index 0000000..527e4c8
--- /dev/null
@@ -0,0 +1,6 @@
+# !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!! 
+# This file is built by mktables.PL from e.g. Unicode.300.
+# Any changes made here will be lost!
+return <<'END';
+2014   
+END
diff --git a/lib/unicode/Is/LbrkBA.pl b/lib/unicode/Is/LbrkBA.pl
new file mode 100644 (file)
index 0000000..053369b
--- /dev/null
@@ -0,0 +1,19 @@
+# !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!! 
+# This file is built by mktables.PL from e.g. Unicode.300.
+# Any changes made here will be lost!
+return <<'END';
+0009   
+007c   
+00ad   
+00b4   
+058a   
+0f0b   
+1361   
+1680   
+17d5   
+2000   2006
+2008   200a
+2010   
+2012   2013
+2027   
+END
diff --git a/lib/unicode/Is/LbrkBB.pl b/lib/unicode/Is/LbrkBB.pl
new file mode 100644 (file)
index 0000000..5d3952a
--- /dev/null
@@ -0,0 +1,8 @@
+# !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!! 
+# This file is built by mktables.PL from e.g. Unicode.300.
+# Any changes made here will be lost!
+return <<'END';
+02c8   
+02cc   
+1806   
+END
diff --git a/lib/unicode/Is/LbrkBK.pl b/lib/unicode/Is/LbrkBK.pl
new file mode 100644 (file)
index 0000000..2c314fb
--- /dev/null
@@ -0,0 +1,7 @@
+# !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!! 
+# This file is built by mktables.PL from e.g. Unicode.300.
+# Any changes made here will be lost!
+return <<'END';
+000c   
+2028   2029
+END
diff --git a/lib/unicode/Is/LbrkCB.pl b/lib/unicode/Is/LbrkCB.pl
new file mode 100644 (file)
index 0000000..95f8b80
--- /dev/null
@@ -0,0 +1,6 @@
+# !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!! 
+# This file is built by mktables.PL from e.g. Unicode.300.
+# Any changes made here will be lost!
+return <<'END';
+fffc   
+END
diff --git a/lib/unicode/Is/LbrkCL.pl b/lib/unicode/Is/LbrkCL.pl
new file mode 100644 (file)
index 0000000..a73130a
--- /dev/null
@@ -0,0 +1,47 @@
+# !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!! 
+# This file is built by mktables.PL from e.g. Unicode.300.
+# Any changes made here will be lost!
+return <<'END';
+0029   
+005d   
+007d   
+0f3b   
+0f3d   
+169c   
+2046   
+207e   
+208e   
+232a   
+3001   3002
+3009   
+300b   
+300d   
+300f   
+3011   
+3015   
+3017   
+3019   
+301b   
+301e   301f
+fd3f   
+fe36   
+fe38   
+fe3a   
+fe3c   
+fe3e   
+fe40   
+fe42   
+fe44   
+fe50   
+fe52   
+fe5a   
+fe5c   
+fe5e   
+ff09   
+ff0c   
+ff0e   
+ff3d   
+ff5d   
+ff61   
+ff63   ff64
+END
diff --git a/lib/unicode/Is/LbrkCM.pl b/lib/unicode/Is/LbrkCM.pl
new file mode 100644 (file)
index 0000000..3d0f347
--- /dev/null
@@ -0,0 +1,117 @@
+# !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!! 
+# This file is built by mktables.PL from e.g. Unicode.300.
+# Any changes made here will be lost!
+return <<'END';
+0000   0008
+000b   
+000e   001f
+007f   009f
+0300   034e
+0360   0362
+0483   0486
+0488   0489
+0591   05a1
+05a3   05b9
+05bb   05bd
+05bf   
+05c1   05c2
+05c4   
+064b   0655
+0670   
+06d6   06e4
+06e7   06e8
+06ea   06ed
+070f   
+0711   
+0730   074a
+07a6   07b0
+0901   0903
+093c   
+093e   094d
+0951   0954
+0962   0963
+0981   0983
+09bc   
+09be   09c4
+09c7   09c8
+09cb   09cd
+09d7   
+09e2   09e3
+0a02   
+0a3c   
+0a3e   0a42
+0a47   0a48
+0a4b   0a4d
+0a70   0a71
+0a81   0a83
+0abc   
+0abe   0ac5
+0ac7   0ac9
+0acb   0acd
+0b01   0b03
+0b3c   
+0b3e   0b43
+0b47   0b48
+0b4b   0b4d
+0b56   0b57
+0b82   0b83
+0bbe   0bc2
+0bc6   0bc8
+0bca   0bcd
+0bd7   
+0c01   0c03
+0c3e   0c44
+0c46   0c48
+0c4a   0c4d
+0c55   0c56
+0c82   0c83
+0cbe   0cc4
+0cc6   0cc8
+0cca   0ccd
+0cd5   0cd6
+0d02   0d03
+0d3e   0d43
+0d46   0d48
+0d4a   0d4d
+0d57   
+0d82   0d83
+0dca   
+0dcf   0dd4
+0dd6   
+0dd8   0ddf
+0df2   0df3
+0e31   
+0e34   0e3a
+0e47   0e4e
+0eb1   
+0eb4   0eb9
+0ebb   0ebc
+0ec8   0ecd
+0f18   0f19
+0f35   
+0f37   
+0f39   
+0f3e   0f3f
+0f71   0f84
+0f86   0f87
+0f90   0f97
+0f99   0fbc
+0fc6   
+102c   1032
+1036   1039
+1056   1059
+1160   11a2
+11a8   11f9
+17b4   17d3
+180b   180e
+18a9   
+200c   200f
+202a   202e
+206a   206f
+20d0   20e3
+302a   302f
+3099   309a
+fb1e   
+fe20   fe23
+fff9   fffb
+END
diff --git a/lib/unicode/Is/LbrkCR.pl b/lib/unicode/Is/LbrkCR.pl
new file mode 100644 (file)
index 0000000..c61a527
--- /dev/null
@@ -0,0 +1,6 @@
+# !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!! 
+# This file is built by mktables.PL from e.g. Unicode.300.
+# Any changes made here will be lost!
+return <<'END';
+000d   
+END
diff --git a/lib/unicode/Is/LbrkEX.pl b/lib/unicode/Is/LbrkEX.pl
new file mode 100644 (file)
index 0000000..d847092
--- /dev/null
@@ -0,0 +1,10 @@
+# !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!! 
+# This file is built by mktables.PL from e.g. Unicode.300.
+# Any changes made here will be lost!
+return <<'END';
+0021   
+003f   
+fe56   fe57
+ff01   
+ff1f   
+END
diff --git a/lib/unicode/Is/LbrkGL.pl b/lib/unicode/Is/LbrkGL.pl
new file mode 100644 (file)
index 0000000..b03a627
--- /dev/null
@@ -0,0 +1,11 @@
+# !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!! 
+# This file is built by mktables.PL from e.g. Unicode.300.
+# Any changes made here will be lost!
+return <<'END';
+00a0   
+0f0c   
+2007   
+2011   
+202f   
+feff   
+END
diff --git a/lib/unicode/Is/LbrkHY.pl b/lib/unicode/Is/LbrkHY.pl
new file mode 100644 (file)
index 0000000..6989bc8
--- /dev/null
@@ -0,0 +1,6 @@
+# !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!! 
+# This file is built by mktables.PL from e.g. Unicode.300.
+# Any changes made here will be lost!
+return <<'END';
+002d   
+END
diff --git a/lib/unicode/Is/LbrkID.pl b/lib/unicode/Is/LbrkID.pl
new file mode 100644 (file)
index 0000000..0b1cc84
--- /dev/null
@@ -0,0 +1,81 @@
+# !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!! 
+# This file is built by mktables.PL from e.g. Unicode.300.
+# Any changes made here will be lost!
+return <<'END';
+1100   1159
+115f   
+2e80   2e99
+2e9b   2ef3
+2f00   2fd5
+2ff0   2ffb
+3000   
+3003   3004
+3006   3007
+3012   3013
+3020   3029
+3030   303a
+303e   303f
+3042   
+3044   
+3046   
+3048   
+304a   3062
+3064   3082
+3084   
+3086   
+3088   308d
+308f   3094
+30a2   
+30a4   
+30a6   
+30a8   
+30aa   30c2
+30c4   30e2
+30e4   
+30e6   
+30e8   30ed
+30ef   30f4
+30f7   30fa
+30fc   
+30fe   
+3105   312c
+3131   318e
+3190   31b7
+3200   321c
+3220   3243
+3260   327b
+327f   32b0
+32c0   32cb
+32d0   32fe
+3300   3376
+337b   33dd
+33e0   33fe
+3400   4db5
+4e00   9fa5
+a000   a48c
+a490   a4a1
+a4a4   a4b3
+a4b5   a4c0
+a4c2   a4c4
+a4c6   
+ac00   d7a3
+f900   fa2d
+fe30   fe34
+fe49   fe4f
+fe51   
+fe58   
+fe5f   fe66
+fe68   
+ff02   ff03
+ff06   ff07
+ff0a   ff0b
+ff0d   
+ff0f   ff19
+ff1c   ff1e
+ff20   ff3a
+ff3c   
+ff3e   ff5a
+ff5c   
+ff5e   
+ffe2   ffe4
+END
diff --git a/lib/unicode/Is/LbrkIN.pl b/lib/unicode/Is/LbrkIN.pl
new file mode 100644 (file)
index 0000000..825198d
--- /dev/null
@@ -0,0 +1,6 @@
+# !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!! 
+# This file is built by mktables.PL from e.g. Unicode.300.
+# Any changes made here will be lost!
+return <<'END';
+2024   2026
+END
diff --git a/lib/unicode/Is/LbrkIS.pl b/lib/unicode/Is/LbrkIS.pl
new file mode 100644 (file)
index 0000000..afa01a8
--- /dev/null
@@ -0,0 +1,9 @@
+# !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!! 
+# This file is built by mktables.PL from e.g. Unicode.300.
+# Any changes made here will be lost!
+return <<'END';
+002c   
+002e   
+003a   003b
+0589   
+END
diff --git a/lib/unicode/Is/LbrkLF.pl b/lib/unicode/Is/LbrkLF.pl
new file mode 100644 (file)
index 0000000..dcb5490
--- /dev/null
@@ -0,0 +1,6 @@
+# !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!! 
+# This file is built by mktables.PL from e.g. Unicode.300.
+# Any changes made here will be lost!
+return <<'END';
+000a   
+END
diff --git a/lib/unicode/Is/LbrkNS.pl b/lib/unicode/Is/LbrkNS.pl
new file mode 100644 (file)
index 0000000..af9f337
--- /dev/null
@@ -0,0 +1,41 @@
+# !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!! 
+# This file is built by mktables.PL from e.g. Unicode.300.
+# Any changes made here will be lost!
+return <<'END';
+0e5a   0e5b
+17d4   
+17d6   17da
+203c   
+2044   
+3005   
+301c   
+3041   
+3043   
+3045   
+3047   
+3049   
+3063   
+3083   
+3085   
+3087   
+308e   
+309b   309e
+30a1   
+30a3   
+30a5   
+30a7   
+30a9   
+30c3   
+30e3   
+30e5   
+30e7   
+30ee   
+30f5   30f6
+30fb   
+30fd   
+fe54   fe55
+ff1a   ff1b
+ff65   
+ff67   ff70
+ff9e   ff9f
+END
diff --git a/lib/unicode/Is/LbrkNU.pl b/lib/unicode/Is/LbrkNU.pl
new file mode 100644 (file)
index 0000000..5c55d22
--- /dev/null
@@ -0,0 +1,24 @@
+# !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!! 
+# This file is built by mktables.PL from e.g. Unicode.300.
+# Any changes made here will be lost!
+return <<'END';
+0030   0039
+0660   0669
+06f0   06f9
+0966   096f
+09e6   09ef
+0a66   0a6f
+0ae6   0aef
+0b66   0b6f
+0be7   0bef
+0c66   0c6f
+0ce6   0cef
+0d66   0d6f
+0e50   0e59
+0ed0   0ed9
+0f20   0f29
+1040   1049
+1369   1371
+17e0   17e9
+1810   1819
+END
diff --git a/lib/unicode/Is/LbrkOP.pl b/lib/unicode/Is/LbrkOP.pl
new file mode 100644 (file)
index 0000000..a7dee37
--- /dev/null
@@ -0,0 +1,43 @@
+# !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!! 
+# This file is built by mktables.PL from e.g. Unicode.300.
+# Any changes made here will be lost!
+return <<'END';
+0028   
+005b   
+007b   
+0f3a   
+0f3c   
+169b   
+201a   
+201e   
+2045   
+207d   
+208d   
+2329   
+3008   
+300a   
+300c   
+300e   
+3010   
+3014   
+3016   
+3018   
+301a   
+301d   
+fd3e   
+fe35   
+fe37   
+fe39   
+fe3b   
+fe3d   
+fe3f   
+fe41   
+fe43   
+fe59   
+fe5b   
+fe5d   
+ff08   
+ff3b   
+ff5b   
+ff62   
+END
diff --git a/lib/unicode/Is/LbrkPO.pl b/lib/unicode/Is/LbrkPO.pl
new file mode 100644 (file)
index 0000000..cdfb56e
--- /dev/null
@@ -0,0 +1,16 @@
+# !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!! 
+# This file is built by mktables.PL from e.g. Unicode.300.
+# Any changes made here will be lost!
+return <<'END';
+0025   
+00a2   
+00b0   
+2030   2037
+20a7   
+2103   
+2109   
+2126   
+fe6a   
+ff05   
+ffe0   
+END
diff --git a/lib/unicode/Is/LbrkPR.pl b/lib/unicode/Is/LbrkPR.pl
new file mode 100644 (file)
index 0000000..c2d20da
--- /dev/null
@@ -0,0 +1,21 @@
+# !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!! 
+# This file is built by mktables.PL from e.g. Unicode.300.
+# Any changes made here will be lost!
+return <<'END';
+0024   
+002b   
+005c   
+00a3   00a5
+00b1   
+09f2   09f3
+0e3f   
+17db   
+20a0   20a6
+20a8   20af
+2116   
+2212   2213
+fe69   
+ff04   
+ffe1   
+ffe5   ffe6
+END
diff --git a/lib/unicode/Is/LbrkQU.pl b/lib/unicode/Is/LbrkQU.pl
new file mode 100644 (file)
index 0000000..46a6ee3
--- /dev/null
@@ -0,0 +1,13 @@
+# !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!! 
+# This file is built by mktables.PL from e.g. Unicode.300.
+# Any changes made here will be lost!
+return <<'END';
+0022   
+0027   
+00ab   
+00bb   
+2018   2019
+201b   201d
+201f   
+2039   203a
+END
diff --git a/lib/unicode/Is/LbrkSA.pl b/lib/unicode/Is/LbrkSA.pl
new file mode 100644 (file)
index 0000000..bae4ced
--- /dev/null
@@ -0,0 +1,30 @@
+# !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!! 
+# This file is built by mktables.PL from e.g. Unicode.300.
+# Any changes made here will be lost!
+return <<'END';
+0e01   0e30
+0e32   0e33
+0e40   0e46
+0e81   0e82
+0e84   
+0e87   0e88
+0e8a   
+0e8d   
+0e94   0e97
+0e99   0e9f
+0ea1   0ea3
+0ea5   
+0ea7   
+0eaa   0eab
+0ead   0eb0
+0eb2   0eb3
+0ebd   
+0ec0   0ec4
+0ec6   
+0edc   0edd
+1000   1021
+1023   1027
+1029   102a
+1050   1055
+1780   17b3
+END
diff --git a/lib/unicode/Is/LbrkSG.pl b/lib/unicode/Is/LbrkSG.pl
new file mode 100644 (file)
index 0000000..8888fb5
--- /dev/null
@@ -0,0 +1,8 @@
+# !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!! 
+# This file is built by mktables.PL from e.g. Unicode.300.
+# Any changes made here will be lost!
+return <<'END';
+d800   db7f
+db80   dbff
+dc00   dfff
+END
diff --git a/lib/unicode/Is/LbrkSP.pl b/lib/unicode/Is/LbrkSP.pl
new file mode 100644 (file)
index 0000000..e786a0c
--- /dev/null
@@ -0,0 +1,6 @@
+# !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!! 
+# This file is built by mktables.PL from e.g. Unicode.300.
+# Any changes made here will be lost!
+return <<'END';
+0020   
+END
diff --git a/lib/unicode/Is/LbrkSY.pl b/lib/unicode/Is/LbrkSY.pl
new file mode 100644 (file)
index 0000000..d2a33ae
--- /dev/null
@@ -0,0 +1,6 @@
+# !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!! 
+# This file is built by mktables.PL from e.g. Unicode.300.
+# Any changes made here will be lost!
+return <<'END';
+002f   
+END
diff --git a/lib/unicode/Is/LbrkXX.pl b/lib/unicode/Is/LbrkXX.pl
new file mode 100644 (file)
index 0000000..ec287c4
--- /dev/null
@@ -0,0 +1,5 @@
+# !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!! 
+# This file is built by mktables.PL from e.g. Unicode.300.
+# Any changes made here will be lost!
+return <<'END';
+END
diff --git a/lib/unicode/Is/LbrkZW.pl b/lib/unicode/Is/LbrkZW.pl
new file mode 100644 (file)
index 0000000..96d8e99
--- /dev/null
@@ -0,0 +1,6 @@
+# !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!! 
+# This file is built by mktables.PL from e.g. Unicode.300.
+# Any changes made here will be lost!
+return <<'END';
+200b   
+END
index 23186bd..2f13b38 100644 (file)
@@ -11,11 +11,7 @@ return <<'END';
 00ba   
 00c0   00d6
 00d8   00f6
-00f8   01c4
-01c6   01c7
-01c9   01ca
-01cc   01f1
-01f3   021f
+00f8   021f
 0222   0233
 0250   02ad
 0386   
@@ -211,19 +207,16 @@ return <<'END';
 1f5b   
 1f5d   
 1f5f   1f7d
-1f80   1f87
-1f90   1f97
-1fa0   1fa7
-1fb0   1fb4
-1fb6   1fbb
+1f80   1fb4
+1fb6   1fbc
 1fbe   
 1fc2   1fc4
-1fc6   1fcb
+1fc6   1fcc
 1fd0   1fd3
 1fd6   1fdb
 1fe0   1fec
 1ff2   1ff4
-1ff6   1ffb
+1ff6   1ffc
 207f   
 2102   
 2107   
index cef6936..4f705a4 100755 (executable)
@@ -11,9 +11,10 @@ mkdir "To", 0777;
 @todo = (
 # typical
 
-    ['IsWord',  '$cat =~ /^L[ulo]|^Nd/ or $code eq "005F"',    ''],
-    ['IsAlnum', '$cat =~ /^L[ulo]|^Nd/',       ''],
-    ['IsAlpha',  '$cat =~ /^L[ulo]/',  ''],
+    ['IsWord',  '$cat =~ /^L[ulot]|^Nd/ or $code eq "005F"',   ''],
+    ['IsAlnum', '$cat =~ /^L[ulot]|^Nd/',      ''],
+    ['IsAlpha',  '$cat =~ /^L[ulot]/', ''],
+    # XXX broken: recursive definition (/\s/ will look up IsSpace in future)
     ['IsSpace',  '$cat =~ /^Z/ or $code lt "0020" and chr(hex $code) =~ /^\s/',        ''],
     ['IsDigit',  '$cat =~ /^Nd$/',     ''],
     ['IsUpper',  '$cat =~ /^Lu$/',     ''],
@@ -166,6 +167,40 @@ mkdir "To", 0777;
     ['IsSylWA',        '$syl eq "A"',          ''],
     ['IsSylWE',        '$syl eq "E"',          ''],
     ['IsSylWC',        '$syl eq "C"',          ''],
+    
+# Line break properties - Normative
+
+    ['IsLbrkBK','$brk eq "BK"',                ''],    # Mandatory Break
+    ['IsLbrkCR','$brk eq "CR"',                ''],    # Carriage Return
+    ['IsLbrkLF','$brk eq "LF"',                ''],    # Line Feed
+    ['IsLbrkCM','$brk eq "CM"',                ''],    # Attached Characters and Combining Marks
+    ['IsLbrkSG','$brk eq "SG"',                ''],    # Surrogates
+    ['IsLbrkGL','$brk eq "GL"',                ''],    # Non-breaking (Glue)
+    ['IsLbrkCB','$brk eq "CB"',                ''],    # Contingent Break Opportunity
+    ['IsLbrkSP','$brk eq "SP"',                ''],    # Space
+    ['IsLbrkZW','$brk eq "ZW"',                ''],    # Zero Width Space
+
+# Line break properties - Informative
+    ['IsLbrkXX','$brk eq "XX"',                ''],    # Unknown
+    ['IsLbrkOP','$brk eq "OP"',                ''],    # Opening Punctuation
+    ['IsLbrkCL','$brk eq "CL"',                ''],    # Closing Punctuation
+    ['IsLbrkQU','$brk eq "QU"',                ''],    # Ambiguous Quotation
+    ['IsLbrkNS','$brk eq "NS"',                ''],    # Non Starter
+    ['IsLbrkEX','$brk eq "EX"',                ''],    # Exclamation/Interrogation
+    ['IsLbrkSY','$brk eq "SY"',                ''],    # Symbols Allowing Breaks
+    ['IsLbrkIS','$brk eq "IS"',                ''],    # Infix Separator (Numeric)
+    ['IsLbrkPR','$brk eq "PR"',                ''],    # Prefix (Numeric)
+    ['IsLbrkPO','$brk eq "PO"',                ''],    # Postfix (Numeric)
+    ['IsLbrkNU','$brk eq "NU"',                ''],    # Numeric
+    ['IsLbrkAL','$brk eq "AL"',                ''],    # Ordinary Alphabetic and Symbol Characters
+    ['IsLbrkID','$brk eq "ID"',                ''],    # Ideographic
+    ['IsLbrkIN','$brk eq "IN"',                ''],    # Inseparable
+    ['IsLbrkHY','$brk eq "HY"',                ''],    # Hyphen
+    ['IsLbrkBB','$brk eq "BB"',                ''],    # Break Opportunity Before
+    ['IsLbrkBA','$brk eq "BA"',                ''],    # Break Opportunity After
+    ['IsLbrkSA','$brk eq "SA"',                ''],    # Complex Context (South East Asian)
+    ['IsLbrkAI','$brk eq "AI"',                ''],    # Ambiguous (Alphabetic or Ideographic)
+    ['IsLbrkB2','$brk eq "B2"',                ''],    # Break Opportunity Before and After
 );
 
 # This is not written for speed...
@@ -257,6 +292,11 @@ sub proplist {
 
        $split = '($code, $short, $syl) = split(/; */); $code =~ s/^U\+//;';
     }
+    elsif ($table =~ /^IsLbrk/) {
+       open(UD, "LineBrk.txt") or warn "Can't open $table: $!";
+
+       $split = '($code, $brk, $name) = split(/;/);';
+    }
     else {
        open(UD, $UnicodeData) or warn "Can't open $UnicodeData: $!";
 
index 6ae5373..0ace551 100644 (file)
@@ -9,6 +9,8 @@ require 5.002;
 # We'll let those bugs get found on the development track.
 require Carp if $] < 5.00450;
 
+use warnings::register;
+
 sub import {
     my $callpack = caller;
     my ($pack, @imports, $sym, $ch) = @_;
@@ -22,9 +24,8 @@ sub import {
            } elsif ($sym =~ /^\w+[[{].*[]}]$/) {
                require Carp;
                Carp::croak("Can't declare individual elements of hash or array");
-           } elsif ($^W and length($sym) == 1 and $sym !~ tr/a-zA-Z//) {
-               require Carp;
-               Carp::carp("No need to declare built-in vars");
+           } elsif (warnings::enabled() and length($sym) == 1 and $sym !~ tr/a-zA-Z//) {
+               warnings::warn("No need to declare built-in vars");
            }
        }
         *{"${callpack}::$sym"} =
index 11fd5b0..11558d5 100644 (file)
@@ -17,7 +17,12 @@ warnings - Perl pragma to control optional warnings
     use warnings "all";
     no warnings "all";
 
-    if (warnings::enabled("void") {
+    use warnings::register;
+    if (warnings::enabled()) {
+        warnings::warn("some warning");
+    }
+
+    if (warnings::enabled("void")) {
         warnings::warn("void", "some warning");
     }
 
@@ -26,23 +31,33 @@ warnings - Perl pragma to control optional warnings
 If no import list is supplied, all possible warnings are either enabled
 or disabled.
 
-Two functions are provided to assist module authors.
+A number of functions are provided to assist module authors. 
 
 =over 4
 
-=item warnings::enabled($category)
+=item use warnings::register
+
+Creates a new warnings category which has the same name as the module
+where the call to the pragma is used.
 
-Returns TRUE if the warnings category in C<$category> is enabled in the
-calling module. Otherwise returns FALSE.
+=item warnings::enabled([$category])
 
+Returns TRUE if the warnings category C<$category> is enabled in the
+calling module.  Otherwise returns FALSE.
 
-=item warnings::warn($category, $message)
+If the parameter, C<$category>, isn't supplied, the current package name
+will be used.
+
+=item warnings::warn([$category,] $message)
 
 If the calling module has I<not> set C<$category> to "FATAL", print
 C<$message> to STDERR.
 If the calling module has set C<$category> to "FATAL", print C<$message>
 STDERR then die.
 
+If the parameter, C<$category>, isn't supplied, the current package name
+will be used.
+
 =back
 
 See L<perlmod/Pragmatic Modules> and L<perllexwarn>.
@@ -51,107 +66,161 @@ See L<perlmod/Pragmatic Modules> and L<perllexwarn>.
 
 use Carp ;
 
+%Offsets = (
+    'all'              => 0,
+    'chmod'            => 2,
+    'closure'          => 4,
+    'exiting'          => 6,
+    'glob'             => 8,
+    'io'               => 10,
+    'closed'           => 12,
+    'exec'             => 14,
+    'newline'          => 16,
+    'pipe'             => 18,
+    'unopened'         => 20,
+    'misc'             => 22,
+    'numeric'          => 24,
+    'once'             => 26,
+    'overflow'         => 28,
+    'pack'             => 30,
+    'portable'         => 32,
+    'recursion'                => 34,
+    'redefine'         => 36,
+    'regexp'           => 38,
+    'severe'           => 40,
+    'debugging'                => 42,
+    'inplace'          => 44,
+    'internal'         => 46,
+    'malloc'           => 48,
+    'signal'           => 50,
+    'substr'           => 52,
+    'syntax'           => 54,
+    'ambiguous'                => 56,
+    'bareword'         => 58,
+    'deprecated'       => 60,
+    'digit'            => 62,
+    'parenthesis'      => 64,
+    'precedence'       => 66,
+    'printf'           => 68,
+    'prototype'                => 70,
+    'qw'               => 72,
+    'reserved'         => 74,
+    'semicolon'                => 76,
+    'taint'            => 78,
+    'umask'            => 80,
+    'uninitialized'    => 82,
+    'unpack'           => 84,
+    'untie'            => 86,
+    'utf8'             => 88,
+    'void'             => 90,
+    'y2k'              => 92,
+  );
+
 %Bits = (
-    'all'              => "\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55", # [0..47]
-    'ambiguous'                => "\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00", # [27]
-    'bareword'         => "\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00", # [28]
-    'chmod'            => "\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [0]
-    'closed'           => "\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [5]
-    'closure'          => "\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [1]
-    'debugging'                => "\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00", # [20]
-    'deprecated'       => "\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00", # [29]
-    'digit'            => "\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00", # [30]
-    'exec'             => "\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [6]
-    'exiting'          => "\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [2]
-    'glob'             => "\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [3]
-    'inplace'          => "\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00", # [21]
-    'internal'         => "\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00", # [22]
-    'io'               => "\x00\x55\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [4..9]
-    'malloc'           => "\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00", # [23]
-    'misc'             => "\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [10]
-    'newline'          => "\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [7]
-    'numeric'          => "\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [11]
-    'once'             => "\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00", # [12]
-    'overflow'         => "\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00", # [13]
-    'pack'             => "\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00", # [14]
-    'parenthesis'      => "\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00", # [31]
-    'pipe'             => "\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [8]
-    'portable'         => "\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00", # [15]
-    'precedence'       => "\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00", # [32]
-    'printf'           => "\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00", # [33]
-    'prototype'                => "\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00", # [34]
-    'qw'               => "\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00", # [35]
-    'recursion'                => "\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00", # [16]
-    'redefine'         => "\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00", # [17]
-    'regexp'           => "\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00", # [18]
-    'reserved'         => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00", # [36]
-    'semicolon'                => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00", # [37]
-    'severe'           => "\x00\x00\x00\x00\x40\x55\x00\x00\x00\x00\x00\x00", # [19..23]
-    'signal'           => "\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00", # [24]
-    'substr'           => "\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00", # [25]
-    'syntax'           => "\x00\x00\x00\x00\x00\x00\x50\x55\x55\x05\x00\x00", # [26..37]
-    'taint'            => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00", # [38]
-    'umask'            => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00", # [39]
-    'uninitialized'    => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00", # [40]
-    'unopened'         => "\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [9]
-    'unpack'           => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00", # [41]
-    'untie'            => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00", # [42]
-    'utf8'             => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00", # [43]
-    'void'             => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01", # [44]
-    'y2k'              => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04", # [45]
+    'all'              => "\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x55\x15", # [0..46]
+    'ambiguous'                => "\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00", # [28]
+    'bareword'         => "\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00", # [29]
+    'chmod'            => "\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [1]
+    'closed'           => "\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [6]
+    'closure'          => "\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [2]
+    'debugging'                => "\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00", # [21]
+    'deprecated'       => "\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00", # [30]
+    'digit'            => "\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00", # [31]
+    'exec'             => "\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [7]
+    'exiting'          => "\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [3]
+    'glob'             => "\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [4]
+    'inplace'          => "\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00", # [22]
+    'internal'         => "\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00", # [23]
+    'io'               => "\x00\x54\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [5..10]
+    'malloc'           => "\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00", # [24]
+    'misc'             => "\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [11]
+    'newline'          => "\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [8]
+    'numeric'          => "\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00", # [12]
+    'once'             => "\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00", # [13]
+    'overflow'         => "\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00", # [14]
+    'pack'             => "\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00\x00", # [15]
+    'parenthesis'      => "\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00", # [32]
+    'pipe'             => "\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [9]
+    'portable'         => "\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00", # [16]
+    'precedence'       => "\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00", # [33]
+    'printf'           => "\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00", # [34]
+    'prototype'                => "\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00\x00", # [35]
+    'qw'               => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00", # [36]
+    'recursion'                => "\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00", # [17]
+    'redefine'         => "\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00", # [18]
+    'regexp'           => "\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x00", # [19]
+    'reserved'         => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00", # [37]
+    'semicolon'                => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00", # [38]
+    'severe'           => "\x00\x00\x00\x00\x00\x55\x01\x00\x00\x00\x00\x00", # [20..24]
+    'signal'           => "\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00", # [25]
+    'substr'           => "\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00", # [26]
+    'syntax'           => "\x00\x00\x00\x00\x00\x00\x40\x55\x55\x15\x00\x00", # [27..38]
+    'taint'            => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00\x00", # [39]
+    'umask'            => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00", # [40]
+    'uninitialized'    => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00", # [41]
+    'unopened'         => "\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [10]
+    'unpack'           => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00", # [42]
+    'untie'            => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x40\x00", # [43]
+    'utf8'             => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01", # [44]
+    'void'             => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04", # [45]
+    'y2k'              => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10", # [46]
   );
 
 %DeadBits = (
-    'all'              => "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa", # [0..47]
-    'ambiguous'                => "\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00", # [27]
-    'bareword'         => "\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00", # [28]
-    'chmod'            => "\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [0]
-    'closed'           => "\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [5]
-    'closure'          => "\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [1]
-    'debugging'                => "\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00", # [20]
-    'deprecated'       => "\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00", # [29]
-    'digit'            => "\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00", # [30]
-    'exec'             => "\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [6]
-    'exiting'          => "\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [2]
-    'glob'             => "\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [3]
-    'inplace'          => "\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00", # [21]
-    'internal'         => "\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00", # [22]
-    'io'               => "\x00\xaa\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [4..9]
-    'malloc'           => "\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00", # [23]
-    'misc'             => "\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [10]
-    'newline'          => "\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [7]
-    'numeric'          => "\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [11]
-    'once'             => "\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00", # [12]
-    'overflow'         => "\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00", # [13]
-    'pack'             => "\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00", # [14]
-    'parenthesis'      => "\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00", # [31]
-    'pipe'             => "\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [8]
-    'portable'         => "\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00", # [15]
-    'precedence'       => "\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00", # [32]
-    'printf'           => "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00", # [33]
-    'prototype'                => "\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00", # [34]
-    'qw'               => "\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00", # [35]
-    'recursion'                => "\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00", # [16]
-    'redefine'         => "\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00", # [17]
-    'regexp'           => "\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00", # [18]
-    'reserved'         => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00", # [36]
-    'semicolon'                => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00", # [37]
-    'severe'           => "\x00\x00\x00\x00\x80\xaa\x00\x00\x00\x00\x00\x00", # [19..23]
-    'signal'           => "\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00", # [24]
-    'substr'           => "\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00", # [25]
-    'syntax'           => "\x00\x00\x00\x00\x00\x00\xa0\xaa\xaa\x0a\x00\x00", # [26..37]
-    'taint'            => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00", # [38]
-    'umask'            => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00", # [39]
-    'uninitialized'    => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00", # [40]
-    'unopened'         => "\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [9]
-    'unpack'           => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00", # [41]
-    'untie'            => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00", # [42]
-    'utf8'             => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00", # [43]
-    'void'             => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02", # [44]
-    'y2k'              => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08", # [45]
+    'all'              => "\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\xaa\x2a", # [0..46]
+    'ambiguous'                => "\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00", # [28]
+    'bareword'         => "\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00", # [29]
+    'chmod'            => "\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [1]
+    'closed'           => "\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [6]
+    'closure'          => "\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [2]
+    'debugging'                => "\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00", # [21]
+    'deprecated'       => "\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00", # [30]
+    'digit'            => "\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00", # [31]
+    'exec'             => "\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [7]
+    'exiting'          => "\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [3]
+    'glob'             => "\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [4]
+    'inplace'          => "\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00", # [22]
+    'internal'         => "\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00", # [23]
+    'io'               => "\x00\xa8\x2a\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [5..10]
+    'malloc'           => "\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00", # [24]
+    'misc'             => "\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [11]
+    'newline'          => "\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [8]
+    'numeric'          => "\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00", # [12]
+    'once'             => "\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00", # [13]
+    'overflow'         => "\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00", # [14]
+    'pack'             => "\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x00", # [15]
+    'parenthesis'      => "\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00", # [32]
+    'pipe'             => "\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [9]
+    'portable'         => "\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00", # [16]
+    'precedence'       => "\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00", # [33]
+    'printf'           => "\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00", # [34]
+    'prototype'                => "\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00", # [35]
+    'qw'               => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00", # [36]
+    'recursion'                => "\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00", # [17]
+    'redefine'         => "\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00", # [18]
+    'regexp'           => "\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00", # [19]
+    'reserved'         => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00", # [37]
+    'semicolon'                => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00", # [38]
+    'severe'           => "\x00\x00\x00\x00\x00\xaa\x02\x00\x00\x00\x00\x00", # [20..24]
+    'signal'           => "\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00", # [25]
+    'substr'           => "\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00\x00\x00", # [26]
+    'syntax'           => "\x00\x00\x00\x00\x00\x00\x80\xaa\xaa\x2a\x00\x00", # [27..38]
+    'taint'            => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00", # [39]
+    'umask'            => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00", # [40]
+    'uninitialized'    => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00", # [41]
+    'unopened'         => "\x00\x00\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00", # [10]
+    'unpack'           => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00", # [42]
+    'untie'            => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00", # [43]
+    'utf8'             => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02", # [44]
+    'void'             => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08", # [45]
+    'y2k'              => "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x20", # [46]
   );
 
-$NONE = "\0\0\0\0\0\0\0\0\0\0\0\0";
+$NONE     = "\0\0\0\0\0\0\0\0\0\0\0\0";
+$LAST_BIT = 94 ;
+$BYTES    = 12 ;
+
+$All = "" ; vec($All, $Offsets{'all'}, 2) = 3 ;
 
 sub bits {
     my $mask ;
@@ -161,12 +230,12 @@ sub bits {
        if  ($word eq 'FATAL') {
            $fatal = 1;
        }
-       else {
-           if ($catmask = $Bits{$word}) {
-               $mask |= $catmask ;
-               $mask |= $DeadBits{$word} if $fatal ;
-           }
+       elsif ($catmask = $Bits{$word}) {
+           $mask |= $catmask ;
+           $mask |= $DeadBits{$word} if $fatal ;
        }
+       else
+          { croak("unknown warnings category '$word'")}  
     }
 
     return $mask ;
@@ -179,38 +248,70 @@ sub import {
 
 sub unimport {
     shift;
-    ${^WARNING_BITS} &= ~ bits(@_ ? @_ : 'all') ;
+    my $mask = ${^WARNING_BITS} ;
+    if (vec($mask, $Offsets{'all'}, 1)) {
+        $mask = $Bits{'all'} ;
+        $mask |= $DeadBits{'all'} if vec($mask, $Offsets{'all'}+1, 1);
+    }
+    ${^WARNING_BITS} = $mask & ~ (bits(@_ ? @_ : 'all') | $All) ;
 }
 
 sub enabled
 {
-    # If no parameters, check for any lexical warnings enabled
-    # in the users scope.
+    croak("Usage: warnings::enabled([category])")
+       unless @_ == 1 || @_ == 0 ;
+    local $Carp::CarpLevel = 1 ;
+    my $category ;
+    my $offset ;
     my $callers_bitmask = (caller(1))[9] ; 
-    return ($callers_bitmask ne $NONE) if @_ == 0 ;
-
-    # otherwise check for the category supplied.
-    my $category = shift ;
-    return 0
-       unless $Bits{$category} ;
     return 0 unless defined $callers_bitmask ;
-    return 1
-       if ($callers_bitmask & $Bits{$category}) ne $NONE ;
-   
-    return 0 ; 
+
+
+    if (@_) {
+        # check the category supplied.
+        $category = shift ;
+        $offset = $Offsets{$category};
+        croak("unknown warnings category '$category'")
+           unless defined $offset;
+    }
+    else {
+        $category = (caller(0))[0] ; 
+        $offset = $Offsets{$category};
+        croak("package '$category' not registered for warnings")
+           unless defined $offset ;
+    }
+
+    return vec($callers_bitmask, $offset, 1) ||
+           vec($callers_bitmask, $Offsets{'all'}, 1) ;
 }
 
+
 sub warn
 {
-    croak "Usage: warnings::warn('category', 'message')"
-       unless @_ == 2 ;
-    my $category = shift ;
-    my $message = shift ;
+    croak("Usage: warnings::warn([category,] 'message')")
+       unless @_ == 2 || @_ == 1 ;
     local $Carp::CarpLevel = 1 ;
+    my $category ;
+    my $offset ;
     my $callers_bitmask = (caller(1))[9] ; 
+
+    if (@_ == 2) {
+        $category = shift ;
+        $offset = $Offsets{$category};
+        croak("unknown warnings category '$category'")
+           unless defined $offset ;
+    }
+    else {
+        $category = (caller(0))[0] ; 
+        $offset = $Offsets{$category};
+        croak("package '$category' not registered for warnings")
+           unless defined $offset ;
+    }
+
+    my $message = shift ;
     croak($message) 
-       if defined $callers_bitmask &&
-           ($callers_bitmask & $DeadBits{$category}) ne $NONE ;
+       if vec($callers_bitmask, $offset+1, 1) ||
+          vec($callers_bitmask, $Offsets{'all'}+1, 1) ;
     carp($message) ;
 }
 
diff --git a/lib/warnings/register.pm b/lib/warnings/register.pm
new file mode 100644 (file)
index 0000000..da6be97
--- /dev/null
@@ -0,0 +1,30 @@
+package warnings::register ;
+
+require warnings ;
+
+sub mkMask
+{
+    my ($bit) = @_ ;
+    my $mask = "" ;
+
+    vec($mask, $bit, 1) = 1 ;
+    return $mask ;
+}
+
+sub import
+{
+    shift ;
+    my $package = (caller(0))[0] ;
+    if (! defined $warnings::Bits{$package}) {
+        $warnings::Bits{$package}     = mkMask($warnings::LAST_BIT) ;
+        vec($warnings::Bits{'all'}, $warnings::LAST_BIT, 1) = 1 ;
+        $warnings::Offsets{$package}  = $warnings::LAST_BIT ++ ;
+       foreach my $k (keys %warnings::Bits) {
+           vec($warnings::Bits{$k}, $warnings::LAST_BIT, 1) = 0 ;
+       }
+        $warnings::DeadBits{$package} = mkMask($warnings::LAST_BIT);
+        vec($warnings::DeadBits{'all'}, $warnings::LAST_BIT++, 1) = 1 ;
+    }
+}
+
+1 ;
index 2e74878..6fae88b 100644 (file)
@@ -11,7 +11,11 @@ my $PLATFORM;
 my $CCTYPE;
 
 my %bincompat5005 =
-      (Perl_call_argv          =>      "perl_call_argv",
+      (
+       Perl_call_atexit                =>      "perl_atexit",
+       Perl_eval_sv            =>      "perl_eval_sv",
+       Perl_eval_pv            =>      "perl_eval_pv",
+       Perl_call_argv          =>      "perl_call_argv",
        Perl_call_method                =>      "perl_call_method",
        Perl_call_pv            =>      "perl_call_pv",
        Perl_call_sv            =>      "perl_call_sv",
@@ -34,7 +38,8 @@ my %bincompat5005 =
        Perl_malloc             =>      "malloc",
        Perl_mfree              =>      "free",
        Perl_realloc            =>      "realloc",
-       Perl_calloc             =>      "calloc",);
+       Perl_calloc             =>      "calloc",
+      );
 
 my $bincompat5005 = join("|", keys %bincompat5005);
 
@@ -255,6 +260,7 @@ elsif ($PLATFORM eq 'aix') {
                     Perl_same_dirent
                     Perl_unlnk
                     Perl_sys_intern_dup
+                    Perl_sys_intern_init
                     PL_cryptseen
                     PL_opsave
                     PL_statusvalue_vms
@@ -383,9 +389,14 @@ else {
                    )];
 }
 
-unless ($define{'USE_5005THREADS'}) {
+unless ($define{'USE_5005THREADS'} || $define{'USE_ITHREADS'}) {
     skip_symbols [qw(
                    PL_thr_key
+                   )];
+}
+
+unless ($define{'USE_5005THREADS'}) {
+    skip_symbols [qw(
                    PL_sv_mutex
                    PL_strtab_mutex
                    PL_svref_mutex
index 7129e08..9a6f4c1 100755 (executable)
@@ -130,22 +130,37 @@ for file in `$cat .clist`; do
        -e 's|\\$||' \
        -e p \
        -e '}' ) >UU/$file.c
-    if [ "$osname" = os390 -a "$file" = perly.c ]; then
-        $echo '#endif' >>UU/$file.c
+    if [ "$osname" = os390 ]; then
+        if [ "$file" = perly.c ]; then
+            $echo '#endif' >>UU/$file.c
+        fi
+        $cppstdin $finc -I. $cppflags $cppminus <UU/$file.c |
+        $sed \
+           -e '/^#.*<stdin>/d' \
+           -e '/^#.*"-"/d' \
+           -e 's#\.[0-9][0-9]*\.c#'"$file.c#" \
+           -e 's/^[     ]*#[    ]*line/#/' \
+           -e '/^# *[0-9][0-9]* *[".\/]/!d' \
+           -e 's/^.*"\(.*\)".*$/'$filebase'\$(OBJ_EXT): \1/' \
+           -e 's/^# *[0-9][0-9]* \(.*\)$/'$filebase'\$(OBJ_EXT): \1/' \
+           -e 's|: \./|: |' \
+           -e 's|\.c\.c|.c|' $uwinfix | \
+        $uniq | $sort | $uniq >> .deptmp
+    else
+        $cppstdin $finc -I. $cppflags $cppminus <UU/$file.c |
+        $sed \
+           -e '1d' \
+           -e '/^#.*<stdin>/d' \
+           -e '/^#.*"-"/d' \
+           -e 's#\.[0-9][0-9]*\.c#'"$file.c#" \
+           -e 's/^[     ]*#[    ]*line/#/' \
+           -e '/^# *[0-9][0-9]* *[".\/]/!d' \
+           -e 's/^.*"\(.*\)".*$/'$filebase'\$(OBJ_EXT): \1/' \
+           -e 's/^# *[0-9][0-9]* \(.*\)$/'$filebase'\$(OBJ_EXT): \1/' \
+           -e 's|: \./|: |' \
+           -e 's|\.c\.c|.c|' $uwinfix | \
+        $uniq | $sort | $uniq >> .deptmp
     fi
-    $cppstdin $finc -I. $cppflags $cppminus <UU/$file.c |
-    $sed \
-       -e '1d' \
-       -e '/^#.*<stdin>/d' \
-       -e '/^#.*"-"/d' \
-       -e 's#\.[0-9][0-9]*\.c#'"$file.c#" \
-       -e 's/^[         ]*#[    ]*line/#/' \
-       -e '/^# *[0-9][0-9]* *[".\/]/!d' \
-       -e 's/^.*"\(.*\)".*$/'$filebase'\$(OBJ_EXT): \1/' \
-       -e 's/^# *[0-9][0-9]* \(.*\)$/'$filebase'\$(OBJ_EXT): \1/' \
-       -e 's|: \./|: |' \
-       -e 's|\.c\.c|.c|' $uwinfix | \
-    $uniq | $sort | $uniq >> .deptmp
 done
 
 $sed <$mf >$mf.new -e '1,/^# AUTOMATICALLY/!d'
diff --git a/mg.c b/mg.c
index 96d268b..f0b5734 100644 (file)
--- a/mg.c
+++ b/mg.c
@@ -386,12 +386,12 @@ Perl_magic_len(pTHX_ SV *sv, MAGIC *mg)
     register I32 paren;
     register I32 i;
     register REGEXP *rx;
+    I32 s1, t1;
 
     switch (*mg->mg_ptr) {
     case '1': case '2': case '3': case '4':
     case '5': case '6': case '7': case '8': case '9': case '&':
        if (PL_curpm && (rx = PL_curpm->op_pmregexp)) {
-           I32 s1, t1;
 
            paren = atoi(mg->mg_ptr);
          getparen:
@@ -400,6 +400,16 @@ Perl_magic_len(pTHX_ SV *sv, MAGIC *mg)
                (t1 = rx->endp[paren]) != -1)
            {
                i = t1 - s1;
+             getlen:
+               if (i > 0 && (PL_curpm->op_pmdynflags & PMdf_UTF8) && !IN_BYTE) {
+                   char *s = rx->subbeg + s1;
+                   char *send = rx->subbeg + t1;
+                   i = 0;
+                   while (s < send) {
+                       s += UTF8SKIP(s);
+                       i++;
+                   }
+               }
                if (i >= 0)
                    return i;
            }
@@ -416,8 +426,11 @@ Perl_magic_len(pTHX_ SV *sv, MAGIC *mg)
        if (PL_curpm && (rx = PL_curpm->op_pmregexp)) {
            if (rx->startp[0] != -1) {
                i = rx->startp[0];
-               if (i >= 0)
-                   return i;
+               if (i > 0) {
+                   s1 = 0;
+                   t1 = i;
+                   goto getlen;
+               }
            }
        }
        return 0;
@@ -425,8 +438,11 @@ Perl_magic_len(pTHX_ SV *sv, MAGIC *mg)
        if (PL_curpm && (rx = PL_curpm->op_pmregexp)) {
            if (rx->endp[0] != -1) {
                i = rx->sublen - rx->endp[0];
-               if (i >= 0)
-                   return i;
+               if (i > 0) {
+                   s1 = rx->endp[0];
+                   t1 = rx->sublen;
+                   goto getlen;
+               }
            }
        }
        return 0;
@@ -565,17 +581,18 @@ Perl_magic_get(pTHX_ SV *sv, MAGIC *mg)
        if (*(mg->mg_ptr+1) == '\0')
            sv_setiv(sv, (IV)((PL_dowarn & G_WARN_ON) ? TRUE : FALSE));
        else if (strEQ(mg->mg_ptr, "\027ARNING_BITS")) {
-           if (PL_compiling.cop_warnings == WARN_NONE ||
-               PL_compiling.cop_warnings == WARN_STD)
+           if (PL_compiling.cop_warnings == pWARN_NONE ||
+               PL_compiling.cop_warnings == pWARN_STD)
            {
                sv_setpvn(sv, WARN_NONEstring, WARNsize) ;
             }
-            else if (PL_compiling.cop_warnings == WARN_ALL) {
+            else if (PL_compiling.cop_warnings == pWARN_ALL) {
                sv_setpvn(sv, WARN_ALLstring, WARNsize) ;
            }    
             else {
                sv_setsv(sv, PL_compiling.cop_warnings);
            }    
+           SvPOK_only(sv);
        }
        else if (strEQ(mg->mg_ptr, "\027IDE_SYSTEM_CALLS"))
            sv_setiv(sv, (IV)PL_widesyscalls);
@@ -1715,23 +1732,30 @@ Perl_magic_set(pTHX_ SV *sv, MAGIC *mg)
            if ( ! (PL_dowarn & G_WARN_ALL_MASK)) {
                if (!SvPOK(sv) && PL_localizing) {
                    sv_setpvn(sv, WARN_NONEstring, WARNsize);
-                   PL_compiling.cop_warnings = WARN_NONE;
+                   PL_compiling.cop_warnings = pWARN_NONE;
                    break;
                }
-                if (memEQ(SvPVX(sv), WARN_ALLstring, WARNsize)) {
-                   PL_compiling.cop_warnings = WARN_ALL;
+                if (isWARN_on(sv, WARN_ALL) && !isWARNf_on(sv, WARN_ALL)) {
+                   PL_compiling.cop_warnings = pWARN_ALL;
                    PL_dowarn |= G_WARN_ONCE ;
                }       
-               else if (memEQ(SvPVX(sv), WARN_NONEstring, WARNsize))
-                   PL_compiling.cop_warnings = WARN_NONE;
-                else {
-                   if (specialWARN(PL_compiling.cop_warnings))
-                       PL_compiling.cop_warnings = newSVsv(sv) ;
-                   else
-                       sv_setsv(PL_compiling.cop_warnings, sv);
-                   if (isWARN_on(PL_compiling.cop_warnings, WARN_ONCE))
-                       PL_dowarn |= G_WARN_ONCE ;
-               }
+               else {
+                   STRLEN len, i;
+                   int accumulate = 0 ;
+                   char * ptr = (char*)SvPV(sv, len) ;
+                   for (i = 0 ; i < len ; ++i) 
+                       accumulate += ptr[i] ;
+                   if (!accumulate)
+                       PL_compiling.cop_warnings = pWARN_NONE;
+                    else {
+                       if (specialWARN(PL_compiling.cop_warnings))
+                           PL_compiling.cop_warnings = newSVsv(sv) ;
+                       else
+                           sv_setsv(PL_compiling.cop_warnings, sv);
+                       if (isWARN_on(PL_compiling.cop_warnings, WARN_ONCE))
+                           PL_dowarn |= G_WARN_ONCE ;
+                   }
+               }
            }
        }
        else if (strEQ(mg->mg_ptr, "\027IDE_SYSTEM_CALLS"))
@@ -2076,7 +2100,11 @@ static SV* sig_sv;
 Signal_t
 Perl_sighandler(int sig)
 {
+#if defined(WIN32) && defined(PERL_IMPLICIT_CONTEXT)
+    dTHXoa(PL_curinterp);      /* fake TLS, because signals don't do TLS */
+#else
     dTHX;
+#endif
     dSP;
     GV *gv = Nullgv;
     HV *st;
@@ -2086,6 +2114,10 @@ Perl_sighandler(int sig)
     U32 flags = 0;
     I32 o_save_i = PL_savestack_ix;
     XPV *tXpv = PL_Xpv;
+
+#if defined(WIN32) && defined(PERL_IMPLICIT_CONTEXT)
+    PERL_SET_THX(aTHXo);       /* fake TLS, see above */
+#endif
     
     if (PL_savestack_ix + 15 <= PL_savestack_max)
        flags |= 1;
index 569065c..97e9ba4 100644 (file)
--- a/objXSUB.h
+++ b/objXSUB.h
 #undef  fprintf_nocontext
 #define fprintf_nocontext      Perl_fprintf_nocontext
 #endif
+#undef  Perl_cv_const_sv
+#define Perl_cv_const_sv       pPerl->Perl_cv_const_sv
+#undef  cv_const_sv
+#define cv_const_sv            Perl_cv_const_sv
+#undef  Perl_cv_undef
+#define Perl_cv_undef          pPerl->Perl_cv_undef
+#undef  cv_undef
+#define cv_undef               Perl_cv_undef
 #undef  Perl_cx_dump
 #define Perl_cx_dump           pPerl->Perl_cx_dump
 #undef  cx_dump
 #define Perl_do_binmode                pPerl->Perl_do_binmode
 #undef  do_binmode
 #define do_binmode             Perl_do_binmode
+#undef  Perl_do_close
+#define Perl_do_close          pPerl->Perl_do_close
+#undef  do_close
+#define do_close               Perl_do_close
 #if !defined(WIN32)
 #endif
 #if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
 #endif
+#undef  Perl_do_join
+#define Perl_do_join           pPerl->Perl_do_join
+#undef  do_join
+#define do_join                        Perl_do_join
 #undef  Perl_do_open
 #define Perl_do_open           pPerl->Perl_do_open
 #undef  do_open
 #define Perl_to_uni_lower_lc   pPerl->Perl_to_uni_lower_lc
 #undef  to_uni_lower_lc
 #define to_uni_lower_lc                Perl_to_uni_lower_lc
+#undef  Perl_is_utf8_char
+#define Perl_is_utf8_char      pPerl->Perl_is_utf8_char
+#undef  is_utf8_char
+#define is_utf8_char           Perl_is_utf8_char
 #undef  Perl_is_utf8_alnum
 #define Perl_is_utf8_alnum     pPerl->Perl_is_utf8_alnum
 #undef  is_utf8_alnum
 #define Perl_newSViv           pPerl->Perl_newSViv
 #undef  newSViv
 #define newSViv                        Perl_newSViv
+#undef  Perl_newSVuv
+#define Perl_newSVuv           pPerl->Perl_newSVuv
+#undef  newSVuv
+#define newSVuv                        Perl_newSVuv
 #undef  Perl_newSVnv
 #define Perl_newSVnv           pPerl->Perl_newSVnv
 #undef  newSVnv
 #define Perl_rninstr           pPerl->Perl_rninstr
 #undef  rninstr
 #define rninstr                        Perl_rninstr
+#undef  Perl_rsignal
+#define Perl_rsignal           pPerl->Perl_rsignal
+#undef  rsignal
+#define rsignal                        Perl_rsignal
 #if !defined(HAS_RENAME)
 #endif
 #undef  Perl_savepv
 #define Perl_vwarner           pPerl->Perl_vwarner
 #undef  vwarner
 #define vwarner                        Perl_vwarner
+#undef  Perl_whichsig
+#define Perl_whichsig          pPerl->Perl_whichsig
+#undef  whichsig
+#define whichsig               Perl_whichsig
 #if defined(USE_PURE_BISON)
 #else
 #endif
 #undef  ptr_table_split
 #define ptr_table_split                Perl_ptr_table_split
 #endif
+#if defined(HAVE_INTERP_INTERN)
+#undef  Perl_sys_intern_init
+#define Perl_sys_intern_init   pPerl->Perl_sys_intern_init
+#undef  sys_intern_init
+#define sys_intern_init                Perl_sys_intern_init
+#endif
 #if defined(PERL_OBJECT)
 #else
 #endif
diff --git a/op.c b/op.c
index 49fd8b0..3275d0e 100644 (file)
--- a/op.c
+++ b/op.c
@@ -159,7 +159,7 @@ Perl_pad_allocmy(pTHX_ char *name)
            }
        }
        if (PL_in_my == KEY_our) {
-           while (off <= top) {
+           do {
                if ((sv = svp[off])
                    && sv != &PL_sv_undef
                    && ((SvFLAGS(sv) & SVpad_OUR) && GvSTASH(sv) == ourstash)
@@ -168,11 +168,10 @@ Perl_pad_allocmy(pTHX_ char *name)
                    Perl_warner(aTHX_ WARN_MISC,
                        "\"our\" variable %s redeclared", name);
                    Perl_warner(aTHX_ WARN_MISC,
-                       "(Did you mean \"local\" instead of \"our\"?)\n");
+                       "\t(Did you mean \"local\" instead of \"our\"?)\n");
                    break;
                }
-               --off;
-           }
+           } while ( off-- > 0 );
        }
     }
     off = pad_alloc(OP_PADSV, SVs_PADMY);
@@ -322,9 +321,12 @@ S_pad_findlex(pTHX_ char *name, PADOFFSET newoff, U32 seq, CV* startcv,
                        }
                    }
                    else if (!CvUNIQUE(PL_compcv)) {
-                       if (ckWARN(WARN_CLOSURE) && !SvFAKE(sv) && !CvUNIQUE(cv))
+                       if (ckWARN(WARN_CLOSURE) && !SvFAKE(sv) && !CvUNIQUE(cv)
+                           && !(SvFLAGS(sv) & SVpad_OUR))
+                       {
                            Perl_warner(aTHX_ WARN_CLOSURE,
                                "Variable \"%s\" will not stay shared", name);
+                       }
                    }
                }
                av_store(PL_comppad, newoff, SvREFCNT_inc(oldsv));
@@ -2747,7 +2749,8 @@ Perl_pmtrans(pTHX_ OP *o, OP *expr, OP *repl)
            SvREFCNT_dec(transv);
 
        if (!del && havefinal)
-           (void)hv_store((HV*)SvRV((cSVOPo->op_sv)), "FINAL", 5, newSViv((IV)final), 0);
+           (void)hv_store((HV*)SvRV((cSVOPo->op_sv)), "FINAL", 5,
+                          newSVuv((UV)final), 0);
 
        if (grows && to_utf)
            o->op_private |= OPpTRANS_GROWS;
@@ -3222,8 +3225,15 @@ Perl_vload_module(pTHX_ U32 flags, SV *name, SV *ver, va_list *args)
            sv = va_arg(*args, SV*);
        }
     }
-    utilize(!(flags & PERL_LOADMOD_DENY), start_subparse(FALSE, 0),
-           veop, modname, imop);
+    {
+       line_t ocopline = PL_copline;
+       int oexpect = PL_expect;
+
+       utilize(!(flags & PERL_LOADMOD_DENY), start_subparse(FALSE, 0),
+               veop, modname, imop);
+       PL_expect = oexpect;
+       PL_copline = ocopline;
+    }
 }
 
 OP *
@@ -3848,7 +3858,10 @@ Perl_newWHILEOP(pTHX_ I32 flags, I32 debuggable, LOOP *loop, I32 whileline, OP *
        loopflags |= OPpLOOP_CONTINUE;
     }
     if (expr) {
-       cont = append_elem(OP_LINESEQ, cont, newOP(OP_UNSTACK, 0));
+       OP *unstack = newOP(OP_UNSTACK, 0);
+       if (!next)
+           next = unstack;
+       cont = append_elem(OP_LINESEQ, cont, unstack);
        if ((line_t)whileline != NOLINE) {
            PL_copline = whileline;
            cont = append_elem(OP_LINESEQ, cont,
@@ -3871,8 +3884,6 @@ Perl_newWHILEOP(pTHX_ I32 flags, I32 debuggable, LOOP *loop, I32 whileline, OP *
        if (listop)
            ((LISTOP*)listop)->op_last->op_next = condop =
                (o == listop ? redo : LINKLIST(o));
-       if (!next)
-           next = condop;
     }
     else
        o = listop;
@@ -4152,9 +4163,8 @@ S_cv_clone2(pTHX_ CV *proto, CV *outside)
 
     cv = PL_compcv = (CV*)NEWSV(1104,0);
     sv_upgrade((SV *)cv, SvTYPE(proto));
+    CvFLAGS(cv) = CvFLAGS(proto) & ~CVf_CLONE;
     CvCLONED_on(cv);
-    if (CvANON(proto))
-       CvANON_on(cv);
 
 #ifdef USE_THREADS
     New(666, CvMUTEXP(cv), 1, perl_mutex);
@@ -4657,6 +4667,8 @@ Perl_newATTRSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block)
            if (!PL_checkav)
                PL_checkav = newAV();
            DEBUG_x( dump_sub(gv) );
+           if (PL_main_start && ckWARN(WARN_VOID))
+               Perl_warner(aTHX_ WARN_VOID, "Too late to run CHECK block");
            av_unshift(PL_checkav, 1);
            av_store(PL_checkav, 0, SvREFCNT_inc(cv));
            GvCV(gv) = 0;
@@ -4665,6 +4677,8 @@ Perl_newATTRSUB(pTHX_ I32 floor, OP *o, OP *proto, OP *attrs, OP *block)
            if (!PL_initav)
                PL_initav = newAV();
            DEBUG_x( dump_sub(gv) );
+           if (PL_main_start && ckWARN(WARN_VOID))
+               Perl_warner(aTHX_ WARN_VOID, "Too late to run INIT block");
            av_push(PL_initav, SvREFCNT_inc(cv));
            GvCV(gv) = 0;
        }
@@ -4805,6 +4819,8 @@ Perl_newXS(pTHX_ char *name, XSUBADDR_t subaddr, char *filename)
        else if (strEQ(s, "CHECK")) {
            if (!PL_checkav)
                PL_checkav = newAV();
+           if (PL_main_start && ckWARN(WARN_VOID))
+               Perl_warner(aTHX_ WARN_VOID, "Too late to run CHECK block");
            av_unshift(PL_checkav, 1);
            av_store(PL_checkav, 0, SvREFCNT_inc(cv));
            GvCV(gv) = 0;
@@ -4812,6 +4828,8 @@ Perl_newXS(pTHX_ char *name, XSUBADDR_t subaddr, char *filename)
        else if (strEQ(s, "INIT")) {
            if (!PL_initav)
                PL_initav = newAV();
+           if (PL_main_start && ckWARN(WARN_VOID))
+               Perl_warner(aTHX_ WARN_VOID, "Too late to run INIT block");
            av_push(PL_initav, SvREFCNT_inc(cv));
            GvCV(gv) = 0;
        }
@@ -5157,6 +5175,20 @@ Perl_ck_eval(pTHX_ OP *o)
 }
 
 OP *
+Perl_ck_exit(pTHX_ OP *o)
+{
+#ifdef VMS
+    HV *table = GvHV(PL_hintgv);
+    if (table) {
+       SV **svp = hv_fetch(table, "vmsish_exit", 11, FALSE);
+       if (svp && *svp && SvTRUE(*svp))
+           o->op_private |= OPpEXIT_VMSISH;
+    }
+#endif
+    return ck_fun(o);
+}
+
+OP *
 Perl_ck_exec(pTHX_ OP *o)
 {
     OP *kid;
@@ -5499,6 +5531,13 @@ Perl_ck_fun(pTHX_ OP *o)
                                name = GvNAME(gv);
                                len = GvNAMELEN(gv);
                            }
+                           else if (kid->op_type == OP_AELEM
+                                    || kid->op_type == OP_HELEM)
+                           {
+                               name = "__ANONIO__";
+                               len = 10;
+                               mod(kid,type);
+                           }
                            if (name) {
                                SV *namesv;
                                targ = pad_alloc(OP_RV2GV, SVs_PADTMP);
@@ -5683,7 +5722,7 @@ Perl_ck_defined(pTHX_ OP *o)              /* 19990527 MJD */
            Perl_warner(aTHX_ WARN_DEPRECATED,
                        "defined(@array) is deprecated");
            Perl_warner(aTHX_ WARN_DEPRECATED,
-                       "(Maybe you should just omit the defined()?)\n");
+                       "\t(Maybe you should just omit the defined()?)\n");
        break;
        case OP_RV2HV:
            break;                      /* Globals via GV can be undef */ 
@@ -5691,7 +5730,7 @@ Perl_ck_defined(pTHX_ OP *o)              /* 19990527 MJD */
            Perl_warner(aTHX_ WARN_DEPRECATED,
                        "defined(%%hash) is deprecated");
            Perl_warner(aTHX_ WARN_DEPRECATED,
-                       "(Maybe you should just omit the defined()?)\n");
+                       "\t(Maybe you should just omit the defined()?)\n");
            break;
        default:
            /* no warning */
@@ -5966,6 +6005,7 @@ Perl_ck_shift(pTHX_ OP *o)
 OP *
 Perl_ck_sort(pTHX_ OP *o)
 {
+    OP *firstkid;
     o->op_private = 0;
 #ifdef USE_LOCALE
     if (PL_hints & HINT_LOCALE)
@@ -5974,10 +6014,10 @@ Perl_ck_sort(pTHX_ OP *o)
 
     if (o->op_type == OP_SORT && o->op_flags & OPf_STACKED)
        simplify_sort(o);
-    if (o->op_flags & OPf_STACKED) {                /* may have been cleared */
-       OP *kid = cLISTOPo->op_first->op_sibling;       /* get past pushmark */
+    firstkid = cLISTOPo->op_first->op_sibling;         /* get past pushmark */
+    if (o->op_flags & OPf_STACKED) {                   /* may have been cleared */
        OP *k;
-       kid = kUNOP->op_first;                          /* get past null */
+       OP *kid = cUNOPx(firstkid)->op_first;           /* get past null */
 
        if (kid->op_type == OP_SCOPE || kid->op_type == OP_LEAVE) {
            linklist(kid);
@@ -5993,6 +6033,12 @@ Perl_ck_sort(pTHX_ OP *o)
                    for (k = kLISTOP->op_first->op_next; k; k = k->op_next) {
                        if (k->op_next == kid)
                            k->op_next = 0;
+                       /* don't descend into loops */
+                       else if (k->op_type == OP_ENTERLOOP
+                                || k->op_type == OP_ENTERITER)
+                       {
+                           k = cLOOPx(k)->op_lastop;
+                       }
                    }
                }
                else
@@ -6001,17 +6047,26 @@ Perl_ck_sort(pTHX_ OP *o)
            }
            peep(k);
 
-           kid = cLISTOPo->op_first->op_sibling;       /* get past pushmark */
-           if (o->op_type == OP_SORT)
+           kid = firstkid;
+           if (o->op_type == OP_SORT) {
+               /* provide scalar context for comparison function/block */
+               kid = scalar(kid);
                kid->op_next = kid;
+           }
            else
                kid->op_next = k;
            o->op_flags |= OPf_SPECIAL;
        }
        else if (kid->op_type == OP_RV2SV || kid->op_type == OP_PADSV)
-           null(cLISTOPo->op_first->op_sibling);
+           null(firstkid);
+
+       firstkid = firstkid->op_sibling;
     }
 
+    /* provide list context for arguments */
+    if (o->op_type == OP_SORT)
+       list(firstkid);
+
     return o;
 }
 
@@ -6217,7 +6272,9 @@ Perl_ck_subr(pTHX_ OP *o)
                proto++;
                arg++;
                if (o2->op_type != OP_REFGEN && o2->op_type != OP_UNDEF)
-                   bad_type(arg, "block", gv_ename(namegv), o2);
+                   bad_type(arg,
+                       arg == 1 ? "block or sub {}" : "sub {}",
+                       gv_ename(namegv), o2);
                break;
            case '*':
                /* '*' allows any scalar type, including bareword */
@@ -6265,8 +6322,8 @@ Perl_ck_subr(pTHX_ OP *o)
                        bad_type(arg, "symbol", gv_ename(namegv), o2);
                    goto wrapref;
                case '&':
-                   if (o2->op_type != OP_RV2CV)
-                       bad_type(arg, "sub", gv_ename(namegv), o2);
+                   if (o2->op_type != OP_ENTERSUB)
+                       bad_type(arg, "subroutine entry", gv_ename(namegv), o2);
                    goto wrapref;
                case '$':
                    if (o2->op_type != OP_RV2SV
@@ -6383,9 +6440,18 @@ Perl_peep(pTHX_ register OP *o)
             * for reference counts, sv_upgrade() etc. */
            if (cSVOP->op_sv) {
                PADOFFSET ix = pad_alloc(OP_CONST, SVs_PADTMP);
-               SvREFCNT_dec(PL_curpad[ix]);
-               SvPADTMP_on(cSVOPo->op_sv);
-               PL_curpad[ix] = cSVOPo->op_sv;
+               if (SvPADTMP(cSVOPo->op_sv)) {
+                   /* If op_sv is already a PADTMP then it is being used by
+                    * another pad, so make a copy. */
+                   sv_setsv(PL_curpad[ix],cSVOPo->op_sv);
+                   SvREADONLY_on(PL_curpad[ix]);
+                   SvREFCNT_dec(cSVOPo->op_sv);
+               }
+               else {
+                   SvREFCNT_dec(PL_curpad[ix]);
+                   SvPADTMP_on(cSVOPo->op_sv);
+                   PL_curpad[ix] = cSVOPo->op_sv;
+               }
                cSVOPo->op_sv = Nullsv;
                o->op_targ = ix;
            }
@@ -6528,7 +6594,7 @@ Perl_peep(pTHX_ register OP *o)
                    Perl_warner(aTHX_ WARN_EXEC,
                                "Statement unlikely to be reached");
                    Perl_warner(aTHX_ WARN_EXEC,
-                               "(Maybe you meant system() when you said exec()?)\n");
+                               "\t(Maybe you meant system() when you said exec()?)\n");
                    CopLINE_set(PL_curcop, oldline);
                }
            }
diff --git a/op.h b/op.h
index 827b080..081d10c 100644 (file)
--- a/op.h
+++ b/op.h
@@ -203,6 +203,9 @@ Deprecated.  Use C<GIMME_V> instead.
 #define OPpOPEN_OUT_RAW                64      /* binmode(F,":raw") on output fh */
 #define OPpOPEN_OUT_CRLF       128     /* binmode(F,":crlf") on output fh */
 
+/* Private for OP_EXIT */
+#define OPpEXIT_VMSISH         128     /* exit(0) vs. exit(1) vmsish mode*/
+
 struct op {
     BASEOP
 };
index 7ff516b..f0fcba9 100644 (file)
--- a/opcode.h
+++ b/opcode.h
@@ -1284,7 +1284,7 @@ EXT OP * (CPERLscope(*PL_check)[]) (pTHX_ OP *op) = {
        MEMBER_TO_FPTR(Perl_ck_null),   /* redo */
        MEMBER_TO_FPTR(Perl_ck_null),   /* dump */
        MEMBER_TO_FPTR(Perl_ck_null),   /* goto */
-       MEMBER_TO_FPTR(Perl_ck_fun),    /* exit */
+       MEMBER_TO_FPTR(Perl_ck_exit),   /* exit */
        MEMBER_TO_FPTR(Perl_ck_open),   /* open */
        MEMBER_TO_FPTR(Perl_ck_fun),    /* close */
        MEMBER_TO_FPTR(Perl_ck_fun),    /* pipe_op */
index fc661ca..eb64e8d 100755 (executable)
--- a/opcode.pl
+++ b/opcode.pl
@@ -597,7 +597,7 @@ next                next                    ck_null         ds}
 redo           redo                    ck_null         ds}     
 dump           dump                    ck_null         ds}     
 goto           goto                    ck_null         ds}     
-exit           exit                    ck_fun          ds%     S?
+exit           exit                    ck_exit         ds%     S?
 # continued below
 
 #nswitch       numeric switch          ck_null         d       
index 7da61f0..f95db63 100644 (file)
@@ -70,7 +70,6 @@
 #if !defined(PERL_PATCHLEVEL_H_IMPLICIT) && !defined(LOCAL_PATCH_COUNT)
 static char    *local_patches[] = {
        NULL
-       , "v5.6.0-RC1"
        ,NULL
 };
 
diff --git a/perl.c b/perl.c
index 3569e93..acf3bd8 100644 (file)
--- a/perl.c
+++ b/perl.c
@@ -272,10 +272,15 @@ perl_construct(pTHXx)
     PL_localpatches = local_patches;   /* For possible -v */
 #endif
 
+#ifdef HAVE_INTERP_INTERN
+    sys_intern_init();
+#endif
+
     PerlIO_init();                     /* Hook to IO system */
 
     PL_fdpid = newAV();                        /* for remembering popen pids by fd */
     PL_modglobal = newHV();            /* pointers to per-interpreter module globals */
+    PL_errors = newSVpvn("",0);
 
     ENTER;
 }
@@ -683,12 +688,12 @@ perl_destruct(pTHXx)
     SvREFCNT(&PL_sv_yes) = 0;
     sv_clear(&PL_sv_yes);
     SvANY(&PL_sv_yes) = NULL;
-    SvREADONLY_off(&PL_sv_yes);
+    SvFLAGS(&PL_sv_yes) = 0;
 
     SvREFCNT(&PL_sv_no) = 0;
     sv_clear(&PL_sv_no);
     SvANY(&PL_sv_no) = NULL;
-    SvREADONLY_off(&PL_sv_no);
+    SvFLAGS(&PL_sv_no) = 0;
 
     SvREFCNT(&PL_sv_undef) = 0;
     SvREADONLY_off(&PL_sv_undef);
@@ -764,7 +769,13 @@ perl_free(pTHXx)
 #if defined(PERL_OBJECT)
     PerlMem_free(this);
 #else
+#  if defined(PERL_IMPLICIT_SYS) && defined(WIN32)
+    void *host = w32_internal_host;
     PerlMem_free(aTHXx);
+    win32_delete_internal_host(host);
+#  else
+    PerlMem_free(aTHXx);
+#  endif
 #endif
 }
 
@@ -1932,7 +1943,7 @@ S_usage(pTHX_ char *name)         /* XXX move this out into a module ? */
 "-0[octal]       specify record separator (\\0, if no argument)",
 "-a              autosplit mode with -n or -p (splits $_ into @F)",
 "-C              enable native wide character system interfaces",
-"-c              check syntax only (runs BEGIN and END blocks)",
+"-c              check syntax only (runs BEGIN and CHECK blocks)",
 "-d[:debugger]   run program under debugger",
 "-D[number/list] set debugging flags (argument is a bit mask or alphabets)",
 "-e 'command'    one line of program (several -e's allowed, omit programfile)",
@@ -1960,9 +1971,11 @@ NULL
 };
     char **p = usage_msg;
 
-    printf("\nUsage: %s [switches] [--] [programfile] [arguments]", name);
+    PerlIO_printf(PerlIO_stdout(),
+                 "\nUsage: %s [switches] [--] [programfile] [arguments]",
+                 name);
     while (*p)
-       printf("\n  %s", *p++);
+       PerlIO_printf(PerlIO_stdout(), "\n  %s", *p++);
 }
 
 /* This routine handles any switches that can be given during run */
@@ -1977,6 +1990,7 @@ Perl_moreswitches(pTHX_ char *s)
     case '0':
     {
        dTHR;
+       numlen = 0;                     /* disallow underscores */
        rschar = (U32)scan_oct(s, 4, &numlen);
        SvREFCNT_dec(PL_nrs);
        if (rschar & ~((U8)~0))
@@ -2092,6 +2106,7 @@ Perl_moreswitches(pTHX_ char *s)
        if (isDIGIT(*s)) {
            PL_ors = savepv("\n");
            PL_orslen = 1;
+           numlen = 0;                 /* disallow underscores */
            *PL_ors = (char)scan_oct(s, 3 + (*s == '0'), &numlen);
            s += numlen;
        }
@@ -2129,6 +2144,9 @@ Perl_moreswitches(pTHX_ char *s)
                    sv_catpv( sv, " ()");
                }
            } else {
+                if (s == start)
+                    Perl_croak(aTHX_ "Module name required with -%c option",
+                              s[-1]);
                sv_catpvn(sv, start, s-start);
                sv_catpv(sv, " split(/,/,q{");
                sv_catpv(sv, ++s);
@@ -2169,57 +2187,75 @@ Perl_moreswitches(pTHX_ char *s)
        s++;
        return s;
     case 'v':
-       printf(Perl_form(aTHX_ "\nThis is perl, v%vd built for %s",
-                        PL_patchlevel, ARCHNAME));
+       PerlIO_printf(PerlIO_stdout(),
+                     Perl_form(aTHX_ "\nThis is perl, v%vd built for %s",
+                               PL_patchlevel, ARCHNAME));
 #if defined(LOCAL_PATCH_COUNT)
        if (LOCAL_PATCH_COUNT > 0)
-           printf("\n(with %d registered patch%s, see perl -V for more detail)",
-               (int)LOCAL_PATCH_COUNT, (LOCAL_PATCH_COUNT!=1) ? "es" : "");
+           PerlIO_printf(PerlIO_stdout(),
+                         "\n(with %d registered patch%s, "
+                         "see perl -V for more detail)",
+                         (int)LOCAL_PATCH_COUNT,
+                         (LOCAL_PATCH_COUNT!=1) ? "es" : "");
 #endif
 
-       printf("\n\nCopyright 1987-2000, Larry Wall\n");
+       PerlIO_printf(PerlIO_stdout(),
+                     "\n\nCopyright 1987-2000, Larry Wall\n");
 #ifdef MSDOS
-       printf("\nMS-DOS port Copyright (c) 1989, 1990, Diomidis Spinellis\n");
+       PerlIO_printf(PerlIO_stdout(),
+                     "\nMS-DOS port Copyright (c) 1989, 1990, Diomidis Spinellis\n");
 #endif
 #ifdef DJGPP
-       printf("djgpp v2 port (jpl5003c) by Hirofumi Watanabe, 1996\n");
-       printf("djgpp v2 port (perl5004+) by Laszlo Molnar, 1997-1999\n");
+       PerlIO_printf(PerlIO_stdout(),
+                     "djgpp v2 port (jpl5003c) by Hirofumi Watanabe, 1996\n"
+                     "djgpp v2 port (perl5004+) by Laszlo Molnar, 1997-1999\n");
 #endif
 #ifdef OS2
-       printf("\n\nOS/2 port Copyright (c) 1990, 1991, Raymond Chen, Kai Uwe Rommel\n"
-           "Version 5 port Copyright (c) 1994-1999, Andreas Kaiser, Ilya Zakharevich\n");
+       PerlIO_printf(PerlIO_stdout(),
+                     "\n\nOS/2 port Copyright (c) 1990, 1991, Raymond Chen, Kai Uwe Rommel\n"
+                     "Version 5 port Copyright (c) 1994-1999, Andreas Kaiser, Ilya Zakharevich\n");
 #endif
 #ifdef atarist
-       printf("atariST series port, ++jrb  bammi@cadence.com\n");
+       PerlIO_printf(PerlIO_stdout(),
+                     "atariST series port, ++jrb  bammi@cadence.com\n");
 #endif
 #ifdef __BEOS__
-       printf("BeOS port Copyright Tom Spindler, 1997-1999\n");
+       PerlIO_printf(PerlIO_stdout(),
+                     "BeOS port Copyright Tom Spindler, 1997-1999\n");
 #endif
 #ifdef MPE
-       printf("MPE/iX port Copyright by Mark Klein and Mark Bixby, 1996-1999\n");
+       PerlIO_printf(PerlIO_stdout(),
+                     "MPE/iX port Copyright by Mark Klein and Mark Bixby, 1996-1999\n");
 #endif
 #ifdef OEMVS
-       printf("MVS (OS390) port by Mortice Kern Systems, 1997-1999\n");
+       PerlIO_printf(PerlIO_stdout(),
+                     "MVS (OS390) port by Mortice Kern Systems, 1997-1999\n");
 #endif
 #ifdef __VOS__
-       printf("Stratus VOS port by Paul_Green@stratus.com, 1997-1999\n");
+       PerlIO_printf(PerlIO_stdout(),
+                     "Stratus VOS port by Paul_Green@stratus.com, 1997-1999\n");
 #endif
 #ifdef __OPEN_VM
-       printf("VM/ESA port by Neale Ferguson, 1998-1999\n");
+       PerlIO_printf(PerlIO_stdout(),
+                     "VM/ESA port by Neale Ferguson, 1998-1999\n");
 #endif
 #ifdef POSIX_BC
-       printf("BS2000 (POSIX) port by Start Amadeus GmbH, 1998-1999\n");
+       PerlIO_printf(PerlIO_stdout(),
+                     "BS2000 (POSIX) port by Start Amadeus GmbH, 1998-1999\n");
 #endif
 #ifdef __MINT__
-       printf("MiNT port by Guido Flohr, 1997-1999\n");
+       PerlIO_printf(PerlIO_stdout(),
+                     "MiNT port by Guido Flohr, 1997-1999\n");
 #endif
 #ifdef EPOC
-       printf("EPOC port by Olaf Flebbe, 1999-2000\n");
+       PerlIO_printf(PerlIO_stdout(),
+                     "EPOC port by Olaf Flebbe, 1999-2000\n");
 #endif
 #ifdef BINARY_BUILD_NOTICE
        BINARY_BUILD_NOTICE;
 #endif
-       printf("\n\
+       PerlIO_printf(PerlIO_stdout(),
+                     "\n\
 Perl may be copied only under the terms of either the Artistic License or the\n\
 GNU General Public License, which may be found in the Perl 5.0 source kit.\n\n\
 Complete documentation for Perl, including FAQ lists, should be found on\n\
@@ -2233,12 +2269,12 @@ Internet, point your browser at http://www.perl.com/, the Perl Home Page.\n\n");
        return s;
     case 'W':
        PL_dowarn = G_WARN_ALL_ON|G_WARN_ON; 
-       PL_compiling.cop_warnings = WARN_ALL ;
+       PL_compiling.cop_warnings = pWARN_ALL ;
        s++;
        return s;
     case 'X':
        PL_dowarn = G_WARN_ALL_OFF; 
-       PL_compiling.cop_warnings = WARN_NONE ;
+       PL_compiling.cop_warnings = pWARN_NONE ;
        s++;
        return s;
     case '*':
@@ -2419,6 +2455,7 @@ S_init_main_stash(pTHX)
     CopSTASH_set(&PL_compiling, PL_defstash);
     PL_debstash = GvHV(gv_fetchpv("DB::", GV_ADDMULTI, SVt_PVHV));
     PL_globalstash = GvHV(gv_fetchpv("CORE::GLOBAL::", GV_ADDMULTI, SVt_PVHV));
+    PL_nullstash = GvHV(gv_fetchpv("<none>::", GV_ADDMULTI, SVt_PVHV));
     /* We must init $/ before switches are processed. */
     sv_setpvn(get_sv("/", TRUE), "\n", 1);
 }
@@ -2472,7 +2509,7 @@ S_open_script(pTHX_ char *scriptname, bool dosearch, SV *sv, int *fdscript)
        sv_catpvn(sv, "-I", 2);
        sv_catpv(sv,PRIVLIB_EXP);
 
-#ifdef MSDOS
+#if defined(MSDOS) || defined(WIN32)
        Perl_sv_setpvf(aTHX_ cmd, "\
 sed %s -e \"/^[^#]/b\" \
  -e \"/^#[     ]*include[      ]/b\" \
@@ -2602,72 +2639,85 @@ S_fd_on_nosuid_fs(pTHX_ int fd)
  * an irrelevant filesystem while trying to reach the right one.
  */
 
-#   ifdef HAS_FSTATVFS
+#undef FD_ON_NOSUID_CHECK_OKAY  /* found the syscalls to do the check? */
+
+#   if !defined(FD_ON_NOSUID_CHECK_OKAY) && \
+        defined(HAS_FSTATVFS)
+#   define FD_ON_NOSUID_CHECK_OKAY
     struct statvfs stfs;
+
     check_okay = fstatvfs(fd, &stfs) == 0;
     on_nosuid  = check_okay && (stfs.f_flag  & ST_NOSUID);
-#   else
-#       ifdef PERL_MOUNT_NOSUID
-#           if defined(HAS_FSTATFS) && \
-              defined(HAS_STRUCT_STATFS) && \
-              defined(HAS_STRUCT_STATFS_F_FLAGS)
+#   endif /* fstatvfs */
+#   if !defined(FD_ON_NOSUID_CHECK_OKAY) && \
+        defined(PERL_MOUNT_NOSUID)     && \
+        defined(HAS_FSTATFS)           && \
+        defined(HAS_STRUCT_STATFS)     && \
+        defined(HAS_STRUCT_STATFS_F_FLAGS)
+#   define FD_ON_NOSUID_CHECK_OKAY
     struct statfs  stfs;
+
     check_okay = fstatfs(fd, &stfs)  == 0;
     on_nosuid  = check_okay && (stfs.f_flags & PERL_MOUNT_NOSUID);
-#           else
-#               if defined(HAS_FSTAT) && \
-                  defined(HAS_USTAT) && \
-                  defined(HAS_GETMNT) && \
-                  defined(HAS_STRUCT_FS_DATA) && \
-                  defined(NOSTAT_ONE)
+#   endif /* fstatfs */
+
+#   if !defined(FD_ON_NOSUID_CHECK_OKAY) && \
+        defined(PERL_MOUNT_NOSUID)     && \
+        defined(HAS_FSTAT)             && \
+        defined(HAS_USTAT)             && \
+        defined(HAS_GETMNT)            && \
+        defined(HAS_STRUCT_FS_DATA)    && \
+        defined(NOSTAT_ONE)
+#   define FD_ON_NOSUID_CHECK_OKAY
     struct stat fdst;
+
     if (fstat(fd, &fdst) == 0) {
-       struct ustat us;
-       if (ustat(fdst.st_dev, &us) == 0) {
-           struct fs_data fsd;
-           /* NOSTAT_ONE here because we're not examining fields which
-            * vary between that case and STAT_ONE. */
+        struct ustat us;
+        if (ustat(fdst.st_dev, &us) == 0) {
+            struct fs_data fsd;
+            /* NOSTAT_ONE here because we're not examining fields which
+             * vary between that case and STAT_ONE. */
             if (getmnt((int*)0, &fsd, (int)0, NOSTAT_ONE, us.f_fname) == 0) {
-               size_t cmplen = sizeof(us.f_fname);
-               if (sizeof(fsd.fd_req.path) < cmplen)
-                   cmplen = sizeof(fsd.fd_req.path);
-               if (strnEQ(fsd.fd_req.path, us.f_fname, cmplen) &&
-                   fdst.st_dev == fsd.fd_req.dev) {
-                       check_okay = 1;
-                       on_nosuid = fsd.fd_req.flags & PERL_MOUNT_NOSUID;
-                   }
-               }
-           }
-       }
-    }
-#               endif /* fstat+ustat+getmnt */
-#           endif /* fstatfs */
-#       else
-#           if defined(HAS_GETMNTENT) && \
-              defined(HAS_HASMNTOPT) && \
-              defined(MNTOPT_NOSUID)
-    FILE               *mtab = fopen("/etc/mtab", "r");
-    struct mntent      *entry;
-    struct stat                stb, fsb;
+                size_t cmplen = sizeof(us.f_fname);
+                if (sizeof(fsd.fd_req.path) < cmplen)
+                    cmplen = sizeof(fsd.fd_req.path);
+                if (strnEQ(fsd.fd_req.path, us.f_fname, cmplen) &&
+                    fdst.st_dev == fsd.fd_req.dev) {
+                        check_okay = 1;
+                        on_nosuid = fsd.fd_req.flags & PERL_MOUNT_NOSUID;
+                    }
+                }
+            }
+        }
+    }
+#   endif /* fstat+ustat+getmnt */
+
+#   if !defined(FD_ON_NOSUID_CHECK_OKAY) && \
+        defined(HAS_GETMNTENT)         && \
+        defined(HAS_HASMNTOPT)         && \
+        defined(MNTOPT_NOSUID)
+#   define FD_ON_NOSUID_CHECK_OKAY
+    FILE                *mtab = fopen("/etc/mtab", "r");
+    struct mntent       *entry;
+    struct stat         stb, fsb;
 
     if (mtab && (fstat(fd, &stb) == 0)) {
-       while (entry = getmntent(mtab)) {
-           if (stat(entry->mnt_dir, &fsb) == 0
-               && fsb.st_dev == stb.st_dev)
-           {
-               /* found the filesystem */
-               check_okay = 1;
-               if (hasmntopt(entry, MNTOPT_NOSUID))
-                   on_nosuid = 1;
-               break;
-           } /* A single fs may well fail its stat(). */
-       }
+        while (entry = getmntent(mtab)) {
+            if (stat(entry->mnt_dir, &fsb) == 0
+                && fsb.st_dev == stb.st_dev)
+            {
+                /* found the filesystem */
+                check_okay = 1;
+                if (hasmntopt(entry, MNTOPT_NOSUID))
+                    on_nosuid = 1;
+                break;
+            } /* A single fs may well fail its stat(). */
+        }
     }
     if (mtab)
-       fclose(mtab);
-#           endif /* getmntent+hasmntopt */
-#       endif /* PERL_MOUNT_NOSUID: fstatfs or fstat+ustat+statfs */
-#   endif /* statvfs */
+        fclose(mtab);
+#   endif /* getmntent+hasmntopt */
 
     if (!check_okay) 
        Perl_croak(aTHX_ "Can't check filesystem of script \"%s\" for nosuid", PL_origfilename);
@@ -3174,7 +3224,7 @@ S_init_postdump_symbols(pTHX_ register int argc, register char **argv, register
            SV *sv = newSVpv(argv[0],0);
            av_push(GvAVn(PL_argvgv),sv);
            if (PL_widesyscalls)
-               sv_utf8_upgrade(sv);
+               (void)sv_utf8_decode(sv);
        }
     }
     if ((PL_envgv = gv_fetchpv("ENV",TRUE, SVt_PVHV))) {
@@ -3301,6 +3351,10 @@ S_init_perllib(pTHX)
     incpush(PERL_VENDORLIB_STEM, FALSE, TRUE);
 #endif
 
+#ifdef PERL_OTHERLIBDIRS
+    incpush(PERL_OTHERLIBDIRS, TRUE, TRUE);
+#endif
+
     if (!PL_tainting)
        incpush(".", FALSE, FALSE);
 }
diff --git a/perl.h b/perl.h
index 19a65a0..8068381 100644 (file)
--- a/perl.h
+++ b/perl.h
@@ -242,6 +242,7 @@ struct perl_thread;
 #  define aTHXo                aTHX
 #  define aTHXo_       aTHX_
 #  define dTHXo                dTHX
+#  define dTHXoa(x)    dTHXa(x)
 #endif
 
 #ifndef pTHXx
@@ -1145,8 +1146,6 @@ typedef NVTYPE NV;
 #   endif
 #   define NV_DIG LDBL_DIG
 #   ifdef HAS_SQRTL
-#       define Perl_modf modfl
-#       define Perl_frexp frexpl
 #       define Perl_cos cosl
 #       define Perl_sin sinl
 #       define Perl_sqrt sqrtl
@@ -1157,10 +1156,28 @@ typedef NVTYPE NV;
 #       define Perl_floor floorl
 #       define Perl_fmod fmodl
 #   endif
+/* e.g. libsunmath doesn't have modfl and frexpl as of mid-March 2000 */
+#   ifdef HAS_MODFL
+#       define Perl_modf(x,y) modfl(x,y)
+#   else
+#       define Perl_modf(x,y) ((long double)modf((double)(x),(double*)(y)))
+#   endif
+#   ifdef HAS_FREXPL
+#       define Perl_frexp(x,y) frexpl(x,y)
+#   else
+#       define Perl_frexp(x,y) ((long double)frexp((double)(x),y))
+#   endif
+#   ifdef HAS_ISNANL
+#       define Perl_isnan(x) isnanl(x)
+#   else
+#       ifdef HAS_ISNAN
+#           define Perl_isnan(x) isnan((double)(x))
+#       else
+#           define Perl_isnan(x) ((x)!=(x))
+#       endif
+#   endif
 #else
 #   define NV_DIG DBL_DIG
-#   define Perl_modf modf
-#   define Perl_frexp frexp
 #   define Perl_cos cos
 #   define Perl_sin sin
 #   define Perl_sqrt sqrt
@@ -1170,6 +1187,13 @@ typedef NVTYPE NV;
 #   define Perl_pow pow
 #   define Perl_floor floor
 #   define Perl_fmod fmod
+#   define Perl_modf(x,y) modf(x,y)
+#   define Perl_frexp(x,y) frexp(x,y)
+#   ifdef HAS_ISNAN
+#       define Perl_isnan(x) isnan(x)
+#   else
+#       define Perl_isnan(x) ((x)!=(x))
+#   endif
 #endif
 
 #if !defined(Perl_atof) && defined(USE_LONG_DOUBLE) && defined(HAS_LONG_DOUBLE)
@@ -1645,7 +1669,7 @@ typedef pthread_key_t     perl_key;
 #ifdef VMS
 #   define STATUS_NATIVE       PL_statusvalue_vms
 #   define STATUS_NATIVE_EXPORT \
-        (((I32)PL_statusvalue_vms == -1 ? 44 : PL_statusvalue_vms) | (VMSISH_HUSHED ? 0x10000000 : 0))
+       (((I32)PL_statusvalue_vms == -1 ? 44 : PL_statusvalue_vms) | (VMSISH_HUSHED ? 0x10000000 : 0))
 #   define STATUS_NATIVE_SET(n)                                                \
        STMT_START {                                                    \
            PL_statusvalue_vms = (n);                                   \
index cfb4dc8..125c6e1 100755 (executable)
--- a/perlapi.c
+++ b/perlapi.c
@@ -479,6 +479,20 @@ Perl_sv_setpvf_mg_nocontext(SV* sv, const char* pat, ...)
 #undef  Perl_fprintf_nocontext
 #endif
 
+#undef  Perl_cv_const_sv
+SV*
+Perl_cv_const_sv(pTHXo_ CV* cv)
+{
+    return ((CPerlObj*)pPerl)->Perl_cv_const_sv(cv);
+}
+
+#undef  Perl_cv_undef
+void
+Perl_cv_undef(pTHXo_ CV* cv)
+{
+    ((CPerlObj*)pPerl)->Perl_cv_undef(cv);
+}
+
 #undef  Perl_cx_dump
 void
 Perl_cx_dump(pTHXo_ PERL_CONTEXT* cs)
@@ -602,15 +616,29 @@ Perl_dounwind(pTHXo_ I32 cxix)
 
 #undef  Perl_do_binmode
 int
-Perl_do_binmode(pTHXo_ PerlIO *fp, int iotype, int flag)
+Perl_do_binmode(pTHXo_ PerlIO *fp, int iotype, int mode)
 {
-    return ((CPerlObj*)pPerl)->Perl_do_binmode(fp, iotype, flag);
+    return ((CPerlObj*)pPerl)->Perl_do_binmode(fp, iotype, mode);
+}
+
+#undef  Perl_do_close
+bool
+Perl_do_close(pTHXo_ GV* gv, bool not_implicit)
+{
+    return ((CPerlObj*)pPerl)->Perl_do_close(gv, not_implicit);
 }
 #if !defined(WIN32)
 #endif
 #if defined(HAS_MSG) || defined(HAS_SEM) || defined(HAS_SHM)
 #endif
 
+#undef  Perl_do_join
+void
+Perl_do_join(pTHXo_ SV* sv, SV* del, SV** mark, SV** sp)
+{
+    ((CPerlObj*)pPerl)->Perl_do_join(sv, del, mark, sp);
+}
+
 #undef  Perl_do_open
 bool
 Perl_do_open(pTHXo_ GV* gv, char* name, I32 len, int as_raw, int rawmode, int rawperm, PerlIO* supplied_fp)
@@ -1288,6 +1316,13 @@ Perl_to_uni_lower_lc(pTHXo_ U32 c)
     return ((CPerlObj*)pPerl)->Perl_to_uni_lower_lc(c);
 }
 
+#undef  Perl_is_utf8_char
+int
+Perl_is_utf8_char(pTHXo_ U8 *p)
+{
+    return ((CPerlObj*)pPerl)->Perl_is_utf8_char(p);
+}
+
 #undef  Perl_is_utf8_alnum
 bool
 Perl_is_utf8_alnum(pTHXo_ U8 *p)
@@ -1935,6 +1970,13 @@ Perl_newSViv(pTHXo_ IV i)
     return ((CPerlObj*)pPerl)->Perl_newSViv(i);
 }
 
+#undef  Perl_newSVuv
+SV*
+Perl_newSVuv(pTHXo_ UV u)
+{
+    return ((CPerlObj*)pPerl)->Perl_newSVuv(u);
+}
+
 #undef  Perl_newSVnv
 SV*
 Perl_newSVnv(pTHXo_ NV n)
@@ -2308,6 +2350,13 @@ Perl_rninstr(pTHXo_ const char* big, const char* bigend, const char* little, con
 {
     return ((CPerlObj*)pPerl)->Perl_rninstr(big, bigend, little, lend);
 }
+
+#undef  Perl_rsignal
+Sighandler_t
+Perl_rsignal(pTHXo_ int i, Sighandler_t t)
+{
+    return ((CPerlObj*)pPerl)->Perl_rsignal(i, t);
+}
 #if !defined(HAS_RENAME)
 #endif
 
@@ -3331,6 +3380,13 @@ Perl_vwarner(pTHXo_ U32 err, const char* pat, va_list* args)
 {
     ((CPerlObj*)pPerl)->Perl_vwarner(err, pat, args);
 }
+
+#undef  Perl_whichsig
+I32
+Perl_whichsig(pTHXo_ char* sig)
+{
+    return ((CPerlObj*)pPerl)->Perl_whichsig(sig);
+}
 #if defined(USE_PURE_BISON)
 #else
 #endif
@@ -3887,6 +3943,15 @@ Perl_ptr_table_split(pTHXo_ PTR_TBL_t *tbl)
     ((CPerlObj*)pPerl)->Perl_ptr_table_split(tbl);
 }
 #endif
+#if defined(HAVE_INTERP_INTERN)
+
+#undef  Perl_sys_intern_init
+void
+Perl_sys_intern_init(pTHXo)
+{
+    ((CPerlObj*)pPerl)->Perl_sys_intern_init();
+}
+#endif
 #if defined(PERL_OBJECT)
 #else
 #endif
index 5e5ac28..634634c 100755 (executable)
--- a/perlapi.h
+++ b/perlapi.h
@@ -382,6 +382,8 @@ START_EXTERN_C
 #define PL_nthreads            (*Perl_Inthreads_ptr(aTHXo))
 #undef  PL_nthreads_cond
 #define PL_nthreads_cond       (*Perl_Inthreads_cond_ptr(aTHXo))
+#undef  PL_nullstash
+#define PL_nullstash           (*Perl_Inullstash_ptr(aTHXo))
 #undef  PL_numeric_local
 #define PL_numeric_local       (*Perl_Inumeric_local_ptr(aTHXo))
 #undef  PL_numeric_name
index 50fb270..bd2e148 100644 (file)
@@ -47,6 +47,7 @@ POD = \
        perlipc.pod     \
        perlthrtut.pod  \
        perldbmfilter.pod       \
+       perldebguts.pod \
        perldebug.pod   \
        perlnumber.pod  \
        perldiag.pod    \
@@ -113,6 +114,7 @@ MAN = \
        perlipc.man     \
        perlthrtut.man  \
        perldbmfilter.man       \
+       perldebguts.man \
        perldebug.man   \
        perlnumber.man  \
        perldiag.man    \
@@ -179,6 +181,7 @@ HTML = \
        perlipc.html    \
        perlthrtut.html \
        perldbmfilter.html      \
+       perldebguts.html        \
        perldebug.html  \
        perlnumber.html \
        perldiag.html   \
@@ -245,6 +248,7 @@ TEX = \
        perlipc.tex     \
        perlthrtut.tex  \
        perldbmfilter.tex       \
+       perldebguts.tex \
        perldebug.tex   \
        perlnumber.tex  \
        perldiag.tex    \
index 37c5cbd..bd1d065 100644 (file)
@@ -92,8 +92,8 @@ between two backslashes) on this file system.
 =item Win32::FreeLibrary(HANDLE)
 
 [EXT] Unloads a previously loaded dynamic-link library. The HANDLE is
-no longer valid after this call. See L<LoadLibrary> for information on
-dynamically loading a library.
+no longer valid after this call. See L<LoadLibrary|Win32::LoadLibrary(LIBNAME)>
+for information on dynamically loading a library.
 
 =item Win32::GetArchName()
 
@@ -132,7 +132,7 @@ same value.
 
 =item Win32::GetLongPathName(PATHNAME)
 
-[CORE] Returns a representaion of PATHNAME composed of longname
+[CORE] Returns a representation of PATHNAME composed of longname
 components (if any).  The result may not necessarily be longer
 than PATHNAME.  No attempt is made to convert PATHNAME to the
 absolute path.  Compare with Win32::GetShortPathName and
index d947ddc..58bfc54 100644 (file)
@@ -11,7 +11,7 @@ sub output ($);
           perlmod perlmodlib perlmodinstall perlfork perlform perllocale 
           perlref perlreftut perldsc
           perllol perlboot perltoot perltootc perlobj perltie perlbot perlipc
-          perldbmfilter perldebug perlnumber
+          perldbmfilter perldebug perlnumber perldebguts
           perldiag perlsec perltrap perlport perlstyle perlpod perlbook
           perlembed perlapio perlxs perlxstut perlguts perlcall perlcompile
           perlapi perlintern perlhist
@@ -177,10 +177,11 @@ sub podset {
            $inhead2 = 1;
            output $_; nl(); next;
        }
-       if (s/^=item ([^=].*)\n/$1/) {
+       if (s/^=item ([^=].*)/$1/) {
            next if $pod eq 'perldiag';
            s/^\s*\*\s*$// && next;
            s/^\s*\*\s*//;
+           s/\n/ /g;
            s/\s+$//;
            next if /^[\d.]+$/;
            next if $pod eq 'perlmodlib' && /^ftp:/;
index 120dc44..59ca0e0 100644 (file)
@@ -69,6 +69,7 @@ sections:
 
     perlembed          Perl ways to embed perl in your C or C++ application
     perlapio           Perl internal IO abstraction interface
+    perldebguts                Perl debugging guts and tips
     perlxs             Perl XS application programming interface
     perlxstut          Perl XS tutorial
     perlguts           Perl internal functions for those doing extensions
@@ -84,6 +85,7 @@ sections:
     perlcygwin         Perl notes for Cygwin
     perldos            Perl notes for DOS
     perlhpux           Perl notes for HP-UX
+    perlmachten                Perl notes for Power MachTen
     perlos2            Perl notes for OS/2
     perlos390          Perl notes for OS/390
     perlvms            Perl notes for VMS
@@ -222,147 +224,8 @@ Okay, that's I<definitely> enough hype.
 =head1 AVAILABILITY
 
 Perl is available for most operating systems, including virtually
-all Unix-like platforms.
-
-As of early March 2000 (the Perl release 5.6.0), the following
-platforms are able to build Perl from the standard source code
-distribution available at http://www.perl.com/CPAN/src/index.html
-
-       AIX
-       DOS DJGPP       1)
-       FreeBSD
-       HP-UX
-       IRIX
-       Linux
-       MachTen
-       MPE/iX
-       NetBSD
-       OpenBSD
-       OS/2
-       Rhapsody/Darwin 2)
-       Solaris
-       Tru64 UNIX      3)
-       UNICOS
-       UNICOS/mk
-       VMS
-       VOS
-       Windows 3.1     1)
-       Windows 95      1) 4)
-       Windows 98      1) 4)
-       Windows NT      1) 4)
-
-        1) in DOS mode either the DOS or OS/2 ports can be used
-        2) new in 5.6.0: the BSD/NeXT-based UNIX of Mac OS X
-        3) formerly known as Digital UNIX and before that DEC OSF/1
-        4) compilers: Borland, Cygwin, Mingw32 EGCS/GCC, VC++
-
-The following platforms worked for the previous major release
-(5.005_03 being the latest maintenance release of that, as of early
-March 2000), but be did not manage to test these in time for the 5.6.0
-release of Perl.  There is a very good chance that these will work
-just fine with 5.6.0.
-
-       A/UX
-       BeOS
-       BSD/OS
-       DG/UX
-       DYNIX/ptx
-       DomainOS
-       Hurd
-       NextSTEP
-       OpenSTEP
-       PowerMAX
-       QNX
-       SCO ODT/OSR     
-       SunOS
-       SVR4
-       Ultrix
-
-The following platform worked for the previous major release (5.005_03
-being the latest maintenance release of that, as of early March 2000).
-However, standardization on UTF-8 as the internal string representation
-in 5.6.0 has introduced incompatibilities in this EBCDIC platform.
-Support for this platform may be enabled in a future release:
-
-       OS390   1)
-
-       1) Previously known as MVS, or OpenEdition MVS.
-
-Strongly related to the OS390 platform by also being EBCDIC-based
-mainframe platforms are the following platforms:
-
-       BS2000
-       VM/ESA
-
-These are also not expected to work under 5.6.0 for the same reasons
-as OS390.  Contact the mailing list perl-mvs@perl.org for more details.
-
-MacOS (Classic, pre-X) is almost 5.6.0-ready; building from the source
-does work with 5.6.0, but additional MacOS specific source code is needed
-for a complete port.  Contact the mailing list macperl-porters@macperl.org
-for more more information.
-
-The following platforms have been known to build Perl from source in
-the past, but we haven't been able to verify their status for the
-current release, either because the hardware/software platforms are
-rare or because we don't have an active champion on these
-platforms--or both:
-
-       3b1
-       AmigaOS
-       ConvexOS
-       CX/UX
-       DC/OSx
-       DDE SMES
-       DOS EMX
-       Dynix
-       EP/IX
-       ESIX
-       FPS
-       GENIX
-       Greenhills
-       ISC
-       MachTen 68k
-       MiNT
-       MPC
-       NEWS-OS
-       Opus
-       Plan 9
-       PowerUX
-       RISC/os
-       Stellar
-       SVR2
-       TI1500
-       TitanOS
-       Unisys Dynix
-       Unixware
-
-Support for the following platform is planned for a future Perl release:
-
-       Netware
-
-The following platforms have their own source code distributions and
-binaries available via http://www.perl.com/CPAN/ports/index.html:
-
-                               Perl release
-
-       AS/400                  5.003
-       Netware                 5.003_07
-       Tandem Guardian         5.004
-
-The following platforms have only binaries available via
-http://www.perl.com/CPAN/ports/index.html:
-
-                               Perl release
-
-       Acorn RISCOS            5.005_02
-       AOS                     5.002
-       LynxOS                  5.004_02
-
-Although we do suggest that you always build your own Perl from
-the source code, both for maximal configurability and for security,
-in case you are in a hurry you can check
-http://www.perl.com/CPAN/ports/index.html for binary distributions.
+all Unix-like platforms.  See L<perlport/"Supported Platforms">
+for a listing.
 
 =head1 ENVIRONMENT
 
@@ -391,7 +254,8 @@ Perl developers, please write to perl-thanks@perl.org .
 
 =head1 DIAGNOSTICS
 
-The B<-w> switch produces some lovely diagnostics.
+The C<use warnings> pragma (and the B<-w> switch) produces some 
+lovely diagnostics.
 
 See L<perldiag> for explanations of all Perl's diagnostics.  The C<use
 diagnostics> pragma automatically turns Perl's normally terse warnings
@@ -430,7 +294,7 @@ affected by wraparound).
 You may mail your bug reports (be sure to include full configuration
 information as output by the myconfig program in the perl source
 tree, or by C<perl -V>) to perlbug@perl.com .  If you've succeeded
-in compiling perl, the perlbug script in the utils/ subdirectory
+in compiling perl, the B<perlbug> script in the F<utils/> subdirectory
 can be used to help mail in a bug report.
 
 Perl actually stands for Pathologically Eclectic Rubbish Lister, but
diff --git a/pod/perl56delta.pod b/pod/perl56delta.pod
new file mode 100644 (file)
index 0000000..27cdc22
--- /dev/null
@@ -0,0 +1,2954 @@
+=head1 NAME
+
+perldelta - what's new for perl v5.6.0
+
+=head1 DESCRIPTION
+
+This document describes differences between the 5.005 release and this one.
+
+=head1 Core Enhancements
+
+=head2 Interpreter cloning, threads, and concurrency
+
+Perl 5.005_63 introduces the beginnings of support for running multiple
+interpreters concurrently in different threads.  In conjunction with
+the perl_clone() API call, which can be used to selectively duplicate
+the state of any given interpreter, it is possible to compile a
+piece of code once in an interpreter, clone that interpreter
+one or more times, and run all the resulting interpreters in distinct
+threads.
+
+On the Windows platform, this feature is used to emulate fork() at the
+interpreter level.  See L<perlfork> for details about that.
+
+This feature is still in evolution.  It is eventually meant to be used
+to selectively clone a subroutine and data reachable from that
+subroutine in a separate interpreter and run the cloned subroutine
+in a separate thread.  Since there is no shared data between the
+interpreters, little or no locking will be needed (unless parts of
+the symbol table are explicitly shared).  This is obviously intended
+to be an easy-to-use replacement for the existing threads support.
+
+Support for cloning interpreters and interpreter concurrency can be
+enabled using the -Dusethreads Configure option (see win32/Makefile for
+how to enable it on Windows.)  The resulting perl executable will be
+functionally identical to one that was built with -Dmultiplicity, but
+the perl_clone() API call will only be available in the former.
+
+-Dusethreads enables the cpp macro USE_ITHREADS by default, which in turn
+enables Perl source code changes that provide a clear separation between
+the op tree and the data it operates with.  The former is immutable, and
+can therefore be shared between an interpreter and all of its clones,
+while the latter is considered local to each interpreter, and is therefore
+copied for each clone.
+
+Note that building Perl with the -Dusemultiplicity Configure option
+is adequate if you wish to run multiple B<independent> interpreters
+concurrently in different threads.  -Dusethreads only provides the
+additional functionality of the perl_clone() API call and other
+support for running B<cloned> interpreters concurrently.
+
+    NOTE: This is an experimental feature.  Implementation details are
+    subject to change.
+
+=head2 Lexically scoped warning categories
+
+You can now control the granularity of warnings emitted by perl at a finer
+level using the C<use warnings> pragma.  L<warnings> and L<perllexwarn>
+have copious documentation on this feature.
+
+=head2 Unicode and UTF-8 support
+
+Perl now uses UTF-8 as its internal representation for character
+strings.  The C<utf8> and C<bytes> pragmas are used to control this support
+in the current lexical scope.  See L<perlunicode>, L<utf8> and L<bytes> for
+more information.
+
+This feature is expected to evolve quickly to support some form of I/O
+disciplines that can be used to specify the kind of input and output data
+(bytes or characters).  Until that happens, additional modules from CPAN
+will be needed to complete the toolkit for dealing with Unicode.
+
+    NOTE: This should be considered an experimental feature.  Implementation
+    details are subject to change.
+
+=head2 Support for interpolating named characters
+
+The new C<\N> escape interpolates named characters within strings.
+For example, C<"Hi! \N{WHITE SMILING FACE}"> evaluates to a string
+with a unicode smiley face at the end.
+
+=head2 "our" declarations
+
+An "our" declaration introduces a value that can be best understood
+as a lexically scoped symbolic alias to a global variable in the
+package that was current where the variable was declared.  This is
+mostly useful as an alternative to the C<vars> pragma, but also provides
+the opportunity to introduce typing and other attributes for such
+variables.  See L<perlfunc/our>.
+
+=head2 Support for strings represented as a vector of ordinals
+
+Literals of the form C<v1.2.3.4> are now parsed as a string composed
+of characters with the specified ordinals.  This is an alternative, more
+readable way to construct (possibly unicode) strings instead of
+interpolating characters, as in C<"\x{1}\x{2}\x{3}\x{4}">.  The leading
+C<v> may be omitted if there are more than two ordinals, so C<1.2.3> is
+parsed the same as C<v1.2.3>.
+
+Strings written in this form are also useful to represent version "numbers".
+It is easy to compare such version "numbers" (which are really just plain
+strings) using any of the usual string comparison operators C<eq>, C<ne>,
+C<lt>, C<gt>, etc., or perform bitwise string operations on them using C<|>,
+C<&>, etc.
+
+In conjunction with the new C<$^V> magic variable (which contains
+the perl version as a string), such literals can be used as a readable way
+to check if you're running a particular version of Perl:
+
+    # this will parse in older versions of Perl also
+    if ($^V and $^V gt v5.6.0) {
+        # new features supported
+    }
+
+C<require> and C<use> also have some special magic to support such literals.
+They will be interpreted as a version rather than as a module name:
+
+    require v5.6.0;            # croak if $^V lt v5.6.0
+    use v5.6.0;                        # same, but croaks at compile-time
+
+Alternatively, the C<v> may be omitted if there is more than one dot:
+
+    require 5.6.0;
+    use 5.6.0;
+
+Also, C<sprintf> and C<printf> support the Perl-specific format flag C<%v>
+to print ordinals of characters in arbitrary strings:
+
+    printf "v%vd", $^V;                # prints current version, such as "v5.5.650"
+    printf "%*vX", ":", $addr; # formats IPv6 address
+    printf "%*vb", " ", $bits; # displays bitstring
+
+See L<perldata/"Scalar value constructors"> for additional information.
+
+=head2 Improved Perl version numbering system
+
+Beginning with Perl version 5.6.0, the version number convention has been
+changed to a "dotted integer" scheme that is more commonly found in open
+source projects.
+
+Maintenance versions of v5.6.0 will be released as v5.6.1, v5.6.2 etc.
+The next development series following v5.6.0 will be numbered v5.7.x,
+beginning with v5.7.0, and the next major production release following
+v5.6.0 will be v5.8.0.
+
+The English module now sets $PERL_VERSION to $^V (a string value) rather
+than C<$]> (a numeric value).  (This is a potential incompatibility.
+Send us a report via perlbug if you are affected by this.)
+
+The v1.2.3 syntax is also now legal in Perl.
+See L<Support for strings represented as a vector of ordinals> for more on that.
+
+To cope with the new versioning system's use of at least three significant
+digits for each version component, the method used for incrementing the
+subversion number has also changed slightly.  We assume that versions older
+than v5.6.0 have been incrementing the subversion component in multiples of
+10.  Versions after v5.6.0 will increment them by 1.  Thus, using the new
+notation, 5.005_03 is the "same" as v5.5.30, and the first maintenance
+version following v5.6.0 will be v5.6.1 (which should be read as being
+equivalent to a floating point value of 5.006_001 in the older format,
+stored in C<$]>).
+
+=head2 New syntax for declaring subroutine attributes
+
+Formerly, if you wanted to mark a subroutine as being a method call or
+as requiring an automatic lock() when it is entered, you had to declare
+that with a C<use attrs> pragma in the body of the subroutine.
+That can now be accomplished with declaration syntax, like this:
+
+    sub mymethod : locked method ;
+    ...
+    sub mymethod : locked method {
+       ...
+    }
+
+    sub othermethod :locked :method ;
+    ...
+    sub othermethod :locked :method {
+       ...
+    }
+
+
+(Note how only the first C<:> is mandatory, and whitespace surrounding
+the C<:> is optional.)
+
+F<AutoSplit.pm> and F<SelfLoader.pm> have been updated to keep the attributes
+with the stubs they provide.  See L<attributes>.
+
+=head2 File and directory handles can be autovivified
+
+Similar to how constructs such as C<< $x->[0] >> autovivify a reference,
+handle constructors (open(), opendir(), pipe(), socketpair(), sysopen(),
+socket(), and accept()) now autovivify a file or directory handle
+if the handle passed to them is an uninitialized scalar variable.  This
+allows the constructs such as C<open(my $fh, ...)> and C<open(local $fh,...)>
+to be used to create filehandles that will conveniently be closed
+automatically when the scope ends, provided there are no other references
+to them.  This largely eliminates the need for typeglobs when opening
+filehandles that must be passed around, as in the following example:
+
+    sub myopen {
+        open my $fh, "@_"
+            or die "Can't open '@_': $!";
+       return $fh;
+    }
+
+    {
+        my $f = myopen("</etc/motd");
+       print <$f>;
+       # $f implicitly closed here
+    }
+
+=head2 open() with more than two arguments
+
+If open() is passed three arguments instead of two, the second argument
+is used as the mode and the third argument is taken to be the file name.
+This is primarily useful for protecting against unintended magic behavior
+of the traditional two-argument form.  See L<perlfunc/open>.
+
+=head2 64-bit support
+
+Any platform that has 64-bit integers either
+
+       (1) natively as longs or ints
+       (2) via special compiler flags
+       (3) using long long or int64_t
+
+is able to use "quads" (64-bit integers) as follows:
+
+=over 4
+
+=item *
+
+constants (decimal, hexadecimal, octal, binary) in the code 
+
+=item *
+
+arguments to oct() and hex()
+
+=item *
+
+arguments to print(), printf() and sprintf() (flag prefixes ll, L, q)
+
+=item *
+
+printed as such
+
+=item *
+
+pack() and unpack() "q" and "Q" formats
+
+=item *
+
+in basic arithmetics: + - * / % (NOTE: operating close to the limits
+of the integer values may produce surprising results)
+
+=item *
+
+in bit arithmetics: & | ^ ~ << >> (NOTE: these used to be forced 
+to be 32 bits wide but now operate on the full native width.)
+
+=item *
+
+vec()
+
+=back
+
+Note that unless you have the case (a) you will have to configure
+and compile Perl using the -Duse64bitint Configure flag.
+
+    NOTE: The Configure flags -Duselonglong and -Duse64bits have been
+    deprecated.  Use -Duse64bitint instead.
+
+There are actually two modes of 64-bitness: the first one is achieved
+using Configure -Duse64bitint and the second one using Configure
+-Duse64bitall.  The difference is that the first one is minimal and
+the second one maximal.  The first works in more places than the second.
+
+The C<use64bitint> does only as much as is required to get 64-bit
+integers into Perl (this may mean, for example, using "long longs")
+while your memory may still be limited to 2 gigabytes (because your
+pointers could still be 32-bit).  Note that the name C<64bitint> does
+not imply that your C compiler will be using 64-bit C<int>s (it might,
+but it doesn't have to): the C<use64bitint> means that you will be
+able to have 64 bits wide scalar values.
+
+The C<use64bitall> goes all the way by attempting to switch also
+integers (if it can), longs (and pointers) to being 64-bit.  This may
+create an even more binary incompatible Perl than -Duse64bitint: the
+resulting executable may not run at all in a 32-bit box, or you may
+have to reboot/reconfigure/rebuild your operating system to be 64-bit
+aware.
+
+Natively 64-bit systems like Alpha and Cray need neither -Duse64bitint
+nor -Duse64bitall.
+
+Last but not least: note that due to Perl's habit of always using
+floating point numbers, the quads are still not true integers.
+When quads overflow their limits (0...18_446_744_073_709_551_615 unsigned,
+-9_223_372_036_854_775_808...9_223_372_036_854_775_807 signed), they
+are silently promoted to floating point numbers, after which they will
+start losing precision (in their lower digits).
+
+    NOTE: 64-bit support is still experimental on most platforms.
+    Existing support only covers the LP64 data model.  In particular, the
+    LLP64 data model is not yet supported.  64-bit libraries and system
+    APIs on many platforms have not stabilized--your mileage may vary.
+
+=head2 Large file support
+
+If you have filesystems that support "large files" (files larger than
+2 gigabytes), you may now also be able to create and access them from
+Perl.
+
+    NOTE: The default action is to enable large file support, if
+    available on the platform.
+
+If the large file support is on, and you have a Fcntl constant
+O_LARGEFILE, the O_LARGEFILE is automatically added to the flags
+of sysopen().
+
+Beware that unless your filesystem also supports "sparse files" seeking
+to umpteen petabytes may be inadvisable.
+
+Note that in addition to requiring a proper file system to do large
+files you may also need to adjust your per-process (or your
+per-system, or per-process-group, or per-user-group) maximum filesize
+limits before running Perl scripts that try to handle large files,
+especially if you intend to write such files.
+
+Finally, in addition to your process/process group maximum filesize
+limits, you may have quota limits on your filesystems that stop you
+(your user id or your user group id) from using large files.
+
+Adjusting your process/user/group/file system/operating system limits
+is outside the scope of Perl core language.  For process limits, you
+may try increasing the limits using your shell's limits/limit/ulimit
+command before running Perl.  The BSD::Resource extension (not
+included with the standard Perl distribution) may also be of use, it
+offers the getrlimit/setrlimit interface that can be used to adjust
+process resource usage limits, including the maximum filesize limit.
+
+=head2 Long doubles
+
+In some systems you may be able to use long doubles to enhance the
+range and precision of your double precision floating point numbers
+(that is, Perl's numbers).  Use Configure -Duselongdouble to enable
+this support (if it is available).
+
+=head2 "more bits"
+
+You can "Configure -Dusemorebits" to turn on both the 64-bit support
+and the long double support.
+
+=head2 Enhanced support for sort() subroutines
+
+Perl subroutines with a prototype of C<($$)>, and XSUBs in general, can
+now be used as sort subroutines.  In either case, the two elements to
+be compared are passed as normal parameters in @_.  See L<perlfunc/sort>.
+
+For unprototyped sort subroutines, the historical behavior of passing 
+the elements to be compared as the global variables $a and $b remains
+unchanged.
+
+=head2 C<sort $coderef @foo> allowed
+
+sort() did not accept a subroutine reference as the comparison
+function in earlier versions.  This is now permitted.
+
+=head2 File globbing implemented internally
+
+Perl now uses the File::Glob implementation of the glob() operator
+automatically.  This avoids using an external csh process and the
+problems associated with it.
+
+    NOTE: This is currently an experimental feature.  Interfaces and
+    implementation are subject to change.
+
+=item Support for CHECK blocks
+
+In addition to C<BEGIN>, C<INIT>, C<END>, C<DESTROY> and C<AUTOLOAD>,
+subroutines named C<CHECK> are now special.  These are queued up during
+compilation and behave similar to END blocks, except they are called at
+the end of compilation rather than at the end of execution.  They cannot
+be called directly.
+
+=head2 POSIX character class syntax [: :] supported
+
+For example to match alphabetic characters use /[[:alpha:]]/.
+See L<perlre> for details.
+
+=item Better pseudo-random number generator
+
+In 5.005_0x and earlier, perl's rand() function used the C library
+rand(3) function.  As of 5.005_52, Configure tests for drand48(),
+random(), and rand() (in that order) and picks the first one it finds.
+
+These changes should result in better random numbers from rand().
+
+=head2 Improved C<qw//> operator
+
+The C<qw//> operator is now evaluated at compile time into a true list
+instead of being replaced with a run time call to C<split()>.  This
+removes the confusing misbehaviour of C<qw//> in scalar context, which
+had inherited that behaviour from split().
+
+Thus:
+
+    $foo = ($bar) = qw(a b c); print "$foo|$bar\n";
+
+now correctly prints "3|a", instead of "2|a".
+
+=item Better worst-case behavior of hashes
+
+Small changes in the hashing algorithm have been implemented in
+order to improve the distribution of lower order bits in the
+hashed value.  This is expected to yield better performance on
+keys that are repeated sequences.
+
+=head2 pack() format 'Z' supported
+
+The new format type 'Z' is useful for packing and unpacking null-terminated
+strings.  See L<perlfunc/"pack">.
+
+=head2 pack() format modifier '!' supported
+
+The new format type modifier '!' is useful for packing and unpacking
+native shorts, ints, and longs.  See L<perlfunc/"pack">.
+
+=head2 pack() and unpack() support counted strings
+
+The template character '/' can be used to specify a counted string
+type to be packed or unpacked.  See L<perlfunc/"pack">.
+
+=head2 Comments in pack() templates
+
+The '#' character in a template introduces a comment up to
+end of the line.  This facilitates documentation of pack()
+templates.
+
+=head2 Weak references
+
+In previous versions of Perl, you couldn't cache objects so as
+to allow them to be deleted if the last reference from outside 
+the cache is deleted.  The reference in the cache would hold a
+reference count on the object and the objects would never be
+destroyed.
+
+Another familiar problem is with circular references.  When an
+object references itself, its reference count would never go
+down to zero, and it would not get destroyed until the program
+is about to exit.
+
+Weak references solve this by allowing you to "weaken" any
+reference, that is, make it not count towards the reference count.
+When the last non-weak reference to an object is deleted, the object
+is destroyed and all the weak references to the object are
+automatically undef-ed.
+
+To use this feature, you need the WeakRef package from CPAN, which
+contains additional documentation.
+
+    NOTE: This is an experimental feature.  Details are subject to change.  
+
+=head2 Binary numbers supported
+
+Binary numbers are now supported as literals, in s?printf formats, and
+C<oct()>:
+
+    $answer = 0b101010;
+    printf "The answer is: %b\n", oct("0b101010");
+
+=head2 Lvalue subroutines
+
+Subroutines can now return modifiable lvalues.
+See L<perlsub/"Lvalue subroutines">.
+
+    NOTE: This is an experimental feature.  Details are subject to change.
+
+=head2 Some arrows may be omitted in calls through references
+
+Perl now allows the arrow to be omitted in many constructs
+involving subroutine calls through references.  For example,
+C<< $foo[10]->('foo') >> may now be written C<$foo[10]('foo')>.
+This is rather similar to how the arrow may be omitted from
+C<< $foo[10]->{'foo'} >>.  Note however, that the arrow is still
+required for C<< foo(10)->('bar') >>.
+
+=head2 Boolean assignment operators are legal lvalues
+
+Constructs such as C<($a ||= 2) += 1> are now allowed.
+
+=head2 exists() is supported on subroutine names
+
+The exists() builtin now works on subroutine names.  A subroutine
+is considered to exist if it has been declared (even if implicitly).
+See L<perlfunc/exists> for examples.
+
+=head2 exists() and delete() are supported on array elements
+
+The exists() and delete() builtins now work on simple arrays as well.
+The behavior is similar to that on hash elements.
+
+exists() can be used to check whether an array element has been
+initialized.  This avoids autovivifying array elements that don't exist.
+If the array is tied, the EXISTS() method in the corresponding tied
+package will be invoked.
+
+delete() may be used to remove an element from the array and return
+it.  The array element at that position returns to its uninitialized
+state, so that testing for the same element with exists() will return
+false.  If the element happens to be the one at the end, the size of
+the array also shrinks up to the highest element that tests true for
+exists(), or 0 if none such is found.  If the array is tied, the DELETE() 
+method in the corresponding tied package will be invoked.
+
+See L<perlfunc/exists> and L<perlfunc/delete> for examples.
+
+=head2 Pseudo-hashes work better
+
+Dereferencing some types of reference values in a pseudo-hash,
+such as C<< $ph->{foo}[1] >>, was accidentally disallowed.  This has
+been corrected.
+
+When applied to a pseudo-hash element, exists() now reports whether
+the specified value exists, not merely if the key is valid.
+
+delete() now works on pseudo-hashes.  When given a pseudo-hash element
+or slice it deletes the values corresponding to the keys (but not the keys
+themselves).  See L<perlref/"Pseudo-hashes: Using an array as a hash">.
+
+Pseudo-hash slices with constant keys are now optimized to array lookups
+at compile-time.
+
+List assignments to pseudo-hash slices are now supported.
+
+The C<fields> pragma now provides ways to create pseudo-hashes, via
+fields::new() and fields::phash().  See L<fields>.
+
+    NOTE: The pseudo-hash data type continues to be experimental.
+    Limiting oneself to the interface elements provided by the
+    fields pragma will provide protection from any future changes.
+
+=head2 Automatic flushing of output buffers
+
+fork(), exec(), system(), qx//, and pipe open()s now flush buffers
+of all files opened for output when the operation was attempted.  This
+mostly eliminates confusing buffering mishaps suffered by users unaware
+of how Perl internally handles I/O.
+
+This is not supported on some platforms like Solaris where a suitably
+correct implementation of fflush(NULL) isn't available.
+
+=head2 Better diagnostics on meaningless filehandle operations
+
+Constructs such as C<< open(<FH>) >> and C<< close(<FH>) >>
+are compile time errors.  Attempting to read from filehandles that
+were opened only for writing will now produce warnings (just as
+writing to read-only filehandles does).
+
+=head2 Where possible, buffered data discarded from duped input filehandle
+
+C<< open(NEW, "<&OLD") >> now attempts to discard any data that
+was previously read and buffered in C<OLD> before duping the handle.
+On platforms where doing this is allowed, the next read operation
+on C<NEW> will return the same data as the corresponding operation
+on C<OLD>.  Formerly, it would have returned the data from the start
+of the following disk block instead.
+
+=head2 eof() has the same old magic as <>
+
+C<eof()> would return true if no attempt to read from C<< <> >> had
+yet been made.  C<eof()> has been changed to have a little magic of its
+own, it now opens the C<< <> >> files.
+
+=head2 binmode() can be used to set :crlf and :raw modes
+
+binmode() now accepts a second argument that specifies a discipline
+for the handle in question.  The two pseudo-disciplines ":raw" and
+":crlf" are currently supported on DOS-derivative platforms.
+See L<perlfunc/"binmode"> and L<open>.
+
+=head2 C<-T> filetest recognizes UTF-8 encoded files as "text"
+
+The algorithm used for the C<-T> filetest has been enhanced to
+correctly identify UTF-8 content as "text".
+
+=head2 system(), backticks and pipe open now reflect exec() failure
+
+On Unix and similar platforms, system(), qx() and open(FOO, "cmd |")
+etc., are implemented via fork() and exec().  When the underlying
+exec() fails, earlier versions did not report the error properly,
+since the exec() happened to be in a different process.
+
+The child process now communicates with the parent about the
+error in launching the external command, which allows these
+constructs to return with their usual error value and set $!.
+
+=head2 Improved diagnostics
+
+Line numbers are no longer suppressed (under most likely circumstances)
+during the global destruction phase.
+
+Diagnostics emitted from code running in threads other than the main
+thread are now accompanied by the thread ID.
+
+Embedded null characters in diagnostics now actually show up.  They
+used to truncate the message in prior versions.
+
+$foo::a and $foo::b are now exempt from "possible typo" warnings only
+if sort() is encountered in package C<foo>.
+
+Unrecognized alphabetic escapes encountered when parsing quote
+constructs now generate a warning, since they may take on new
+semantics in later versions of Perl.
+
+Many diagnostics now report the internal operation in which the warning
+was provoked, like so:
+
+    Use of uninitialized value in concatenation (.) at (eval 1) line 1.
+    Use of uninitialized value in print at (eval 1) line 1.
+
+Diagnostics  that occur within eval may also report the file and line
+number where the eval is located, in addition to the eval sequence
+number and the line number within the evaluated text itself.  For
+example:
+
+    Not enough arguments for scalar at (eval 4)[newlib/perl5db.pl:1411] line 2, at EOF
+
+=head2 Diagnostics follow STDERR
+
+Diagnostic output now goes to whichever file the C<STDERR> handle
+is pointing at, instead of always going to the underlying C runtime
+library's C<stderr>.
+
+=item More consistent close-on-exec behavior
+
+On systems that support a close-on-exec flag on filehandles, the
+flag is now set for any handles created by pipe(), socketpair(),
+socket(), and accept(), if that is warranted by the value of $^F
+that may be in effect.  Earlier versions neglected to set the flag
+for handles created with these operators.  See L<perlfunc/pipe>,
+L<perlfunc/socketpair>, L<perlfunc/socket>, L<perlfunc/accept>,
+and L<perlvar/$^F>.
+
+=head2 syswrite() ease-of-use
+
+The length argument of C<syswrite()> has become optional.
+
+=head2 Better syntax checks on parenthesized unary operators
+
+Expressions such as:
+
+    print defined(&foo,&bar,&baz);
+    print uc("foo","bar","baz");
+    undef($foo,&bar);
+
+used to be accidentally allowed in earlier versions, and produced
+unpredictable behaviour.  Some produced ancillary warnings
+when used in this way; others silently did the wrong thing.
+
+The parenthesized forms of most unary operators that expect a single
+argument now ensure that they are not called with more than one
+argument, making the cases shown above syntax errors.  The usual
+behaviour of:
+
+    print defined &foo, &bar, &baz;
+    print uc "foo", "bar", "baz";
+    undef $foo, &bar;
+
+remains unchanged.  See L<perlop>.
+
+=head2 Bit operators support full native integer width
+
+The bit operators (& | ^ ~ << >>) now operate on the full native
+integral width (the exact size of which is available in $Config{ivsize}).
+For example, if your platform is either natively 64-bit or if Perl
+has been configured to use 64-bit integers, these operations apply
+to 8 bytes (as opposed to 4 bytes on 32-bit platforms).
+For portability, be sure to mask off the excess bits in the result of
+unary C<~>, e.g., C<~$x & 0xffffffff>.
+
+=head2 Improved security features
+
+More potentially unsafe operations taint their results for improved
+security.
+
+The C<passwd> and C<shell> fields returned by the getpwent(), getpwnam(),
+and getpwuid() are now tainted, because the user can affect their own
+encrypted password and login shell.
+
+The variable modified by shmread(), and messages returned by msgrcv()
+(and its object-oriented interface IPC::SysV::Msg::rcv) are also tainted,
+because other untrusted processes can modify messages and shared memory
+segments for their own nefarious purposes.
+
+=item More functional bareword prototype (*)
+
+Bareword prototypes have been rationalized to enable them to be used
+to override builtins that accept barewords and interpret them in
+a special way, such as C<require> or C<do>.
+
+Arguments prototyped as C<*> will now be visible within the subroutine
+as either a simple scalar or as a reference to a typeglob.
+See L<perlsub/Prototypes>.
+
+=head2 C<require> and C<do> may be overridden
+
+C<require> and C<do 'file'> operations may be overridden locally
+by importing subroutines of the same name into the current package 
+(or globally by importing them into the CORE::GLOBAL:: namespace).
+Overriding C<require> will also affect C<use>, provided the override
+is visible at compile-time.
+See L<perlsub/"Overriding Built-in Functions">.
+
+=head2 $^X variables may now have names longer than one character
+
+Formerly, $^X was synonymous with ${"\cX"}, but $^XY was a syntax
+error.  Now variable names that begin with a control character may be
+arbitrarily long.  However, for compatibility reasons, these variables
+I<must> be written with explicit braces, as C<${^XY}> for example.
+C<${^XYZ}> is synonymous with ${"\cXYZ"}.  Variable names with more
+than one control character, such as C<${^XY^Z}>, are illegal.
+
+The old syntax has not changed.  As before, `^X' may be either a
+literal control-X character or the two-character sequence `caret' plus
+`X'.  When braces are omitted, the variable name stops after the
+control character.  Thus C<"$^XYZ"> continues to be synonymous with
+C<$^X . "YZ"> as before.
+
+As before, lexical variables may not have names beginning with control
+characters.  As before, variables whose names begin with a control
+character are always forced to be in package `main'.  All such variables
+are reserved for future extensions, except those that begin with
+C<^_>, which may be used by user programs and are guaranteed not to
+acquire special meaning in any future version of Perl.
+
+=head2 New variable $^C reflects C<-c> switch
+
+C<$^C> has a boolean value that reflects whether perl is being run
+in compile-only mode (i.e. via the C<-c> switch).  Since
+BEGIN blocks are executed under such conditions, this variable
+enables perl code to determine whether actions that make sense
+only during normal running are warranted.  See L<perlvar>.
+
+=head2 New variable $^V contains Perl version as a string
+
+C<$^V> contains the Perl version number as a string composed of
+characters whose ordinals match the version numbers, i.e. v5.6.0.
+This may be used in string comparisons.
+
+See C<Support for strings represented as a vector of ordinals> for an
+example.
+
+=head2 Optional Y2K warnings
+
+If Perl is built with the cpp macro C<PERL_Y2KWARN> defined,
+it emits optional warnings when concatenating the number 19
+with another number.
+
+This behavior must be specifically enabled when running Configure.
+See F<INSTALL> and F<README.Y2K>.
+
+=head1 Modules and Pragmata
+
+=head2 Modules
+
+=over 4
+
+=item attributes
+
+While used internally by Perl as a pragma, this module also
+provides a way to fetch subroutine and variable attributes.
+See L<attributes>.
+
+=item B
+
+The Perl Compiler suite has been extensively reworked for this
+release.  More of the standard Perl testsuite passes when run
+under the Compiler, but there is still a significant way to
+go to achieve production quality compiled executables.
+
+    NOTE: The Compiler suite remains highly experimental.  The
+    generated code may not be correct, even when it manages to execute
+    without errors.
+
+=item Benchmark
+
+Overall, Benchmark results exhibit lower average error and better timing
+accuracy.  
+
+You can now run tests for I<n> seconds instead of guessing the right
+number of tests to run: e.g., timethese(-5, ...) will run each 
+code for at least 5 CPU seconds.  Zero as the "number of repetitions"
+means "for at least 3 CPU seconds".  The output format has also
+changed.  For example:
+
+   use Benchmark;$x=3;timethese(-5,{a=>sub{$x*$x},b=>sub{$x**2}})
+
+will now output something like this:
+
+   Benchmark: running a, b, each for at least 5 CPU seconds...
+            a:  5 wallclock secs ( 5.77 usr +  0.00 sys =  5.77 CPU) @ 200551.91/s (n=1156516)
+            b:  4 wallclock secs ( 5.00 usr +  0.02 sys =  5.02 CPU) @ 159605.18/s (n=800686)
+
+New features: "each for at least N CPU seconds...", "wallclock secs",
+and the "@ operations/CPU second (n=operations)".
+
+timethese() now returns a reference to a hash of Benchmark objects containing
+the test results, keyed on the names of the tests.
+
+timethis() now returns the iterations field in the Benchmark result object
+instead of 0.
+
+timethese(), timethis(), and the new cmpthese() (see below) can also take
+a format specifier of 'none' to suppress output.
+
+A new function countit() is just like timeit() except that it takes a
+TIME instead of a COUNT.
+
+A new function cmpthese() prints a chart comparing the results of each test
+returned from a timethese() call.  For each possible pair of tests, the
+percentage speed difference (iters/sec or seconds/iter) is shown.
+
+For other details, see L<Benchmark>.
+
+=item ByteLoader
+
+The ByteLoader is a dedicated extension to generate and run
+Perl bytecode.  See L<ByteLoader>.
+
+=item constant
+
+References can now be used.
+
+The new version also allows a leading underscore in constant names, but
+disallows a double leading underscore (as in "__LINE__").  Some other names
+are disallowed or warned against, including BEGIN, END, etc.  Some names
+which were forced into main:: used to fail silently in some cases; now they're
+fatal (outside of main::) and an optional warning (inside of main::).
+The ability to detect whether a constant had been set with a given name has
+been added.
+
+See L<constant>.
+
+=item charnames
+
+This pragma implements the C<\N> string escape.  See L<charnames>.
+
+=item Data::Dumper
+
+A C<Maxdepth> setting can be specified to avoid venturing
+too deeply into deep data structures.  See L<Data::Dumper>.
+
+The XSUB implementation of Dump() is now automatically called if the
+C<Useqq> setting is not in use.
+
+Dumping C<qr//> objects works correctly.
+
+=item DB
+
+C<DB> is an experimental module that exposes a clean abstraction
+to Perl's debugging API.
+
+=item DB_File
+
+DB_File can now be built with Berkeley DB versions 1, 2 or 3.
+See C<ext/DB_File/Changes>.
+
+=item Devel::DProf
+
+Devel::DProf, a Perl source code profiler has been added.  See
+L<Devel::DProf> and L<dprofpp>.
+
+=item Devel::Peek
+
+The Devel::Peek module provides access to the internal representation
+of Perl variables and data.  It is a data debugging tool for the XS programmer.
+
+=item Dumpvalue
+
+The Dumpvalue module provides screen dumps of Perl data.
+
+=item DynaLoader
+
+DynaLoader now supports a dl_unload_file() function on platforms that
+support unloading shared objects using dlclose().
+
+Perl can also optionally arrange to unload all extension shared objects
+loaded by Perl.  To enable this, build Perl with the Configure option
+C<-Accflags=-DDL_UNLOAD_ALL_AT_EXIT>.  (This maybe useful if you are
+using Apache with mod_perl.)
+
+=item English
+
+$PERL_VERSION now stands for C<$^V> (a string value) rather than for C<$]>
+(a numeric value).
+
+=item Env
+
+Env now supports accessing environment variables like PATH as array
+variables.
+
+=item Fcntl
+
+More Fcntl constants added: F_SETLK64, F_SETLKW64, O_LARGEFILE for
+large file (more than 4GB) access (NOTE: the O_LARGEFILE is
+automatically added to sysopen() flags if large file support has been
+configured, as is the default), Free/Net/OpenBSD locking behaviour
+flags F_FLOCK, F_POSIX, Linux F_SHLCK, and O_ACCMODE: the combined
+mask of O_RDONLY, O_WRONLY, and O_RDWR.  The seek()/sysseek()
+constants SEEK_SET, SEEK_CUR, and SEEK_END are available via the
+C<:seek> tag.  The chmod()/stat() S_IF* constants and S_IS* functions
+are available via the C<:mode> tag.
+
+=item File::Compare
+
+A compare_text() function has been added, which allows custom
+comparison functions.  See L<File::Compare>.
+
+=item File::Find
+
+File::Find now works correctly when the wanted() function is either
+autoloaded or is a symbolic reference.
+
+A bug that caused File::Find to lose track of the working directory
+when pruning top-level directories has been fixed.
+
+File::Find now also supports several other options to control its
+behavior.  It can follow symbolic links if the C<follow> option is
+specified.  Enabling the C<no_chdir> option will make File::Find skip
+changing the current directory when walking directories.  The C<untaint>
+flag can be useful when running with taint checks enabled.
+
+See L<File::Find>.
+
+=item File::Glob
+
+This extension implements BSD-style file globbing.  By default,
+it will also be used for the internal implementation of the glob()
+operator.  See L<File::Glob>.
+
+=item File::Spec
+
+New methods have been added to the File::Spec module: devnull() returns
+the name of the null device (/dev/null on Unix) and tmpdir() the name of
+the temp directory (normally /tmp on Unix).  There are now also methods
+to convert between absolute and relative filenames: abs2rel() and
+rel2abs().  For compatibility with operating systems that specify volume
+names in file paths, the splitpath(), splitdir(), and catdir() methods
+have been added.
+
+=item File::Spec::Functions
+
+The new File::Spec::Functions modules provides a function interface
+to the File::Spec module.  Allows shorthand
+
+    $fullname = catfile($dir1, $dir2, $file);
+
+instead of
+
+    $fullname = File::Spec->catfile($dir1, $dir2, $file);
+
+=item Getopt::Long
+
+Getopt::Long licensing has changed to allow the Perl Artistic License
+as well as the GPL. It used to be GPL only, which got in the way of
+non-GPL applications that wanted to use Getopt::Long.
+
+Getopt::Long encourages the use of Pod::Usage to produce help
+messages. For example:
+
+    use Getopt::Long;
+    use Pod::Usage;
+    my $man = 0;
+    my $help = 0;
+    GetOptions('help|?' => \$help, man => \$man) or pod2usage(2);
+    pod2usage(1) if $help;
+    pod2usage(-exitstatus => 0, -verbose => 2) if $man;
+
+    __END__
+
+    =head1 NAME
+
+    sample - Using GetOpt::Long and Pod::Usage
+
+    =head1 SYNOPSIS
+
+    sample [options] [file ...]
+
+     Options:
+       -help            brief help message
+       -man             full documentation
+
+    =head1 OPTIONS
+
+    =over 8
+
+    =item B<-help>
+
+    Print a brief help message and exits.
+
+    =item B<-man>
+
+    Prints the manual page and exits.
+
+    =back
+
+    =head1 DESCRIPTION
+
+    B<This program> will read the given input file(s) and do something
+    useful with the contents thereof.
+
+    =cut
+
+See L<Pod::Usage> for details.
+
+A bug that prevented the non-option call-back <> from being
+specified as the first argument has been fixed.
+
+To specify the characters < and > as option starters, use ><. Note,
+however, that changing option starters is strongly deprecated. 
+
+=item IO
+
+write() and syswrite() will now accept a single-argument
+form of the call, for consistency with Perl's syswrite().
+
+You can now create a TCP-based IO::Socket::INET without forcing
+a connect attempt.  This allows you to configure its options
+(like making it non-blocking) and then call connect() manually.
+
+A bug that prevented the IO::Socket::protocol() accessor
+from ever returning the correct value has been corrected.
+
+IO::Socket::connect now uses non-blocking IO instead of alarm()
+to do connect timeouts.
+
+IO::Socket::accept now uses select() instead of alarm() for doing
+timeouts.
+
+IO::Socket::INET->new now sets $! correctly on failure. $@ is
+still set for backwards compatibility.
+
+=item JPL
+
+Java Perl Lingo is now distributed with Perl.  See jpl/README
+for more information.
+
+=item lib
+
+C<use lib> now weeds out any trailing duplicate entries.
+C<no lib> removes all named entries.
+
+=item Math::BigInt
+
+The bitwise operations C<<< << >>>, C<<< >> >>>, C<&>, C<|>,
+and C<~> are now supported on bigints.
+
+=item Math::Complex
+
+The accessor methods Re, Im, arg, abs, rho, and theta can now also
+act as mutators (accessor $z->Re(), mutator $z->Re(3)).
+
+The class method C<display_format> and the corresponding object method
+C<display_format>, in addition to accepting just one argument, now can
+also accept a parameter hash.  Recognized keys of a parameter hash are
+C<"style">, which corresponds to the old one parameter case, and two
+new parameters: C<"format">, which is a printf()-style format string
+(defaults usually to C<"%.15g">, you can revert to the default by
+setting the format string to C<undef>) used for both parts of a
+complex number, and C<"polar_pretty_print"> (defaults to true),
+which controls whether an attempt is made to try to recognize small
+multiples and rationals of pi (2pi, pi/2) at the argument (angle) of a
+polar complex number.
+
+The potentially disruptive change is that in list context both methods
+now I<return the parameter hash>, instead of only the value of the
+C<"style"> parameter.
+
+=item Math::Trig
+
+A little bit of radial trigonometry (cylindrical and spherical),
+radial coordinate conversions, and the great circle distance were added.
+
+=item Pod::Parser, Pod::InputObjects
+
+Pod::Parser is a base class for parsing and selecting sections of
+pod documentation from an input stream.  This module takes care of
+identifying pod paragraphs and commands in the input and hands off the
+parsed paragraphs and commands to user-defined methods which are free
+to interpret or translate them as they see fit.
+
+Pod::InputObjects defines some input objects needed by Pod::Parser, and
+for advanced users of Pod::Parser that need more about a command besides
+its name and text.
+
+As of release 5.6.0 of Perl, Pod::Parser is now the officially sanctioned
+"base parser code" recommended for use by all pod2xxx translators.
+Pod::Text (pod2text) and Pod::Man (pod2man) have already been converted
+to use Pod::Parser and efforts to convert Pod::HTML (pod2html) are already
+underway.  For any questions or comments about pod parsing and translating
+issues and utilities, please use the pod-people@perl.org mailing list.
+
+For further information, please see L<Pod::Parser> and L<Pod::InputObjects>.
+
+=item Pod::Checker, podchecker
+
+This utility checks pod files for correct syntax, according to
+L<perlpod>.  Obvious errors are flagged as such, while warnings are
+printed for mistakes that can be handled gracefully.  The checklist is
+not complete yet.  See L<Pod::Checker>.
+
+=item Pod::ParseUtils, Pod::Find
+
+These modules provide a set of gizmos that are useful mainly for pod
+translators.  L<Pod::Find|Pod::Find> traverses directory structures and
+returns found pod files, along with their canonical names (like
+C<File::Spec::Unix>).  L<Pod::ParseUtils|Pod::ParseUtils> contains
+B<Pod::List> (useful for storing pod list information), B<Pod::Hyperlink>
+(for parsing the contents of C<LE<lt>E<gt>> sequences) and B<Pod::Cache>
+(for caching information about pod files, e.g., link nodes).
+
+=item Pod::Select, podselect
+
+Pod::Select is a subclass of Pod::Parser which provides a function
+named "podselect()" to filter out user-specified sections of raw pod
+documentation from an input stream. podselect is a script that provides
+access to Pod::Select from other scripts to be used as a filter.
+See L<Pod::Select>.
+
+=item Pod::Usage, pod2usage
+
+Pod::Usage provides the function "pod2usage()" to print usage messages for
+a Perl script based on its embedded pod documentation.  The pod2usage()
+function is generally useful to all script authors since it lets them
+write and maintain a single source (the pods) for documentation, thus
+removing the need to create and maintain redundant usage message text
+consisting of information already in the pods.
+
+There is also a pod2usage script which can be used from other kinds of
+scripts to print usage messages from pods (even for non-Perl scripts
+with pods embedded in comments).
+
+For details and examples, please see L<Pod::Usage>.
+
+=item Pod::Text and Pod::Man
+
+Pod::Text has been rewritten to use Pod::Parser.  While pod2text() is
+still available for backwards compatibility, the module now has a new
+preferred interface.  See L<Pod::Text> for the details.  The new Pod::Text
+module is easily subclassed for tweaks to the output, and two such
+subclasses (Pod::Text::Termcap for man-page-style bold and underlining
+using termcap information, and Pod::Text::Color for markup with ANSI color
+sequences) are now standard.
+
+pod2man has been turned into a module, Pod::Man, which also uses
+Pod::Parser.  In the process, several outstanding bugs related to quotes
+in section headers, quoting of code escapes, and nested lists have been
+fixed.  pod2man is now a wrapper script around this module.
+
+=item SDBM_File
+
+An EXISTS method has been added to this module (and sdbm_exists() has
+been added to the underlying sdbm library), so one can now call exists
+on an SDBM_File tied hash and get the correct result, rather than a
+runtime error.
+
+A bug that may have caused data loss when more than one disk block
+happens to be read from the database in a single FETCH() has been
+fixed.
+
+=item Sys::Syslog
+
+Sys::Syslog now uses XSUBs to access facilities from syslog.h so it
+no longer requires syslog.ph to exist. 
+
+=item Sys::Hostname
+
+Sys::Hostname now uses XSUBs to call the C library's gethostname() or
+uname() if they exist.
+
+=item Term::ANSIColor
+
+Term::ANSIColor is a very simple module to provide easy and readable
+access to the ANSI color and highlighting escape sequences, supported by
+most ANSI terminal emulators.  It is now included standard.
+
+=item Time::Local
+
+The timelocal() and timegm() functions used to silently return bogus
+results when the date fell outside the machine's integer range.  They
+now consistently croak() if the date falls in an unsupported range.
+
+=item Win32
+
+The error return value in list context has been changed for all functions
+that return a list of values.  Previously these functions returned a list
+with a single element C<undef> if an error occurred.  Now these functions
+return the empty list in these situations.  This applies to the following
+functions:
+
+    Win32::FsType
+    Win32::GetOSVersion
+
+The remaining functions are unchanged and continue to return C<undef> on
+error even in list context.
+
+The Win32::SetLastError(ERROR) function has been added as a complement
+to the Win32::GetLastError() function.
+
+The new Win32::GetFullPathName(FILENAME) returns the full absolute
+pathname for FILENAME in scalar context.  In list context it returns
+a two-element list containing the fully qualified directory name and
+the filename.  See L<Win32>.
+
+=item XSLoader
+
+The XSLoader extension is a simpler alternative to DynaLoader.
+See L<XSLoader>.
+
+=item DBM Filters
+
+A new feature called "DBM Filters" has been added to all the
+DBM modules--DB_File, GDBM_File, NDBM_File, ODBM_File, and SDBM_File.
+DBM Filters add four new methods to each DBM module:
+
+    filter_store_key
+    filter_store_value
+    filter_fetch_key
+    filter_fetch_value
+
+These can be used to filter key-value pairs before the pairs are
+written to the database or just after they are read from the database.
+See L<perldbmfilter> for further information.
+
+=back
+
+=head2 Pragmata
+
+C<use attrs> is now obsolete, and is only provided for
+backward-compatibility.  It's been replaced by the C<sub : attributes>
+syntax.  See L<perlsub/"Subroutine Attributes"> and L<attributes>.
+
+Lexical warnings pragma, C<use warnings;>, to control optional warnings.
+See L<perllexwarn>.
+
+C<use filetest> to control the behaviour of filetests (C<-r> C<-w>
+...).  Currently only one subpragma implemented, "use filetest
+'access';", that uses access(2) or equivalent to check permissions
+instead of using stat(2) as usual.  This matters in filesystems
+where there are ACLs (access control lists): the stat(2) might lie,
+but access(2) knows better.
+
+The C<open> pragma can be used to specify default disciplines for
+handle constructors (e.g. open()) and for qx//.  The two
+pseudo-disciplines C<:raw> and C<:crlf> are currently supported on
+DOS-derivative platforms (i.e. where binmode is not a no-op).
+See also L</"binmode() can be used to set :crlf and :raw modes">.
+
+=head1 Utility Changes
+
+=head2 dprofpp
+
+C<dprofpp> is used to display profile data generated using C<Devel::DProf>.
+See L<dprofpp>.
+
+=head2 find2perl
+
+The C<find2perl> utility now uses the enhanced features of the File::Find
+module.  The -depth and -follow options are supported.  Pod documentation
+is also included in the script.
+
+=head2 h2xs
+
+The C<h2xs> tool can now work in conjunction with C<C::Scan> (available
+from CPAN) to automatically parse real-life header files.  The C<-M>,
+C<-a>, C<-k>, and C<-o> options are new.
+
+=head2 perlcc
+
+C<perlcc> now supports the C and Bytecode backends.  By default,
+it generates output from the simple C backend rather than the
+optimized C backend.
+
+Support for non-Unix platforms has been improved.
+
+=head2 perldoc
+
+C<perldoc> has been reworked to avoid possible security holes.
+It will not by default let itself be run as the superuser, but you
+may still use the B<-U> switch to try to make it drop privileges
+first.
+
+=head2 The Perl Debugger
+
+Many bug fixes and enhancements were added to F<perl5db.pl>, the
+Perl debugger.  The help documentation was rearranged.  New commands
+include C<< < ? >>, C<< > ? >>, and C<< { ? >> to list out current
+actions, C<man I<docpage>> to run your doc viewer on some perl
+docset, and support for quoted options.  The help information was
+rearranged, and should be viewable once again if you're using B<less>
+as your pager.  A serious security hole was plugged--you should
+immediately remove all older versions of the Perl debugger as
+installed in previous releases, all the way back to perl3, from
+your system to avoid being bitten by this.
+
+=head1 Improved Documentation
+
+Many of the platform-specific README files are now part of the perl
+installation.  See L<perl> for the complete list.
+
+=over 4
+
+=item perlapi.pod
+
+The official list of public Perl API functions.
+
+=item perlboot.pod
+
+A tutorial for beginners on object-oriented Perl.
+
+=item perlcompile.pod
+
+An introduction to using the Perl Compiler suite.
+
+=item perldbmfilter.pod
+
+A howto document on using the DBM filter facility.
+
+=item perldebug.pod
+
+All material unrelated to running the Perl debugger, plus all
+low-level guts-like details that risked crushing the casual user
+of the debugger, have been relocated from the old manpage to the
+next entry below.
+
+=item perldebguts.pod
+
+This new manpage contains excessively low-level material not related
+to the Perl debugger, but slightly related to debugging Perl itself.
+It also contains some arcane internal details of how the debugging
+process works that may only be of interest to developers of Perl
+debuggers.
+
+=item perlfork.pod
+
+Notes on the fork() emulation currently available for the Windows platform.
+
+=item perlfilter.pod
+
+An introduction to writing Perl source filters.
+
+=item perlhack.pod
+
+Some guidelines for hacking the Perl source code.
+
+=item perlintern.pod
+
+A list of internal functions in the Perl source code.
+(List is currently empty.)
+
+=item perllexwarn.pod
+
+Introduction and reference information about lexically scoped
+warning categories.
+
+=item perlnumber.pod
+
+Detailed information about numbers as they are represented in Perl.
+
+=item perlopentut.pod
+
+A tutorial on using open() effectively.
+
+=item perlreftut.pod
+
+A tutorial that introduces the essentials of references.
+
+=item perltootc.pod
+
+A tutorial on managing class data for object modules.
+
+=item perltodo.pod
+
+Discussion of the most often wanted features that may someday be
+supported in Perl.
+
+=item perlunicode.pod
+
+An introduction to Unicode support features in Perl.
+
+=back
+
+=head1 Performance enhancements
+
+=head2 Simple sort() using { $a <=> $b } and the like are optimized
+
+Many common sort() operations using a simple inlined block are now
+optimized for faster performance.
+
+=head2 Optimized assignments to lexical variables
+
+Certain operations in the RHS of assignment statements have been
+optimized to directly set the lexical variable on the LHS,
+eliminating redundant copying overheads.
+
+=head2 Faster subroutine calls
+
+Minor changes in how subroutine calls are handled internally
+provide marginal improvements in performance.
+
+=item delete(), each(), values() and hash iteration are faster
+
+The hash values returned by delete(), each(), values() and hashes in a
+list context are the actual values in the hash, instead of copies.
+This results in significantly better performance, because it eliminates
+needless copying in most situations.
+
+=head1 Installation and Configuration Improvements
+
+=head2 -Dusethreads means something different
+
+The -Dusethreads flag now enables the experimental interpreter-based thread
+support by default.  To get the flavor of experimental threads that was in
+5.005 instead, you need to run Configure with "-Dusethreads -Duse5005threads".
+
+As of v5.6.0, interpreter-threads support is still lacking a way to
+create new threads from Perl (i.e., C<use Thread;> will not work with
+interpreter threads).  C<use Thread;> continues to be available when you
+specify the -Duse5005threads option to Configure, bugs and all.
+
+    NOTE: Support for threads continues to be an experimental feature.
+    Interfaces and implementation are subject to sudden and drastic changes.
+
+=head2 New Configure flags
+
+The following new flags may be enabled on the Configure command line
+by running Configure with C<-Dflag>.
+
+    usemultiplicity
+    usethreads useithreads     (new interpreter threads: no Perl API yet)
+    usethreads use5005threads  (threads as they were in 5.005)
+
+    use64bitint                        (equal to now deprecated 'use64bits')
+    use64bitall
+
+    uselongdouble
+    usemorebits
+    uselargefiles
+    usesocks                   (only SOCKS v5 supported)
+
+=head2 Threadedness and 64-bitness now more daring
+
+The Configure options enabling the use of threads and the use of
+64-bitness are now more daring in the sense that they no more have an
+explicit list of operating systems of known threads/64-bit
+capabilities.  In other words: if your operating system has the
+necessary APIs and datatypes, you should be able just to go ahead and
+use them, for threads by Configure -Dusethreads, and for 64 bits
+either explicitly by Configure -Duse64bitint or implicitly if your
+system has 64-bit wide datatypes.  See also L<"64-bit support">.
+
+=head2 Long Doubles
+
+Some platforms have "long doubles", floating point numbers of even
+larger range than ordinary "doubles".  To enable using long doubles for
+Perl's scalars, use -Duselongdouble.
+
+=head2 -Dusemorebits
+
+You can enable both -Duse64bitint and -Duselongdouble with -Dusemorebits.
+See also L<"64-bit support">.
+
+=head2 -Duselargefiles
+
+Some platforms support system APIs that are capable of handling large files
+(typically, files larger than two gigabytes).  Perl will try to use these
+APIs if you ask for -Duselargefiles.
+
+See L<"Large file support"> for more information. 
+
+=head2 installusrbinperl
+
+You can use "Configure -Uinstallusrbinperl" which causes installperl
+to skip installing perl also as /usr/bin/perl.  This is useful if you
+prefer not to modify /usr/bin for some reason or another but harmful
+because many scripts assume to find Perl in /usr/bin/perl.
+
+=head2 SOCKS support
+
+You can use "Configure -Dusesocks" which causes Perl to probe
+for the SOCKS proxy protocol library (v5, not v4).  For more information
+on SOCKS, see:
+
+    http://www.socks.nec.com/
+
+=head2 C<-A> flag
+
+You can "post-edit" the Configure variables using the Configure C<-A>
+switch.  The editing happens immediately after the platform specific
+hints files have been processed but before the actual configuration
+process starts.  Run C<Configure -h> to find out the full C<-A> syntax.
+
+=head2 Enhanced Installation Directories
+
+The installation structure has been enriched to improve the support
+for maintaining multiple versions of perl, to provide locations for
+vendor-supplied modules, scripts, and manpages, and to ease maintenance
+of locally-added modules, scripts, and manpages.  See the section on
+Installation Directories in the INSTALL file for complete details.
+For most users building and installing from source, the defaults should
+be fine.
+
+If you previously used C<Configure -Dsitelib> or C<-Dsitearch> to set
+special values for library directories, you might wish to consider using
+the new C<-Dsiteprefix> setting instead.  Also, if you wish to re-use a
+config.sh file from an earlier version of perl, you should be sure to
+check that Configure makes sensible choices for the new directories.
+See INSTALL for complete details.
+
+=head1 Platform specific changes
+
+=head2 Supported platforms
+
+=over 4
+
+=item *
+
+The Mach CThreads (NEXTSTEP, OPENSTEP) are now supported by the Thread
+extension.
+
+=item *
+
+GNU/Hurd is now supported.
+
+=item *
+
+Rhapsody/Darwin is now supported.
+
+=item *
+
+EPOC is now supported (on Psion 5).
+
+=item *
+
+The cygwin port (formerly cygwin32) has been greatly improved.
+
+=back
+
+=head2 DOS
+
+=over 4
+
+=item *
+
+Perl now works with djgpp 2.02 (and 2.03 alpha).
+
+=item *
+
+Environment variable names are not converted to uppercase any more.
+
+=item *
+
+Incorrect exit codes from backticks have been fixed.
+
+=item *
+
+This port continues to use its own builtin globbing (not File::Glob).
+
+=back
+
+=head2 OS390 (OpenEdition MVS)
+
+Support for this EBCDIC platform has not been renewed in this release.
+There are difficulties in reconciling Perl's standardization on UTF-8
+as its internal representation for characters with the EBCDIC character
+set, because the two are incompatible.
+
+It is unclear whether future versions will renew support for this
+platform, but the possibility exists.
+
+=head2 VMS
+
+Numerous revisions and extensions to configuration, build, testing, and
+installation process to accommodate core changes and VMS-specific options.
+
+Expand %ENV-handling code to allow runtime mapping to logical names,
+CLI symbols, and CRTL environ array.
+
+Extension of subprocess invocation code to accept filespecs as command
+"verbs".
+
+Add to Perl command line processing the ability to use default file types and
+to recognize Unix-style C<2E<gt>&1>.
+
+Expansion of File::Spec::VMS routines, and integration into ExtUtils::MM_VMS.
+
+Extension of ExtUtils::MM_VMS to handle complex extensions more flexibly.
+
+Barewords at start of Unix-syntax paths may be treated as text rather than
+only as logical names.
+
+Optional secure translation of several logical names used internally by Perl.
+
+Miscellaneous bugfixing and porting of new core code to VMS.
+
+Thanks are gladly extended to the many people who have contributed VMS
+patches, testing, and ideas.
+
+=head2 Win32
+
+Perl can now emulate fork() internally, using multiple interpreters running
+in different concurrent threads.  This support must be enabled at build
+time.  See L<perlfork> for detailed information.
+
+When given a pathname that consists only of a drivename, such as C<A:>,
+opendir() and stat() now use the current working directory for the drive
+rather than the drive root.
+
+The builtin XSUB functions in the Win32:: namespace are documented.  See
+L<Win32>.
+
+$^X now contains the full path name of the running executable.
+
+A Win32::GetLongPathName() function is provided to complement
+Win32::GetFullPathName() and Win32::GetShortPathName().  See L<Win32>.
+
+POSIX::uname() is supported.
+
+system(1,...) now returns true process IDs rather than process
+handles.  kill() accepts any real process id, rather than strictly
+return values from system(1,...).
+
+For better compatibility with Unix, C<kill(0, $pid)> can now be used to
+test whether a process exists.
+
+The C<Shell> module is supported.
+
+Better support for building Perl under command.com in Windows 95
+has been added.
+
+Scripts are read in binary mode by default to allow ByteLoader (and
+the filter mechanism in general) to work properly.  For compatibility,
+the DATA filehandle will be set to text mode if a carriage return is
+detected at the end of the line containing the __END__ or __DATA__
+token; if not, the DATA filehandle will be left open in binary mode.
+Earlier versions always opened the DATA filehandle in text mode.
+
+The glob() operator is implemented via the C<File::Glob> extension,
+which supports glob syntax of the C shell.  This increases the flexibility
+of the glob() operator, but there may be compatibility issues for
+programs that relied on the older globbing syntax.  If you want to
+preserve compatibility with the older syntax, you might want to run
+perl with C<-MFile::DosGlob>.  For details and compatibility information,
+see L<File::Glob>.
+
+=head1 Significant bug fixes
+
+=head2 <HANDLE> on empty files
+
+With C<$/> set to C<undef>, "slurping" an empty file returns a string of
+zero length (instead of C<undef>, as it used to) the first time the
+HANDLE is read after C<$/> is set to C<undef>.  Further reads yield
+C<undef>.
+
+This means that the following will append "foo" to an empty file (it used
+to do nothing):
+
+    perl -0777 -pi -e 's/^/foo/' empty_file
+
+The behaviour of:
+
+    perl -pi -e 's/^/foo/' empty_file
+
+is unchanged (it continues to leave the file empty).
+
+=head2 C<eval '...'> improvements
+
+Line numbers (as reflected by caller() and most diagnostics) within
+C<eval '...'> were often incorrect where here documents were involved.
+This has been corrected.
+
+Lexical lookups for variables appearing in C<eval '...'> within
+functions that were themselves called within an C<eval '...'> were
+searching the wrong place for lexicals.  The lexical search now
+correctly ends at the subroutine's block boundary.
+
+The use of C<return> within C<eval {...}> caused $@ not to be reset
+correctly when no exception occurred within the eval.  This has
+been fixed.
+
+Parsing of here documents used to be flawed when they appeared as
+the replacement expression in C<eval 's/.../.../e'>.  This has
+been fixed.
+
+=head2 All compilation errors are true errors
+
+Some "errors" encountered at compile time were by necessity 
+generated as warnings followed by eventual termination of the
+program.  This enabled more such errors to be reported in a
+single run, rather than causing a hard stop at the first error
+that was encountered.
+
+The mechanism for reporting such errors has been reimplemented
+to queue compile-time errors and report them at the end of the
+compilation as true errors rather than as warnings.  This fixes
+cases where error messages leaked through in the form of warnings
+when code was compiled at run time using C<eval STRING>, and
+also allows such errors to be reliably trapped using C<eval "...">.
+
+=head2 Implicitly closed filehandles are safer
+
+Sometimes implicitly closed filehandles (as when they are localized,
+and Perl automatically closes them on exiting the scope) could
+inadvertently set $? or $!.  This has been corrected.
+
+
+=head2 Behavior of list slices is more consistent
+
+When taking a slice of a literal list (as opposed to a slice of
+an array or hash), Perl used to return an empty list if the
+result happened to be composed of all undef values.
+
+The new behavior is to produce an empty list if (and only if)
+the original list was empty.  Consider the following example:
+
+    @a = (1,undef,undef,2)[2,1,2];
+
+The old behavior would have resulted in @a having no elements.
+The new behavior ensures it has three undefined elements.
+
+Note in particular that the behavior of slices of the following
+cases remains unchanged:
+
+    @a = ()[1,2];
+    @a = (getpwent)[7,0];
+    @a = (anything_returning_empty_list())[2,1,2];
+    @a = @b[2,1,2];
+    @a = @c{'a','b','c'};
+
+See L<perldata>.
+
+=head2 C<(\$)> prototype and C<$foo{a}>
+
+A scalar reference prototype now correctly allows a hash or
+array element in that slot.
+
+=head2 C<goto &sub> and AUTOLOAD
+
+The C<goto &sub> construct works correctly when C<&sub> happens
+to be autoloaded.
+
+=head2 C<-bareword> allowed under C<use integer>
+
+The autoquoting of barewords preceded by C<-> did not work
+in prior versions when the C<integer> pragma was enabled.
+This has been fixed.
+
+=head2 Failures in DESTROY()
+
+When code in a destructor threw an exception, it went unnoticed
+in earlier versions of Perl, unless someone happened to be
+looking in $@ just after the point the destructor happened to
+run.  Such failures are now visible as warnings when warnings are
+enabled.
+
+=head2 Locale bugs fixed
+
+printf() and sprintf() previously reset the numeric locale
+back to the default "C" locale.  This has been fixed.
+
+Numbers formatted according to the local numeric locale
+(such as using a decimal comma instead of a decimal dot) caused
+"isn't numeric" warnings, even while the operations accessing
+those numbers produced correct results.  These warnings have been
+discontinued.
+
+=head2 Memory leaks
+
+The C<eval 'return sub {...}'> construct could sometimes leak
+memory.  This has been fixed.
+
+Operations that aren't filehandle constructors used to leak memory
+when used on invalid filehandles.  This has been fixed.
+
+Constructs that modified C<@_> could fail to deallocate values
+in C<@_> and thus leak memory.  This has been corrected.
+
+=head2 Spurious subroutine stubs after failed subroutine calls
+
+Perl could sometimes create empty subroutine stubs when a
+subroutine was not found in the package.  Such cases stopped
+later method lookups from progressing into base packages.
+This has been corrected.
+
+=head2 Taint failures under C<-U>
+
+When running in unsafe mode, taint violations could sometimes
+cause silent failures.  This has been fixed.
+
+=head2 END blocks and the C<-c> switch
+
+Prior versions used to run BEGIN B<and> END blocks when Perl was
+run in compile-only mode.  Since this is typically not the expected
+behavior, END blocks are not executed anymore when the C<-c> switch
+is used, or if compilation fails.
+
+See L<CHECK blocks> for how to run things when the compile phase ends.
+
+=head2 Potential to leak DATA filehandles
+
+Using the C<__DATA__> token creates an implicit filehandle to
+the file that contains the token.  It is the program's
+responsibility to close it when it is done reading from it.
+
+This caveat is now better explained in the documentation.
+See L<perldata>.
+
+=head1 New or Changed Diagnostics
+
+=over 4
+
+=item "%s" variable %s masks earlier declaration in same %s
+
+(W misc) A "my" or "our" variable has been redeclared in the current scope or statement,
+effectively eliminating all access to the previous instance.  This is almost
+always a typographical error.  Note that the earlier variable will still exist
+until the end of the scope or until all closure referents to it are
+destroyed.
+
+=item "my sub" not yet implemented
+
+(F) Lexically scoped subroutines are not yet implemented.  Don't try that
+yet.
+
+=item "our" variable %s redeclared
+
+(W misc) You seem to have already declared the same global once before in the
+current lexical scope.
+
+=item '!' allowed only after types %s
+
+(F) The '!' is allowed in pack() and unpack() only after certain types.
+See L<perlfunc/pack>.
+
+=item / cannot take a count
+
+(F) You had an unpack template indicating a counted-length string,
+but you have also specified an explicit size for the string.
+See L<perlfunc/pack>.
+
+=item / must be followed by a, A or Z
+
+(F) You had an unpack template indicating a counted-length string,
+which must be followed by one of the letters a, A or Z
+to indicate what sort of string is to be unpacked.
+See L<perlfunc/pack>.
+
+=item / must be followed by a*, A* or Z*
+
+(F) You had a pack template indicating a counted-length string,
+Currently the only things that can have their length counted are a*, A* or Z*.
+See L<perlfunc/pack>.
+
+=item / must follow a numeric type
+
+(F) You had an unpack template that contained a '#',
+but this did not follow some numeric unpack specification.
+See L<perlfunc/pack>.
+
+=item /%s/: Unrecognized escape \\%c passed through
+
+(W regexp) You used a backslash-character combination which is not recognized
+by Perl.  This combination appears in an interpolated variable or a
+C<'>-delimited regular expression.  The character was understood literally.
+
+=item /%s/: Unrecognized escape \\%c in character class passed through
+
+(W regexp) You used a backslash-character combination which is not recognized
+by Perl inside character classes.  The character was understood literally.
+
+=item /%s/ should probably be written as "%s"
+
+(W syntax) You have used a pattern where Perl expected to find a string,
+as in the first argument to C<join>.  Perl will treat the true
+or false result of matching the pattern against $_ as the string,
+which is probably not what you had in mind.
+
+=item %s() called too early to check prototype
+
+(W prototype) You've called a function that has a prototype before the parser saw a
+definition or declaration for it, and Perl could not check that the call
+conforms to the prototype.  You need to either add an early prototype
+declaration for the subroutine in question, or move the subroutine
+definition ahead of the call to get proper prototype checking.  Alternatively,
+if you are certain that you're calling the function correctly, you may put
+an ampersand before the name to avoid the warning.  See L<perlsub>.
+
+=item %s argument is not a HASH or ARRAY element
+
+(F) The argument to exists() must be a hash or array element, such as:
+
+    $foo{$bar}
+    $ref->{"susie"}[12]
+
+=item %s argument is not a HASH or ARRAY element or slice
+
+(F) The argument to delete() must be either a hash or array element, such as:
+
+    $foo{$bar}
+    $ref->{"susie"}[12]
+
+or a hash or array slice, such as:
+
+    @foo[$bar, $baz, $xyzzy]
+    @{$ref->[12]}{"susie", "queue"}
+
+=item %s argument is not a subroutine name
+
+(F) The argument to exists() for C<exists &sub> must be a subroutine
+name, and not a subroutine call.  C<exists &sub()> will generate this error.
+
+=item %s package attribute may clash with future reserved word: %s
+
+(W reserved) A lowercase attribute name was used that had a package-specific handler.
+That name might have a meaning to Perl itself some day, even though it
+doesn't yet.  Perhaps you should use a mixed-case attribute name, instead.
+See L<attributes>.
+
+=item (in cleanup) %s
+
+(W misc) This prefix usually indicates that a DESTROY() method raised
+the indicated exception.  Since destructors are usually called by
+the system at arbitrary points during execution, and often a vast
+number of times, the warning is issued only once for any number
+of failures that would otherwise result in the same message being
+repeated.
+
+Failure of user callbacks dispatched using the C<G_KEEPERR> flag
+could also result in this warning.  See L<perlcall/G_KEEPERR>.
+
+=item <> should be quotes
+
+(F) You wrote C<< require <file> >> when you should have written
+C<require 'file'>.
+
+=item Attempt to join self
+
+(F) You tried to join a thread from within itself, which is an
+impossible task.  You may be joining the wrong thread, or you may
+need to move the join() to some other thread.
+
+=item Bad evalled substitution pattern
+
+(F) You've used the /e switch to evaluate the replacement for a
+substitution, but perl found a syntax error in the code to evaluate,
+most likely an unexpected right brace '}'.
+
+=item Bad realloc() ignored
+
+(S) An internal routine called realloc() on something that had never been
+malloc()ed in the first place. Mandatory, but can be disabled by
+setting environment variable C<PERL_BADFREE> to 1.
+
+=item Bareword found in conditional
+
+(W bareword) The compiler found a bareword where it expected a conditional,
+which often indicates that an || or && was parsed as part of the
+last argument of the previous construct, for example:
+
+    open FOO || die;
+
+It may also indicate a misspelled constant that has been interpreted
+as a bareword:
+
+    use constant TYPO => 1;
+    if (TYOP) { print "foo" }
+
+The C<strict> pragma is useful in avoiding such errors.
+
+=item Binary number > 0b11111111111111111111111111111111 non-portable
+
+(W portable) The binary number you specified is larger than 2**32-1
+(4294967295) and therefore non-portable between systems.  See
+L<perlport> for more on portability concerns.
+
+=item Bit vector size > 32 non-portable
+
+(W portable) Using bit vector sizes larger than 32 is non-portable.
+
+=item Buffer overflow in prime_env_iter: %s
+
+(W internal) A warning peculiar to VMS.  While Perl was preparing to iterate over
+%ENV, it encountered a logical name or symbol definition which was too long,
+so it was truncated to the string shown.
+
+=item Can't check filesystem of script "%s"
+
+(P) For some reason you can't check the filesystem of the script for nosuid.
+
+=item Can't declare class for non-scalar %s in "%s"
+
+(S) Currently, only scalar variables can declared with a specific class
+qualifier in a "my" or "our" declaration.  The semantics may be extended
+for other types of variables in future.
+
+=item Can't declare %s in "%s"
+
+(F) Only scalar, array, and hash variables may be declared as "my" or
+"our" variables.  They must have ordinary identifiers as names.
+
+=item Can't ignore signal CHLD, forcing to default
+
+(W signal) Perl has detected that it is being run with the SIGCHLD signal
+(sometimes known as SIGCLD) disabled.  Since disabling this signal
+will interfere with proper determination of exit status of child
+processes, Perl has reset the signal to its default value.
+This situation typically indicates that the parent program under
+which Perl may be running (e.g., cron) is being very careless.
+
+=item Can't modify non-lvalue subroutine call
+
+(F) Subroutines meant to be used in lvalue context should be declared as
+such, see L<perlsub/"Lvalue subroutines">.
+
+=item Can't read CRTL environ
+
+(S) A warning peculiar to VMS.  Perl tried to read an element of %ENV
+from the CRTL's internal environment array and discovered the array was
+missing.  You need to figure out where your CRTL misplaced its environ
+or define F<PERL_ENV_TABLES> (see L<perlvms>) so that environ is not searched.
+
+=item Can't remove %s: %s, skipping file 
+
+(S) You requested an inplace edit without creating a backup file.  Perl
+was unable to remove the original file to replace it with the modified
+file.  The file was left unmodified.
+
+=item Can't return %s from lvalue subroutine
+
+(F) Perl detected an attempt to return illegal lvalues (such
+as temporary or readonly values) from a subroutine used as an lvalue.
+This is not allowed.
+
+=item Can't weaken a nonreference
+
+(F) You attempted to weaken something that was not a reference.  Only
+references can be weakened.
+
+=item Character class [:%s:] unknown
+
+(F) The class in the character class [: :] syntax is unknown.
+See L<perlre>.
+
+=item Character class syntax [%s] belongs inside character classes
+
+(W unsafe) The character class constructs [: :], [= =], and [. .]  go
+I<inside> character classes, the [] are part of the construct,
+for example: /[012[:alpha:]345]/.  Note that [= =] and [. .]
+are not currently implemented; they are simply placeholders for
+future extensions.
+
+=item Constant is not %s reference
+
+(F) A constant value (perhaps declared using the C<use constant> pragma)
+is being dereferenced, but it amounts to the wrong type of reference.  The
+message indicates the type of reference that was expected. This usually
+indicates a syntax error in dereferencing the constant value.
+See L<perlsub/"Constant Functions"> and L<constant>.
+
+=item constant(%s): %s
+
+(F) The parser found inconsistencies either while attempting to define an
+overloaded constant, or when trying to find the character name specified
+in the C<\N{...}> escape.  Perhaps you forgot to load the corresponding
+C<overload> or C<charnames> pragma?  See L<charnames> and L<overload>.
+
+=item CORE::%s is not a keyword
+
+(F) The CORE:: namespace is reserved for Perl keywords.
+
+=item defined(@array) is deprecated
+
+(D) defined() is not usually useful on arrays because it checks for an
+undefined I<scalar> value.  If you want to see if the array is empty,
+just use C<if (@array) { # not empty }> for example.  
+
+=item defined(%hash) is deprecated
+
+(D) defined() is not usually useful on hashes because it checks for an
+undefined I<scalar> value.  If you want to see if the hash is empty,
+just use C<if (%hash) { # not empty }> for example.  
+
+=item Did not produce a valid header
+
+See Server error.
+
+=item (Did you mean "local" instead of "our"?)
+
+(W misc) Remember that "our" does not localize the declared global variable.
+You have declared it again in the same lexical scope, which seems superfluous.
+
+=item Document contains no data
+
+See Server error.
+
+=item entering effective %s failed
+
+(F) While under the C<use filetest> pragma, switching the real and
+effective uids or gids failed.
+
+=item false [] range "%s" in regexp
+
+(W regexp) A character class range must start and end at a literal character, not
+another character class like C<\d> or C<[:alpha:]>.  The "-" in your false
+range is interpreted as a literal "-".  Consider quoting the "-",  "\-".
+See L<perlre>.
+
+=item Filehandle %s opened only for output
+
+(W io) You tried to read from a filehandle opened only for writing.  If you
+intended it to be a read/write filehandle, you needed to open it with
+"+<" or "+>" or "+>>" instead of with "<" or nothing.  If
+you intended only to read from the file, use "<".  See
+L<perlfunc/open>.
+
+=item flock() on closed filehandle %s
+
+(W closed) The filehandle you're attempting to flock() got itself closed some
+time before now.  Check your logic flow.  flock() operates on filehandles.
+Are you attempting to call flock() on a dirhandle by the same name?
+
+=item Global symbol "%s" requires explicit package name
+
+(F) You've said "use strict vars", which indicates that all variables
+must either be lexically scoped (using "my"), declared beforehand using
+"our", or explicitly qualified to say which package the global variable
+is in (using "::").
+
+=item Hexadecimal number > 0xffffffff non-portable
+
+(W portable) The hexadecimal number you specified is larger than 2**32-1
+(4294967295) and therefore non-portable between systems.  See
+L<perlport> for more on portability concerns.
+
+=item Ill-formed CRTL environ value "%s"
+
+(W internal) A warning peculiar to VMS.  Perl tried to read the CRTL's internal
+environ array, and encountered an element without the C<=> delimiter
+used to separate keys from values.  The element is ignored.
+
+=item Ill-formed message in prime_env_iter: |%s|
+
+(W internal) A warning peculiar to VMS.  Perl tried to read a logical name
+or CLI symbol definition when preparing to iterate over %ENV, and
+didn't see the expected delimiter between key and value, so the
+line was ignored.
+
+=item Illegal binary digit %s
+
+(F) You used a digit other than 0 or 1 in a binary number.
+
+=item Illegal binary digit %s ignored
+
+(W digit) You may have tried to use a digit other than 0 or 1 in a binary number.
+Interpretation of the binary number stopped before the offending digit.
+
+=item Illegal number of bits in vec
+
+(F) The number of bits in vec() (the third argument) must be a power of
+two from 1 to 32 (or 64, if your platform supports that).
+
+=item Integer overflow in %s number
+
+(W overflow) The hexadecimal, octal or binary number you have specified either
+as a literal or as an argument to hex() or oct() is too big for your
+architecture, and has been converted to a floating point number.  On a
+32-bit architecture the largest hexadecimal, octal or binary number
+representable without overflow is 0xFFFFFFFF, 037777777777, or
+0b11111111111111111111111111111111 respectively.  Note that Perl
+transparently promotes all numbers to a floating point representation
+internally--subject to loss of precision errors in subsequent
+operations.
+
+=item Invalid %s attribute: %s
+
+The indicated attribute for a subroutine or variable was not recognized
+by Perl or by a user-supplied handler.  See L<attributes>.
+
+=item Invalid %s attributes: %s
+
+The indicated attributes for a subroutine or variable were not recognized
+by Perl or by a user-supplied handler.  See L<attributes>.
+
+=item invalid [] range "%s" in regexp
+
+The offending range is now explicitly displayed.
+
+=item Invalid separator character %s in attribute list
+
+(F) Something other than a colon or whitespace was seen between the
+elements of an attribute list.  If the previous attribute
+had a parenthesised parameter list, perhaps that list was terminated
+too soon.  See L<attributes>.
+
+=item Invalid separator character %s in subroutine attribute list
+
+(F) Something other than a colon or whitespace was seen between the
+elements of a subroutine attribute list.  If the previous attribute
+had a parenthesised parameter list, perhaps that list was terminated
+too soon.
+
+=item leaving effective %s failed
+
+(F) While under the C<use filetest> pragma, switching the real and
+effective uids or gids failed.
+
+=item Lvalue subs returning %s not implemented yet
+
+(F) Due to limitations in the current implementation, array and hash
+values cannot be returned in subroutines used in lvalue context.
+See L<perlsub/"Lvalue subroutines">.
+
+=item Method %s not permitted
+
+See Server error.
+
+=item Missing %sbrace%s on \N{}
+
+(F) Wrong syntax of character name literal C<\N{charname}> within
+double-quotish context.
+
+=item Missing command in piped open
+
+(W pipe) You used the C<open(FH, "| command")> or C<open(FH, "command |")>
+construction, but the command was missing or blank.
+
+=item Missing name in "my sub"
+
+(F) The reserved syntax for lexically scoped subroutines requires that they
+have a name with which they can be found.
+
+=item No %s specified for -%c
+
+(F) The indicated command line switch needs a mandatory argument, but
+you haven't specified one.
+
+=item No package name allowed for variable %s in "our"
+
+(F) Fully qualified variable names are not allowed in "our" declarations,
+because that doesn't make much sense under existing semantics.  Such
+syntax is reserved for future extensions.
+
+=item No space allowed after -%c
+
+(F) The argument to the indicated command line switch must follow immediately
+after the switch, without intervening spaces.
+
+=item no UTC offset information; assuming local time is UTC
+
+(S) A warning peculiar to VMS.  Perl was unable to find the local
+timezone offset, so it's assuming that local system time is equivalent
+to UTC.  If it's not, define the logical name F<SYS$TIMEZONE_DIFFERENTIAL>
+to translate to the number of seconds which need to be added to UTC to
+get local time.
+
+=item Octal number > 037777777777 non-portable
+
+(W portable) The octal number you specified is larger than 2**32-1 (4294967295)
+and therefore non-portable between systems.  See L<perlport> for more
+on portability concerns.
+
+See also L<perlport> for writing portable code.
+
+=item panic: del_backref
+
+(P) Failed an internal consistency check while trying to reset a weak
+reference.
+
+=item panic: kid popen errno read
+
+(F) forked child returned an incomprehensible message about its errno.
+
+=item panic: magic_killbackrefs
+
+(P) Failed an internal consistency check while trying to reset all weak
+references to an object.
+
+=item Parentheses missing around "%s" list
+
+(W parenthesis) You said something like
+
+    my $foo, $bar = @_;
+
+when you meant
+
+    my ($foo, $bar) = @_;
+
+Remember that "my", "our", and "local" bind tighter than comma.
+
+=item Possible Y2K bug: %s
+
+(W y2k) You are concatenating the number 19 with another number, which
+could be a potential Year 2000 problem.
+
+=item pragma "attrs" is deprecated, use "sub NAME : ATTRS" instead
+
+(W deprecated) You have written something like this:
+
+    sub doit
+    {
+        use attrs qw(locked);
+    }
+
+You should use the new declaration syntax instead.
+
+    sub doit : locked
+    {
+        ...
+
+The C<use attrs> pragma is now obsolete, and is only provided for
+backward-compatibility. See L<perlsub/"Subroutine Attributes">.
+
+
+=item Premature end of script headers
+
+See Server error.
+
+=item Repeat count in pack overflows
+
+(F) You can't specify a repeat count so large that it overflows
+your signed integers.  See L<perlfunc/pack>.
+
+=item Repeat count in unpack overflows
+
+(F) You can't specify a repeat count so large that it overflows
+your signed integers.  See L<perlfunc/unpack>.
+
+=item realloc() of freed memory ignored
+
+(S) An internal routine called realloc() on something that had already
+been freed.
+
+=item Reference is already weak
+
+(W misc) You have attempted to weaken a reference that is already weak.
+Doing so has no effect.
+
+=item setpgrp can't take arguments
+
+(F) Your system has the setpgrp() from BSD 4.2, which takes no arguments,
+unlike POSIX setpgid(), which takes a process ID and process group ID.
+
+=item Strange *+?{} on zero-length expression
+
+(W regexp) You applied a regular expression quantifier in a place where it
+makes no sense, such as on a zero-width assertion.
+Try putting the quantifier inside the assertion instead.  For example,
+the way to match "abc" provided that it is followed by three
+repetitions of "xyz" is C</abc(?=(?:xyz){3})/>, not C</abc(?=xyz){3}/>.
+
+=item switching effective %s is not implemented
+
+(F) While under the C<use filetest> pragma, we cannot switch the
+real and effective uids or gids.
+
+=item This Perl can't reset CRTL environ elements (%s)
+
+=item This Perl can't set CRTL environ elements (%s=%s)
+
+(W internal) Warnings peculiar to VMS.  You tried to change or delete an element
+of the CRTL's internal environ array, but your copy of Perl wasn't
+built with a CRTL that contained the setenv() function.  You'll need to
+rebuild Perl with a CRTL that does, or redefine F<PERL_ENV_TABLES> (see
+L<perlvms>) so that the environ array isn't the target of the change to
+%ENV which produced the warning.
+
+=item Too late to run %s block
+
+(W void) A CHECK or INIT block is being defined during run time proper,
+when the opportunity to run them has already passed.  Perhaps you are
+loading a file with C<require> or C<do> when you should be using
+C<use> instead.  Or perhaps you should put the C<require> or C<do>
+inside a BEGIN block.
+
+=item Unknown open() mode '%s'
+
+(F) The second argument of 3-argument open() is not among the list
+of valid modes: C<< < >>, C<< > >>, C<<< >> >>>, C<< +< >>,
+C<< +> >>, C<<< +>> >>>, C<-|>, C<|->.
+
+=item Unknown process %x sent message to prime_env_iter: %s
+
+(P) An error peculiar to VMS.  Perl was reading values for %ENV before
+iterating over it, and someone else stuck a message in the stream of
+data Perl expected.  Someone's very confused, or perhaps trying to
+subvert Perl's population of %ENV for nefarious purposes.
+
+=item Unrecognized escape \\%c passed through
+
+(W misc) You used a backslash-character combination which is not recognized
+by Perl.  The character was understood literally.
+
+=item Unterminated attribute parameter in attribute list
+
+(F) The lexer saw an opening (left) parenthesis character while parsing an
+attribute list, but the matching closing (right) parenthesis
+character was not found.  You may need to add (or remove) a backslash
+character to get your parentheses to balance.  See L<attributes>.
+
+=item Unterminated attribute list
+
+(F) The lexer found something other than a simple identifier at the start
+of an attribute, and it wasn't a semicolon or the start of a
+block.  Perhaps you terminated the parameter list of the previous attribute
+too soon.  See L<attributes>.
+
+=item Unterminated attribute parameter in subroutine attribute list
+
+(F) The lexer saw an opening (left) parenthesis character while parsing a
+subroutine attribute list, but the matching closing (right) parenthesis
+character was not found.  You may need to add (or remove) a backslash
+character to get your parentheses to balance.
+
+=item Unterminated subroutine attribute list
+
+(F) The lexer found something other than a simple identifier at the start
+of a subroutine attribute, and it wasn't a semicolon or the start of a
+block.  Perhaps you terminated the parameter list of the previous attribute
+too soon.
+
+=item Value of CLI symbol "%s" too long
+
+(W misc) A warning peculiar to VMS.  Perl tried to read the value of an %ENV
+element from a CLI symbol table, and found a resultant string longer
+than 1024 characters.  The return value has been truncated to 1024
+characters.
+
+=item Version number must be a constant number
+
+(P) The attempt to translate a C<use Module n.n LIST> statement into
+its equivalent C<BEGIN> block found an internal inconsistency with
+the version number.
+
+=back
+
+=head1 New tests
+
+=over 4
+
+=item  lib/attrs
+
+Compatibility tests for C<sub : attrs> vs the older C<use attrs>.
+
+=item  lib/env
+
+Tests for new environment scalar capability (e.g., C<use Env qw($BAR);>).
+
+=item  lib/env-array
+
+Tests for new environment array capability (e.g., C<use Env qw(@PATH);>).
+
+=item  lib/io_const
+
+IO constants (SEEK_*, _IO*).
+
+=item  lib/io_dir
+
+Directory-related IO methods (new, read, close, rewind, tied delete).
+
+=item  lib/io_multihomed
+
+INET sockets with multi-homed hosts.
+
+=item  lib/io_poll
+
+IO poll().
+
+=item  lib/io_unix
+
+UNIX sockets.
+
+=item  op/attrs
+
+Regression tests for C<my ($x,@y,%z) : attrs> and <sub : attrs>.
+
+=item  op/filetest
+
+File test operators.
+
+=item  op/lex_assign
+
+Verify operations that access pad objects (lexicals and temporaries).
+
+=item  op/exists_sub
+
+Verify C<exists &sub> operations.
+
+=back
+
+=head1 Incompatible Changes
+
+=head2 Perl Source Incompatibilities
+
+Beware that any new warnings that have been added or old ones
+that have been enhanced are B<not> considered incompatible changes.
+
+Since all new warnings must be explicitly requested via the C<-w>
+switch or the C<warnings> pragma, it is ultimately the programmer's
+responsibility to ensure that warnings are enabled judiciously.
+
+=over 4
+
+=item CHECK is a new keyword
+
+All subroutine definitions named CHECK are now special.  See
+C</"Support for CHECK blocks"> for more information.
+
+=item Treatment of list slices of undef has changed
+
+There is a potential incompatibility in the behavior of list slices
+that are comprised entirely of undefined values.
+See L</"Behavior of list slices is more consistent">.
+
+=head2 Format of $English::PERL_VERSION is different
+
+The English module now sets $PERL_VERSION to $^V (a string value) rather
+than C<$]> (a numeric value).  This is a potential incompatibility.
+Send us a report via perlbug if you are affected by this.
+
+See L</"Improved Perl version numbering system"> for the reasons for
+this change.
+
+=item Literals of the form C<1.2.3> parse differently
+
+Previously, numeric literals with more than one dot in them were
+interpreted as a floating point number concatenated with one or more
+numbers.  Such "numbers" are now parsed as strings composed of the
+specified ordinals.
+
+For example, C<print 97.98.99> used to output C<97.9899> in earlier
+versions, but now prints C<abc>.
+
+See L</"Support for strings represented as a vector of ordinals">.
+
+=item Possibly changed pseudo-random number generator
+
+Perl programs that depend on reproducing a specific set of pseudo-random
+numbers may now produce different output due to improvements made to the
+rand() builtin.  You can use C<sh Configure -Drandfunc=rand> to obtain
+the old behavior.
+
+See L</"Better pseudo-random number generator">.
+
+=item Hashing function for hash keys has changed
+
+Even though Perl hashes are not order preserving, the apparently
+random order encountered when iterating on the contents of a hash
+is actually determined by the hashing algorithm used.  Improvements
+in the algorithm may yield a random order that is B<different> from
+that of previous versions, especially when iterating on hashes.
+
+See L</"Better worst-case behavior of hashes"> for additional
+information.
+
+=item C<undef> fails on read only values
+
+Using the C<undef> operator on a readonly value (such as $1) has
+the same effect as assigning C<undef> to the readonly value--it
+throws an exception.
+
+=item Close-on-exec bit may be set on pipe and socket handles
+
+Pipe and socket handles are also now subject to the close-on-exec
+behavior determined by the special variable $^F.
+
+See L</"More consistent close-on-exec behavior">.
+
+=item Writing C<"$$1"> to mean C<"${$}1"> is unsupported
+
+Perl 5.004 deprecated the interpretation of C<$$1> and
+similar within interpolated strings to mean C<$$ . "1">,
+but still allowed it.
+
+In Perl 5.6.0 and later, C<"$$1"> always means C<"${$1}">.
+
+=item delete(), values() and C<\(%h)> operate on aliases to values, not copies
+
+delete(), each(), values() and hashes in a list context return the actual
+values in the hash, instead of copies (as they used to in earlier
+versions).  Typical idioms for using these constructs copy the
+returned values, but this can make a significant difference when
+creating references to the returned values.  Keys in the hash are still
+returned as copies when iterating on a hash.
+
+See also L</"delete(), each(), values() and hash iteration are faster">.
+
+=item vec(EXPR,OFFSET,BITS) enforces powers-of-two BITS
+
+vec() generates a run-time error if the BITS argument is not
+a valid power-of-two integer.
+
+=item Text of some diagnostic output has changed
+
+Most references to internal Perl operations in diagnostics
+have been changed to be more descriptive.  This may be an
+issue for programs that may incorrectly rely on the exact
+text of diagnostics for proper functioning.
+
+=item C<%@> has been removed
+
+The undocumented special variable C<%@> that used to accumulate
+"background" errors (such as those that happen in DESTROY())
+has been removed, because it could potentially result in memory
+leaks.
+
+=item Parenthesized not() behaves like a list operator
+
+The C<not> operator now falls under the "if it looks like a function,
+it behaves like a function" rule.
+
+As a result, the parenthesized form can be used with C<grep> and C<map>.
+The following construct used to be a syntax error before, but it works
+as expected now:
+
+    grep not($_), @things;
+
+On the other hand, using C<not> with a literal list slice may not
+work.  The following previously allowed construct:
+
+    print not (1,2,3)[0];
+
+needs to be written with additional parentheses now:
+
+    print not((1,2,3)[0]);
+
+The behavior remains unaffected when C<not> is not followed by parentheses.
+
+=item Semantics of bareword prototype C<(*)> have changed
+
+The semantics of the bareword prototype C<*> have changed.  Perl 5.005
+always coerced simple scalar arguments to a typeglob, which wasn't useful
+in situations where the subroutine must distinguish between a simple
+scalar and a typeglob.  The new behavior is to not coerce bareword
+arguments to a typeglob.  The value will always be visible as either
+a simple scalar or as a reference to a typeglob.
+
+See L</"More functional bareword prototype (*)">.
+
+=head2 Semantics of bit operators may have changed on 64-bit platforms
+
+If your platform is either natively 64-bit or if Perl has been
+configured to used 64-bit integers, i.e., $Config{ivsize} is 8, 
+there may be a potential incompatibility in the behavior of bitwise
+numeric operators (& | ^ ~ << >>).  These operators used to strictly
+operate on the lower 32 bits of integers in previous versions, but now
+operate over the entire native integral width.  In particular, note
+that unary C<~> will produce different results on platforms that have
+different $Config{ivsize}.  For portability, be sure to mask off
+the excess bits in the result of unary C<~>, e.g., C<~$x & 0xffffffff>.
+
+See L</"Bit operators support full native integer width">.
+
+=head2 More builtins taint their results
+
+As described in L</"Improved security features">, there may be more
+sources of taint in a Perl program.
+
+To avoid these new tainting behaviors, you can build Perl with the
+Configure option C<-Accflags=-DINCOMPLETE_TAINTS>.  Beware that the
+ensuing perl binary may be insecure.
+
+=back
+
+=head2 C Source Incompatibilities
+
+=over 4
+
+=item C<PERL_POLLUTE>
+
+Release 5.005 grandfathered old global symbol names by providing preprocessor
+macros for extension source compatibility.  As of release 5.6.0, these
+preprocessor definitions are not available by default.  You need to explicitly
+compile perl with C<-DPERL_POLLUTE> to get these definitions.  For
+extensions still using the old symbols, this option can be
+specified via MakeMaker:
+
+    perl Makefile.PL POLLUTE=1
+
+=item C<PERL_IMPLICIT_CONTEXT>
+
+This new build option provides a set of macros for all API functions
+such that an implicit interpreter/thread context argument is passed to
+every API function.  As a result of this, something like C<sv_setsv(foo,bar)>
+amounts to a macro invocation that actually translates to something like
+C<Perl_sv_setsv(my_perl,foo,bar)>.  While this is generally expected
+to not have any significant source compatibility issues, the difference
+between a macro and a real function call will need to be considered.
+
+This means that there B<is> a source compatibility issue as a result of
+this if your extensions attempt to use pointers to any of the Perl API
+functions.
+
+Note that the above issue is not relevant to the default build of
+Perl, whose interfaces continue to match those of prior versions
+(but subject to the other options described here).
+
+See L<perlguts/"The Perl API"> for detailed information on the
+ramifications of building Perl with this option.
+
+    NOTE: PERL_IMPLICIT_CONTEXT is automatically enabled whenever Perl is built
+    with one of -Dusethreads, -Dusemultiplicity, or both.  It is not
+    intended to be enabled by users at this time.
+
+=item C<PERL_POLLUTE_MALLOC>
+
+Enabling Perl's malloc in release 5.005 and earlier caused the namespace of
+the system's malloc family of functions to be usurped by the Perl versions,
+since by default they used the same names.  Besides causing problems on
+platforms that do not allow these functions to be cleanly replaced, this
+also meant that the system versions could not be called in programs that
+used Perl's malloc.  Previous versions of Perl have allowed this behaviour
+to be suppressed with the HIDEMYMALLOC and EMBEDMYMALLOC preprocessor
+definitions.
+
+As of release 5.6.0, Perl's malloc family of functions have default names
+distinct from the system versions.  You need to explicitly compile perl with
+C<-DPERL_POLLUTE_MALLOC> to get the older behaviour.  HIDEMYMALLOC
+and EMBEDMYMALLOC have no effect, since the behaviour they enabled is now
+the default.
+
+Note that these functions do B<not> constitute Perl's memory allocation API.
+See L<perlguts/"Memory Allocation"> for further information about that.
+
+=back
+
+=head2 Compatible C Source API Changes
+
+=over
+
+=item C<PATCHLEVEL> is now C<PERL_VERSION>
+
+The cpp macros C<PERL_REVISION>, C<PERL_VERSION>, and C<PERL_SUBVERSION>
+are now available by default from perl.h, and reflect the base revision,
+patchlevel, and subversion respectively.  C<PERL_REVISION> had no
+prior equivalent, while C<PERL_VERSION> and C<PERL_SUBVERSION> were
+previously available as C<PATCHLEVEL> and C<SUBVERSION>.
+
+The new names cause less pollution of the B<cpp> namespace and reflect what
+the numbers have come to stand for in common practice.  For compatibility,
+the old names are still supported when F<patchlevel.h> is explicitly
+included (as required before), so there is no source incompatibility
+from the change.
+
+=back
+
+=head2 Binary Incompatibilities
+
+In general, the default build of this release is expected to be binary
+compatible for extensions built with the 5.005 release or its maintenance
+versions.  However, specific platforms may have broken binary compatibility
+due to changes in the defaults used in hints files.  Therefore, please be
+sure to always check the platform-specific README files for any notes to
+the contrary.
+
+The usethreads or usemultiplicity builds are B<not> binary compatible
+with the corresponding builds in 5.005.
+
+On platforms that require an explicit list of exports (AIX, OS/2 and Windows,
+among others), purely internal symbols such as parser functions and the
+run time opcodes are not exported by default.  Perl 5.005 used to export
+all functions irrespective of whether they were considered part of the
+public API or not.
+
+For the full list of public API functions, see L<perlapi>.
+
+=head1 Known Problems
+
+=head2 Thread test failures
+
+The subtests 19 and 20 of lib/thr5005.t test are known to fail due to
+fundamental problems in the 5.005 threading implementation.  These are
+not new failures--Perl 5.005_0x has the same bugs, but didn't have these
+tests.
+
+=head2 EBCDIC platforms not supported
+
+In earlier releases of Perl, EBCDIC environments like OS390 (also
+known as Open Edition MVS) and VM-ESA were supported.  Due to changes
+required by the UTF-8 (Unicode) support, the EBCDIC platforms are not
+supported in Perl 5.6.0.
+
+=head2 In 64-bit HP-UX the lib/io_multihomed test may hang
+
+The lib/io_multihomed test may hang in HP-UX if Perl has been
+configured to be 64-bit.  Because other 64-bit platforms do not
+hang in this test, HP-UX is suspect.  All other tests pass
+in 64-bit HP-UX.  The test attempts to create and connect to
+"multihomed" sockets (sockets which have multiple IP addresses).
+
+=head2 NEXTSTEP 3.3 POSIX test failure
+
+In NEXTSTEP 3.3p2 the implementation of the strftime(3) in the
+operating system libraries is buggy: the %j format numbers the days of
+a month starting from zero, which, while being logical to programmers,
+will cause the subtests 19 to 27 of the lib/posix test may fail.
+
+=head2 Tru64 (aka Digital UNIX, aka DEC OSF/1) lib/sdbm test failure with gcc
+
+If compiled with gcc 2.95 the lib/sdbm test will fail (dump core).
+The cure is to use the vendor cc, it comes with the operating system
+and produces good code.
+
+=head2 UNICOS/mk CC failures during Configure run
+
+In UNICOS/mk the following errors may appear during the Configure run:
+
+       Guessing which symbols your C compiler and preprocessor define...
+       CC-20 cc: ERROR File = try.c, Line = 3
+       ...
+         bad switch yylook 79bad switch yylook 79bad switch yylook 79bad switch yylook 79#ifdef A29K
+       ...
+       4 errors detected in the compilation of "try.c".
+
+The culprit is the broken awk of UNICOS/mk.  The effect is fortunately
+rather mild: Perl itself is not adversely affected by the error, only
+the h2ph utility coming with Perl, and that is rather rarely needed
+these days.
+
+=head2 Arrow operator and arrays
+
+When the left argument to the arrow operator C<< -> >> is an array, or
+the C<scalar> operator operating on an array, the result of the
+operation must be considered erroneous. For example:
+
+    @x->[2]
+    scalar(@x)->[2]
+
+These expressions will get run-time errors in some future release of
+Perl.
+
+=head2 Experimental features
+
+As discussed above, many features are still experimental.  Interfaces and
+implementation of these features are subject to change, and in extreme cases,
+even subject to removal in some future release of Perl.  These features
+include the following:
+
+=over 4
+
+=item Threads
+
+=item Unicode
+
+=item 64-bit support
+
+=item Lvalue subroutines
+
+=item Weak references
+
+=item The pseudo-hash data type
+
+=item The Compiler suite
+
+=item Internal implementation of file globbing
+
+=item The DB module
+
+=item The regular expression constructs C<(?{ code })> and C<(??{ code })>
+
+=back
+
+=head1 Obsolete Diagnostics
+
+=over 4
+
+=item Character class syntax [: :] is reserved for future extensions
+
+(W) Within regular expression character classes ([]) the syntax beginning
+with "[:" and ending with ":]" is reserved for future extensions.
+If you need to represent those character sequences inside a regular
+expression character class, just quote the square brackets with the
+backslash: "\[:" and ":\]".
+
+=item Ill-formed logical name |%s| in prime_env_iter
+
+(W) A warning peculiar to VMS.  A logical name was encountered when preparing
+to iterate over %ENV which violates the syntactic rules governing logical
+names.  Because it cannot be translated normally, it is skipped, and will not
+appear in %ENV.  This may be a benign occurrence, as some software packages
+might directly modify logical name tables and introduce nonstandard names,
+or it may indicate that a logical name table has been corrupted.
+
+=item Probable precedence problem on %s
+
+(W) The compiler found a bareword where it expected a conditional,
+which often indicates that an || or && was parsed as part of the
+last argument of the previous construct, for example:
+
+    open FOO || die;
+
+=item regexp too big
+
+(F) The current implementation of regular expressions uses shorts as
+address offsets within a string.  Unfortunately this means that if
+the regular expression compiles to longer than 32767, it'll blow up.
+Usually when you want a regular expression this big, there is a better
+way to do it with multiple statements.  See L<perlre>.
+
+=item Use of "$$<digit>" to mean "${$}<digit>" is deprecated
+
+(D) Perl versions before 5.004 misinterpreted any type marker followed
+by "$" and a digit.  For example, "$$0" was incorrectly taken to mean
+"${$}0" instead of "${$0}".  This bug is (mostly) fixed in Perl 5.004.
+
+However, the developers of Perl 5.004 could not fix this bug completely,
+because at least two widely-used modules depend on the old meaning of
+"$$0" in a string.  So Perl 5.004 still interprets "$$<digit>" in the
+old (broken) way inside strings; but it generates this message as a
+warning.  And in Perl 5.005, this special treatment will cease.
+
+=back
+
+=head1 Reporting Bugs
+
+If you find what you think is a bug, you might check the
+articles recently posted to the comp.lang.perl.misc newsgroup.
+There may also be information at http://www.perl.com/perl/, the Perl
+Home Page.
+
+If you believe you have an unreported bug, please run the B<perlbug>
+program included with your release.  Be sure to trim your bug down
+to a tiny but sufficient test case.  Your bug report, along with the
+output of C<perl -V>, will be sent off to perlbug@perl.com to be
+analysed by the Perl porting team.
+
+=head1 SEE ALSO
+
+The F<Changes> file for exhaustive details on what changed.
+
+The F<INSTALL> file for how to build Perl.
+
+The F<README> file for general stuff.
+
+The F<Artistic> and F<Copying> files for copyright information.
+
+=head1 HISTORY
+
+Written by Gurusamy Sarathy <F<gsar@activestate.com>>, with many
+contributions from The Perl Porters.
+
+Send omissions or corrections to <F<perlbug@perl.com>>.
+
+=cut
index e4dedbe..58e2951 100644 (file)
@@ -237,7 +237,7 @@ NOTE: the perl_ form of this function is deprecated.
 =item EXTEND
 
 Used to extend the argument stack for an XSUB's return values. Once
-used, guarrantees that there is room for at least C<nitems> to be pushed
+used, guarantees that there is room for at least C<nitems> to be pushed
 onto the stack.
 
        void    EXTEND(SP, int nitems)
@@ -381,17 +381,17 @@ C<call_sv> apply equally to these functions.
 
 =item gv_stashpv
 
-Returns a pointer to the stash for a specified package.  If C<create> is
-set then the package will be created if it does not already exist.  If
-C<create> is not set and the package does not exist then NULL is
-returned.
+Returns a pointer to the stash for a specified package.  C<name> should
+be a valid UTF-8 string.  If C<create> is set then the package will be
+created if it does not already exist.  If C<create> is not set and the
+package does not exist then NULL is returned.
 
        HV*     gv_stashpv(const char* name, I32 create)
 
 =item gv_stashsv
 
-Returns a pointer to the stash for a specified package.  See
-C<gv_stashpv>.
+Returns a pointer to the stash for a specified package, which must be a
+valid UTF-8 string.  See C<gv_stashpv>.
 
        HV*     gv_stashsv(SV* sv, I32 create)
 
@@ -662,21 +662,21 @@ Undefines the hash.
 
 =item isALNUM
 
-Returns a boolean indicating whether the C C<char> is an ascii alphanumeric
+Returns a boolean indicating whether the C C<char> is an ASCII alphanumeric
 character or digit.
 
        bool    isALNUM(char ch)
 
 =item isALPHA
 
-Returns a boolean indicating whether the C C<char> is an ascii alphabetic
+Returns a boolean indicating whether the C C<char> is an ASCII alphabetic
 character.
 
        bool    isALPHA(char ch)
 
 =item isDIGIT
 
-Returns a boolean indicating whether the C C<char> is an ascii
+Returns a boolean indicating whether the C C<char> is an ASCII
 digit.
 
        bool    isDIGIT(char ch)
@@ -897,6 +897,13 @@ Creates a new SV which is an exact duplicate of the original SV.
 
        SV*     newSVsv(SV* old)
 
+=item newSVuv
+
+Creates a new SV and copies an unsigned integer into it.
+The reference count for the SV is set to 1.
+
+       SV*     newSVuv(UV u)
+
 =item newXS
 
 Used by C<xsubpp> to hook up XSUBs as Perl subs.
@@ -1256,7 +1263,7 @@ wrapper for C<strncmp>).
 
 =item StructCopy
 
-This is an architecture-independant macro to copy one structure to another.
+This is an architecture-independent macro to copy one structure to another.
 
        void    StructCopy(type src, type dest, type)
 
@@ -1590,17 +1597,17 @@ false, defined or undefined.  Does not handle 'get' magic.
 
        bool    SvTRUE(SV* sv)
 
+=item svtype
+
+An enum of flags for Perl types.  These are found in the file B<sv.h> 
+in the C<svtype> enum.  Test these flags with the C<SvTYPE> macro.
+
 =item SvTYPE
 
 Returns the type of the SV.  See C<svtype>.
 
        svtype  SvTYPE(SV* sv)
 
-=item svtype
-
-An enum of flags for Perl types.  These are found in the file B<sv.h> 
-in the C<svtype> enum.  Test these flags with the C<SvTYPE> macro.
-
 =item SVt_IV
 
 Integer type flag for scalars.  See C<svtype>.
index 3a693dd..1b322fb 100644 (file)
@@ -9,7 +9,7 @@ by Larry Wall et al, is the definitive reference work covering nearly
 all of Perl.  You can order it and other Perl books from O'Reilly &
 Associates, 1-800-998-9938.  Local/overseas is +1 707 829 0515.  If you
 can locate an O'Reilly order form, you can also fax to +1 707 829 0104.
-If you're web-connected, you can even mosey on over to http://www.ora.com/
+If you're web-connected, you can even mosey on over to http://www.oreilly.com/
 for an online order form.
 
 Other Perl books from various publishers and authors 
index bab3656..b549f45 100644 (file)
@@ -7,7 +7,7 @@ perlboot - Beginner's Object-Oriented Tutorial
 If you're not familiar with objects from other languages, some of the
 other Perl object documentation may be a little daunting, such as
 L<perlobj>, a basic reference in using objects, and L<perltoot>, which
-introduces readers to the pecularities of Perl's object system in a
+introduces readers to the peculiarities of Perl's object system in a
 tutorial way.
 
 So, let's take a different approach, presuming no prior object
@@ -139,8 +139,8 @@ attempts to invoke subroutine C<Class::method> as:
 
 (If the subroutine can't be found, "inheritance" kicks in, but we'll
 get to that later.)  This means that we get the class name as the
-first parameter.  So we can rewrite the C<Sheep> speaking subroutine
-as:
+first parameter (the only parameter, if no arguments are given).  So
+we can rewrite the C<Sheep> speaking subroutine as:
 
     sub Sheep::speak {
       my $class = shift;
@@ -245,14 +245,15 @@ inheritance.
 
 When we turn on C<use strict>, we'll get complaints on C<@ISA>, since
 it's not a variable containing an explicit package name, nor is it a
-lexical ("my") variable.  We can't make it a lexical variable though,
+lexical ("my") variable.  We can't make it a lexical variable though
+(it has to belong to the package to be found by the inheritance mechanism),
 so there's a couple of straightforward ways to handle that.
 
 The easiest is to just spell the package name out:
 
     @Cow::ISA = qw(Animal);
 
-Or allow it as an implictly named package variable:
+Or allow it as an implicitly named package variable:
 
     package Cow;
     use vars qw(@ISA);
@@ -490,7 +491,7 @@ If Horse::sound had not been found, we'd be wandering up the
 C<@Horse::ISA> list to try to find the method in one of the
 superclasses, just as for a class method.  The only difference between
 a class method and an instance method is whether the first parameter
-is a instance (a blessed reference) or a class name (a string).
+is an instance (a blessed reference) or a class name (a string).
 
 =head2 Accessing the instance data
 
@@ -552,6 +553,17 @@ C<Horse::named> are C<Horse> and C<Mr. Ed>.  The C<bless> operator
 not only blesses C<$name>, it also returns the reference to C<$name>,
 so that's fine as a return value.  And that's how to build a horse.
 
+We've called the constructor C<named> here, so that it quickly denotes
+the constructor's argument as the name for this particular C<Horse>.
+You can use different constructors with different names for different
+ways of "giving birth" to the object (like maybe recording its
+pedigree or date of birth).  However, you'll find that most people
+coming to Perl from more limited languages use a single constructor
+named C<new>, with various ways of interpreting the arguments to
+C<new>.  Either style is fine, as long as you document your particular
+way of giving birth to an object.  (And you I<were> going to do that,
+right?)
+
 =head2 Inheriting the constructor
 
 But was there anything specific to C<Horse> in that method?  No.  Therefore,
index 34f442a..148b24b 100644 (file)
@@ -1939,7 +1939,7 @@ done inside our C code:
 
 C<eval_pv> is used to compile the anonymous subroutine, which
 will be the return value as well (read more about C<eval_pv> in
-L<perlguts/eval_pv>).  Once this code reference is in hand, it
+L<perlapi/eval_pv>).  Once this code reference is in hand, it
 can be mixed in with all the previous examples we've shown.
 
 =head1 SEE ALSO
index 04dc019..e5544ec 100644 (file)
@@ -103,9 +103,9 @@ This is why all the back ends print:
 
 before producing any other output.
 
-=head2 The Cross Referencing Back End (B::Xref)
+=head2 The Cross Referencing Back End
 
-The cross referencing back end produces a report on your program,
+The cross referencing back end (B::Xref) produces a report on your program,
 breaking down declarations and uses of subroutines and variables (and
 formats) by file and subroutine.  For instance, here's part of the
 report from the I<pod2man> program that comes with Perl:
@@ -203,11 +203,11 @@ The B<-p> option adds parentheses where normally they are omitted:
 
 See L<B::Deparse> for more information on the formatting options.
 
-=head2 The Lint Back End (B::Lint)
+=head2 The Lint Back End
 
-The lint back end inspects programs for poor style.  One programmer's
-bad style is another programmer's useful tool, so options let you
-select what is complained about.
+The lint back end (B::Lint) inspects programs for poor style.  One
+programmer's bad style is another programmer's useful tool, so options
+let you select what is complained about.
 
 To run the style checker across your source code:
 
@@ -306,8 +306,9 @@ I<assemble> program that produces bytecode.
 
 =item B::Bblock
 
-This module is used by the B::CC back end.  It walks "basic blocks",
-whatever they may be.
+This module is used by the B::CC back end.  It walks "basic blocks".
+A basic block is a series of operations which is known to execute from
+start to finish, with no possibility of branching or halting.
 
 =item B::Bytecode
 
@@ -368,12 +369,12 @@ can identify.  See L</"The Lint Back End"> for details about usage.
 =item B::Showlex
 
 This module prints out the my() variables used in a function or a
-file.  To gt a list of the my() variables used in the subroutine
+file.  To get a list of the my() variables used in the subroutine
 mysub() defined in the file myperlprogram:
 
   $ perl -MO=Showlex,mysub myperlprogram
 
-To gt a list of the my() variables used in the file myperlprogram:
+To get a list of the my() variables used in the file myperlprogram:
 
   $ perl -MO=Showlex myperlprogram
 
@@ -418,7 +419,7 @@ names.
 
 The optimized C backend outputs code for more modules than it should
 (e.g., DirHandle).  It also has little hope of properly handling
-C<goto LABEL> outside the running subroutine (C<goto &sub> is ok).
+C<goto LABEL> outside the running subroutine (C<goto &sub> is okay).
 C<goto LABEL> currently does not work at all in this backend.
 It also creates a huge initialization function that gives
 C compilers headaches.  Splitting the initialization function gives
index e3361e4..ac444fa 100644 (file)
@@ -129,7 +129,8 @@ assignment to an array or hash evaluates the righthand side in list
 context.  Assignment to a list (or slice, which is just a list
 anyway) also evaluates the righthand side in list context.
 
-When you use Perl's B<-w> command-line option, you may see warnings
+When you use the C<use warnings> pragma or Perl's B<-w> command-line 
+option, you may see warnings
 about useless uses of constants or functions in "void context".
 Void context just means the value has been discarded, such as a
 statement containing only C<"fred";> or C<getpwuid(0);>.  It still
@@ -274,7 +275,6 @@ integer formats:
     0xff                # hex
     0377                # octal
     0b011011            # binary
-    v102.111.111        # string (made of characters "f", "o", "o")
 
 String literals are usually delimited by either single or double
 quotes.  They work much like quotes in the standard Unix shells:
@@ -282,7 +282,7 @@ double-quoted string literals are subject to backslash and variable
 substitution; single-quoted strings are not (except for C<\'> and
 C<\\>).  The usual C-style backslash rules apply for making
 characters such as newline, tab, etc., as well as some more exotic
-forms.  See L<perlop/"Quote and Quotelike Operators"> for a list.
+forms.  See L<perlop/"Quote and Quote-like Operators"> for a list.
 
 Hexadecimal, octal, or binary, representations in string literals
 (e.g. '0xff') are not automatically converted to their integer
@@ -331,7 +331,13 @@ readable interpolation form C<"\x{1}\x{14}\x{12c}\x{fa0}">.  This is useful
 for representing Unicode strings, and for comparing version "numbers"
 using the string comparison operators, C<cmp>, C<gt>, C<lt> etc.
 If there are two or more dots in the literal, the leading C<v> may be
-omitted.  Such literals are accepted by both C<require> and C<use> for
+omitted.
+
+    print v9786;              # prints UTF-8 encoded SMILEY, "\x{263a}"
+    print v102.111.111;       # prints "foo"
+    print 102.111.111;        # same
+
+Such literals are accepted by both C<require> and C<use> for
 doing a version check.  The C<$^V> special variable also contains the
 running Perl interpreter's version in this form.  See L<perlvar/$^V>.
 
@@ -366,7 +372,8 @@ A word that has no other interpretation in the grammar will
 be treated as if it were a quoted string.  These are known as
 "barewords".  As with filehandles and labels, a bareword that consists
 entirely of lowercase letters risks conflict with future reserved
-words, and if you use the B<-w> switch, Perl will warn you about any
+words, and if you use the C<use warnings> pragma or the B<-w> switch, 
+Perl will warn you about any
 such words.  Some people may wish to outlaw barewords entirely.  If you
 say
 
@@ -743,6 +750,28 @@ C<*HANDLE{IO}> only works if HANDLE has already been used as a handle.
 In other words, C<*FH> must be used to create new symbol table entries;
 C<*foo{THING}> cannot.  When in doubt, use C<*FH>.
 
+All functions that are capable of creating filehandles (open(),
+opendir(), pipe(), socketpair(), sysopen(), socket(), and accept())
+automatically create an anonymous filehandle if the handle passed to
+them is an uninitialized scalar variable. This allows the constructs
+such as C<open(my $fh, ...)> and C<open(local $fh,...)> to be used to
+create filehandles that will conveniently be closed automatically when
+the scope ends, provided there are no other references to them. This
+largely eliminates the need for typeglobs when opening filehandles
+that must be passed around, as in the following example:
+
+    sub myopen {
+        open my $fh, "@_"
+            or die "Can't open '@_': $!";
+       return $fh;
+    }
+
+    {
+        my $f = myopen("</etc/motd");
+       print <$f>;
+       # $f implicitly closed here
+    }
+
 Another way to create anonymous filehandles is with the Symbol
 module or with the IO::Handle module and its ilk.  These modules
 have the advantage of not hiding different types of the same name
index faed2d2..3350596 100644 (file)
@@ -86,6 +86,7 @@ sure you have already guessed, this is a problem that DBM Filters can
 fix very easily.
 
     use strict ;
+    use warnings ;
     use SDBM_File ;
     use Fcntl ;
 
@@ -99,7 +100,8 @@ fix very easily.
     # Install DBM Filters
     $db->filter_fetch_key  ( sub { s/\0$//    } ) ;
     $db->filter_store_key  ( sub { $_ .= "\0" } ) ;
-    $db->filter_fetch_value( sub { s/\0$//    } ) ;
+    $db->filter_fetch_value( 
+        sub { no warnings 'uninitialized' ;s/\0$// } ) ;
     $db->filter_store_value( sub { $_ .= "\0" } ) ;
 
     $hash{"abc"} = "def" ;
@@ -132,6 +134,7 @@ when reading.
 Here is a DBM Filter that does it:
 
     use strict ;
+    use warnings ;
     use DB_File ;
     my %hash ;
     my $filename = "/tmp/filt" ;
diff --git a/pod/perldebguts.pod b/pod/perldebguts.pod
new file mode 100644 (file)
index 0000000..45c33c7
--- /dev/null
@@ -0,0 +1,923 @@
+=head1 NAME
+
+perldebguts - Guts of Perl debugging 
+
+=head1 DESCRIPTION
+
+This is not the perldebug(1) manpage, which tells you how to use
+the debugger.  This manpage describes low-level details ranging
+between difficult and impossible for anyone who isn't incredibly
+intimate with Perl's guts to understand.  Caveat lector.
+
+=head1 Debugger Internals
+
+Perl has special debugging hooks at compile-time and run-time used
+to create debugging environments.  These hooks are not to be confused
+with the I<perl -Dxxx> command described in L<perlrun>, which is
+usable only if a special Perl is built per the instructions in the
+F<INSTALL> podpage in the Perl source tree.
+
+For example, whenever you call Perl's built-in C<caller> function
+from the package DB, the arguments that the corresponding stack
+frame was called with are copied to the @DB::args array.  The
+general mechanisms is enabled by calling Perl with the B<-d> switch, the
+following additional features are enabled (cf. L<perlvar/$^P>):
+
+=over
+
+=item *
+
+Perl inserts the contents of C<$ENV{PERL5DB}> (or C<BEGIN {require
+'perl5db.pl'}> if not present) before the first line of your program.
+
+=item *
+
+The array C<@{"_<$filename"}> holds the lines of $filename for all
+files compiled by Perl.  The same for C<eval>ed strings that contain
+subroutines, or which are currently being executed.  The $filename
+for C<eval>ed strings looks like C<(eval 34)>.   Code assertions
+in regexes look like C<(re_eval 19)>.
+
+=item *
+
+The hash C<%{"_<$filename"}> contains breakpoints and actions keyed
+by line number.  Individual entries (as opposed to the whole hash)
+are settable.  Perl only cares about Boolean true here, although
+the values used by F<perl5db.pl> have the form
+C<"$break_condition\0$action">.  Values in this hash are magical
+in numeric context: they are zeros if the line is not breakable.
+
+The same holds for evaluated strings that contain subroutines, or
+which are currently being executed.  The $filename for C<eval>ed strings
+looks like C<(eval 34)> or  C<(re_eval 19)>.
+
+=item *
+
+The scalar C<${"_<$filename"}> contains C<"_<$filename">.  This is
+also the case for evaluated strings that contain subroutines, or
+which are currently being executed.  The $filename for C<eval>ed
+strings looks like C<(eval 34)> or C<(re_eval 19)>.
+
+=item *
+
+After each C<require>d file is compiled, but before it is executed,
+C<DB::postponed(*{"_<$filename"})> is called if the subroutine
+C<DB::postponed> exists.  Here, the $filename is the expanded name of
+the C<require>d file, as found in the values of %INC.
+
+=item *
+
+After each subroutine C<subname> is compiled, the existence of
+C<$DB::postponed{subname}> is checked.  If this key exists,
+C<DB::postponed(subname)> is called if the C<DB::postponed> subroutine
+also exists.
+
+=item *
+
+A hash C<%DB::sub> is maintained, whose keys are subroutine names
+and whose values have the form C<filename:startline-endline>.
+C<filename> has the form C<(eval 34)> for subroutines defined inside
+C<eval>s, or C<(re_eval 19)> for those within regex code assertions.
+
+=item *
+
+When the execution of your program reaches a point that can hold a
+breakpoint, the C<DB::DB()> subroutine is called any of the variables
+$DB::trace, $DB::single, or $DB::signal is true.  These variables
+are not C<local>izable.  This feature is disabled when executing
+inside C<DB::DB()>, including functions called from it 
+unless C<< $^D & (1<<30) >> is true.
+
+=item *
+
+When execution of the program reaches a subroutine call, a call to
+C<&DB::sub>(I<args>) is made instead, with C<$DB::sub> holding the
+name of the called subroutine.  This doesn't happen if the subroutine
+was compiled in the C<DB> package.)
+
+=back
+
+Note that if C<&DB::sub> needs external data for it to work, no
+subroutine call is possible until this is done.  For the standard
+debugger, the  C<$DB::deep> variable (how many levels of recursion
+deep into the debugger you can go before a mandatory break) gives
+an example of such a dependency.
+
+=head2 Writing Your Own Debugger
+
+The minimal working debugger consists of one line
+
+  sub DB::DB {}
+
+which is quite handy as contents of C<PERL5DB> environment
+variable:
+
+  $ PERL5DB="sub DB::DB {}" perl -d your-script
+
+Another brief debugger, slightly more useful, could be created
+with only the line:
+
+  sub DB::DB {print ++$i; scalar <STDIN>}
+
+This debugger would print the sequential number of encountered
+statement, and would wait for you to hit a newline before continuing.
+
+The following debugger is quite functional:
+
+  {
+    package DB;
+    sub DB  {}
+    sub sub {print ++$i, " $sub\n"; &$sub}
+  }
+
+It prints the sequential number of subroutine call and the name of the
+called subroutine.  Note that C<&DB::sub> should be compiled into the
+package C<DB>.
+
+At the start, the debugger reads your rc file (F<./.perldb> or
+F<~/.perldb> under Unix), which can set important options.  This file may
+define a subroutine C<&afterinit> to be executed after the debugger is
+initialized.
+
+After the rc file is read, the debugger reads the PERLDB_OPTS
+environment variable and parses this as the remainder of a C<O ...>
+line as one might enter at the debugger prompt.
+
+The debugger also maintains magical internal variables, such as
+C<@DB::dbline>, C<%DB::dbline>, which are aliases for
+C<@{"::_<current_file"}> C<%{"::_<current_file"}>.  Here C<current_file>
+is the currently selected file, either explicitly chosen with the
+debugger's C<f> command, or implicitly by flow of execution.
+
+Some functions are provided to simplify customization.  See
+L<perldebug/"Options"> for description of options parsed by
+C<DB::parse_options(string)>.  The function C<DB::dump_trace(skip[,
+count])> skips the specified number of frames and returns a list
+containing information about the calling frames (all of them, if
+C<count> is missing).  Each entry is reference to a hash with
+keys C<context> (either C<.>, C<$>, or C<@>), C<sub> (subroutine
+name, or info about C<eval>), C<args> (C<undef> or a reference to
+an array), C<file>, and C<line>.
+
+The function C<DB::print_trace(FH, skip[, count[, short]])> prints
+formatted info about caller frames.  The last two functions may be
+convenient as arguments to C<< < >>, C<< << >> commands.
+
+Note that any variables and functions that are not documented in
+this manpages (or in L<perldebug>) are considered for internal   
+use only, and as such are subject to change without notice.
+
+=head1 Frame Listing Output Examples
+
+The C<frame> option can be used to control the output of frame 
+information.  For example, contrast this expression trace:
+
+ $ perl -de 42
+ Stack dump during die enabled outside of evals.
+
+ Loading DB routines from perl5db.pl patch level 0.94
+ Emacs support available.
+
+ Enter h or `h h' for help.
+
+ main::(-e:1):   0
+   DB<1> sub foo { 14 }
+
+   DB<2> sub bar { 3 }
+
+   DB<3> t print foo() * bar()
+ main::((eval 172):3):   print foo() + bar();
+ main::foo((eval 168):2):
+ main::bar((eval 170):2):
+ 42
+
+with this one, once the C<O>ption C<frame=2> has been set:
+
+   DB<4> O f=2
+                frame = '2'
+   DB<5> t print foo() * bar()
+ 3:      foo() * bar()
+ entering main::foo
+  2:     sub foo { 14 };
+ exited main::foo
+ entering main::bar
+  2:     sub bar { 3 };
+ exited main::bar
+ 42
+
+By way of demonstration, we present below a laborious listing
+resulting from setting your C<PERLDB_OPTS> environment variable to
+the value C<f=n N>, and running I<perl -d -V> from the command line.
+Examples use various values of C<n> are shown to give you a feel
+for the difference between settings.  Long those it may be, this
+is not a complete listing, but only excerpts.
+
+=over 4
+
+=item 1
+
+  entering main::BEGIN
+   entering Config::BEGIN
+    Package lib/Exporter.pm.
+    Package lib/Carp.pm.
+   Package lib/Config.pm.
+   entering Config::TIEHASH
+   entering Exporter::import
+    entering Exporter::export
+  entering Config::myconfig
+   entering Config::FETCH
+   entering Config::FETCH
+   entering Config::FETCH
+   entering Config::FETCH
+
+=item 2
+
+  entering main::BEGIN
+   entering Config::BEGIN
+    Package lib/Exporter.pm.
+    Package lib/Carp.pm.
+   exited Config::BEGIN
+   Package lib/Config.pm.
+   entering Config::TIEHASH
+   exited Config::TIEHASH
+   entering Exporter::import
+    entering Exporter::export
+    exited Exporter::export
+   exited Exporter::import
+  exited main::BEGIN
+  entering Config::myconfig
+   entering Config::FETCH
+   exited Config::FETCH
+   entering Config::FETCH
+   exited Config::FETCH
+   entering Config::FETCH
+
+=item 4
+
+  in  $=main::BEGIN() from /dev/null:0
+   in  $=Config::BEGIN() from lib/Config.pm:2
+    Package lib/Exporter.pm.
+    Package lib/Carp.pm.
+   Package lib/Config.pm.
+   in  $=Config::TIEHASH('Config') from lib/Config.pm:644
+   in  $=Exporter::import('Config', 'myconfig', 'config_vars') from /dev/null:0
+    in  $=Exporter::export('Config', 'main', 'myconfig', 'config_vars') from li
+  in  @=Config::myconfig() from /dev/null:0
+   in  $=Config::FETCH(ref(Config), 'package') from lib/Config.pm:574
+   in  $=Config::FETCH(ref(Config), 'baserev') from lib/Config.pm:574
+   in  $=Config::FETCH(ref(Config), 'PERL_VERSION') from lib/Config.pm:574
+   in  $=Config::FETCH(ref(Config), 'PERL_SUBVERSION') from lib/Config.pm:574
+   in  $=Config::FETCH(ref(Config), 'osname') from lib/Config.pm:574
+   in  $=Config::FETCH(ref(Config), 'osvers') from lib/Config.pm:574
+
+=item 6
+
+  in  $=main::BEGIN() from /dev/null:0
+   in  $=Config::BEGIN() from lib/Config.pm:2
+    Package lib/Exporter.pm.
+    Package lib/Carp.pm.
+   out $=Config::BEGIN() from lib/Config.pm:0
+   Package lib/Config.pm.
+   in  $=Config::TIEHASH('Config') from lib/Config.pm:644
+   out $=Config::TIEHASH('Config') from lib/Config.pm:644
+   in  $=Exporter::import('Config', 'myconfig', 'config_vars') from /dev/null:0
+    in  $=Exporter::export('Config', 'main', 'myconfig', 'config_vars') from lib/
+    out $=Exporter::export('Config', 'main', 'myconfig', 'config_vars') from lib/
+   out $=Exporter::import('Config', 'myconfig', 'config_vars') from /dev/null:0
+  out $=main::BEGIN() from /dev/null:0
+  in  @=Config::myconfig() from /dev/null:0
+   in  $=Config::FETCH(ref(Config), 'package') from lib/Config.pm:574
+   out $=Config::FETCH(ref(Config), 'package') from lib/Config.pm:574
+   in  $=Config::FETCH(ref(Config), 'baserev') from lib/Config.pm:574
+   out $=Config::FETCH(ref(Config), 'baserev') from lib/Config.pm:574
+   in  $=Config::FETCH(ref(Config), 'PERL_VERSION') from lib/Config.pm:574
+   out $=Config::FETCH(ref(Config), 'PERL_VERSION') from lib/Config.pm:574
+   in  $=Config::FETCH(ref(Config), 'PERL_SUBVERSION') from lib/Config.pm:574
+
+=item 14
+
+  in  $=main::BEGIN() from /dev/null:0
+   in  $=Config::BEGIN() from lib/Config.pm:2
+    Package lib/Exporter.pm.
+    Package lib/Carp.pm.
+   out $=Config::BEGIN() from lib/Config.pm:0
+   Package lib/Config.pm.
+   in  $=Config::TIEHASH('Config') from lib/Config.pm:644
+   out $=Config::TIEHASH('Config') from lib/Config.pm:644
+   in  $=Exporter::import('Config', 'myconfig', 'config_vars') from /dev/null:0
+    in  $=Exporter::export('Config', 'main', 'myconfig', 'config_vars') from lib/E
+    out $=Exporter::export('Config', 'main', 'myconfig', 'config_vars') from lib/E
+   out $=Exporter::import('Config', 'myconfig', 'config_vars') from /dev/null:0
+  out $=main::BEGIN() from /dev/null:0
+  in  @=Config::myconfig() from /dev/null:0
+   in  $=Config::FETCH('Config=HASH(0x1aa444)', 'package') from lib/Config.pm:574
+   out $=Config::FETCH('Config=HASH(0x1aa444)', 'package') from lib/Config.pm:574
+   in  $=Config::FETCH('Config=HASH(0x1aa444)', 'baserev') from lib/Config.pm:574
+   out $=Config::FETCH('Config=HASH(0x1aa444)', 'baserev') from lib/Config.pm:574
+
+=item 30
+
+  in  $=CODE(0x15eca4)() from /dev/null:0
+   in  $=CODE(0x182528)() from lib/Config.pm:2
+    Package lib/Exporter.pm.
+   out $=CODE(0x182528)() from lib/Config.pm:0
+   scalar context return from CODE(0x182528): undef
+   Package lib/Config.pm.
+   in  $=Config::TIEHASH('Config') from lib/Config.pm:628
+   out $=Config::TIEHASH('Config') from lib/Config.pm:628
+   scalar context return from Config::TIEHASH:   empty hash
+   in  $=Exporter::import('Config', 'myconfig', 'config_vars') from /dev/null:0
+    in  $=Exporter::export('Config', 'main', 'myconfig', 'config_vars') from lib/Exporter.pm:171
+    out $=Exporter::export('Config', 'main', 'myconfig', 'config_vars') from lib/Exporter.pm:171
+    scalar context return from Exporter::export: ''
+   out $=Exporter::import('Config', 'myconfig', 'config_vars') from /dev/null:0
+   scalar context return from Exporter::import: ''
+
+=back
+
+In all cases shown above, the line indentation shows the call tree.
+If bit 2 of C<frame> is set, a line is printed on exit from a
+subroutine as well.  If bit 4 is set, the arguments are printed
+along with the caller info.  If bit 8 is set, the arguments are
+printed even if they are tied or references.  If bit 16 is set, the
+return value is printed, too.
+
+When a package is compiled, a line like this
+
+    Package lib/Carp.pm.
+
+is printed with proper indentation.
+
+=head1 Debugging regular expressions
+
+There are two ways to enable debugging output for regular expressions.
+
+If your perl is compiled with C<-DDEBUGGING>, you may use the
+B<-Dr> flag on the command line.
+
+Otherwise, one can C<use re 'debug'>, which has effects at
+compile time and run time.  It is not lexically scoped.
+
+=head2 Compile-time output
+
+The debugging output at compile time looks like this:
+
+  compiling RE `[bc]d(ef*g)+h[ij]k$'
+  size 43 first at 1
+     1: ANYOF(11)
+    11: EXACT <d>(13)
+    13: CURLYX {1,32767}(27)
+    15:   OPEN1(17)
+    17:     EXACT <e>(19)
+    19:     STAR(22)
+    20:       EXACT <f>(0)
+    22:     EXACT <g>(24)
+    24:   CLOSE1(26)
+    26:   WHILEM(0)
+    27: NOTHING(28)
+    28: EXACT <h>(30)
+    30: ANYOF(40)
+    40: EXACT <k>(42)
+    42: EOL(43)
+    43: END(0)
+  anchored `de' at 1 floating `gh' at 3..2147483647 (checking floating)
+                                   stclass `ANYOF' minlen 7
+
+The first line shows the pre-compiled form of the regex.  The second
+shows the size of the compiled form (in arbitrary units, usually
+4-byte words) and the label I<id> of the first node that does a
+match.
+
+The last line (split into two lines above) contains optimizer
+information.  In the example shown, the optimizer found that the match 
+should contain a substring C<de> at offset 1, plus substring C<gh>
+at some offset between 3 and infinity.  Moreover, when checking for
+these substrings (to abandon impossible matches quickly), Perl will check
+for the substring C<gh> before checking for the substring C<de>.  The
+optimizer may also use the knowledge that the match starts (at the
+C<first> I<id>) with a character class, and the match cannot be
+shorter than 7 chars.
+
+The fields of interest which may appear in the last line are
+
+=over
+
+=item C<anchored> I<STRING> C<at> I<POS>
+
+=item C<floating> I<STRING> C<at> I<POS1..POS2>
+
+See above.
+
+=item C<matching floating/anchored>
+
+Which substring to check first.
+
+=item C<minlen>
+
+The minimal length of the match.
+
+=item C<stclass> I<TYPE>
+
+Type of first matching node.
+
+=item C<noscan>
+
+Don't scan for the found substrings.
+
+=item C<isall>
+
+Means that the optimizer info is all that the regular
+expression contains, and thus one does not need to enter the regex engine at
+all.
+
+=item C<GPOS>
+
+Set if the pattern contains C<\G>.
+
+=item C<plus> 
+
+Set if the pattern starts with a repeated char (as in C<x+y>).
+
+=item C<implicit>
+
+Set if the pattern starts with C<.*>.
+
+=item C<with eval> 
+
+Set if the pattern contain eval-groups, such as C<(?{ code })> and
+C<(??{ code })>.
+
+=item C<anchored(TYPE)>
+
+If the pattern may match only at a handful of places, (with C<TYPE>
+being C<BOL>, C<MBOL>, or C<GPOS>.  See the table below.
+
+=back
+
+If a substring is known to match at end-of-line only, it may be
+followed by C<$>, as in C<floating `k'$>.
+
+The optimizer-specific info is used to avoid entering (a slow) regex
+engine on strings that will not definitely match.  If C<isall> flag
+is set, a call to the regex engine may be avoided even when the optimizer
+found an appropriate place for the match.
+
+The rest of the output contains the list of I<nodes> of the compiled
+form of the regex.  Each line has format 
+
+C<   >I<id>: I<TYPE> I<OPTIONAL-INFO> (I<next-id>)
+
+=head2 Types of nodes
+
+Here are the possible types, with short descriptions:
+
+    # TYPE arg-description [num-args] [longjump-len] DESCRIPTION
+
+    # Exit points
+    END                no      End of program.
+    SUCCEED    no      Return from a subroutine, basically.
+
+    # Anchors:
+    BOL                no      Match "" at beginning of line.
+    MBOL       no      Same, assuming multiline.
+    SBOL       no      Same, assuming singleline.
+    EOS                no      Match "" at end of string.
+    EOL                no      Match "" at end of line.
+    MEOL       no      Same, assuming multiline.
+    SEOL       no      Same, assuming singleline.
+    BOUND      no      Match "" at any word boundary
+    BOUNDL     no      Match "" at any word boundary
+    NBOUND     no      Match "" at any word non-boundary
+    NBOUNDL    no      Match "" at any word non-boundary
+    GPOS       no      Matches where last m//g left off.
+
+    # [Special] alternatives
+    ANY                no      Match any one character (except newline).
+    SANY       no      Match any one character.
+    ANYOF      sv      Match character in (or not in) this class.
+    ALNUM      no      Match any alphanumeric character
+    ALNUML     no      Match any alphanumeric char in locale
+    NALNUM     no      Match any non-alphanumeric character
+    NALNUML    no      Match any non-alphanumeric char in locale
+    SPACE      no      Match any whitespace character
+    SPACEL     no      Match any whitespace char in locale
+    NSPACE     no      Match any non-whitespace character
+    NSPACEL    no      Match any non-whitespace char in locale
+    DIGIT      no      Match any numeric character
+    NDIGIT     no      Match any non-numeric character
+
+    # BRANCH   The set of branches constituting a single choice are hooked
+    #          together with their "next" pointers, since precedence prevents
+    #          anything being concatenated to any individual branch.  The
+    #          "next" pointer of the last BRANCH in a choice points to the
+    #          thing following the whole choice.  This is also where the
+    #          final "next" pointer of each individual branch points; each
+    #          branch starts with the operand node of a BRANCH node.
+    #
+    BRANCH     node    Match this alternative, or the next...
+
+    # BACK     Normal "next" pointers all implicitly point forward; BACK
+    #          exists to make loop structures possible.
+    # not used
+    BACK       no      Match "", "next" ptr points backward.
+
+    # Literals
+    EXACT      sv      Match this string (preceded by length).
+    EXACTF     sv      Match this string, folded (prec. by length).
+    EXACTFL    sv      Match this string, folded in locale (w/len).
+
+    # Do nothing
+    NOTHING    no      Match empty string.
+    # A variant of above which delimits a group, thus stops optimizations
+    TAIL       no      Match empty string. Can jump here from outside.
+
+    # STAR,PLUS        '?', and complex '*' and '+', are implemented as circular
+    #          BRANCH structures using BACK.  Simple cases (one character
+    #          per match) are implemented with STAR and PLUS for speed
+    #          and to minimize recursive plunges.
+    #
+    STAR       node    Match this (simple) thing 0 or more times.
+    PLUS       node    Match this (simple) thing 1 or more times.
+
+    CURLY      sv 2    Match this simple thing {n,m} times.
+    CURLYN     no 2    Match next-after-this simple thing 
+    #                  {n,m} times, set parens.
+    CURLYM     no 2    Match this medium-complex thing {n,m} times.
+    CURLYX     sv 2    Match this complex thing {n,m} times.
+
+    # This terminator creates a loop structure for CURLYX
+    WHILEM     no      Do curly processing and see if rest matches.
+
+    # OPEN,CLOSE,GROUPP        ...are numbered at compile time.
+    OPEN       num 1   Mark this point in input as start of #n.
+    CLOSE      num 1   Analogous to OPEN.
+
+    REF                num 1   Match some already matched string
+    REFF       num 1   Match already matched string, folded
+    REFFL      num 1   Match already matched string, folded in loc.
+
+    # grouping assertions
+    IFMATCH    off 1 2 Succeeds if the following matches.
+    UNLESSM    off 1 2 Fails if the following matches.
+    SUSPEND    off 1 1 "Independent" sub-regex.
+    IFTHEN     off 1 1 Switch, should be preceded by switcher .
+    GROUPP     num 1   Whether the group matched.
+
+    # Support for long regex
+    LONGJMP    off 1 1 Jump far away.
+    BRANCHJ    off 1 1 BRANCH with long offset.
+
+    # The heavy worker
+    EVAL       evl 1   Execute some Perl code.
+
+    # Modifiers
+    MINMOD     no      Next operator is not greedy.
+    LOGICAL    no      Next opcode should set the flag only.
+
+    # This is not used yet
+    RENUM      off 1 1 Group with independently numbered parens.
+
+    # This is not really a node, but an optimized away piece of a "long" node.
+    # To simplify debugging output, we mark it as if it were a node
+    OPTIMIZED  off     Placeholder for dump.
+
+=head2 Run-time output
+
+First of all, when doing a match, one may get no run-time output even
+if debugging is enabled.  This means that the regex engine was never
+entered and that all of the job was therefore done by the optimizer.
+
+If the regex engine was entered, the output may look like this:
+
+  Matching `[bc]d(ef*g)+h[ij]k$' against `abcdefg__gh__'
+    Setting an EVAL scope, savestack=3
+     2 <ab> <cdefg__gh_>    |  1: ANYOF
+     3 <abc> <defg__gh_>    | 11: EXACT <d>
+     4 <abcd> <efg__gh_>    | 13: CURLYX {1,32767}
+     4 <abcd> <efg__gh_>    | 26:   WHILEM
+                               0 out of 1..32767  cc=effff31c
+     4 <abcd> <efg__gh_>    | 15:     OPEN1
+     4 <abcd> <efg__gh_>    | 17:     EXACT <e>
+     5 <abcde> <fg__gh_>    | 19:     STAR
+                            EXACT <f> can match 1 times out of 32767...
+    Setting an EVAL scope, savestack=3
+     6 <bcdef> <g__gh__>    | 22:       EXACT <g>
+     7 <bcdefg> <__gh__>    | 24:       CLOSE1
+     7 <bcdefg> <__gh__>    | 26:       WHILEM
+                                   1 out of 1..32767  cc=effff31c
+    Setting an EVAL scope, savestack=12
+     7 <bcdefg> <__gh__>    | 15:         OPEN1
+     7 <bcdefg> <__gh__>    | 17:         EXACT <e>
+       restoring \1 to 4(4)..7
+                                   failed, try continuation...
+     7 <bcdefg> <__gh__>    | 27:         NOTHING
+     7 <bcdefg> <__gh__>    | 28:         EXACT <h>
+                                   failed...
+                               failed...
+
+The most significant information in the output is about the particular I<node>
+of the compiled regex that is currently being tested against the target string.
+The format of these lines is
+
+C<    >I<STRING-OFFSET> <I<PRE-STRING>> <I<POST-STRING>>   |I<ID>:  I<TYPE>
+
+The I<TYPE> info is indented with respect to the backtracking level.
+Other incidental information appears interspersed within.
+
+=head1 Debugging Perl memory usage
+
+Perl is a profligate wastrel when it comes to memory use.  There
+is a saying that to estimate memory usage of Perl, assume a reasonable
+algorithm for memory allocation, multiply that estimate by 10, and
+while you still may miss the mark, at least you won't be quite so
+astonished.  This is not absolutely true, but may provide a good
+grasp of what happens.
+
+Assume that an integer cannot take less than 20 bytes of memory, a
+float cannot take less than 24 bytes, a string cannot take less
+than 32 bytes (all these examples assume 32-bit architectures, the
+result are quite a bit worse on 64-bit architectures).  If a variable
+is accessed in two of three different ways (which require an integer,
+a float, or a string), the memory footprint may increase yet another
+20 bytes.  A sloppy malloc(3) implementation can make inflate these
+numbers dramatically.
+
+On the opposite end of the scale, a declaration like
+
+  sub foo;
+
+may take up to 500 bytes of memory, depending on which release of Perl
+you're running.
+
+Anecdotal estimates of source-to-compiled code bloat suggest an
+eightfold increase.  This means that the compiled form of reasonable
+(normally commented, properly indented etc.) code will take
+about eight times more space in memory than the code took
+on disk.
+
+There are two Perl-specific ways to analyze memory usage:
+$ENV{PERL_DEBUG_MSTATS} and B<-DL> command-line switch.  The first
+is available only if Perl is compiled with Perl's malloc(); the
+second only if Perl was built with C<-DDEBUGGING>.  See the
+instructions for how to do this in the F<INSTALL> podpage at 
+the top level of the Perl source tree.
+
+=head2 Using C<$ENV{PERL_DEBUG_MSTATS}>
+
+If your perl is using Perl's malloc() and was compiled with the
+necessary switches (this is the default), then it will print memory
+usage statistics after compiling your code when C<< $ENV{PERL_DEBUG_MSTATS}
+> 1 >>, and before termination of the program when C<<
+$ENV{PERL_DEBUG_MSTATS} >= 1 >>.  The report format is similar to
+the following example:
+
+  $ PERL_DEBUG_MSTATS=2 perl -e "require Carp"
+  Memory allocation statistics after compilation: (buckets 4(4)..8188(8192)
+     14216 free:   130   117    28     7     9   0   2     2   1 0 0
+               437    61    36     0     5
+     60924 used:   125   137   161    55     7   8   6    16   2 0 1
+                74   109   304    84    20
+  Total sbrk(): 77824/21:119. Odd ends: pad+heads+chain+tail: 0+636+0+2048.
+  Memory allocation statistics after execution:   (buckets 4(4)..8188(8192)
+     30888 free:   245    78    85    13     6   2   1     3   2 0 1
+               315   162    39    42    11
+    175816 used:   265   176  1112   111    26  22  11    27   2 1 1
+               196   178  1066   798    39
+  Total sbrk(): 215040/47:145. Odd ends: pad+heads+chain+tail: 0+2192+0+6144.
+
+It is possible to ask for such a statistic at arbitrary points in
+your execution using the mstats() function out of the standard
+Devel::Peek module.
+
+Here is some explanation of that format:
+
+=over
+
+=item C<buckets SMALLEST(APPROX)..GREATEST(APPROX)>
+
+Perl's malloc() uses bucketed allocations.  Every request is rounded
+up to the closest bucket size available, and a bucket is taken from
+the pool of buckets of that size.
+
+The line above describes the limits of buckets currently in use.
+Each bucket has two sizes: memory footprint and the maximal size
+of user data that can fit into this bucket.  Suppose in the above
+example that the smallest bucket were size 4.  The biggest bucket
+would have usable size 8188, and the memory footprint would be 8192.
+
+In a Perl built for debugging, some buckets may have negative usable
+size.  This means that these buckets cannot (and will not) be used.
+For larger buckets, the memory footprint may be one page greater
+than a power of 2.  If so, case the corresponding power of two is
+printed in the C<APPROX> field above.
+
+=item Free/Used
+
+The 1 or 2 rows of numbers following that correspond to the number
+of buckets of each size between C<SMALLEST> and C<GREATEST>.  In
+the first row, the sizes (memory footprints) of buckets are powers
+of two--or possibly one page greater.  In the second row, if present,
+the memory footprints of the buckets are between the memory footprints
+of two buckets "above".
+
+For example, suppose under the previous example, the memory footprints
+were
+
+     free:    8     16    32    64    128  256 512 1024 2048 4096 8192
+          4     12    24    48    80
+
+With non-C<DEBUGGING> perl, the buckets starting from C<128> have
+a 4-byte overhead, and thus a 8192-long bucket may take up to
+8188-byte allocations.
+
+=item C<Total sbrk(): SBRKed/SBRKs:CONTINUOUS>
+
+The first two fields give the total amount of memory perl sbrk(2)ed
+(ess-broken? :-) and number of sbrk(2)s used.  The third number is
+what perl thinks about continuity of returned chunks.  So long as
+this number is positive, malloc() will assume that it is probable
+that sbrk(2) will provide continuous memory.
+
+Memory allocated by external libraries is not counted.
+
+=item C<pad: 0>
+
+The amount of sbrk(2)ed memory needed to keep buckets aligned.
+
+=item C<heads: 2192>
+
+Although memory overhead of bigger buckets is kept inside the bucket, for
+smaller buckets, it is kept in separate areas.  This field gives the
+total size of these areas.
+
+=item C<chain: 0>
+
+malloc() may want to subdivide a bigger bucket into smaller buckets.
+If only a part of the deceased bucket is left unsubdivided, the rest
+is kept as an element of a linked list.  This field gives the total
+size of these chunks.
+
+=item C<tail: 6144>
+
+To minimize the number of sbrk(2)s, malloc() asks for more memory.  This
+field gives the size of the yet unused part, which is sbrk(2)ed, but
+never touched.
+
+=back
+
+=head2 Example of using B<-DL> switch
+
+Below we show how to analyse memory usage by 
+
+  do 'lib/auto/POSIX/autosplit.ix';
+
+The file in question contains a header and 146 lines similar to
+
+  sub getcwd;
+
+B<WARNING>: The discussion below supposes 32-bit architecture.  In 
+newer releases of Perl, memory usage of the constructs discussed
+here is greatly improved, but the story discussed below is a real-life
+story.  This story is mercilessly terse, and assumes rather more than cursory
+knowledge of Perl internals.  Type space to continue, `q' to quit. 
+(Actually, you just want to skip to the next section.)
+
+Here is the itemized list of Perl allocations performed during parsing
+of this file:
+
+ !!! "after" at test.pl line 3.
+    Id  subtot   4   8  12  16  20  24  28  32  36  40  48  56  64  72  80 80+
+  0 02   13752   .   .   .   . 294   .   .   .   .   .   .   .   .   .   .   4
+  0 54    5545   .   .   8 124  16   .   .   .   1   1   .   .   .   .   .   3
+  5 05      32   .   .   .   .   .   .   .   1   .   .   .   .   .   .   .   .
+  6 02    7152   .   .   .   .   .   .   .   .   .   . 149   .   .   .   .   .
+  7 02    3600   .   .   .   .   . 150   .   .   .   .   .   .   .   .   .   .
+  7 03      64   .  -1   .   1   .   .   2   .   .   .   .   .   .   .   .   .
+  7 04    7056   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   7
+  7 17   38404   .   .   .   .   .   .   .   1   .   . 442 149   .   . 147   .
+  9 03    2078  17 249  32   .   .   .   .   2   .   .   .   .   .   .   .   .
+
+
+To see this list, insert two C<warn('!...')> statements around the call:
+
+  warn('!');
+  do 'lib/auto/POSIX/autosplit.ix';
+  warn('!!! "after"');
+
+and run it with Perl's B<-DL> option.  The first warn() will print
+memory allocation info before parsing the file and will memorize
+the statistics at this point (we ignore what it prints).  The second
+warn() prints increments with respect to these memorized data.  This
+is the printout shown above.
+
+Different I<Id>s on the left correspond to different subsystems of
+the perl interpreter.  They are just the first argument given to
+the perl memory allocation API named New().  To find what C<9 03>
+means, just B<grep> the perl source for C<903>.  You'll find it in
+F<util.c>, function savepvn().  (I know, you wonder why we told you
+to B<grep> and then gave away the answer.  That's because grepping
+the source is good for the soul.)  This function is used to store
+a copy of an existing chunk of memory.  Using a C debugger, one can
+see that the function was called either directly from gv_init() or
+via sv_magic(), and that gv_init() is called from gv_fetchpv()--which
+was itself called from newSUB().  Please stop to catch your breath now.
+
+B<NOTE>: To reach this point in the debugger and skip the calls to
+savepvn() during the compilation of the main program, you should
+set a C breakpoint
+in Perl_warn(), continue until this point is reached, and I<then> set
+a C breakpoint in Perl_savepvn().  Note that you may need to skip a
+handful of Perl_savepvn() calls that do not correspond to mass production
+of CVs (there are more C<903> allocations than 146 similar lines of
+F<lib/auto/POSIX/autosplit.ix>).  Note also that C<Perl_> prefixes are
+added by macroization code in perl header files to avoid conflicts
+with external libraries.
+
+Anyway, we see that C<903> ids correspond to creation of globs, twice
+per glob - for glob name, and glob stringification magic.
+
+Here are explanations for other I<Id>s above: 
+
+=over
+
+=item C<717> 
+
+Creates bigger C<XPV*> structures.  In the case above, it
+creates 3 C<AV>s per subroutine, one for a list of lexical variable
+names, one for a scratchpad (which contains lexical variables and
+C<targets>), and one for the array of scratchpads needed for
+recursion.  
+
+It also creates a C<GV> and a C<CV> per subroutine, all called from
+start_subparse().
+
+=item C<002>
+
+Creates a C array corresponding to the C<AV> of scratchpads and the
+scratchpad itself.  The first fake entry of this scratchpad is
+created though the subroutine itself is not defined yet.
+
+It also creates C arrays to keep data for the stash.  This is one HV,
+but it grows; thus, there are 4 big allocations: the big chunks are not
+freed, but are kept as additional arenas for C<SV> allocations.
+
+=item C<054>
+
+Creates a C<HEK> for the name of the glob for the subroutine.  This
+name is a key in a I<stash>.
+
+Big allocations with this I<Id> correspond to allocations of new
+arenas to keep C<HE>.
+
+=item C<602>
+
+Creates a C<GP> for the glob for the subroutine.
+
+=item C<702>
+
+Creates the C<MAGIC> for the glob for the subroutine.
+
+=item C<704>
+
+Creates I<arenas> which keep SVs.
+
+=back
+
+=head2 B<-DL> details
+
+If Perl is run with B<-DL> option, then warn()s that start with `!'
+behave specially.  They print a list of I<categories> of memory
+allocations, and statistics of allocations of different sizes for
+these categories.
+
+If warn() string starts with
+
+=over
+
+=item C<!!!> 
+
+print changed categories only, print the differences in counts of allocations.
+
+=item C<!!> 
+
+print grown categories only; print the absolute values of counts, and totals.
+
+=item C<!>
+
+print nonempty categories, print the absolute values of counts and totals.
+
+=back
+
+=head2 Limitations of B<-DL> statistics
+
+If an extension or external library does not use the Perl API to
+allocate memory, such allocations are not counted.
+
+=head1 SEE ALSO
+
+L<perldebug>,
+L<perlguts>,
+L<perlrun>
+L<re>,
+and
+L<Devel::Dprof>.
index fe24184..c8ef60f 100644 (file)
@@ -8,15 +8,6 @@ First of all, have you tried using the B<-w> switch?
 
 =head1 The Perl Debugger
 
-"As soon as we started programming, we found to our
-surprise that it wasn't as easy to get programs right
-as we had thought.  Debugging had to be discovered.
-I can remember the exact instant when I realized that
-a large part of my life from then on was going to be
-spent in finding mistakes in my own programs."
-
-I<  --Maurice Wilkes, 1949>
-
 If you invoke Perl with the B<-d> switch, your script runs under the
 Perl source debugger.  This works like an interactive Perl
 environment, prompting for debugger commands that let you examine
@@ -25,14 +16,14 @@ variables, etc.  This is so convenient that you often fire up
 the debugger all by itself just to test out Perl constructs
 interactively to see what they do.  For example:
 
-    perl -d -e 42
+    perl -d -e 42
 
-In Perl, the debugger is not a separate program as it usually is in the
+In Perl, the debugger is not a separate program the way it usually is in the
 typical compiled environment.  Instead, the B<-d> flag tells the compiler
 to insert source information into the parse trees it's about to hand off
 to the interpreter.  That means your code must first compile correctly
 for the debugger to work on it.  Then when the interpreter starts up, it
-preloads a Perl library file containing the debugger itself.
+preloads a special Perl library file containing the debugger.
 
 The program will halt I<right before> the first run-time executable
 statement (but see below regarding compile-time statements) and ask you
@@ -41,12 +32,15 @@ the debugger halts and shows you a line of code, it always displays the
 line it's I<about> to execute, rather than the one it has just executed.
 
 Any command not recognized by the debugger is directly executed
-(C<eval>'d) as Perl code in the current package.  (The debugger uses the
-DB package for its own state information.)
+(C<eval>'d) as Perl code in the current package.  (The debugger
+uses the DB package for keeping its own state information.)
 
-Leading white space before a command would cause the debugger to think
-it's I<NOT> a debugger command but for Perl, so be careful not to do
-that.
+For any text entered at the debugger prompt, leading and trailing whitespace
+is first stripped before further processing.  If a debugger command
+coincides with some function in your own program, merely precede the
+function with something that doesn't look like a debugger command, such
+as a leading C<;> or perhaps a C<+>, or by wrapping it with parentheses
+or braces.
 
 =head2 Debugger Commands
 
@@ -64,8 +58,8 @@ argument of C<h h> produces a more compact help listing, designed to fit
 together on one screen.
 
 If the output of the C<h> command (or any command, for that matter) scrolls
-past your screen, either precede the command with a leading pipe symbol so
-it's run through your pager, as in
+past your screen, precede the command with a leading pipe symbol so
+that it's run through your pager, as in
 
     DB> |h
 
@@ -74,7 +68,7 @@ You may change the pager which is used via C<O pager=...> command.
 =item p expr
 
 Same as C<print {$DB::OUT} expr> in the current package.  In particular,
-because this is just Perl's own B<print> function, this means that nested
+because this is just Perl's own C<print> function, this means that nested
 data structures and objects are not dumped, unlike with the C<x> command.
 
 The C<DB::OUT> filehandle is opened to F</dev/tty>, regardless of
@@ -84,26 +78,25 @@ where STDOUT may be redirected to.
 
 Evaluates its expression in list context and dumps out the result
 in a pretty-printed fashion.  Nested data structures are printed out
-recursively, unlike the C<print> function.
+recursively, unlike the real C<print> function in Perl.
+See L<Dumpvalue> if you'd like to do this yourself.
 
-The details of printout are governed by multiple C<O>ptions.
+The output format is governed by multiple options described under
+L<"Options">.
 
 =item V [pkg [vars]]
 
-Display all (or some) variables in package (defaulting to the C<main>
-package) using a data pretty-printer (hashes show their keys and values so
-you see what's what, control characters are made printable, etc.).  Make
-sure you don't put the type specifier (like C<$>) there, just the symbol
-names, like this:
+Display all (or some) variables in package (defaulting to C<main>) 
+using a data pretty-printer (hashes show their keys and values so
+you see what's what, control characters are made printable, etc.).
+Make sure you don't put the type specifier (like C<$>) there, just
+the symbol names, like this:
 
     V DB filename line
 
-Use C<~pattern> and C<!pattern> for positive and negative regexps.
-
-Nested data structures are printed out in a legible fashion, unlike
-the C<print> function.
+Use C<~pattern> and C<!pattern> for positive and negative regexes.
 
-The details of printout are governed by multiple C<O>ptions.
+This is similar to calling the C<x> command on each applicable var.
 
 =item X [vars]
 
@@ -115,21 +108,21 @@ Produce a stack backtrace.  See below for details on its output.
 
 =item s [expr]
 
-Single step.  Executes until it reaches the beginning of another
+Single step.  Executes until the beginning of another
 statement, descending into subroutine calls.  If an expression is
 supplied that includes function calls, it too will be single-stepped.
 
 =item n [expr]
 
-Next.  Executes over subroutine calls, until it reaches the beginning
+Next.  Executes over subroutine calls, until the beginning
 of the next statement.  If an expression is supplied that includes
 function calls, those functions will be executed with stops before
 each statement.
 
 =item r
 
-Continue until return from the current subroutine.  Dump the return
-value, if the PrintRet option is set (default).
+Continue until the return from the current subroutine.
+Dump the return value if the C<PrintRet> option is set (default).
 
 =item <CR>
 
@@ -159,7 +152,7 @@ List a single line.
 =item l subname
 
 List first window of lines from subroutine.  I<subname> may
-be a variable which contains a code reference.
+be a variable that contains a code reference.
 
 =item -
 
@@ -171,24 +164,24 @@ List window (a few lines) around the current line.
 
 =item .
 
-Return debugger pointer to the last-executed line and
-print it out.
+Return the internal debugger pointer to the line last
+executed, and print out that line.
 
 =item f filename
 
-Switch to viewing a different file or eval statement.  If C<filename>
-is not a full filename as found in values of %INC, it is considered as
-a regexp.
+Switch to viewing a different file or C<eval> statement.  If I<filename>
+is not a full pathname found in the values of %INC, it is considered 
+a regex.
 
 C<eval>ed strings (when accessible) are considered to be filenames:
 C<f (eval 7)> and C<f eval 7\b> access the body of the 7th C<eval>ed string
-(in the order of execution).  The bodies of currently executed C<eval>
-and of C<eval>ed strings which define subroutines are saved, thus are
-accessible by this mechanism.
+(in the order of execution).  The bodies of the currently executed C<eval>
+and of C<eval>ed strings that define subroutines are saved and thus
+accessible.
 
 =item /pattern/
 
-Search forwards for pattern; final / is optional.
+Search forwards for pattern (a Perl regex); final / is optional.
 
 =item ?pattern?
 
@@ -198,58 +191,27 @@ Search backwards for pattern; final ? is optional.
 
 List all breakpoints and actions.
 
-=item S [[!]pattern]
+=item S [[!]regex]
 
-List subroutine names [not] matching pattern.
+List subroutine names [not] matching the regex.
 
 =item t
 
-Toggle trace mode (see also C<AutoTrace> C<O>ption).
+Toggle trace mode (see also the C<AutoTrace> option).
 
 =item t expr
 
-Trace through execution of expr.  For example:
-
- $ perl -de 42
- Stack dump during die enabled outside of evals.
-
- Loading DB routines from perl5db.pl patch level 0.94
- Emacs support available.
-
- Enter h or `h h' for help.
-
- main::(-e:1):   0
-   DB<1> sub foo { 14 }
-
-   DB<2> sub bar { 3 }
-
-   DB<3> t print foo() * bar()
- main::((eval 172):3):   print foo() + bar();
- main::foo((eval 168):2):
- main::bar((eval 170):2):
- 42
-
-or, with the C<O>ption C<frame=2> set,
-
-   DB<4> O f=2
-                frame = '2'
-   DB<5> t print foo() * bar()
- 3:      foo() * bar()
- entering main::foo
-  2:     sub foo { 14 };
- exited main::foo
- entering main::bar
-  2:     sub bar { 3 };
- exited main::bar
- 42
+Trace through execution of C<expr>.
+See L<perldebguts/"Frame Listing Output Examples"> for examples.
 
 =item b [line] [condition]
 
-Set a breakpoint.  If line is omitted, sets a breakpoint on the line
-that is about to be executed.  If a condition is specified, it's
-evaluated each time the statement is reached and a breakpoint is taken
-only if the condition is true.  Breakpoints may be set on only lines
-that begin an executable statement.  Conditions don't use B<if>:
+Set a breakpoint before the given line.  If I<line> is omitted, set a
+breakpoint on the line about to be executed.  If a condition
+is specified, it's evaluated each time the statement is reached: a
+breakpoint is taken only if the condition is true.  Breakpoints may
+only be set on lines that begin an executable statement.  Conditions
+don't use C<if>:
 
     b 237 $x > 30
     b 237 ++$count237 < 11
@@ -257,28 +219,28 @@ that begin an executable statement.  Conditions don't use B<if>:
 
 =item b subname [condition]
 
-Set a breakpoint at the first line of the named subroutine.  I<subname> may
-be a variable which contains a code reference (in this case I<condition>
+Set a breakpoint before the first line of the named subroutine.  I<subname> may
+be a variable containing a code reference (in this case I<condition>
 is not supported).
 
 =item b postpone subname [condition]
 
-Set breakpoint at first line of subroutine after it is compiled.
+Set breakpoint at first line of subroutine after it is compiled.
 
 =item b load filename
 
-Set breakpoint at the first executed line of the file.  Filename should
-be a full name as found in values of %INC.
+Set a breakpoint before the first executed line of the I<filename>,
+which should be a full pathname found amongst the %INC values.
 
 =item b compile subname
 
-Sets breakpoint at the first statement executed after the subroutine
-is compiled.
+Sets a breakpoint before the first statement executed after the specified
+subroutine is compiled.
 
 =item d [line]
 
-Delete a breakpoint at the specified line.  If line is omitted, deletes
-the breakpoint on the line that is about to be executed.
+Delete a breakpoint from the specified I<line>.  If I<line> is omitted, deletes
+the breakpoint from the line about to be executed.
 
 =item D
 
@@ -286,8 +248,8 @@ Delete all installed breakpoints.
 
 =item a [line] command
 
-Set an action to be done before the line is executed.  If line is
-omitted, sets an action on the line that is about to be executed.
+Set an action to be done before the line is executed.  If I<line> is
+omitted, set an action on the line about to be executed.
 The sequence of steps taken by the debugger is
 
   1. check for a breakpoint at this line
@@ -303,38 +265,222 @@ For example, this will print out $foo every time line
 
 =item a [line]
 
-Delete an action at the specified line.  If line is omitted, deletes
+Delete an action from the specified line.  If I<line> is omitted, delete
 the action on the line that is about to be executed.
 
 =item A
 
 Delete all installed actions.
 
-=item W [expr]
+=item W expr
 
-Add a global watch-expression.
+Add a global watch-expression.  We hope you know what one of these
+is, because they're supposed to be obvious.  B<WARNING>: It is far
+too easy to destroy your watch expressions by accidentally omitting
+the I<expr>.
 
 =item W
 
 Delete all watch-expressions.
 
-=item O [opt[=val]] [opt"val"] [opt?]...
+=item O booloption ...
+
+Set each listed Boolean option to the value C<1>.
+
+=item O anyoption? ...
+
+Print out the value of one or more options.
+
+=item O option=value ...
+
+Set the value of one or more options.  If the value has internal
+whitespace, it should be quoted.  For example, you could set C<O
+pager="less -MQeicsNfr"> to call B<less> with those specific options.
+You may use either single or double quotes, but if you do, you must
+escape any embedded instances of same sort of quote you began with,
+as well as any escaping any escapes that immediately precede that
+quote but which are not meant to escape the quote itself.  In other
+words, you follow single-quoting rules irrespective of the quote;
+eg: C<O option='this isn\'t bad'> or C<O option="She said, \"Isn't
+it?\"">.
+
+For historical reasons, the C<=value> is optional, but defaults to
+1 only where it is safe to do so--that is, mostly for Boolean
+options.  It is always better to assign a specific value using C<=>.
+The C<option> can be abbreviated, but for clarity probably should
+not be.  Several options can be set together.  See L<"Options"> for
+a list of these.
+
+=item < ? 
+
+List out all pre-prompt Perl command actions.
+
+=item < [ command ]
+
+Set an action (Perl command) to happen before every debugger prompt.
+A multi-line command may be entered by backslashing the newlines.  
+B<WARNING> If C<command> is missing, all actions are wiped out!
+
+=item << command
+
+Add an action (Perl command) to happen before every debugger prompt.
+A multi-line command may be entered by backwhacking the newlines.
+
+=item > ?
+
+List out post-prompt Perl command actions.
+
+=item > command
+
+Set an action (Perl command) to happen after the prompt when you've
+just given a command to return to executing the script.  A multi-line
+command may be entered by backslashing the newlines (we bet you
+couldn't've guessed this by now).  B<WARNING> If C<command> is
+missing, all actions are wiped out!
+
+=item >> command
+
+Adds an action (Perl command) to happen after the prompt when you've
+just given a command to return to executing the script.  A multi-line
+command may be entered by slackbashing the newlines.
+
+=item { ?
+
+List out pre-prompt debugger commands.
+
+=item { [ command ]
+
+Set an action (debugger command) to happen before every debugger prompt.
+A multi-line command may be entered in the customary fashion.  
+B<WARNING> If C<command> is missing, all actions are wiped out!
+
+Because this command is in some senses new, a warning is issued if
+you appear to have accidentally entered a block instead.  If that's
+what you mean to do, write it as with C<;{ ... }> or even 
+C<do { ... }>.
+
+=item {{ command
+
+Add an action (debugger command) to happen before every debugger prompt.
+A multi-line command may be entered, if you can guess how: see above.
+
+=item ! number
+
+Redo a previous command (defaults to the previous command).
+
+=item ! -number
+
+Redo number'th previous command.
+
+=item ! pattern
+
+Redo last command that started with pattern.
+See C<O recallCommand>, too.
+
+=item !! cmd
+
+Run cmd in a subprocess (reads from DB::IN, writes to DB::OUT) See
+C<O shellBang>, also.  Note that the user's current shell (well,
+their C<$ENV{SHELL}> variable) will be used, which can interfere
+with proper interpretation of exit status or signal and coredump
+information.
+
+=item H -number
+
+Display last n commands.  Only commands longer than one character are
+listed.  If I<number> is omitted, list them all.
+
+=item q or ^D
+
+Quit.  ("quit" doesn't work for this, unless you've made an alias)
+This is the only supported way to exit the debugger, though typing
+C<exit> twice might work.
+
+Set the C<inhibit_exit> option to 0 if you want to be able to step
+off the end the script.  You may also need to set $finished to 0 
+if you want to step through global destruction.
+
+=item R
+
+Restart the debugger by C<exec()>ing a new session.  We try to maintain
+your history across this, but internal settings and command-line options
+may be lost.
+
+The following setting are currently preserved: history, breakpoints,
+actions, debugger options, and the Perl command-line
+options B<-w>, B<-I>, and B<-e>.
+
+=item |dbcmd
+
+Run the debugger command, piping DB::OUT into your current pager.
+
+=item ||dbcmd
+
+Same as C<|dbcmd> but DB::OUT is temporarily C<select>ed as well.
+
+=item = [alias value]
+
+Define a command alias, like
+
+    = quit q
+
+or list current aliases.
+
+=item command
+
+Execute command as a Perl statement.  A trailing semicolon will be
+supplied.  If the Perl statement would otherwise be confused for a
+Perl debugger, use a leading semicolon, too.
+
+=item m expr
+
+List which methods may be called on the result of the evaluated
+expression.  The expression may evaluated to a reference to a 
+blessed object, or to a package name.
+
+=item man [manpage]
+
+Despite its name, this calls your system's default documentation
+viewer on the given page, or on the viewer itself if I<manpage> is
+omitted.  If that viewer is B<man>, the current C<Config> information
+is used to invoke B<man> using the proper MANPATH or S<B<-M>
+I<manpath>> option.  Failed lookups of the form C<XXX> that match
+known manpages of the form I<perlXXX> will be retried.  This lets
+you type C<man debug> or C<man op> from the debugger.
 
-Set or query values of options.  val defaults to 1.  opt can
-be abbreviated.  Several options can be listed.
+On systems traditionally bereft of a usable B<man> command, the
+debugger invokes B<perldoc>.  Occasionally this determination is
+incorrect due to recalcitrant vendors or rather more felicitously,
+to enterprising users.  If you fall into either category, just
+manually set the $DB::doccmd variable to whatever viewer to view
+the Perl documentation on your system.  This may be set in an rc
+file, or through direct assignment.  We're still waiting for a
+working example of something along the lines of:
+
+    $DB::doccmd = 'netscape -remote http://something.here/';
+
+=back
+
+=head2 Configurable Options
+
+The debugger has numerous options settable using the C<O> command,
+either interactively or from the environment or an rc file.
 
 =over 12
 
 =item C<recallCommand>, C<ShellBang>
 
 The characters used to recall command or spawn shell.  By
-default, these are both set to C<!>.
+default, both are set to C<!>, which is unfortunate.
 
 =item C<pager>
 
-Program to use for output of pager-piped commands (those
-beginning with a C<|> character.)  By default,
-C<$ENV{PAGER}> will be used.
+Program to use for output of pager-piped commands (those beginning
+with a C<|> character.)  By default, C<$ENV{PAGER}> will be used.
+Because the debugger uses your current terminal characteristics
+for bold and underlining, if the chosen pager does not pass escape
+sequences through unchanged, the output of some debugger commands
+will not be readable when sent through the pager.
 
 =item C<tkRunning>
 
@@ -342,14 +488,23 @@ Run Tk while prompting (with ReadLine).
 
 =item C<signalLevel>, C<warnLevel>, C<dieLevel>
 
-Level of verbosity.  By default the debugger is in a sane verbose mode,
-thus it will print backtraces on all the warnings and die-messages
-which are going to be printed out, and will print a message when
-interesting uncaught signals arrive.
-
-To disable this behaviour, set these values to 0.  If C<dieLevel> is 2,
-then the messages which will be caught by surrounding C<eval> are also
-printed.
+Level of verbosity.  By default, the debugger leaves your exceptions
+and warnings alone, because altering them can break correctly running
+programs.  It will attempt to print a message when uncaught INT, BUS, or
+SEGV signals arrive.  (But see the mention of signals in L<BUGS> below.)
+
+To disable this default safe mode, set these values to something higher
+than 0.  At a level of 1, you get backtraces upon receiving any kind
+of warning (this is often annoying) or exception (this is
+often valuable).  Unfortunately, the debugger cannot discern fatal
+exceptions from non-fatal ones.  If C<dieLevel> is even 1, then your
+non-fatal exceptions are also traced and unceremoniously altered if they
+came from C<eval'd> strings or from any kind of C<eval> within modules
+you're attempting to load.  If C<dieLevel> is 2, the debugger doesn't
+care where they came from:  It usurps your exception handler and prints
+out a trace, then modifies all exceptions with its own embellishments.
+This may perhaps be useful for some tracing purposes, but tends to hopelessly
+destroy any program that takes its exception handling seriously.
 
 =item C<AutoTrace>
 
@@ -359,7 +514,10 @@ C<PERLDB_OPTS>).
 =item C<LineInfo>
 
 File or pipe to print line number info to.  If it is a pipe (say,
-C<|visual_perl_db>), then a short, "emacs like" message is used.
+C<|visual_perl_db>), then a short message is used.  This is the
+mechanism used to interact with a slave editor or visual debugger,
+such as the special C<vi> or C<emacs> hooks, or the C<ddd> graphical
+debugger.
 
 =item C<inhibit_exit>
 
@@ -371,25 +529,28 @@ Print return value after C<r> command if set (default).
 
 =item C<ornaments>
 
-affects screen appearance of the command line (see L<Term::ReadLine>).
+Affects screen appearance of the command line (see L<Term::ReadLine>).
+There is currently no way to disable these, which can render
+some output illegible on some displays, or with some pagers.
+This is considered a bug.
 
 =item C<frame>
 
-affects printing messages on entry and exit from subroutines.  If
+Affects the printing of messages upon entry and exit from subroutines.  If
 C<frame & 2> is false, messages are printed on entry only. (Printing
-on exit may be useful if inter(di)spersed with other messages.)
+on exit might be useful if interspersed with other messages.)
 
-If C<frame & 4>, arguments to functions are printed as well as the
-context and caller info.  If C<frame & 8>, overloaded C<stringify> and
-C<tie>d C<FETCH> are enabled on the printed arguments. If C<frame &
-16>, the return value from the subroutine is printed as well.
+If C<frame & 4>, arguments to functions are printed, plus context
+and caller info.  If C<frame & 8>, overloaded C<stringify> and
+C<tie>d C<FETCH> is enabled on the printed arguments.  If C<frame
+& 16>, the return value from the subroutine is printed.
 
 The length at which the argument list is truncated is governed by the
 next option:
 
 =item C<maxTraceLen>
 
-length at which the argument list is truncated when C<frame> option's
+Length to truncate the argument list when the C<frame> option's
 bit 4 is set.
 
 =back
@@ -405,7 +566,7 @@ Print only first N elements ('' for all).
 
 =item C<compactDump>, C<veryCompact>
 
-Change style of array and hash dump.  If C<compactDump>, short array
+Change the style of array and hash output.  If C<compactDump>, short array
 may be printed on one line.
 
 =item C<globPrint>
@@ -426,29 +587,30 @@ Dump contents of "reused" addresses.
 
 =item C<quote>, C<HighBit>, C<undefPrint>
 
-Change style of string dump.  Default value of C<quote> is C<auto>, one
-can enable either double-quotish dump, or single-quotish by setting it
-to C<"> or C<'>.  By default, characters with high bit set are printed
-I<as is>.
+Change the style of string dump.  The default value for C<quote>
+is C<auto>; one can enable double-quotish or single-quotish format
+by setting it to C<"> or C<'>, respectively.  By default, characters
+with their high bit set are printed verbatim.
 
 =item C<UsageOnly>
 
-I<very> rudimentally per-package memory usage dump.  Calculates total
-size of strings in variables in the package.
+Rudimentary per-package memory usage dump.  Calculates total
+size of strings found in variables in the package.  This does not
+include lexicals in a module's file scope, or lost in closures.
 
 =back
 
-During startup options are initialized from C<$ENV{PERLDB_OPTS}>.
-You can put additional initialization options C<TTY>, C<noTTY>,
+During startup, options are initialized from C<$ENV{PERLDB_OPTS}>.
+You may place the initialization options C<TTY>, C<noTTY>,
 C<ReadLine>, and C<NonStop> there.
 
-Example rc file:
+If your rc file contains:
 
-  &parse_options("NonStop=1 LineInfo=db.out AutoTrace");
+  parse_options("NonStop=1 LineInfo=db.out AutoTrace");
 
-The script will run without human intervention, putting trace information
-into the file I<db.out>.  (If you interrupt it, you would better reset
-C<LineInfo> to something "interactive"!)
+then your script will run without human intervention, putting trace
+information into the file I<db.out>.  (If you interrupt it, you'd
+better reset C<LineInfo> to F</dev/tty> if you expect to see anything.)
 
 =over 12
 
@@ -458,173 +620,65 @@ The TTY to use for debugging I/O.
 
 =item C<noTTY>
 
-If set, goes in C<NonStop> mode, and would not connect to a TTY.  If
-interrupt (or if control goes to debugger via explicit setting of
-$DB::signal or $DB::single from the Perl script), connects to a TTY
-specified by the C<TTY> option at startup, or to a TTY found at
-runtime using C<Term::Rendezvous> module of your choice.
+If set, the debugger goes into C<NonStop> mode and will not connect to a TTY.  If
+interrupted (or if control goes to the debugger via explicit setting of
+$DB::signal or $DB::single from the Perl script), it connects to a TTY
+specified in the C<TTY> option at startup, or to a tty found at
+runtime using the C<Term::Rendezvous> module of your choice.
 
-This module should implement a method C<new> which returns an object
-with two methods: C<IN> and C<OUT>, returning two filehandles to use
-for debugging input and output correspondingly.  Method C<new> may
-inspect an argument which is a value of C<$ENV{PERLDB_NOTTY}> at
-startup, or is C<"/tmp/perldbtty$$"> otherwise.
+This module should implement a method named C<new> that returns an object
+with two methods: C<IN> and C<OUT>.  These should return filehandles to use
+for debugging input and output correspondingly.  The C<new> method should
+inspect an argument containing the value of C<$ENV{PERLDB_NOTTY}> at
+startup, or C<"/tmp/perldbtty$$"> otherwise.  This file is not 
+inspected for proper ownership, so security hazards are theoretically
+possible.
 
 =item C<ReadLine>
 
-If false, readline support in debugger is disabled, so you can debug
-ReadLine applications.
+If false, readline support in the debugger is disabled in order
+to debug applications that themselves use ReadLine.
 
 =item C<NonStop>
 
-If set, debugger goes into noninteractive mode until interrupted, or
+If set, the debugger goes into non-interactive mode until interrupted, or
 programmatically by setting $DB::signal or $DB::single.
 
 =back
 
 Here's an example of using the C<$ENV{PERLDB_OPTS}> variable:
 
-  $ PERLDB_OPTS="N f=2" perl -d myprogram
+    $ PERLDB_OPTS="NonStop frame=2" perl -d myprogram
 
-will run the script C<myprogram> without human intervention, printing
-out the call tree with entry and exit points.  Note that C<N f=2> is
-equivalent to C<NonStop=1 frame=2>.  Note also that at the moment when
-this documentation was written all the options to the debugger could
-be uniquely abbreviated by the first letter (with exception of
-C<Dump*> options).
+That will run the script B<myprogram> without human intervention,
+printing out the call tree with entry and exit points.  Note that
+C<NonStop=1 frame=2> is equivalent to C<N f=2>, and that originally,
+options could be uniquely abbreviated by the first letter (modulo
+the C<Dump*> options).  It is nevertheless recommended that you
+always spell them out in full for legibility and future compatibility.
 
-Other examples may include
+Other examples include
 
-  $ PERLDB_OPTS="N f A L=listing" perl -d myprogram
+    $ PERLDB_OPTS="NonStop frame=2" perl -d myprogram
 
-- runs script noninteractively, printing info on each entry into a
-subroutine and each executed line into the file F<listing>. (If you
-interrupt it, you would better reset C<LineInfo> to something
+which runs script non-interactively, printing info on each entry
+into a subroutine and each executed line into the file named F<listing>.
+(If you interrupt it, you would better reset C<LineInfo> to something
 "interactive"!)
 
+Other examples include (using standard shell syntax to show environment
+variable settings):
 
-  $ env "PERLDB_OPTS=R=0 TTY=/dev/ttyc" perl -d myprogram
+  $ ( PERLDB_OPTS="NonStop frame=1 AutoTrace LineInfo=tperl.out"
+      perl -d myprogram )
 
-may be useful for debugging a program which uses C<Term::ReadLine>
-itself.  Do not forget detach shell from the TTY in the window which
-corresponds to F</dev/ttyc>, say, by issuing a command like
+which may be useful for debugging a program that uses C<Term::ReadLine>
+itself.  Do not forget to detach your shell from the TTY in the window that
+corresponds to F</dev/ttyXX>, say, by issuing a command like
 
   $ sleep 1000000
 
-See L<"Debugger Internals"> below for more details.
-
-=item < [ command ]
-
-Set an action (Perl command) to happen before every debugger prompt.
-A multi-line command may be entered by backslashing the newlines.  If
-C<command> is missing, resets the list of actions.
-
-=item << command
-
-Add an action (Perl command) to happen before every debugger prompt.
-A multi-line command may be entered by backslashing the newlines.
-
-=item > command
-
-Set an action (Perl command) to happen after the prompt when you've
-just given a command to return to executing the script.  A multi-line
-command may be entered by backslashing the newlines.  If C<command> is
-missing, resets the list of actions.
-
-=item >> command
-
-Adds an action (Perl command) to happen after the prompt when you've
-just given a command to return to executing the script.  A multi-line
-command may be entered by backslashing the newlines.
-
-=item { [ command ]
-
-Set an action (debugger command) to happen before every debugger prompt.
-A multi-line command may be entered by backslashing the newlines.  If
-C<command> is missing, resets the list of actions.
-
-=item {{ command
-
-Add an action (debugger command) to happen before every debugger prompt.
-A multi-line command may be entered by backslashing the newlines.
-
-=item ! number
-
-Redo a previous command (default previous command).
-
-=item ! -number
-
-Redo number'th-to-last command.
-
-=item ! pattern
-
-Redo last command that started with pattern.
-See C<O recallCommand>, too.
-
-=item !! cmd
-
-Run cmd in a subprocess (reads from DB::IN, writes to DB::OUT)
-See C<O shellBang> too.
-
-=item H -number
-
-Display last n commands.  Only commands longer than one character are
-listed.  If number is omitted, lists them all.
-
-=item q or ^D
-
-Quit.  ("quit" doesn't work for this.)  This is the only supported way
-to exit the debugger, though typing C<exit> twice may do it too.
-
-Set an C<O>ption C<inhibit_exit> to 0 if you want to be able to I<step
-off> the end the script.  You may also need to set $finished to 0 at
-some moment if you want to step through global destruction.
-
-=item R
-
-Restart the debugger by B<exec>ing a new session.  It tries to maintain
-your history across this, but internal settings and command line options
-may be lost.
-
-Currently the following setting are preserved: history, breakpoints,
-actions, debugger C<O>ptions, and the following command line
-options: B<-w>, B<-I>, and B<-e>.
-
-=item |dbcmd
-
-Run debugger command, piping DB::OUT to current pager.
-
-=item ||dbcmd
-
-Same as C<|dbcmd> but DB::OUT is temporarily B<select>ed as well.
-Often used with commands that would otherwise produce long
-output, such as
-
-    |V main
-
-=item = [alias value]
-
-Define a command alias, like
-
-    = quit q
-
-or list current aliases.
-
-=item command
-
-Execute command as a Perl statement.  A missing semicolon will be
-supplied.
-
-=item m expr
-
-The expression is evaluated, and the methods which may be applied to
-the result are listed.
-
-=item m package
-
-The methods which may be applied to objects in the C<package> are listed.
-
-=back
+See L<perldebguts/"Debugger Internals"> for details.
 
 =head2 Debugger input/output
 
@@ -640,19 +694,20 @@ or even
 
     DB<<17>>
 
-where that number is the command number, which you'd use to access with
-the builtin B<csh>-like history mechanism, e.g., C<!17> would repeat
-command number 17.  The number of angle brackets indicates the depth of
-the debugger.  You could get more than one set of brackets, for example, if
-you'd already at a breakpoint and then printed out the result of a
-function call that itself also has a breakpoint, or you step into an
-expression via C<s/n/t expression> command.
+where that number is the command number, and which you'd use to
+access with the built-in B<csh>-like history mechanism.  For example,
+C<!17> would repeat command number 17.  The depth of the angle
+brackets indicates the nesting depth of the debugger.  You could
+get more than one set of brackets, for example, if you'd already
+at a breakpoint and then printed the result of a function call that
+itself has a breakpoint, or you step into an expression via C<s/n/t
+expression> command.
 
 =item Multiline commands
 
 If you want to enter a multi-line command, such as a subroutine
-definition with several statements, or a format, you may escape the
-newline that would normally end the debugger command with a backslash.
+definition with several statements or a format, escape the newline
+that would normally end the debugger command with a backslash.
 Here's an example:
 
       DB<1> for (1..4) {         \
@@ -675,24 +730,26 @@ look like:
     @ = Ambulation::legs(1, 2, 3, 4) called from file `camel_flea' line 7
     $ = main::pests('bactrian', 4) called from file `camel_flea' line 4
 
-The left-hand character up there tells whether the function was called
-in a scalar or list context (we bet you can tell which is which).  What
-that says is that you were in the function C<main::infested> when you ran
-the stack dump, and that it was called in a scalar context from line 10
-of the file I<Ambulation.pm>, but without any arguments at all, meaning
-it was called as C<&infested>.  The next stack frame shows that the
-function C<Ambulation::legs> was called in a list context from the
-I<camel_flea> file with four arguments.  The last stack frame shows that
-C<main::pests> was called in a scalar context, also from I<camel_flea>,
-but from line 4.
+The left-hand character up there indicates the context in which the
+function was called, with C<$> and C<@> meaning scalar or list
+contexts respectively, and C<.> meaning void context (which is
+actually a sort of scalar context).  The display above says
+that you were in the function C<main::infested> when you ran the
+stack dump, and that it was called in scalar context from line
+10 of the file I<Ambulation.pm>, but without any arguments at all,
+meaning it was called as C<&infested>.  The next stack frame shows
+that the function C<Ambulation::legs> was called in list context
+from the I<camel_flea> file with four arguments.  The last stack
+frame shows that C<main::pests> was called in scalar context,
+also from I<camel_flea>, but from line 4.
 
-Note that if you execute C<T> command from inside an active C<use>
-statement, the backtrace will contain both C<require>
-frame and an C<eval>) frame.
+If you execute the C<T> command from inside an active C<use>
+statement, the backtrace will contain both a C<require> frame and
+an C<eval>) frame.
 
-=item Listing
+=item Line Listing Format
 
-Listing given via different flavors of C<l> command looks like this:
+This shows the sorts of output the C<l> command can produce:
 
     DB<<13>> l
   101:                @i{@i} = ();
@@ -706,976 +763,185 @@ Listing given via different flavors of C<l> command looks like this:
   109:a           if ($extra-- > 0) {
   110:                %isa = ($pack,1);
 
-Note that the breakable lines are marked with C<:>, lines with
-breakpoints are marked by C<b>, with actions by C<a>, and the
-next executed line is marked by C<< ==> >>.
+Breakable lines are marked with C<:>.  Lines with breakpoints are
+marked by C<b> and those with actions by C<a>.  The line that's
+about to be executed is marked by C<< ==> >>.
 
 =item Frame listing
 
-When C<frame> option is set, debugger would print entered (and
-optionally exited) subroutines in different styles.
-
-What follows is the start of the listing of
-
-  env "PERLDB_OPTS=f=n N" perl -d -V
-
-for different values of C<n>:
-
-=over 4
-
-=item 1
-
-  entering main::BEGIN
-   entering Config::BEGIN
-    Package lib/Exporter.pm.
-    Package lib/Carp.pm.
-   Package lib/Config.pm.
-   entering Config::TIEHASH
-   entering Exporter::import
-    entering Exporter::export
-  entering Config::myconfig
-   entering Config::FETCH
-   entering Config::FETCH
-   entering Config::FETCH
-   entering Config::FETCH
-
-=item 2
-
-  entering main::BEGIN
-   entering Config::BEGIN
-    Package lib/Exporter.pm.
-    Package lib/Carp.pm.
-   exited Config::BEGIN
-   Package lib/Config.pm.
-   entering Config::TIEHASH
-   exited Config::TIEHASH
-   entering Exporter::import
-    entering Exporter::export
-    exited Exporter::export
-   exited Exporter::import
-  exited main::BEGIN
-  entering Config::myconfig
-   entering Config::FETCH
-   exited Config::FETCH
-   entering Config::FETCH
-   exited Config::FETCH
-   entering Config::FETCH
-
-=item 4
-
-  in  $=main::BEGIN() from /dev/nul:0
-   in  $=Config::BEGIN() from lib/Config.pm:2
-    Package lib/Exporter.pm.
-    Package lib/Carp.pm.
-   Package lib/Config.pm.
-   in  $=Config::TIEHASH('Config') from lib/Config.pm:644
-   in  $=Exporter::import('Config', 'myconfig', 'config_vars') from /dev/nul:0
-    in  $=Exporter::export('Config', 'main', 'myconfig', 'config_vars') from li
-  in  @=Config::myconfig() from /dev/nul:0
-   in  $=Config::FETCH(ref(Config), 'package') from lib/Config.pm:574
-   in  $=Config::FETCH(ref(Config), 'baserev') from lib/Config.pm:574
-   in  $=Config::FETCH(ref(Config), 'PERL_VERSION') from lib/Config.pm:574
-   in  $=Config::FETCH(ref(Config), 'PERL_SUBVERSION') from lib/Config.pm:574
-   in  $=Config::FETCH(ref(Config), 'osname') from lib/Config.pm:574
-   in  $=Config::FETCH(ref(Config), 'osvers') from lib/Config.pm:574
-
-=item 6
-
-  in  $=main::BEGIN() from /dev/nul:0
-   in  $=Config::BEGIN() from lib/Config.pm:2
-    Package lib/Exporter.pm.
-    Package lib/Carp.pm.
-   out $=Config::BEGIN() from lib/Config.pm:0
-   Package lib/Config.pm.
-   in  $=Config::TIEHASH('Config') from lib/Config.pm:644
-   out $=Config::TIEHASH('Config') from lib/Config.pm:644
-   in  $=Exporter::import('Config', 'myconfig', 'config_vars') from /dev/nul:0
-    in  $=Exporter::export('Config', 'main', 'myconfig', 'config_vars') from lib/
-    out $=Exporter::export('Config', 'main', 'myconfig', 'config_vars') from lib/
-   out $=Exporter::import('Config', 'myconfig', 'config_vars') from /dev/nul:0
-  out $=main::BEGIN() from /dev/nul:0
-  in  @=Config::myconfig() from /dev/nul:0
-   in  $=Config::FETCH(ref(Config), 'package') from lib/Config.pm:574
-   out $=Config::FETCH(ref(Config), 'package') from lib/Config.pm:574
-   in  $=Config::FETCH(ref(Config), 'baserev') from lib/Config.pm:574
-   out $=Config::FETCH(ref(Config), 'baserev') from lib/Config.pm:574
-   in  $=Config::FETCH(ref(Config), 'PERL_VERSION') from lib/Config.pm:574
-   out $=Config::FETCH(ref(Config), 'PERL_VERSION') from lib/Config.pm:574
-   in  $=Config::FETCH(ref(Config), 'PERL_SUBVERSION') from lib/Config.pm:574
-
-=item 14
-
-  in  $=main::BEGIN() from /dev/nul:0
-   in  $=Config::BEGIN() from lib/Config.pm:2
-    Package lib/Exporter.pm.
-    Package lib/Carp.pm.
-   out $=Config::BEGIN() from lib/Config.pm:0
-   Package lib/Config.pm.
-   in  $=Config::TIEHASH('Config') from lib/Config.pm:644
-   out $=Config::TIEHASH('Config') from lib/Config.pm:644
-   in  $=Exporter::import('Config', 'myconfig', 'config_vars') from /dev/nul:0
-    in  $=Exporter::export('Config', 'main', 'myconfig', 'config_vars') from lib/E
-    out $=Exporter::export('Config', 'main', 'myconfig', 'config_vars') from lib/E
-   out $=Exporter::import('Config', 'myconfig', 'config_vars') from /dev/nul:0
-  out $=main::BEGIN() from /dev/nul:0
-  in  @=Config::myconfig() from /dev/nul:0
-   in  $=Config::FETCH('Config=HASH(0x1aa444)', 'package') from lib/Config.pm:574
-   out $=Config::FETCH('Config=HASH(0x1aa444)', 'package') from lib/Config.pm:574
-   in  $=Config::FETCH('Config=HASH(0x1aa444)', 'baserev') from lib/Config.pm:574
-   out $=Config::FETCH('Config=HASH(0x1aa444)', 'baserev') from lib/Config.pm:574
-
-=item 30
-
-  in  $=CODE(0x15eca4)() from /dev/null:0
-   in  $=CODE(0x182528)() from lib/Config.pm:2
-    Package lib/Exporter.pm.
-   out $=CODE(0x182528)() from lib/Config.pm:0
-   scalar context return from CODE(0x182528): undef
-   Package lib/Config.pm.
-   in  $=Config::TIEHASH('Config') from lib/Config.pm:628
-   out $=Config::TIEHASH('Config') from lib/Config.pm:628
-   scalar context return from Config::TIEHASH:   empty hash
-   in  $=Exporter::import('Config', 'myconfig', 'config_vars') from /dev/null:0
-    in  $=Exporter::export('Config', 'main', 'myconfig', 'config_vars') from lib/Exporter.pm:171
-    out $=Exporter::export('Config', 'main', 'myconfig', 'config_vars') from lib/Exporter.pm:171
-    scalar context return from Exporter::export: ''
-   out $=Exporter::import('Config', 'myconfig', 'config_vars') from /dev/null:0
-   scalar context return from Exporter::import: ''
-
-
-=back
-
-In all the cases indentation of lines shows the call tree, if bit 2 of
-C<frame> is set, then a line is printed on exit from a subroutine as
-well, if bit 4 is set, then the arguments are printed as well as the
-caller info, if bit 8 is set, the arguments are printed even if they
-are tied or references, if bit 16 is set, the return value is printed
-as well.
-
-When a package is compiled, a line like this
-
-    Package lib/Carp.pm.
-
-is printed with proper indentation.
+When the C<frame> option is set, the debugger would print entered (and
+optionally exited) subroutines in different styles.  See L<perldebguts>
+for incredibly long examples of these.
 
 =back
 
 =head2 Debugging compile-time statements
 
-If you have any compile-time executable statements (code within a BEGIN
-block or a C<use> statement), these will C<NOT> be stopped by debugger,
-although C<require>s will (and compile-time statements can be traced
-with C<AutoTrace> option set in C<PERLDB_OPTS>).  From your own Perl
-code, however, you can
+If you have compile-time executable statements (such as code within
+BEGIN and CHECK blocks or C<use> statements), these will I<not> be
+stopped by debugger, although C<require>s and INIT blocks will, and
+compile-time statements can be traced with C<AutoTrace> option set
+in C<PERLDB_OPTS>).  From your own Perl code, however, you can
 transfer control back to the debugger using the following statement,
 which is harmless if the debugger is not running:
 
     $DB::single = 1;
 
-If you set C<$DB::single> to the value 2, it's equivalent to having
+If you set C<$DB::single> to 2, it's equivalent to having
 just typed the C<n> command, whereas a value of 1 means the C<s>
 command.  The C<$DB::trace>  variable should be set to 1 to simulate
 having typed the C<t> command.
 
-Another way to debug compile-time code is to start debugger, set a
-breakpoint on I<load> of some module thusly
+Another way to debug compile-time code is to start the debugger, set a
+breakpoint on the I<load> of some module:
 
     DB<7> b load f:/perllib/lib/Carp.pm
   Will stop on load of `f:/perllib/lib/Carp.pm'.
 
-and restart debugger by C<R> command (if possible).  One can use C<b
+and then restart the debugger using the C<R> command (if possible).  One can use C<b
 compile subname> for the same purpose.
 
 =head2 Debugger Customization
 
-Most probably you do not want to modify the debugger, it contains enough
-hooks to satisfy most needs.  You may change the behaviour of debugger
-from the debugger itself, using C<O>ptions, from the command line via
-C<PERLDB_OPTS> environment variable, and from I<customization files>.
+The debugger probably contains enough configuration hooks that you
+won't ever have to modify it yourself.  You may change the behaviour
+of debugger from within the debugger using its C<O> command, from
+the command line via the C<PERLDB_OPTS> environment variable, and
+from customization files.
 
-You can do some customization by setting up a F<.perldb> file which
+You can do some customization by setting up a F<.perldb> file, which
 contains initialization code.  For instance, you could make aliases
 like these (the last one is one people expect to be there):
 
     $DB::alias{'len'}  = 's/^len(.*)/p length($1)/';
     $DB::alias{'stop'} = 's/^stop (at|in)/b/';
     $DB::alias{'ps'}   = 's/^ps\b/p scalar /';
-    $DB::alias{'quit'} = 's/^quit(\s*)/exit\$/';
+    $DB::alias{'quit'} = 's/^quit(\s*)/exit/';
 
-One changes options from F<.perldb> file via calls like this one;
+You can change options from F<.perldb> by using calls like this one;
 
     parse_options("NonStop=1 LineInfo=db.out AutoTrace=1 frame=2");
 
-(the code is executed in the package C<DB>).  Note that F<.perldb> is
+The code is executed in the package C<DB>.  Note that F<.perldb> is
 processed before processing C<PERLDB_OPTS>.  If F<.perldb> defines the
-subroutine C<afterinit>, it is called after all the debugger
+subroutine C<afterinit>, that function is called after debugger
 initialization ends.  F<.perldb> may be contained in the current
-directory, or in the C<LOGDIR>/C<HOME> directory.
+directory, or in the home directory.  Because this file is sourced
+in by Perl and may contain arbitrary commands, for security reasons,
+it must be owned by the superuser or the current user, and writable
+by no one but its owner.
 
-If you want to modify the debugger, copy F<perl5db.pl> from the Perl
-library to another name and modify it as necessary.  You'll also want
-to set your C<PERL5DB> environment variable to say something like this:
+If you want to modify the debugger, copy F<perl5db.pl> from the
+Perl library to another name and hack it to your heart's content.
+You'll then want to set your C<PERL5DB> environment variable to say
+something like this:
 
     BEGIN { require "myperl5db.pl" }
 
-As the last resort, one can use C<PERL5DB> to customize debugger by
-directly setting internal variables or calling debugger functions.
+As a last resort, you could also use C<PERL5DB> to customize the debugger
+by directly setting internal variables or calling debugger functions.
+
+Note that any variables and functions that are not documented in
+this document (or in L<perldebguts>) are considered for internal
+use only, and as such are subject to change without notice.
 
 =head2 Readline Support
 
-As shipped, the only command line history supplied is a simplistic one
+As shipped, the only command-line history supplied is a simplistic one
 that checks for leading exclamation points.  However, if you install
 the Term::ReadKey and Term::ReadLine modules from CPAN, you will
 have full editing capabilities much like GNU I<readline>(3) provides.
 Look for these in the F<modules/by-module/Term> directory on CPAN.
+These do not support normal B<vi> command-line editing, however.
 
-A rudimentary command line completion is also available.
+A rudimentary command-line completion is also available.
 Unfortunately, the names of lexical variables are not available for
 completion.
 
 =head2 Editor Support for Debugging
 
-If you have GNU B<emacs> installed on your system, it can interact with
-the Perl debugger to provide an integrated software development
-environment reminiscent of its interactions with C debuggers.
-
-Perl is also delivered with a start file for making B<emacs> act like a
-syntax-directed editor that understands (some of) Perl's syntax.  Look in
-the I<emacs> directory of the Perl source distribution.
-
-(Historically, a similar setup for interacting with B<vi> and the
-X11 window system had also been available, but at the time of this
-writing, no debugger support for B<vi> currently exists.)
-
-=head2 The Perl Profiler
-
-If you wish to supply an alternative debugger for Perl to run, just
-invoke your script with a colon and a package argument given to the B<-d>
-flag.  One of the most popular alternative debuggers for Perl is
-B<DProf>, the Perl profiler.   As of this writing, B<DProf> is not
-included with the standard Perl distribution, but it is expected to
-be included soon, for certain values of "soon".
-
-Meanwhile, you can fetch the Devel::Dprof module from CPAN.  Assuming
-it's properly installed on your system, to profile your Perl program in
-the file F<mycode.pl>, just type:
-
-    perl -d:DProf mycode.pl
-
-When the script terminates the profiler will dump the profile information
-to a file called F<tmon.out>.  A tool like B<dprofpp> (also supplied with
-the Devel::DProf package) can be used to interpret the information which is
-in that profile.
-
-=head2 Debugger support in perl
-
-When you call the B<caller> function (see L<perlfunc/caller>) from the
-package DB, Perl sets the array @DB::args to contain the arguments the
-corresponding stack frame was called with.
-
-If perl is run with B<-d> option, the following additional features
-are enabled (cf. L<perlvar/$^P>):
-
-=over
-
-=item *
-
-Perl inserts the contents of C<$ENV{PERL5DB}> (or C<BEGIN {require
-'perl5db.pl'}> if not present) before the first line of the
-application.
-
-=item *
-
-The array C<@{"_<$filename"}> is the line-by-line contents of
-$filename for all the compiled files.  Same for C<eval>ed strings which
-contain subroutines, or which are currently executed.  The $filename
-for C<eval>ed strings looks like C<(eval 34)>.
-
-=item *
-
-The hash C<%{"_<$filename"}> contains breakpoints and action (it is
-keyed by line number), and individual entries are settable (as opposed
-to the whole hash).  Only true/false is important to Perl, though the
-values used by F<perl5db.pl> have the form
-C<"$break_condition\0$action">.  Values are magical in numeric context:
-they are zeros if the line is not breakable.
-
-Same for evaluated strings which contain subroutines, or which are
-currently executed.  The $filename for C<eval>ed strings looks like
-C<(eval 34)>.
-
-=item *
-
-The scalar C<${"_<$filename"}> contains C<"_<$filename">.  Same for
-evaluated strings which contain subroutines, or which are currently
-executed.  The $filename for C<eval>ed strings looks like C<(eval
-34)>.
-
-=item *
-
-After each C<require>d file is compiled, but before it is executed,
-C<DB::postponed(*{"_<$filename"})> is called (if subroutine
-C<DB::postponed> exists).  Here the $filename is the expanded name of
-the C<require>d file (as found in values of %INC).
-
-=item *
-
-After each subroutine C<subname> is compiled existence of
-C<$DB::postponed{subname}> is checked.  If this key exists,
-C<DB::postponed(subname)> is called (if subroutine C<DB::postponed>
-exists).
-
-=item *
-
-A hash C<%DB::sub> is maintained, with keys being subroutine names,
-values having the form C<filename:startline-endline>.  C<filename> has
-the form C<(eval 31)> for subroutines defined inside C<eval>s.
-
-=item *
-
-When execution of the application reaches a place that can have
-a breakpoint, a call to C<DB::DB()> is performed if any one of
-variables $DB::trace, $DB::single, or $DB::signal is true. (Note that
-these variables are not C<local>izable.) This feature is disabled when
-the control is inside C<DB::DB()> or functions called from it (unless
-C<$^D & (1<<30)>).
-
-=item *
-
-When execution of the application reaches a subroutine call, a call
-to C<&DB::sub>(I<args>) is performed instead, with C<$DB::sub> being
-the name of the called subroutine. (Unless the subroutine is compiled
-in the package C<DB>.)
-
-=back
-
-Note that if C<&DB::sub> needs some external data to be setup for it
-to work, no subroutine call is possible until this is done.  For the
-standard debugger C<$DB::deep> (how many levels of recursion deep into
-the debugger you can go before a mandatory break) gives an example of
-such a dependency.
-
-The minimal working debugger consists of one line
-
-  sub DB::DB {}
-
-which is quite handy as contents of C<PERL5DB> environment
-variable:
-
-  env "PERL5DB=sub DB::DB {}" perl -d your-script
-
-Another (a little bit more useful) minimal debugger can be created
-with the only line being
-
-  sub DB::DB {print ++$i; scalar <STDIN>}
-
-This debugger would print the sequential number of encountered
-statement, and would wait for your C<CR> to continue.
-
-The following debugger is quite functional:
-
-  {
-    package DB;
-    sub DB  {}
-    sub sub {print ++$i, " $sub\n"; &$sub}
-  }
-
-It prints the sequential number of subroutine call and the name of the
-called subroutine.  Note that C<&DB::sub> should be compiled into the
-package C<DB>.
-
-=head2 Debugger Internals
-
-At the start, the debugger reads your rc file (F<./.perldb> or
-F<~/.perldb> under Unix), which can set important options.  This file may
-define a subroutine C<&afterinit> to be executed after the debugger is
-initialized.
-
-After the rc file is read, the debugger reads environment variable
-PERLDB_OPTS and parses it as a rest of C<O ...> line in debugger prompt.
-
-It also maintains magical internal variables, such as C<@DB::dbline>,
-C<%DB::dbline>, which are aliases for C<@{"::_<current_file"}>
-C<%{"::_<current_file"}>.  Here C<current_file> is the currently
-selected (with the debugger's C<f> command, or by flow of execution)
-file.
-
-Some functions are provided to simplify customization.  See L<"Debugger
-Customization"> for description of C<DB::parse_options(string)>.  The
-function C<DB::dump_trace(skip[, count])> skips the specified number
-of frames, and returns a list containing info about the caller
-frames (all if C<count> is missing).  Each entry is a hash with keys
-C<context> (C<$> or C<@>), C<sub> (subroutine name, or info about
-eval), C<args> (C<undef> or a reference to an array), C<file>, and
-C<line>.
-
-The function C<DB::print_trace(FH, skip[, count[, short]])> prints
-formatted info about caller frames.  The last two functions may be
-convenient as arguments to C<< < >>, C<< << >> commands.
-
-=head2 Other resources
-
-You did try the B<-w> switch, didn't you?
-
-=head2 BUGS
-
-You cannot get the stack frame information or otherwise debug functions
-that were not compiled by Perl, such as C or C++ extensions.
-
-If you alter your @_ arguments in a subroutine (such as with B<shift>
-or B<pop>, the stack backtrace will not show the original values.
-
-=head1 Debugging Perl memory usage
-
-Perl is I<very> frivolous with memory.  There is a saying that to
-estimate memory usage of Perl, assume a reasonable algorithm of
-allocation, and multiply your estimates by 10.  This is not absolutely
-true, but may give you a good grasp of what happens.
-
-Say, an integer cannot take less than 20 bytes of memory, a float
-cannot take less than 24 bytes, a string cannot take less than 32
-bytes (all these examples assume 32-bit architectures, the result are
-much worse on 64-bit architectures).  If a variable is accessed in two
-of three different ways (which require an integer, a float, or a
-string), the memory footprint may increase by another 20 bytes.  A
-sloppy malloc() implementation will make these numbers yet more.
-
-On the opposite end of the scale, a declaration like
-
-  sub foo;
-
-may take (on some versions of perl) up to 500 bytes of memory.
-
-Off-the-cuff anecdotal estimates of a code bloat give a factor around
-8.  This means that the compiled form of reasonable (commented
-indented etc.)  code will take approximately 8 times more than the
-disk space the code takes.
-
-There are two Perl-specific ways to analyze the memory usage:
-$ENV{PERL_DEBUG_MSTATS} and B<-DL> switch.  First one is available
-only if perl is compiled with Perl's malloc(), the second one only if
-Perl compiled with C<-DDEBUGGING> (as with giving C<-D optimise=-g>
-option to F<Configure>).
-
-=head2 Using C<$ENV{PERL_DEBUG_MSTATS}>
-
-If your perl is using Perl's malloc(), and compiled with correct
-switches (this is the default), then it will print memory usage
-statistics after compiling your code (if C<$ENV{PERL_DEBUG_MSTATS}> >
-1), and before termination of the script (if
-C<$ENV{PERL_DEBUG_MSTATS}> >= 1).  The report format is similar to one
-in the following example:
-
-  env PERL_DEBUG_MSTATS=2 perl -e "require Carp"
-  Memory allocation statistics after compilation: (buckets 4(4)..8188(8192)
-     14216 free:   130   117    28     7     9   0   2     2   1 0 0
-               437    61    36     0     5
-     60924 used:   125   137   161    55     7   8   6    16   2 0 1
-                74   109   304    84    20
-  Total sbrk(): 77824/21:119. Odd ends: pad+heads+chain+tail: 0+636+0+2048.
-  Memory allocation statistics after execution:   (buckets 4(4)..8188(8192)
-     30888 free:   245    78    85    13     6   2   1     3   2 0 1
-               315   162    39    42    11
-    175816 used:   265   176  1112   111    26  22  11    27   2 1 1
-               196   178  1066   798    39
-  Total sbrk(): 215040/47:145. Odd ends: pad+heads+chain+tail: 0+2192+0+6144.
-
-It is possible to ask for such a statistic at arbitrary moment by
-using Devel::Peek::mstats() (module Devel::Peek is available on CPAN).
-
-Here is the explanation of different parts of the format:
-
-=over
-
-=item C<buckets SMALLEST(APPROX)..GREATEST(APPROX)>
-
-Perl's malloc() uses bucketed allocations.  Every request is rounded
-up to the closest bucket size available, and a bucket of these size is
-taken from the pool of the buckets of this size.
+If you have the FSF's version of B<emacs> installed on your system,
+it can interact with the Perl debugger to provide an integrated
+software development environment reminiscent of its interactions
+with C debuggers.
 
-The above line describes limits of buckets currently in use.  Each
-bucket has two sizes: memory footprint, and the maximal size of user
-data which may be put into this bucket.  Say, in the above example the
-smallest bucket is both sizes 4.  The biggest bucket has usable size
-8188, and the memory footprint 8192.  
+Perl comes with a start file for making B<emacs> act like a
+syntax-directed editor that understands (some of) Perl's syntax.
+Look in the I<emacs> directory of the Perl source distribution.
 
-With debugging Perl some buckets may have negative usable size.  This
-means that these buckets cannot (and will not) be used.  For greater
-buckets the memory footprint may be one page greater than a power of
-2.  In such a case the corresponding power of two is printed instead
-in the C<APPROX> field above.
+A similar setup by Tom Christiansen for interacting with any
+vendor-shipped B<vi> and the X11 window system is also available.
+This works similarly to the integrated multiwindow support that
+B<emacs> provides, where the debugger drives the editor.  At the
+time of this writing, however, that tool's eventual location in the
+Perl distribution was uncertain.
 
-=item Free/Used
+Users of B<vi> should also look into B<vim> and B<gvim>, the mousey
+and windy version, for coloring of Perl keywords.  
 
-The following 1 or 2 rows of numbers correspond to the number of
-buckets of each size between C<SMALLEST> and C<GREATEST>.  In the
-first row the sizes (memory footprints) of buckets are powers of two
-(or possibly one page greater).  In the second row (if present) the
-memory footprints of the buckets are between memory footprints of two
-buckets "above".  
+Note that only perl can truly parse Perl, so all such CASE tools
+fall somewhat short of the mark, especially if you don't program
+your Perl as a C programmer might.
 
-Say, with the above example the memory footprints are (with current
-algorithm)
-
-     free:    8     16    32    64    128  256 512 1024 2048 4096 8192
-          4     12    24    48    80
-
-With non-C<DEBUGGING> perl the buckets starting from C<128>-long ones
-have 4-byte overhead, thus 8192-long bucket may take up to
-8188-byte-long allocations.
-
-=item C<Total sbrk(): SBRKed/SBRKs:CONTINUOUS>
-
-The first two fields give the total amount of memory perl sbrk()ed,
-and number of sbrk()s used.  The third number is what perl thinks
-about continuity of returned chunks.  As far as this number is
-positive, malloc() will assume that it is probable that sbrk() will
-provide continuous memory.
-
-The amounts sbrk()ed by external libraries is not counted.
-
-=item C<pad: 0>
-
-The amount of sbrk()ed memory needed to keep buckets aligned.
-
-=item C<heads: 2192>
-
-While memory overhead of bigger buckets is kept inside the bucket, for
-smaller buckets it is kept in separate areas.  This field gives the
-total size of these areas.
-
-=item C<chain: 0>
-
-malloc() may want to subdivide a bigger bucket into smaller buckets.
-If only a part of the deceased-bucket is left non-subdivided, the rest
-is kept as an element of a linked list.  This field gives the total
-size of these chunks.
-
-=item C<tail: 6144>
-
-To minimize amount of sbrk()s malloc() asks for more memory.  This
-field gives the size of the yet-unused part, which is sbrk()ed, but
-never touched.
-
-=back
-
-=head2 Example of using B<-DL> switch
-
-Below we show how to analyse memory usage by 
-
-  do 'lib/auto/POSIX/autosplit.ix';
-
-The file in question contains a header and 146 lines similar to
-
-  sub getcwd ;
-
-B<Note:> I<the discussion below supposes 32-bit architecture.  In the
-newer versions of perl the memory usage of the constructs discussed
-here is much improved, but the story discussed below is a real-life
-story.  This story is very terse, and assumes more than cursory
-knowledge of Perl internals.>
-
-Here is the itemized list of Perl allocations performed during parsing
-of this file:
-
- !!! "after" at test.pl line 3.
-    Id  subtot   4   8  12  16  20  24  28  32  36  40  48  56  64  72  80 80+
-  0 02   13752   .   .   .   . 294   .   .   .   .   .   .   .   .   .   .   4
-  0 54    5545   .   .   8 124  16   .   .   .   1   1   .   .   .   .   .   3
-  5 05      32   .   .   .   .   .   .   .   1   .   .   .   .   .   .   .   .
-  6 02    7152   .   .   .   .   .   .   .   .   .   . 149   .   .   .   .   .
-  7 02    3600   .   .   .   .   . 150   .   .   .   .   .   .   .   .   .   .
-  7 03      64   .  -1   .   1   .   .   2   .   .   .   .   .   .   .   .   .
-  7 04    7056   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   7
-  7 17   38404   .   .   .   .   .   .   .   1   .   . 442 149   .   . 147   .
-  9 03    2078  17 249  32   .   .   .   .   2   .   .   .   .   .   .   .   .
-
-
-To see this list insert two C<warn('!...')> statements around the call:
-
-  warn('!');
-  do 'lib/auto/POSIX/autosplit.ix';
-  warn('!!! "after"');
-
-and run it with B<-DL> option.  The first warn() will print memory
-allocation info before the parsing of the file, and will memorize the
-statistics at this point (we ignore what it prints). The second warn()
-will print increments w.r.t. this memorized statistics.  This is the
-above printout.
-
-Different I<Id>s on the left correspond to different subsystems of
-perl interpreter, they are just first argument given to perl memory
-allocation API New().  To find what C<9 03> means C<grep> the perl
-source for C<903>.  You will see that it is F<util.c>, function
-savepvn().  This function is used to store a copy of existing chunk of
-memory.  Using C debugger, one can see that it is called either
-directly from gv_init(), or via sv_magic(), and gv_init() is called
-from gv_fetchpv() - which is called from newSUB().
-
-B<Note:> to reach this place in debugger and skip all the calls to
-savepvn during the compilation of the main script, set a C breakpoint
-in Perl_warn(), C<continue> this point is reached, I<then> set
-breakpoint in Perl_savepvn().  Note that you may need to skip a
-handful of Perl_savepvn() which do not correspond to mass production
-of CVs (there are more C<903> allocations than 146 similar lines of
-F<lib/auto/POSIX/autosplit.ix>).  Note also that C<Perl_> prefixes are
-added by macroization code in perl header files to avoid conflicts
-with external libraries.
-
-Anyway, we see that C<903> ids correspond to creation of globs, twice
-per glob - for glob name, and glob stringification magic.
-
-Here are explanations for other I<Id>s above: 
-
-=over
-
-=item C<717> 
-
-is for creation of bigger C<XPV*> structures.  In the above case it
-creates 3 C<AV> per subroutine, one for a list of lexical variable
-names, one for a scratchpad (which contains lexical variables and
-C<targets>), and one for the array of scratchpads needed for
-recursion.  
-
-It also creates a C<GV> and a C<CV> per subroutine (all called from
-start_subparse()).
-
-=item C<002>
-
-Creates C array corresponding to the C<AV> of scratchpads, and the
-scratchpad itself (the first fake entry of this scratchpad is created
-though the subroutine itself is not defined yet).
-
-It also creates C arrays to keep data for the stash (this is one HV,
-but it grows, thus there are 4 big allocations: the big chunks are not
-freed, but are kept as additional arenas for C<SV> allocations).
-
-=item C<054>
-
-creates a C<HEK> for the name of the glob for the subroutine (this
-name is a key in a I<stash>).
-
-Big allocations with this I<Id> correspond to allocations of new
-arenas to keep C<HE>.
-
-=item C<602>
-
-creates a C<GP> for the glob for the subroutine.
-
-=item C<702>
-
-creates the C<MAGIC> for the glob for the subroutine.
-
-=item C<704>
-
-creates I<arenas> which keep SVs.
-
-=back
-
-=head2 B<-DL> details
-
-If Perl is run with B<-DL> option, then warn()s which start with `!'
-behave specially.  They print a list of I<categories> of memory
-allocations, and statistics of allocations of different sizes for
-these categories.
-
-If warn() string starts with
-
-=over
-
-=item C<!!!> 
-
-print changed categories only, print the differences in counts of allocations;
-
-=item C<!!> 
-
-print grown categories only; print the absolute values of counts, and totals;
-
-=item C<!>
-
-print nonempty categories, print the absolute values of counts and totals.
+=head2 The Perl Profiler
 
-=back
+If you wish to supply an alternative debugger for Perl to run, just
+invoke your script with a colon and a package argument given to the
+B<-d> flag.  The most popular alternative debuggers for Perl is the
+Perl profiler.  Devel::DProf is now included with the standard Perl
+distribution.  To profile your Perl program in the file F<mycode.pl>,
+just type:
 
-=head2 Limitations of B<-DL> statistic
+    $ perl -d:DProf mycode.pl
 
-If an extension or an external library does not use Perl API to
-allocate memory, these allocations are not counted.
+When the script terminates the profiler will dump the profile
+information to a file called F<tmon.out>.  A tool like B<dprofpp>,
+also supplied with the standard Perl distribution, can be used to
+interpret the information in that profile.
 
 =head1 Debugging regular expressions
 
-There are two ways to enable debugging output for regular expressions.
-
-If your perl is compiled with C<-DDEBUGGING>, you may use the
-B<-Dr> flag on the command line.
-
-Otherwise, one can C<use re 'debug'>, which has effects both at
-compile time, and at run time (and is I<not> lexically scoped).
-
-=head2 Compile-time output
-
-The debugging output for the compile time looks like this:
+C<use re 'debug'> enables you to see the gory details of how the
+Perl regular expression engine works.  In order to understand this
+typically voluminous output, one must not only have some idea about
+about how regular expression matching works in general, but also
+know how Perl's regular expressions are internally compiled into
+an automaton.  These matters are explored in some detail in
+L<perldebguts/"Debugging regular expressions">.
 
-  compiling RE `[bc]d(ef*g)+h[ij]k$'
-  size 43 first at 1
-     1: ANYOF(11)
-    11: EXACT <d>(13)
-    13: CURLYX {1,32767}(27)
-    15:   OPEN1(17)
-    17:     EXACT <e>(19)
-    19:     STAR(22)
-    20:       EXACT <f>(0)
-    22:     EXACT <g>(24)
-    24:   CLOSE1(26)
-    26:   WHILEM(0)
-    27: NOTHING(28)
-    28: EXACT <h>(30)
-    30: ANYOF(40)
-    40: EXACT <k>(42)
-    42: EOL(43)
-    43: END(0)
-  anchored `de' at 1 floating `gh' at 3..2147483647 (checking floating)
-                                   stclass `ANYOF' minlen 7
+=head1 Debugging memory usage
 
-The first line shows the pre-compiled form of the regexp, and the
-second shows the size of the compiled form (in arbitrary units,
-usually 4-byte words) and the label I<id> of the first node which
-does a match.
+Perl contains internal support for reporting its own memory usage,
+but this is a fairly advanced concept that requires some understanding
+of how memory allocation works.
+See L<perldebguts/"Debugging Perl memory usage"> for the details.
 
-The last line (split into two lines in the above) contains the optimizer
-info.  In the example shown, the optimizer found that the match 
-should contain a substring C<de> at the offset 1, and substring C<gh>
-at some offset between 3 and infinity.  Moreover, when checking for
-these substrings (to abandon impossible matches quickly) it will check
-for the substring C<gh> before checking for the substring C<de>.  The
-optimizer may also use the knowledge that the match starts (at the
-C<first> I<id>) with a character class, and the match cannot be
-shorter than 7 chars.
+=head1 SEE ALSO
 
-The fields of interest which may appear in the last line are
-
-=over
-
-=item C<anchored> I<STRING> C<at> I<POS>
-
-=item C<floating> I<STRING> C<at> I<POS1..POS2>
-
-see above;
-
-=item C<matching floating/anchored>
-
-which substring to check first;
-
-=item C<minlen>
-
-the minimal length of the match;
-
-=item C<stclass> I<TYPE>
-
-The type of the first matching node.
-
-=item C<noscan>
-
-which advises to not scan for the found substrings;
-
-=item C<isall>
-
-which says that the optimizer info is in fact all that the regular
-expression contains (thus one does not need to enter the RE engine at
-all);
-
-=item C<GPOS>
-
-if the pattern contains C<\G>;
-
-=item C<plus> 
-
-if the pattern starts with a repeated char (as in C<x+y>);
-
-=item C<implicit>
-
-if the pattern starts with C<.*>;
+You did try the B<-w> switch, didn't you?
 
-=item C<with eval> 
+L<perldebguts>,
+L<re>,
+L<DB>,
+L<Devel::Dprof>,
+L<dprofpp>,
+L<Dumpvalue>,
+and
+L<perlrun>.
 
-if the pattern contain eval-groups (see L<perlre/(?{ code })>);
+=head1 BUGS
 
-=item C<anchored(TYPE)>
+You cannot get stack frame information or in any fashion debug functions
+that were not compiled by Perl, such as those from C or C++ extensions.
 
-if the pattern may
-match only at a handful of places  (with C<TYPE> being
-C<BOL>, C<MBOL>, or C<GPOS>, see the table below).
+If you alter your @_ arguments in a subroutine (such as with C<shift>
+or C<pop>, the stack backtrace will not show the original values.
 
-=back
+The debugger does not currently work in conjunction with the B<-W>
+command-line switch, because it itself is not free of warnings.
 
-If a substring is known to match at end-of-line only, it may be
-followed by C<$>, as in C<floating `k'$>.
-
-The optimizer-specific info is used to avoid entering (a slow) RE
-engine on strings which will definitely not match.  If C<isall> flag
-is set, a call to the RE engine may be avoided even when optimizer
-found an appropriate place for the match.
-
-The rest of the output contains the list of I<nodes> of the compiled
-form of the RE.  Each line has format 
-
-C<   >I<id>: I<TYPE> I<OPTIONAL-INFO> (I<next-id>)
-
-=head2 Types of nodes
-
-Here is the list of possible types with short descriptions:
-
-    # TYPE arg-description [num-args] [longjump-len] DESCRIPTION
-
-    # Exit points
-    END                no      End of program.
-    SUCCEED    no      Return from a subroutine, basically.
-
-    # Anchors:
-    BOL                no      Match "" at beginning of line.
-    MBOL       no      Same, assuming multiline.
-    SBOL       no      Same, assuming singleline.
-    EOS                no      Match "" at end of string.
-    EOL                no      Match "" at end of line.
-    MEOL       no      Same, assuming multiline.
-    SEOL       no      Same, assuming singleline.
-    BOUND      no      Match "" at any word boundary
-    BOUNDL     no      Match "" at any word boundary
-    NBOUND     no      Match "" at any word non-boundary
-    NBOUNDL    no      Match "" at any word non-boundary
-    GPOS       no      Matches where last m//g left off.
-
-    # [Special] alternatives
-    ANY                no      Match any one character (except newline).
-    SANY       no      Match any one character.
-    ANYOF      sv      Match character in (or not in) this class.
-    ALNUM      no      Match any alphanumeric character
-    ALNUML     no      Match any alphanumeric char in locale
-    NALNUM     no      Match any non-alphanumeric character
-    NALNUML    no      Match any non-alphanumeric char in locale
-    SPACE      no      Match any whitespace character
-    SPACEL     no      Match any whitespace char in locale
-    NSPACE     no      Match any non-whitespace character
-    NSPACEL    no      Match any non-whitespace char in locale
-    DIGIT      no      Match any numeric character
-    NDIGIT     no      Match any non-numeric character
-
-    # BRANCH   The set of branches constituting a single choice are hooked
-    #          together with their "next" pointers, since precedence prevents
-    #          anything being concatenated to any individual branch.  The
-    #          "next" pointer of the last BRANCH in a choice points to the
-    #          thing following the whole choice.  This is also where the
-    #          final "next" pointer of each individual branch points; each
-    #          branch starts with the operand node of a BRANCH node.
-    #
-    BRANCH     node    Match this alternative, or the next...
-
-    # BACK     Normal "next" pointers all implicitly point forward; BACK
-    #          exists to make loop structures possible.
-    # not used
-    BACK       no      Match "", "next" ptr points backward.
-
-    # Literals
-    EXACT      sv      Match this string (preceded by length).
-    EXACTF     sv      Match this string, folded (prec. by length).
-    EXACTFL    sv      Match this string, folded in locale (w/len).
-
-    # Do nothing
-    NOTHING    no      Match empty string.
-    # A variant of above which delimits a group, thus stops optimizations
-    TAIL       no      Match empty string. Can jump here from outside.
-
-    # STAR,PLUS        '?', and complex '*' and '+', are implemented as circular
-    #          BRANCH structures using BACK.  Simple cases (one character
-    #          per match) are implemented with STAR and PLUS for speed
-    #          and to minimize recursive plunges.
-    #
-    STAR       node    Match this (simple) thing 0 or more times.
-    PLUS       node    Match this (simple) thing 1 or more times.
-
-    CURLY      sv 2    Match this simple thing {n,m} times.
-    CURLYN     no 2    Match next-after-this simple thing 
-    #                  {n,m} times, set parenths.
-    CURLYM     no 2    Match this medium-complex thing {n,m} times.
-    CURLYX     sv 2    Match this complex thing {n,m} times.
-
-    # This terminator creates a loop structure for CURLYX
-    WHILEM     no      Do curly processing and see if rest matches.
-
-    # OPEN,CLOSE,GROUPP        ...are numbered at compile time.
-    OPEN       num 1   Mark this point in input as start of #n.
-    CLOSE      num 1   Analogous to OPEN.
-
-    REF                num 1   Match some already matched string
-    REFF       num 1   Match already matched string, folded
-    REFFL      num 1   Match already matched string, folded in loc.
-
-    # grouping assertions
-    IFMATCH    off 1 2 Succeeds if the following matches.
-    UNLESSM    off 1 2 Fails if the following matches.
-    SUSPEND    off 1 1 "Independent" sub-RE.
-    IFTHEN     off 1 1 Switch, should be preceeded by switcher .
-    GROUPP     num 1   Whether the group matched.
-
-    # Support for long RE
-    LONGJMP    off 1 1 Jump far away.
-    BRANCHJ    off 1 1 BRANCH with long offset.
-
-    # The heavy worker
-    EVAL       evl 1   Execute some Perl code.
-
-    # Modifiers
-    MINMOD     no      Next operator is not greedy.
-    LOGICAL    no      Next opcode should set the flag only.
-
-    # This is not used yet
-    RENUM      off 1 1 Group with independently numbered parens.
-
-    # This is not really a node, but an optimized away piece of a "long" node.
-    # To simplify debugging output, we mark it as if it were a node
-    OPTIMIZED  off     Placeholder for dump.
-
-=head2 Run-time output
-
-First of all, when doing a match, one may get no run-time output even
-if debugging is enabled.  this means that the RE engine was never
-entered, all of the job was done by the optimizer.
-
-If RE engine was entered, the output may look like this:
-
-  Matching `[bc]d(ef*g)+h[ij]k$' against `abcdefg__gh__'
-    Setting an EVAL scope, savestack=3
-     2 <ab> <cdefg__gh_>    |  1: ANYOF
-     3 <abc> <defg__gh_>    | 11: EXACT <d>
-     4 <abcd> <efg__gh_>    | 13: CURLYX {1,32767}
-     4 <abcd> <efg__gh_>    | 26:   WHILEM
-                               0 out of 1..32767  cc=effff31c
-     4 <abcd> <efg__gh_>    | 15:     OPEN1
-     4 <abcd> <efg__gh_>    | 17:     EXACT <e>
-     5 <abcde> <fg__gh_>    | 19:     STAR
-                            EXACT <f> can match 1 times out of 32767...
-    Setting an EVAL scope, savestack=3
-     6 <bcdef> <g__gh__>    | 22:       EXACT <g>
-     7 <bcdefg> <__gh__>    | 24:       CLOSE1
-     7 <bcdefg> <__gh__>    | 26:       WHILEM
-                                   1 out of 1..32767  cc=effff31c
-    Setting an EVAL scope, savestack=12
-     7 <bcdefg> <__gh__>    | 15:         OPEN1
-     7 <bcdefg> <__gh__>    | 17:         EXACT <e>
-       restoring \1 to 4(4)..7
-                                   failed, try continuation...
-     7 <bcdefg> <__gh__>    | 27:         NOTHING
-     7 <bcdefg> <__gh__>    | 28:         EXACT <h>
-                                   failed...
-                               failed...
-
-The most significant information in the output is about the particular I<node>
-of the compiled RE which is currently being tested against the target string.
-The format of these lines is
-
-C<    >I<STRING-OFFSET> <I<PRE-STRING>> <I<POST-STRING>>   |I<ID>:  I<TYPE>
-
-The I<TYPE> info is indented with respect to the backtracking level.
-Other incidental information appears interspersed within.
-
-=cut
+If you're in a slow syscall (like C<wait>ing, C<accept>ing, or C<read>ing
+from your keyboard or a socket) and haven't set up your own C<$SIG{INT}>
+handler, then you won't be able to CTRL-C your way back to the debugger,
+because the debugger's own C<$SIG{INT}> handler doesn't understand that
+it needs to raise an exception to longjmp(3) out of slow syscalls.
index 8701714..a49b9af 100644 (file)
@@ -15,8 +15,8 @@ desperation):
     (X) A very fatal error (nontrappable).
     (A) An alien error message (not generated by Perl).
 
-The majority of messages from the first three classifications above (W,
-D & S) can be controlled using the C<warnings> pragma. 
+The majority of messages from the first three classifications above
+(W, D & S) can be controlled using the C<warnings> pragma. 
 
 If a message can be controlled by the C<warnings> pragma, its warning
 category is included with the classification letter in the description
@@ -35,140 +35,109 @@ L<perlfunc/eval>.  In almost all cases, warnings may be selectively
 disabled or promoted to fatal errors using the C<warnings> pragma.
 See L<warnings>.
 
-Some of these messages are generic.  Spots that vary are denoted with a %s,
-just as in a printf format.  Note that some messages start with a %s!
-Since the messages are listed in alphabetical order, the symbols
-C<"%(-?@> sort before the letters, while C<[> and C<\> sort after.
+The messages are in alphabetical order, without regard to upper or
+lower-case.  Some of these messages are generic.  Spots that vary are
+denoted with a %s or other printf-style escape.  These escapes are
+ignored by the alphabetical order, as are all characters other than
+letters.  To look up your message, just ignore anything that is not a
+letter.
 
 =over 4
 
-=item "%s" variable %s masks earlier declaration in same %s
-
-(W misc) A "my" or "our" variable has been redeclared in the current scope or statement,
-effectively eliminating all access to the previous instance.  This is almost
-always a typographical error.  Note that the earlier variable will still exist
-until the end of the scope or until all closure referents to it are
-destroyed.
-
-=item "my sub" not yet implemented
-
-(F) Lexically scoped subroutines are not yet implemented.  Don't try that
-yet.
-
-=item "my" variable %s can't be in a package
-
-(F) Lexically scoped variables aren't in a package, so it doesn't make sense
-to try to declare one with a package qualifier on the front.  Use local()
-if you want to localize a package variable.
-
-=item "no" not allowed in expression
-
-(F) The "no" keyword is recognized and executed at compile time, and returns
-no useful value.  See L<perlmod>.
-
-=item "our" variable %s redeclared
+=item accept() on closed socket %s
 
-(W misc) You seem to have already declared the same global once before in the
-current lexical scope.
+(W closed) You tried to do an accept on a closed socket.  Did you forget
+to check the return value of your socket() call?  See
+L<perlfunc/accept>.
 
-=item "use" not allowed in expression
+=item Allocation too large: %lx
 
-(F) The "use" keyword is recognized and executed at compile time, and returns
-no useful value.  See L<perlmod>.
+(X) You can't allocate more than 64K on an MS-DOS machine.
 
 =item '!' allowed only after types %s
 
 (F) The '!' is allowed in pack() and unpack() only after certain types.
 See L<perlfunc/pack>.
 
-=item / cannot take a count
-
-(F) You had an unpack template indicating a counted-length string,
-but you have also specified an explicit size for the string.
-See L<perlfunc/pack>.
-
-=item / must be followed by a, A or Z
-
-(F) You had an unpack template indicating a counted-length string,
-which must be followed by one of the letters a, A or Z
-to indicate what sort of string is to be unpacked.
-See L<perlfunc/pack>.
-
-=item / must be followed by a*, A* or Z*
-
-(F) You had a pack template indicating a counted-length string,
-Currently the only things that can have their length counted are a*, A* or Z*.
-See L<perlfunc/pack>.
-
-=item / must follow a numeric type
+=item Ambiguous call resolved as CORE::%s(), qualify as such or use &
 
-(F) You had an unpack template that contained a '#',
-but this did not follow some numeric unpack specification.
-See L<perlfunc/pack>.
+(W ambiguous) A subroutine you have declared has the same name as a Perl
+keyword, and you have used the name without qualification for calling
+one or the other.  Perl decided to call the builtin because the
+subroutine is not imported.
 
-=item % may only be used in unpack
-
-(F) You can't pack a string by supplying a checksum, because the
-checksumming process loses information, and you can't go the other
-way.  See L<perlfunc/unpack>.
+To force interpretation as a subroutine call, either put an ampersand
+before the subroutine name, or qualify the name with its package.
+Alternatively, you can import the subroutine (or pretend that it's
+imported with the C<use subs> pragma).
 
-=item Repeat count in pack overflows
+To silently interpret it as the Perl operator, use the C<CORE::> prefix
+on the operator (e.g. C<CORE::log($x)>) or by declaring the subroutine
+to be an object method (see L<perlsub/"Subroutine Attributes"> or
+L<attributes>).
 
-(F) You can't specify a repeat count so large that it overflows
-your signed integers.  See L<perlfunc/pack>.
+=item Ambiguous use of %s resolved as %s
 
-=item Repeat count in unpack overflows
+(W ambiguous)(S) You said something that may not be interpreted the way
+you thought.  Normally it's pretty easy to disambiguate it by supplying
+a missing quote, operator, parenthesis pair or declaration.
 
-(F) You can't specify a repeat count so large that it overflows
-your signed integers.  See L<perlfunc/unpack>.
+=item '|' and '<' may not both be specified on command line
 
-=item /%s/: Unrecognized escape \\%c passed through
+(F) An error peculiar to VMS.  Perl does its own command line
+redirection, and found that STDIN was a pipe, and that you also tried to
+redirect STDIN using '<'.  Only one STDIN stream to a customer, please.
 
-(W regexp) You used a backslash-character combination which is not recognized
-by Perl.  This combination appears in an interpolated variable or a 
-C<'>-delimited regular expression.  The character was understood literally.
+=item '|' and '>' may not both be specified on command line
 
-=item /%s/: Unrecognized escape \\%c in character class passed through
+(F) An error peculiar to VMS.  Perl does its own command line
+redirection, and thinks you tried to redirect stdout both to a file and
+into a pipe to another command.  You need to choose one or the other,
+though nothing's stopping you from piping into a program or Perl script
+which 'splits' output into two streams, such as
 
-(W regexp) You used a backslash-character combination which is not recognized
-by Perl inside character classes.  The character was understood literally.
+    open(OUT,">$ARGV[0]") or die "Can't write to $ARGV[0]: $!";
+    while (<STDIN>) {
+        print;
+        print OUT;
+    }
+    close OUT;
 
-=item /%s/ should probably be written as "%s"
+=item Applying %s to %s will act on scalar(%s)
 
-(W syntax) You have used a pattern where Perl expected to find a string,
-as in the first argument to C<join>.  Perl will treat the true
-or false result of matching the pattern against $_ as the string,
-which is probably not what you had in mind.
+(W misc) The pattern match (//), substitution (s///), and
+transliteration (tr///) operators work on scalar values.  If you apply
+one of them to an array or a hash, it will convert the array or hash to
+a scalar value -- the length of an array, or the population info of a
+hash -- and then work on that scalar value.  This is probably not what
+you meant to do.  See L<perlfunc/grep> and L<perlfunc/map> for
+alternatives.
 
-=item %s (...) interpreted as function
+=item Args must match #! line
 
-(W syntax) You've run afoul of the rule that says that any list operator followed
-by parentheses turns into a function, with all the list operators arguments
-found inside the parentheses.  See L<perlop/Terms and List Operators (Leftward)>.
+(F) The setuid emulator requires that the arguments Perl was invoked
+with match the arguments specified on the #! line.  Since some systems
+impose a one-argument limit on the #! line, try combining switches;
+for example, turn C<-w -U> into C<-wU>.
 
-=item %s() called too early to check prototype
+=item Arg too short for msgsnd
 
-(W prototype) You've called a function that has a prototype before the parser saw a
-definition or declaration for it, and Perl could not check that the call
-conforms to the prototype.  You need to either add an early prototype
-declaration for the subroutine in question, or move the subroutine
-definition ahead of the call to get proper prototype checking.  Alternatively,
-if you are certain that you're calling the function correctly, you may put
-an ampersand before the name to avoid the warning.  See L<perlsub>.
+(F) msgsnd() requires a string at least as long as sizeof(long).
 
 =item %s argument is not a HASH or ARRAY element
 
 (F) The argument to exists() must be a hash or array element, such as:
 
     $foo{$bar}
-    $ref->[12]->["susie"]
+    $ref->{"susie"}[12]
 
 =item %s argument is not a HASH or ARRAY element or slice
 
-(F) The argument to delete() must be either a hash or array element, such as:
+(F) The argument to delete() must be either a hash or array element,
+such as:
 
     $foo{$bar}
-    $ref->[12]->["susie"]
+    $ref->{"susie"}[12]
 
 or a hash or array slice, such as:
 
@@ -178,191 +147,19 @@ or a hash or array slice, such as:
 =item %s argument is not a subroutine name
 
 (F) The argument to exists() for C<exists &sub> must be a subroutine
-name, and not a subroutine call.  C<exists &sub()> will generate this error.
-
-=item %s did not return a true value
-
-(F) A required (or used) file must return a true value to indicate that
-it compiled correctly and ran its initialization code correctly.  It's
-traditional to end such a file with a "1;", though any true value would
-do.  See L<perlfunc/require>.
-
-=item %s found where operator expected
-
-(S) The Perl lexer knows whether to expect a term or an operator.  If it
-sees what it knows to be a term when it was expecting to see an operator,
-it gives you this warning.  Usually it indicates that an operator or
-delimiter was omitted, such as a semicolon.
-
-=item %s had compilation errors
-
-(F) The final summary message when a C<perl -c> fails.
-
-=item %s has too many errors
-
-(F) The parser has given up trying to parse the program after 10 errors.
-Further error messages would likely be uninformative.
-
-=item %s matches null string many times
-
-(W regexp) The pattern you've specified would be an infinite loop if the
-regular expression engine didn't specifically check for that.  See L<perlre>.
-
-=item %s never introduced
-
-(S internal) The symbol in question was declared but somehow went out of scope
-before it could possibly have been used.
-
-=item %s package attribute may clash with future reserved word: %s
-
-(W reserved) A lowercase attribute name was used that had a package-specific handler.
-That name might have a meaning to Perl itself some day, even though it
-doesn't yet.  Perhaps you should use a mixed-case attribute name, instead.
-See L<attributes>.
-
-=item %s syntax OK
-
-(F) The final summary message when a C<perl -c> succeeds.
-
-=item %s: Command not found
-
-(A) You've accidentally run your script through B<csh> instead
-of Perl.  Check the #! line, or manually feed your script into
-Perl yourself.
-
-=item %s: Expression syntax
-
-(A) You've accidentally run your script through B<csh> instead
-of Perl.  Check the #! line, or manually feed your script into
-Perl yourself.
-
-=item %s: Undefined variable
-
-(A) You've accidentally run your script through B<csh> instead
-of Perl.  Check the #! line, or manually feed your script into
-Perl yourself.
-
-=item %s: not found
-
-(A) You've accidentally run your script through the Bourne shell
-instead of Perl.  Check the #! line, or manually feed your script
-into Perl yourself.
-
-=item         (in cleanup) %s
-
-(W misc) This prefix usually indicates that a DESTROY() method raised
-the indicated exception.  Since destructors are usually called by
-the system at arbitrary points during execution, and often a vast
-number of times, the warning is issued only once for any number
-of failures that would otherwise result in the same message being
-repeated.
-
-Failure of user callbacks dispatched using the C<G_KEEPERR> flag
-could also result in this warning.  See L<perlcall/G_KEEPERR>.
-
-=item         (Missing semicolon on previous line?)
-
-(S) This is an educated guess made in conjunction with the message "%s
-found where operator expected".  Don't automatically put a semicolon on
-the previous line just because you saw this message.
-
-=item B<-P> not allowed for setuid/setgid script
-
-(F) The script would have to be opened by the C preprocessor by name,
-which provides a race condition that breaks security.
-
-=item C<-T> and C<-B> not implemented on filehandles
-
-(F) Perl can't peek at the stdio buffer of filehandles when it doesn't
-know about your kind of stdio.  You'll have to use a filename instead.
-
-=item C<-p> destination: %s
-
-(F) An error occurred during the implicit output invoked by the C<-p>
-command-line switch.  (This output goes to STDOUT unless you've
-redirected it with select().)
-
-=item 500 Server error
-
-See Server error.
-
-=item ?+* follows nothing in regexp
-
-(F) You started a regular expression with a quantifier.  Backslash it
-if you meant it literally.   See L<perlre>.
-
-=item @ outside of string
-
-(F) You had a pack template that specified an absolute position outside
-the string being unpacked.  See L<perlfunc/pack>.
-
-=item <> should be quotes
-
-(F) You wrote C<< require <file> >> when you should have written
-C<require 'file'>.
-
-=item accept() on closed socket %s
-
-(W closed) You tried to do an accept on a closed socket.  Did you forget to check
-the return value of your socket() call?  See L<perlfunc/accept>.
-
-=item Allocation too large: %lx
-
-(X) You can't allocate more than 64K on an MS-DOS machine.
-
-=item Applying %s to %s will act on scalar(%s)
-
-(W misc) The pattern match (//), substitution (s///), and transliteration (tr///)
-operators work on scalar values.  If you apply one of them to an array
-or a hash, it will convert the array or hash to a scalar value -- the
-length of an array, or the population info of a hash -- and then work on
-that scalar value.  This is probably not what you meant to do.  See
-L<perlfunc/grep> and L<perlfunc/map> for alternatives.
-
-=item Arg too short for msgsnd
-
-(F) msgsnd() requires a string at least as long as sizeof(long).
-
-=item Ambiguous use of %s resolved as %s
-
-(W ambiguous)(S) You said something that may not be interpreted the way
-you thought.  Normally it's pretty easy to disambiguate it by supplying
-a missing quote, operator, parenthesis pair or declaration.
-
-=item Ambiguous call resolved as CORE::%s(), qualify as such or use &
-
-(W ambiguous) A subroutine you have declared has the same name as a Perl keyword,
-and you have used the name without qualification for calling one or the
-other.  Perl decided to call the builtin because the subroutine is
-not imported.
-
-To force interpretation as a subroutine call, either put an ampersand
-before the subroutine name, or qualify the name with its package.
-Alternatively, you can import the subroutine (or pretend that it's
-imported with the C<use subs> pragma).
-
-To silently interpret it as the Perl operator, use the C<CORE::> prefix
-on the operator (e.g. C<CORE::log($x)>) or by declaring the subroutine
-to be an object method (see L<perlsub/"Subroutine Attributes">
-or L<attributes>).
-
-=item Args must match #! line
-
-(F) The setuid emulator requires that the arguments Perl was invoked
-with match the arguments specified on the #! line.  Since some systems
-impose a one-argument limit on the #! line, try combining switches;
-for example, turn C<-w -U> into C<-wU>.
+name, and not a subroutine call.  C<exists &sub()> will generate this
+error.
 
 =item Argument "%s" isn't numeric%s
 
-(W numeric) The indicated string was fed as an argument to an operator that
-expected a numeric value instead.  If you're fortunate the message
+(W numeric) The indicated string was fed as an argument to an operator
+that expected a numeric value instead.  If you're fortunate the message
 will identify which operator was so unfortunate.
 
 =item Array @%s missing the @ in argument %d of %s()
 
-(D deprecated) Really old Perl let you omit the @ on array names in some spots.  This
-is now heavily deprecated.
+(D deprecated) Really old Perl let you omit the @ on array names in some
+spots.  This is now heavily deprecated.
 
 =item assertion botched: %s
 
@@ -380,24 +177,24 @@ know which context to supply to the right side.
 
 =item Attempt to free non-arena SV: 0x%lx
 
-(P internal) All SV objects are supposed to be allocated from arenas that will
-be garbage collected on exit.  An SV was discovered to be outside any
-of those arenas.
+(P internal) All SV objects are supposed to be allocated from arenas
+that will be garbage collected on exit.  An SV was discovered to be
+outside any of those arenas.
 
 =item Attempt to free nonexistent shared string
 
-(P internal) Perl maintains a reference counted internal table of strings to
-optimize the storage and access of hash keys and other strings.  This
-indicates someone tried to decrement the reference count of a string
-that can no longer be found in the table.
+(P internal) Perl maintains a reference counted internal table of
+strings to optimize the storage and access of hash keys and other
+strings.  This indicates someone tried to decrement the reference count
+of a string that can no longer be found in the table.
 
 =item Attempt to free temp prematurely
 
-(W debugging) Mortalized values are supposed to be freed by the free_tmps()
-routine.  This indicates that something else is freeing the SV before
-the free_tmps() routine gets a chance, which means that the free_tmps()
-routine will be freeing an unreferenced scalar when it does try to free
-it.
+(W debugging) Mortalized values are supposed to be freed by the
+free_tmps() routine.  This indicates that something else is freeing the
+SV before the free_tmps() routine gets a chance, which means that the
+free_tmps() routine will be freeing an unreferenced scalar when it does
+try to free it.
 
 =item Attempt to free unreferenced glob pointers
 
@@ -405,18 +202,19 @@ it.
 
 =item Attempt to free unreferenced scalar
 
-(W internal) Perl went to decrement the reference count of a scalar to see if it
-would go to 0, and discovered that it had already gone to 0 earlier,
-and should have been freed, and in fact, probably was freed.  This
-could indicate that SvREFCNT_dec() was called too many times, or that
-SvREFCNT_inc() was called too few times, or that the SV was mortalized
-when it shouldn't have been, or that memory has been corrupted.
+(W internal) Perl went to decrement the reference count of a scalar to
+see if it would go to 0, and discovered that it had already gone to 0
+earlier, and should have been freed, and in fact, probably was freed.
+This could indicate that SvREFCNT_dec() was called too many times, or
+that SvREFCNT_inc() was called too few times, or that the SV was
+mortalized when it shouldn't have been, or that memory has been
+corrupted.
 
 =item Attempt to join self
 
 (F) You tried to join a thread from within itself, which is an
-impossible task.  You may be joining the wrong thread, or you may
-need to move the join() to some other thread.
+impossible task.  You may be joining the wrong thread, or you may need
+to move the join() to some other thread.
 
 =item Attempt to pack pointer to temporary value
 
@@ -429,33 +227,38 @@ avoid this warning.
 
 =item Attempt to use reference as lvalue in substr
 
-(W substr) You supplied a reference as the first argument to substr() used
-as an lvalue, which is pretty strange.  Perhaps you forgot to
+(W substr) You supplied a reference as the first argument to substr()
+used as an lvalue, which is pretty strange.  Perhaps you forgot to
 dereference it first.  See L<perlfunc/substr>.
 
 =item Bad arg length for %s, is %d, should be %d
 
-(F) You passed a buffer of the wrong size to one of msgctl(), semctl() or
-shmctl().  In C parlance, the correct sizes are, respectively,
+(F) You passed a buffer of the wrong size to one of msgctl(), semctl()
+or shmctl().  In C parlance, the correct sizes are, respectively,
 S<sizeof(struct msqid_ds *)>, S<sizeof(struct semid_ds *)>, and
 S<sizeof(struct shmid_ds *)>.
 
+=item Bad evalled substitution pattern
+
+(F) You've used the /e switch to evaluate the replacement for a
+substitution, but perl found a syntax error in the code to evaluate,
+most likely an unexpected right brace '}'.
+
 =item Bad filehandle: %s
 
-(F) A symbol was passed to something wanting a filehandle, but the symbol
-has no filehandle associated with it.  Perhaps you didn't do an open(), or
-did it in another package.
+(F) A symbol was passed to something wanting a filehandle, but the
+symbol has no filehandle associated with it.  Perhaps you didn't do an
+open(), or did it in another package.
 
 =item Bad free() ignored
 
-(S malloc) An internal routine called free() on something that had never been
-malloc()ed in the first place. Mandatory, but can be disabled by
+(S malloc) An internal routine called free() on something that had never
+been malloc()ed in the first place. Mandatory, but can be disabled by
 setting environment variable C<PERL_BADFREE> to 1.
 
-This message can be quite often seen with DB_File on systems with
-"hard" dynamic linking, like C<AIX> and C<OS/2>. It is a bug of
-C<Berkeley DB> which is left unnoticed if C<DB> uses I<forgiving>
-system malloc().
+This message can be quite often seen with DB_File on systems with "hard"
+dynamic linking, like C<AIX> and C<OS/2>. It is a bug of C<Berkeley DB>
+which is left unnoticed if C<DB> uses I<forgiving> system malloc().
 
 =item Bad hash
 
@@ -467,11 +270,17 @@ system malloc().
 pseudo-hash is not legal.  Index values must be at 1 or greater.
 See L<perlref>.
 
+=item Badly placed ()'s
+
+(A) You've accidentally run your script through B<csh> instead
+of Perl.  Check the #! line, or manually feed your script into
+Perl yourself.
+
 =item Bad name after %s::
 
-(F) You started to name a symbol by using a package prefix, and then didn't
-finish the symbol.  In particular, you can't interpolate outside of quotes,
-so
+(F) You started to name a symbol by using a package prefix, and then
+didn't finish the symbol.  In particular, you can't interpolate outside
+of quotes, so
 
     $var = 'myvar';
     $sym = mypack::$var;
@@ -483,9 +292,9 @@ is not the same as
 
 =item Bad realloc() ignored
 
-(S malloc) An internal routine called realloc() on something that had never been
-malloc()ed in the first place. Mandatory, but can be disabled by
-setting environment variable C<PERL_BADFREE> to 1.
+(S malloc) An internal routine called realloc() on something that had
+never been malloc()ed in the first place. Mandatory, but can be disabled
+by setting environment variable C<PERL_BADFREE> to 1.
 
 =item Bad symbol for array
 
@@ -494,60 +303,63 @@ wasn't a symbol table entry.
 
 =item Bad symbol for filehandle
 
-(P) An internal request asked to add a filehandle entry to something that
-wasn't a symbol table entry.
+(P) An internal request asked to add a filehandle entry to something
+that wasn't a symbol table entry.
 
 =item Bad symbol for hash
 
 (P) An internal request asked to add a hash entry to something that
 wasn't a symbol table entry.
 
-=item Badly placed ()'s
-
-(A) You've accidentally run your script through B<csh> instead
-of Perl.  Check the #! line, or manually feed your script into
-Perl yourself.
-
-=item Bareword "%s" not allowed while "strict subs" in use
-
-(F) With "strict subs" in use, a bareword is only allowed as a
-subroutine identifier, in curly brackets or to the left of the "=>" symbol.
-Perhaps you need to predeclare a subroutine?
-
-=item Bareword "%s" refers to nonexistent package
-
-(W bareword) You used a qualified bareword of the form C<Foo::>, but
-the compiler saw no other uses of that namespace before that point.
-Perhaps you need to predeclare a package?
-
 =item Bareword found in conditional
 
-(W bareword) The compiler found a bareword where it expected a conditional,
-which often indicates that an || or && was parsed as part of the
-last argument of the previous construct, for example:
+(W bareword) The compiler found a bareword where it expected a
+conditional, which often indicates that an || or && was parsed as part
+of the last argument of the previous construct, for example:
 
     open FOO || die;
 
-It may also indicate a misspelled constant that has been interpreted
-as a bareword:
+It may also indicate a misspelled constant that has been interpreted as
+a bareword:
 
     use constant TYPO => 1;
     if (TYOP) { print "foo" }
 
 The C<strict> pragma is useful in avoiding such errors.
 
+=item Bareword "%s" not allowed while "strict subs" in use
+
+(F) With "strict subs" in use, a bareword is only allowed as a
+subroutine identifier, in curly brackets or to the left of the "=>"
+symbol.  Perhaps you need to predeclare a subroutine?
+
+=item Bareword "%s" refers to nonexistent package
+
+(W bareword) You used a qualified bareword of the form C<Foo::>, but the
+compiler saw no other uses of that namespace before that point.  Perhaps
+you need to predeclare a package?
+
 =item BEGIN failed--compilation aborted
 
-(F) An untrapped exception was raised while executing a BEGIN subroutine.
-Compilation stops immediately and the interpreter is exited.
+(F) An untrapped exception was raised while executing a BEGIN
+subroutine.  Compilation stops immediately and the interpreter is
+exited.
 
 =item BEGIN not safe after errors--compilation aborted
 
 (F) Perl found a C<BEGIN {}> subroutine (or a C<use> directive, which
-implies a C<BEGIN {}>) after one or more compilation errors had
-already occurred.  Since the intended environment for the C<BEGIN {}>
-could not be guaranteed (due to the errors), and since subsequent code
-likely depends on its correct operation, Perl just gave up.
+implies a C<BEGIN {}>) after one or more compilation errors had already
+occurred.  Since the intended environment for the C<BEGIN {}> could not
+be guaranteed (due to the errors), and since subsequent code likely
+depends on its correct operation, Perl just gave up.
+
+=item \1 better written as $1
+
+(W syntax) Outside of patterns, backreferences live on as variables.
+The use of backslashes is grandfathered on the right-hand side of a
+substitution, but stylistically it's better to use the variable form
+because other Perl programmers will expect it, and it works better if
+there are more than 9 backreferences.
 
 =item Binary number > 0b11111111111111111111111111111111 non-portable
 
@@ -557,8 +369,8 @@ L<perlport> for more on portability concerns.
 
 =item bind() on closed socket %s
 
-(W closed) You tried to do a bind on a closed socket.  Did you forget to check
-the return value of your socket() call?  See L<perlfunc/bind>.
+(W closed) You tried to do a bind on a closed socket.  Did you forget to
+check the return value of your socket() call?  See L<perlfunc/bind>.
 
 =item Bit vector size > 32 non-portable
 
@@ -566,65 +378,41 @@ the return value of your socket() call?  See L<perlfunc/bind>.
 
 =item Bizarre copy of %s in %s
 
-(P) Perl detected an attempt to copy an internal value that is not copiable.
+(P) Perl detected an attempt to copy an internal value that is not
+copiable.
+
+=item B<-P> not allowed for setuid/setgid script
+
+(F) The script would have to be opened by the C preprocessor by name,
+which provides a race condition that breaks security.
 
 =item Buffer overflow in prime_env_iter: %s
 
-(W internal) A warning peculiar to VMS.  While Perl was preparing to iterate over
-%ENV, it encountered a logical name or symbol definition which was too long,
-so it was truncated to the string shown.
+(W internal) A warning peculiar to VMS.  While Perl was preparing to
+iterate over %ENV, it encountered a logical name or symbol definition
+which was too long, so it was truncated to the string shown.
 
 =item Callback called exit
 
 (F) A subroutine invoked from an external package via call_sv()
 exited by calling exit.
 
-=item Can't "goto" out of a pseudo block
-
-(F) A "goto" statement was executed to jump out of what might look
-like a block, except that it isn't a proper block.  This usually
-occurs if you tried to jump out of a sort() block or subroutine, which
-is a no-no.  See L<perlfunc/goto>.
-
-=item Can't "goto" into the middle of a foreach loop
-
-(F) A "goto" statement was executed to jump into the middle of a
-foreach loop.  You can't get there from here.  See L<perlfunc/goto>.
-
-=item Can't "last" outside a loop block
-
-(F) A "last" statement was executed to break out of the current block,
-except that there's this itty bitty problem called there isn't a
-current block.  Note that an "if" or "else" block doesn't count as a
-"loopish" block, as doesn't a block given to sort(), map() or grep().
-You can usually double the curlies to get the same effect though,
-because the inner curlies will be considered a block that loops once.
-See L<perlfunc/last>.
-
-=item Can't "next" outside a loop block
-
-(F) A "next" statement was executed to reiterate the current block, but
-there isn't a current block.  Note that an "if" or "else" block doesn't
-count as a "loopish" block, as doesn't a block given to sort(), map()
-or grep().  You can usually double the curlies to get the same effect
-though, because the inner curlies will be considered a block that
-loops once.  See L<perlfunc/next>.
-
-=item Can't read CRTL environ
+=item %s() called too early to check prototype
 
-(S) A warning peculiar to VMS.  Perl tried to read an element of %ENV
-from the CRTL's internal environment array and discovered the array was
-missing.  You need to figure out where your CRTL misplaced its environ
-or define F<PERL_ENV_TABLES> (see L<perlvms>) so that environ is not searched.
+(W prototype) You've called a function that has a prototype before the
+parser saw a definition or declaration for it, and Perl could not check
+that the call conforms to the prototype.  You need to either add an
+early prototype declaration for the subroutine in question, or move the
+subroutine definition ahead of the call to get proper prototype
+checking.  Alternatively, if you are certain that you're calling the
+function correctly, you may put an ampersand before the name to avoid
+the warning.  See L<perlsub>.
 
-=item Can't "redo" outside a loop block
+=item / cannot take a count
 
-(F) A "redo" statement was executed to restart the current block, but
-there isn't a current block.  Note that an "if" or "else" block doesn't
-count as a "loopish" block, as doesn't a block given to sort(), map()
-or grep().  You can usually double the curlies to get the same effect
-though, because the inner curlies will be considered a block that
-loops once.  See L<perlfunc/redo>.
+(F) You had an unpack template indicating a counted-length string, but
+you have also specified an explicit size for the string.  See
+L<perlfunc/pack>.
 
 =item Can't bless non-reference value
 
@@ -633,9 +421,9 @@ encapsulation of objects.  See L<perlobj>.
 
 =item Can't break at that line
 
-(S internal) A warning intended to only be printed while running within the debugger, indicating
-the line number specified wasn't the location of a statement that could
-be stopped at.
+(S internal) A warning intended to only be printed while running within
+the debugger, indicating the line number specified wasn't the location
+of a statement that could be stopped at.
 
 =item Can't call method "%s" in empty package "%s"
 
@@ -643,31 +431,31 @@ be stopped at.
 functioning as a class, but that package doesn't have ANYTHING defined
 in it, let alone methods.  See L<perlobj>.
 
-=item Can't call method "%s" on unblessed reference
-
-(F) A method call must know in what package it's supposed to run.  It
-ordinarily finds this out from the object reference you supply, but
-you didn't supply an object reference in this case.  A reference isn't
-an object reference until it has been blessed.  See L<perlobj>.
-
-=item Can't call method "%s" without a package or object reference
+=item Can't call method "%s" on an undefined value
 
 (F) You used the syntax of a method call, but the slot filled by the
-object reference or package name contains an expression that returns
-a defined value which is neither an object reference nor a package name.
-Something like this will reproduce the error:
+object reference or package name contains an undefined value.  Something
+like this will reproduce the error:
 
-    $BADREF = 42;
+    $BADREF = undef;
     process $BADREF 1,2,3;
     $BADREF->process(1,2,3);
 
-=item Can't call method "%s" on an undefined value
+=item Can't call method "%s" on unblessed reference
+
+(F) A method call must know in what package it's supposed to run.  It
+ordinarily finds this out from the object reference you supply, but you
+didn't supply an object reference in this case.  A reference isn't an
+object reference until it has been blessed.  See L<perlobj>.
+
+=item Can't call method "%s" without a package or object reference
 
 (F) You used the syntax of a method call, but the slot filled by the
-object reference or package name contains an undefined value.
+object reference or package name contains an expression that returns a
+defined value which is neither an object reference nor a package name.
 Something like this will reproduce the error:
 
-    $BADREF = undef;
+    $BADREF = 42;
     process $BADREF 1,2,3;
     $BADREF->process(1,2,3);
 
@@ -678,7 +466,14 @@ that you can chdir to, possibly because it doesn't exist.
 
 =item Can't check filesystem of script "%s" for nosuid
 
-(P) For some reason you can't check the filesystem of the script for nosuid.
+(P) For some reason you can't check the filesystem of the script for
+nosuid.
+
+=item Can't coerce array into hash
+
+(F) You used an array where a hash was expected, but the array has no
+information on how to map from keys to array indices.  You can do that
+only with arrays that have a hash reference at index 0.
 
 =item Can't coerce %s to integer in %s
 
@@ -705,16 +500,10 @@ but then $foo no longer contains a glob.
 (F) Certain types of SVs, in particular real symbol table entries
 (typeglobs), can't be forced to stop being what they are.
 
-=item Can't coerce array into hash
-
-(F) You used an array where a hash was expected, but the array has no
-information on how to map from keys to array indices.  You can do that
-only with arrays that have a hash reference at index 0.
-
 =item Can't create pipe mailbox
 
-(P) An error peculiar to VMS.  The process is suffering from exhausted quotas
-or other plumbing problems.
+(P) An error peculiar to VMS.  The process is suffering from exhausted
+quotas or other plumbing problems.
 
 =item Can't declare class for non-scalar %s in "%s"
 
@@ -727,15 +516,21 @@ for other types of variables in future.
 (F) Only scalar, array, and hash variables may be declared as "my" or
 "our" variables.  They must have ordinary identifiers as names.
 
+=item Can't do inplace edit: %s is not a regular file
+
+(S inplace) You tried to use the B<-i> switch on a special file, such as
+a file in /dev, or a FIFO.  The file was ignored.
+
 =item Can't do inplace edit on %s: %s
 
-(S inplace) The creation of the new file failed for the indicated reason.
+(S inplace) The creation of the new file failed for the indicated
+reason.
 
 =item Can't do inplace edit without backup
 
-(F) You're on a system such as MS-DOS that gets confused if you try reading
-from a deleted (but still opened) file.  You have to say C<-i.bak>, or some
-such.
+(F) You're on a system such as MS-DOS that gets confused if you try
+reading from a deleted (but still opened) file.  You have to say
+C<-i.bak>, or some such.
 
 =item Can't do inplace edit: %s would not be unique
 
@@ -743,15 +538,15 @@ such.
 characters and Perl was unable to create a unique filename during
 inplace editing with the B<-i> switch.  The file was ignored.
 
-=item Can't do inplace edit: %s is not a regular file
+=item Can't do {n,m} with n > m
 
-(S inplace) You tried to use the B<-i> switch on a special file, such as a file in
-/dev, or a FIFO.  The file was ignored.
+(F) Minima must be less than or equal to maxima.  If you really want
+your regexp to match something 0 times, just put {0}.  See L<perlre>.
 
 =item Can't do setegid!
 
-(P) The setegid() call failed for some reason in the setuid emulator
-of suidperl.
+(P) The setegid() call failed for some reason in the setuid emulator of
+suidperl.
 
 =item Can't do seteuid!
 
@@ -759,134 +554,154 @@ of suidperl.
 
 =item Can't do setuid
 
-(F) This typically means that ordinary perl tried to exec suidperl to
-do setuid emulation, but couldn't exec it.  It looks for a name of the
-form sperl5.000 in the same directory that the perl executable resides
-under the name perl5.000, typically /usr/local/bin on Unix machines.
-If the file is there, check the execute permissions.  If it isn't, ask
-your sysadmin why he and/or she removed it.
+(F) This typically means that ordinary perl tried to exec suidperl to do
+setuid emulation, but couldn't exec it.  It looks for a name of the form
+sperl5.000 in the same directory that the perl executable resides under
+the name perl5.000, typically /usr/local/bin on Unix machines.  If the
+file is there, check the execute permissions.  If it isn't, ask your
+sysadmin why he and/or she removed it.
 
 =item Can't do waitpid with flags
 
-(F) This machine doesn't have either waitpid() or wait4(), so only waitpid()
-without flags is emulated.
-
-=item Can't do {n,m} with n > m
-
-(F) Minima must be less than or equal to maxima.  If you really want
-your regexp to match something 0 times, just put {0}.  See L<perlre>.
+(F) This machine doesn't have either waitpid() or wait4(), so only
+waitpid() without flags is emulated.
 
 =item Can't emulate -%s on #! line
 
-(F) The #! line specifies a switch that doesn't make sense at this point.
-For example, it'd be kind of silly to put a B<-x> on the #! line.
+(F) The #! line specifies a switch that doesn't make sense at this
+point.  For example, it'd be kind of silly to put a B<-x> on the #!
+line.
 
 =item Can't exec "%s": %s
 
-(W exec) An system(), exec(), or piped open call could not execute the named
-program for the indicated reason.  Typical reasons include: the permissions
-were wrong on the file, the file wasn't found in C<$ENV{PATH}>, the
-executable in question was compiled for another architecture, or the
-#! line in a script points to an interpreter that can't be run for
-similar reasons.  (Or maybe your system doesn't support #! at all.)
+(W exec) An system(), exec(), or piped open call could not execute the
+named program for the indicated reason.  Typical reasons include: the
+permissions were wrong on the file, the file wasn't found in
+C<$ENV{PATH}>, the executable in question was compiled for another
+architecture, or the #! line in a script points to an interpreter that
+can't be run for similar reasons.  (Or maybe your system doesn't support
+#! at all.)
 
 =item Can't exec %s
 
-(F) Perl was trying to execute the indicated program for you because that's
-what the #! line said.  If that's not what you wanted, you may need to
-mention "perl" on the #! line somewhere.
+(F) Perl was trying to execute the indicated program for you because
+that's what the #! line said.  If that's not what you wanted, you may
+need to mention "perl" on the #! line somewhere.
 
 =item Can't execute %s
 
-(F) You used the B<-S> switch, but the copies of the script to execute found
-in the PATH did not have correct permissions.
+(F) You used the B<-S> switch, but the copies of the script to execute
+found in the PATH did not have correct permissions.
+
+=item Can't find an opnumber for "%s"
+
+(F) A string of a form C<CORE::word> was given to prototype(), but there
+is no builtin with the name C<word>.
 
-=item Can't find %s on PATH, '.' not in PATH
+=item Can't find label %s
 
-(F) You used the B<-S> switch, but the script to execute could not be found
-in the PATH, or at least not with the correct permissions.  The script
-exists in the current directory, but PATH prohibits running it.
+(F) You said to goto a label that isn't mentioned anywhere that it's
+possible for us to go to.  See L<perlfunc/goto>.
 
 =item Can't find %s on PATH
 
-(F) You used the B<-S> switch, but the script to execute could not be found
-in the PATH.
+(F) You used the B<-S> switch, but the script to execute could not be
+found in the PATH.
 
-=item Can't find label %s
+=item Can't find %s on PATH, '.' not in PATH
 
-(F) You said to goto a label that isn't mentioned anywhere that it's possible
-for us to go to.  See L<perlfunc/goto>.
+(F) You used the B<-S> switch, but the script to execute could not be
+found in the PATH, or at least not with the correct permissions.  The
+script exists in the current directory, but PATH prohibits running it.
 
 =item Can't find string terminator %s anywhere before EOF
 
-(F) Perl strings can stretch over multiple lines.  This message means that
-the closing delimiter was omitted.  Because bracketed quotes count nesting
-levels, the following is missing its final parenthesis:
+(F) Perl strings can stretch over multiple lines.  This message means
+that the closing delimiter was omitted.  Because bracketed quotes count
+nesting levels, the following is missing its final parenthesis:
 
     print q(The character '(' starts a side comment.);
 
-If you're getting this error from a here-document, you may have 
-included unseen whitespace before or after your closing tag. A good 
-programmer's editor will have a way to help you find these characters.
+If you're getting this error from a here-document, you may have included
+unseen whitespace before or after your closing tag. A good programmer's
+editor will have a way to help you find these characters.
 
 =item Can't fork
 
-(F) A fatal error occurred while trying to fork while opening a pipeline.
+(F) A fatal error occurred while trying to fork while opening a
+pipeline.
 
 =item Can't get filespec - stale stat buffer?
 
-(S) A warning peculiar to VMS.  This arises because of the difference between
-access checks under VMS and under the Unix model Perl assumes.  Under VMS,
-access checks are done by filename, rather than by bits in the stat buffer, so
-that ACLs and other protections can be taken into account.  Unfortunately, Perl
-assumes that the stat buffer contains all the necessary information, and passes
-it, instead of the filespec, to the access checking routine.  It will try to
-retrieve the filespec using the device name and FID present in the stat buffer,
-but this works only if you haven't made a subsequent call to the CRTL stat()
-routine, because the device name is overwritten with each call.  If this warning
-appears, the name lookup failed, and the access checking routine gave up and
-returned FALSE, just to be conservative.  (Note: The access checking routine
-knows about the Perl C<stat> operator and file tests, so you shouldn't ever
-see this warning in response to a Perl command; it arises only if some internal
-code takes stat buffers lightly.)
+(S) A warning peculiar to VMS.  This arises because of the difference
+between access checks under VMS and under the Unix model Perl assumes.
+Under VMS, access checks are done by filename, rather than by bits in
+the stat buffer, so that ACLs and other protections can be taken into
+account.  Unfortunately, Perl assumes that the stat buffer contains all
+the necessary information, and passes it, instead of the filespec, to
+the access checking routine.  It will try to retrieve the filespec using
+the device name and FID present in the stat buffer, but this works only
+if you haven't made a subsequent call to the CRTL stat() routine,
+because the device name is overwritten with each call.  If this warning
+appears, the name lookup failed, and the access checking routine gave up
+and returned FALSE, just to be conservative.  (Note: The access checking
+routine knows about the Perl C<stat> operator and file tests, so you
+shouldn't ever see this warning in response to a Perl command; it arises
+only if some internal code takes stat buffers lightly.)
 
 =item Can't get pipe mailbox device name
 
-(P) An error peculiar to VMS.  After creating a mailbox to act as a pipe, Perl
-can't retrieve its name for later use.
+(P) An error peculiar to VMS.  After creating a mailbox to act as a
+pipe, Perl can't retrieve its name for later use.
 
 =item Can't get SYSGEN parameter value for MAXBUF
 
 (P) An error peculiar to VMS.  Perl asked $GETSYI how big you want your
 mailbox buffers to be, and didn't get an answer.
 
-=item Can't goto subroutine outside a subroutine
+=item Can't "goto" into the middle of a foreach loop
+
+(F) A "goto" statement was executed to jump into the middle of a foreach
+loop.  You can't get there from here.  See L<perlfunc/goto>.
+
+=item Can't "goto" out of a pseudo block
 
-(F) The deeply magical "goto subroutine" call can only replace one subroutine
-call for another.  It can't manufacture one out of whole cloth.  In general
-you should be calling it out of only an AUTOLOAD routine anyway.  See
-L<perlfunc/goto>.
+(F) A "goto" statement was executed to jump out of what might look like
+a block, except that it isn't a proper block.  This usually occurs if
+you tried to jump out of a sort() block or subroutine, which is a no-no.
+See L<perlfunc/goto>.
 
 =item Can't goto subroutine from an eval-string
 
-(F) The "goto subroutine" call can't be used to jump out of an eval "string".
-(You can use it to jump out of an eval {BLOCK}, but you probably don't want to.)
+(F) The "goto subroutine" call can't be used to jump out of an eval
+"string".  (You can use it to jump out of an eval {BLOCK}, but you
+probably don't want to.)
+
+=item Can't goto subroutine outside a subroutine
+
+(F) The deeply magical "goto subroutine" call can only replace one
+subroutine call for another.  It can't manufacture one out of whole
+cloth.  In general you should be calling it out of only an AUTOLOAD
+routine anyway.  See L<perlfunc/goto>.
 
 =item Can't ignore signal CHLD, forcing to default
 
-(W signal) Perl has detected that it is being run with the SIGCHLD signal
-(sometimes known as SIGCLD) disabled.  Since disabling this signal
-will interfere with proper determination of exit status of child
-processes, Perl has reset the signal to its default value.
-This situation typically indicates that the parent program under
-which Perl may be running (e.g. cron) is being very careless.
+(W signal) Perl has detected that it is being run with the SIGCHLD
+signal (sometimes known as SIGCLD) disabled.  Since disabling this
+signal will interfere with proper determination of exit status of child
+processes, Perl has reset the signal to its default value.  This
+situation typically indicates that the parent program under which Perl
+may be running (e.g. cron) is being very careless.
 
-=item Can't localize through a reference
+=item Can't "last" outside a loop block
 
-(F) You said something like C<local $$ref>, which Perl can't currently
-handle, because when it goes to restore the old value of whatever $ref
-pointed to after the scope of the local() is finished, it can't be
-sure that $ref will still be a reference.  
+(F) A "last" statement was executed to break out of the current block,
+except that there's this itty bitty problem called there isn't a current
+block.  Note that an "if" or "else" block doesn't count as a "loopish"
+block, as doesn't a block given to sort(), map() or grep().  You can
+usually double the curlies to get the same effect though, because the
+inner curlies will be considered a block that loops once.  See
+L<perlfunc/last>.
 
 =item Can't localize lexical variable %s
 
@@ -897,27 +712,34 @@ package name.
 
 =item Can't localize pseudo-hash element
 
-(F) You said something like C<< local $ar->{'key'} >>, where $ar is
-a reference to a pseudo-hash.  That hasn't been implemented yet, but
-you can get a similar effect by localizing the corresponding array
-element directly -- C<< local $ar->[$ar->[0]{'key'}] >>.
+(F) You said something like C<< local $ar->{'key'} >>, where $ar is a
+reference to a pseudo-hash.  That hasn't been implemented yet, but you
+can get a similar effect by localizing the corresponding array element
+directly -- C<< local $ar->[$ar->[0]{'key'}] >>.
 
-=item Can't locate auto/%s.al in @INC
+=item Can't localize through a reference
 
-(F) A function (or method) was called in a package which allows autoload,
-but there is no function to autoload.  Most probable causes are a misprint
-in a function/method name or a failure to C<AutoSplit> the file, say, by
-doing C<make install>.
+(F) You said something like C<local $$ref>, which Perl can't currently
+handle, because when it goes to restore the old value of whatever $ref
+pointed to after the scope of the local() is finished, it can't be sure
+that $ref will still be a reference.  
 
 =item Can't locate %s
 
 (F) You said to C<do> (or C<require>, or C<use>) a file that couldn't be
 found. Perl looks for the file in all the locations mentioned in @INC,
-unless the file name included the full path to the file.  Perhaps you need
-to set the PERL5LIB or PERL5OPT environment variable to say where the extra
-library is, or maybe the script needs to add the library name to @INC.  Or
-maybe you just misspelled the name of the file.  See L<perlfunc/require>
-and L<lib>.
+unless the file name included the full path to the file.  Perhaps you
+need to set the PERL5LIB or PERL5OPT environment variable to say where
+the extra library is, or maybe the script needs to add the library name
+to @INC.  Or maybe you just misspelled the name of the file.  See
+L<perlfunc/require> and L<lib>.
+
+=item Can't locate auto/%s.al in @INC
+
+(F) A function (or method) was called in a package which allows
+autoload, but there is no function to autoload.  Most probable causes
+are a misprint in a function/method name or a failure to C<AutoSplit>
+the file, say, by doing C<make install>.
 
 =item Can't locate object method "%s" via package "%s"
 
@@ -927,86 +749,115 @@ method, nor does any of its base classes.  See L<perlobj>.
 
 =item Can't locate package %s for @%s::ISA
 
-(W syntax) The @ISA array contained the name of another package that doesn't seem
-to exist.
+(W syntax) The @ISA array contained the name of another package that
+doesn't seem to exist.
 
 =item Can't make list assignment to \%ENV on this system
 
-(F) List assignment to %ENV is not supported on some systems, notably VMS.
+(F) List assignment to %ENV is not supported on some systems, notably
+VMS.
 
 =item Can't modify %s in %s
 
-(F) You aren't allowed to assign to the item indicated, or otherwise try to
-change it, such as with an auto-increment.
-
-=item Can't modify non-lvalue subroutine call
-
-(F) Subroutines meant to be used in lvalue context should be declared as
-such, see L<perlsub/"Lvalue subroutines">.
+(F) You aren't allowed to assign to the item indicated, or otherwise try
+to change it, such as with an auto-increment.
 
 =item Can't modify nonexistent substring
 
 (P) The internal routine that does assignment to a substr() was handed
 a NULL.
 
+=item Can't modify non-lvalue subroutine call
+
+(F) Subroutines meant to be used in lvalue context should be declared as
+such, see L<perlsub/"Lvalue subroutines">.
+
 =item Can't msgrcv to read-only var
 
 (F) The target of a msgrcv must be modifiable to be used as a receive
 buffer.
 
+=item Can't "next" outside a loop block
+
+(F) A "next" statement was executed to reiterate the current block, but
+there isn't a current block.  Note that an "if" or "else" block doesn't
+count as a "loopish" block, as doesn't a block given to sort(), map() or
+grep().  You can usually double the curlies to get the same effect
+though, because the inner curlies will be considered a block that loops
+once.  See L<perlfunc/next>.
+
 =item Can't open %s: %s
 
 (S inplace) The implicit opening of a file through use of the C<< <> >>
 filehandle, either implicitly under the C<-n> or C<-p> command-line
 switches, or explicitly, failed for the indicated reason.  Usually this
-is because you don't have read permission for a file which you named
-on the command line.
+is because you don't have read permission for a file which you named on
+the command line.
 
 =item Can't open bidirectional pipe
 
-(W pipe) You tried to say C<open(CMD, "|cmd|")>, which is not supported.  You can
-try any of several modules in the Perl library to do this, such as
-IPC::Open2.  Alternately, direct the pipe's output to a file using ">",
-and then read it in under a different file handle.
+(W pipe) You tried to say C<open(CMD, "|cmd|")>, which is not supported.
+You can try any of several modules in the Perl library to do this, such
+as IPC::Open2.  Alternately, direct the pipe's output to a file using
+">", and then read it in under a different file handle.
 
 =item Can't open error file %s as stderr
 
-(F) An error peculiar to VMS.  Perl does its own command line redirection, and
-couldn't open the file specified after '2>' or '2>>' on the
-command line for writing.
+(F) An error peculiar to VMS.  Perl does its own command line
+redirection, and couldn't open the file specified after '2>' or '2>>' on
+the command line for writing.
 
 =item Can't open input file %s as stdin
 
-(F) An error peculiar to VMS.  Perl does its own command line redirection, and
-couldn't open the file specified after '<' on the command line for reading.
+(F) An error peculiar to VMS.  Perl does its own command line
+redirection, and couldn't open the file specified after '<' on the
+command line for reading.
 
 =item Can't open output file %s as stdout
 
-(F) An error peculiar to VMS.  Perl does its own command line redirection, and
-couldn't open the file specified after '>' or '>>' on the command
-line for writing.
+(F) An error peculiar to VMS.  Perl does its own command line
+redirection, and couldn't open the file specified after '>' or '>>' on
+the command line for writing.
 
 =item Can't open output pipe (name: %s)
 
-(P) An error peculiar to VMS.  Perl does its own command line redirection, and
-couldn't open the pipe into which to send data destined for stdout.
+(P) An error peculiar to VMS.  Perl does its own command line
+redirection, and couldn't open the pipe into which to send data destined
+for stdout.
 
 =item Can't open perl script "%s": %s
 
 (F) The script you specified can't be opened for the indicated reason.
 
+=item Can't read CRTL environ
+
+(S) A warning peculiar to VMS.  Perl tried to read an element of %ENV
+from the CRTL's internal environment array and discovered the array was
+missing.  You need to figure out where your CRTL misplaced its environ
+or define F<PERL_ENV_TABLES> (see L<perlvms>) so that environ is not
+searched.
+
 =item Can't redefine active sort subroutine %s
 
 (F) Perl optimizes the internal handling of sort subroutines and keeps
-pointers into them.  You tried to redefine one such sort subroutine when it
-was currently active, which is not allowed.  If you really want to do
+pointers into them.  You tried to redefine one such sort subroutine when
+it was currently active, which is not allowed.  If you really want to do
 this, you should write C<sort { &func } @x> instead of C<sort func @x>.
 
+=item Can't "redo" outside a loop block
+
+(F) A "redo" statement was executed to restart the current block, but
+there isn't a current block.  Note that an "if" or "else" block doesn't
+count as a "loopish" block, as doesn't a block given to sort(), map()
+or grep().  You can usually double the curlies to get the same effect
+though, because the inner curlies will be considered a block that
+loops once.  See L<perlfunc/redo>.
+
 =item Can't remove %s: %s, skipping file 
 
-(S inplace) You requested an inplace edit without creating a backup file.  Perl
-was unable to remove the original file to replace it with the modified
-file.  The file was left unmodified.
+(S inplace) You requested an inplace edit without creating a backup
+file.  Perl was unable to remove the original file to replace it with
+the modified file.  The file was left unmodified.
 
 =item Can't rename %s to %s: %s, skipping file
 
@@ -1015,41 +866,47 @@ probably because you don't have write permission to the directory.
 
 =item Can't reopen input pipe (name: %s) in binary mode
 
-(P) An error peculiar to VMS.  Perl thought stdin was a pipe, and tried to
-reopen it to accept binary data.  Alas, it failed.
+(P) An error peculiar to VMS.  Perl thought stdin was a pipe, and tried
+to reopen it to accept binary data.  Alas, it failed.
+
+=item Can't resolve method `%s' overloading `%s' in package `%s'
+
+(F|P) Error resolving overloading specified by a method name (as opposed
+to a subroutine reference): no such method callable via the package. If
+method name is C<???>, this is an internal error.
 
 =item Can't reswap uid and euid
 
-(P) The setreuid() call failed for some reason in the setuid emulator
-of suidperl.
+(P) The setreuid() call failed for some reason in the setuid emulator of
+suidperl.
+
+=item Can't return %s from lvalue subroutine
+
+(F) Perl detected an attempt to return illegal lvalues (such as
+temporary or readonly values) from a subroutine used as an lvalue.  This
+is not allowed.
 
 =item Can't return outside a subroutine
 
 (F) The return statement was executed in mainline code, that is, where
 there was no subroutine call to return out of.  See L<perlsub>.
 
-=item Can't return %s from lvalue subroutine
-
-(F) Perl detected an attempt to return illegal lvalues (such
-as temporary or readonly values) from a subroutine used as an lvalue.
-This is not allowed.
-
 =item Can't stat script "%s"
 
-(P) For some reason you can't fstat() the script even though you have
-it open already.  Bizarre.
+(P) For some reason you can't fstat() the script even though you have it
+open already.  Bizarre.
 
 =item Can't swap uid and euid
 
-(P) The setreuid() call failed for some reason in the setuid emulator
-of suidperl.
+(P) The setreuid() call failed for some reason in the setuid emulator of
+suidperl.
 
 =item Can't take log of %g
 
 (F) For ordinary real numbers, you can't take the logarithm of a
 negative number or zero. There's a Math::Complex package that comes
-standard with Perl, though, if you really want to do that for
-the negative numbers.
+standard with Perl, though, if you really want to do that for the
+negative numbers.
 
 =item Can't take sqrt of %g
 
@@ -1070,16 +927,26 @@ as the main Perl stack.
 
 =item Can't upgrade that kind of scalar
 
-(P) The internal sv_upgrade routine adds "members" to an SV, making
-it into a more specialized kind of SV.  The top several SV types are
-so specialized, however, that they cannot be interconverted.  This
-message indicates that such a conversion was attempted.
+(P) The internal sv_upgrade routine adds "members" to an SV, making it
+into a more specialized kind of SV.  The top several SV types are so
+specialized, however, that they cannot be interconverted.  This message
+indicates that such a conversion was attempted.
 
 =item Can't upgrade to undef
 
-(P) The undefined SV is the bottom of the totem pole, in the scheme
-of upgradability.  Upgrading to undef indicates an error in the
-code calling sv_upgrade.
+(P) The undefined SV is the bottom of the totem pole, in the scheme of
+upgradability.  Upgrading to undef indicates an error in the code
+calling sv_upgrade.
+
+=item Can't use an undefined value as %s reference
+
+(F) A value used as either a hard reference or a symbolic reference must
+be a defined value.  This helps to delurk some insidious errors.
+
+=item Can't use bareword ("%s") as %s ref while "strict refs" in use
+
+(F) Only hard references are allowed by "strict refs".  Symbolic
+references are disallowed.  See L<perlref>.
 
 =item Can't use %%! because Errno.pm is not available
 
@@ -1087,6 +954,19 @@ code calling sv_upgrade.
 Errno.pm module. The Errno module is expected to tie the %! hash to
 provide symbolic names for C<$!> errno values.
 
+=item Can't use %s for loop variable
+
+(F) Only a simple scalar variable may be used as a loop variable on a
+foreach.
+
+=item Can't use global %s in "my"
+
+(F) You tried to declare a magical variable as a lexical variable.  This
+is not allowed, because the magic can be tied to only one location
+(namely the global variable) and it would be incredibly confusing to
+have variables in your program that looked like magical variables but
+weren't.
+
 =item Can't use "my %s" in sort comparison
 
 (F) The global variables $a and $b are reserved for sort comparisons.
@@ -1095,52 +975,16 @@ and the variable had earlier been declared as a lexical variable.
 Either qualify the sort variable with the package name, or rename the
 lexical variable.
 
-=item Bad evalled substitution pattern
-
-(F) You've used the /e switch to evaluate the replacement for a
-substitution, but perl found a syntax error in the code to evaluate,
-most likely an unexpected right brace '}'.
-
-=item Can't use %s for loop variable
-
-(F) Only a simple scalar variable may be used as a loop variable on a foreach.
-
 =item Can't use %s ref as %s ref
 
 (F) You've mixed up your reference types.  You have to dereference a
 reference of the type needed.  You can use the ref() function to
 test the type of the reference, if need be.
 
-=item Can't use \%c to mean $%c in expression
-
-(W syntax) In an ordinary expression, backslash is a unary operator that creates
-a reference to its argument.  The use of backslash to indicate a backreference
-to a matched substring is valid only as part of a regular expression pattern.
-Trying to do this in ordinary Perl code produces a value that prints
-out looking like SCALAR(0xdecaf).  Use the $1 form instead.
-
-=item Can't use bareword ("%s") as %s ref while "strict refs" in use
-
-(F) Only hard references are allowed by "strict refs".  Symbolic references
-are disallowed.  See L<perlref>.
-
 =item Can't use string ("%s") as %s ref while "strict refs" in use
 
-(F) Only hard references are allowed by "strict refs".  Symbolic references
-are disallowed.  See L<perlref>.
-
-=item Can't use an undefined value as %s reference
-
-(F) A value used as either a hard reference or a symbolic reference must
-be a defined value.  This helps to delurk some insidious errors.
-
-=item Can't use global %s in "my"
-
-(F) You tried to declare a magical variable as a lexical variable.  This is
-not allowed, because the magic can be tied to only one location (namely
-the global variable) and it would be incredibly confusing to have
-variables in your program that looked like magical variables but
-weren't.
+(F) Only hard references are allowed by "strict refs".  Symbolic
+references are disallowed.  See L<perlref>.
 
 =item Can't use subscript on %s
 
@@ -1148,6 +992,15 @@ weren't.
 subscript.  But to the left of the brackets was an expression that
 didn't look like an array reference, or anything else subscriptable.
 
+=item Can't use \%c to mean $%c in expression
+
+(W syntax) In an ordinary expression, backslash is a unary operator that
+creates a reference to its argument.  The use of backslash to indicate a
+backreference to a matched substring is valid only as part of a regular
+expression pattern.  Trying to do this in ordinary Perl code produces a
+value that prints out looking like SCALAR(0xdecaf).  Use the $1 form
+instead.
+
 =item Can't weaken a nonreference
 
 (F) You attempted to weaken something that was not a reference.  Only
@@ -1155,49 +1008,38 @@ references can be weakened.
 
 =item Can't x= to read-only value
 
-(F) You tried to repeat a constant value (often the undefined value) with
-an assignment operator, which implies modifying the value itself.
+(F) You tried to repeat a constant value (often the undefined value)
+with an assignment operator, which implies modifying the value itself.
 Perhaps you need to copy the value to a temporary, and repeat that.
 
-=item Can't find an opnumber for "%s"
-
-(F) A string of a form C<CORE::word> was given to prototype(), but
-there is no builtin with the name C<word>.
-
-=item Can't resolve method `%s' overloading `%s' in package `%s'
-
-(F|P) Error resolving overloading specified by a method name (as
-opposed to a subroutine reference): no such method callable via the
-package. If method name is C<???>, this is an internal error.
-
-=item Character class [:%s:] unknown
-
-(F) The class in the character class [: :] syntax is unknown.
-See L<perlre>.
-
 =item Character class syntax [%s] belongs inside character classes
 
 (W unsafe) The character class constructs [: :], [= =], and [. .]  go
-I<inside> character classes, the [] are part of the construct,
-for example: /[012[:alpha:]345]/.  Note that [= =] and [. .]
-are not currently implemented; they are simply placeholders for
-future extensions.
+I<inside> character classes, the [] are part of the construct, for
+example: /[012[:alpha:]345]/.  Note that [= =] and [. .] are not
+currently implemented; they are simply placeholders for future
+extensions.
 
 =item Character class syntax [. .] is reserved for future extensions
 
-(W regexp) Within regular expression character classes ([]) the syntax beginning
-with "[." and ending with ".]" is reserved for future extensions.
-If you need to represent those character sequences inside a regular
-expression character class, just quote the square brackets with the
-backslash: "\[." and ".\]".
+(W regexp) Within regular expression character classes ([]) the syntax
+beginning with "[." and ending with ".]" is reserved for future
+extensions.  If you need to represent those character sequences inside a
+regular expression character class, just quote the square brackets with
+the backslash: "\[." and ".\]".
 
 =item Character class syntax [= =] is reserved for future extensions
 
 (W regexp) Within regular expression character classes ([]) the syntax
-beginning with "[=" and ending with "=]" is reserved for future extensions.
-If you need to represent those character sequences inside a regular
-expression character class, just quote the square brackets with the
-backslash: "\[=" and "=\]".
+beginning with "[=" and ending with "=]" is reserved for future
+extensions.  If you need to represent those character sequences inside a
+regular expression character class, just quote the square brackets with
+the backslash: "\[=" and "=\]".
+
+=item Character class [:%s:] unknown
+
+(F) The class in the character class [: :] syntax is unknown.  See
+L<perlre>.
 
 =item chmod() mode argument is missing initial 0
 
@@ -1205,148 +1047,163 @@ backslash: "\[=" and "=\]".
 
     chmod 777, $filename
 
-not realizing that 777 will be interpreted as a decimal number, equivalent
-to 01411.  Octal constants are introduced with a leading 0 in Perl, as in C.
+not realizing that 777 will be interpreted as a decimal number,
+equivalent to 01411.  Octal constants are introduced with a leading 0 in
+Perl, as in C.
 
 =item Close on unopened file <%s>
 
 (W unopened) You tried to close a filehandle that was never opened.
 
+=item %s: Command not found
+
+(A) You've accidentally run your script through B<csh> instead of Perl.
+Check the #! line, or manually feed your script into Perl yourself.
+
 =item Compilation failed in require
 
 (F) Perl could not compile a file specified in a C<require> statement.
-Perl uses this generic message when none of the errors that it encountered
-were severe enough to halt compilation immediately.
+Perl uses this generic message when none of the errors that it
+encountered were severe enough to halt compilation immediately.
 
 =item Complex regular subexpression recursion limit (%d) exceeded
 
-(W regexp) The regular expression engine uses recursion in complex situations
-where back-tracking is required.  Recursion depth is limited to 32766,
-or perhaps less in architectures where the stack cannot grow
+(W regexp) The regular expression engine uses recursion in complex
+situations where back-tracking is required.  Recursion depth is limited
+to 32766, or perhaps less in architectures where the stack cannot grow
 arbitrarily.  ("Simple" and "medium" situations are handled without
 recursion and are not subject to a limit.)  Try shortening the string
-under examination; looping in Perl code (e.g. with C<while>) rather
-than in the regular expression engine; or rewriting the regular
-expression so that it is simpler or backtracks less.  (See L<perlbook>
-for information on I<Mastering Regular Expressions>.)
+under examination; looping in Perl code (e.g. with C<while>) rather than
+in the regular expression engine; or rewriting the regular expression so
+that it is simpler or backtracks less.  (See L<perlbook> for information
+on I<Mastering Regular Expressions>.)
 
 =item connect() on closed socket %s
 
-(W closed) You tried to do a connect on a closed socket.  Did you forget to check
-the return value of your socket() call?  See L<perlfunc/connect>.
+(W closed) You tried to do a connect on a closed socket.  Did you forget
+to check the return value of your socket() call?  See
+L<perlfunc/connect>.
+
+=item constant(%s): %s
+
+(F) The parser found inconsistencies either while attempting to define
+an overloaded constant, or when trying to find the character name
+specified in the C<\N{...}> escape.  Perhaps you forgot to load the
+corresponding C<overload> or C<charnames> pragma?  See L<charnames> and
+L<overload>.
 
 =item Constant is not %s reference
 
 (F) A constant value (perhaps declared using the C<use constant> pragma)
-is being dereferenced, but it amounts to the wrong type of reference.  The
-message indicates the type of reference that was expected. This usually
-indicates a syntax error in dereferencing the constant value.
+is being dereferenced, but it amounts to the wrong type of reference.
+The message indicates the type of reference that was expected. This
+usually indicates a syntax error in dereferencing the constant value.
 See L<perlsub/"Constant Functions"> and L<constant>.
 
 =item Constant subroutine %s redefined
 
-(S|W redefine) You redefined a subroutine which had previously been eligible for
-inlining.  See L<perlsub/"Constant Functions"> for commentary and
-workarounds.
+(S|W redefine) You redefined a subroutine which had previously been
+eligible for inlining.  See L<perlsub/"Constant Functions"> for
+commentary and workarounds.
 
 =item Constant subroutine %s undefined
 
-(W misc) You undefined a subroutine which had previously been eligible for
-inlining.  See L<perlsub/"Constant Functions"> for commentary and
+(W misc) You undefined a subroutine which had previously been eligible
+for inlining.  See L<perlsub/"Constant Functions"> for commentary and
 workarounds.
 
-=item constant(%s): %%^H is not localized
+=item Copy method did not return a reference
 
-(F) When setting compile-time-lexicalized hash %^H one should set the 
-corresponding bit of $^H as well.
+(F) The method which overloads "=" is buggy. See L<overload/Copy
+Constructor>.
 
-=item constant(%s): %s
+=item CORE::%s is not a keyword
 
-(F) Compile-time-substitutions (such as overloaded constants and
-character names) were not correctly set up.
+(F) The CORE:: namespace is reserved for Perl keywords.
 
-=item Copy method did not return a reference
+=item corrupted regexp pointers
 
-(F) The method which overloads "=" is buggy. See L<overload/Copy Constructor>.
+(P) The regular expression engine got confused by what the regular
+expression compiler gave it.
 
-=item CORE::%s is not a keyword
+=item corrupted regexp program
 
-(F) The CORE:: namespace is reserved for Perl keywords.
+(P) The regular expression engine got passed a regexp program without a
+valid magic number.
 
 =item Corrupt malloc ptr 0x%lx at 0x%lx
 
 (P) The malloc package that comes with Perl had an internal failure.
 
-=item corrupted regexp pointers
+=item C<-p> destination: %s
 
-(P) The regular expression engine got confused by what the regular
-expression compiler gave it.
+(F) An error occurred during the implicit output invoked by the C<-p>
+command-line switch.  (This output goes to STDOUT unless you've
+redirected it with select().)
 
-=item corrupted regexp program
+=item C<-T> and C<-B> not implemented on filehandles
 
-(P) The regular expression engine got passed a regexp program without
-a valid magic number.
+(F) Perl can't peek at the stdio buffer of filehandles when it doesn't
+know about your kind of stdio.  You'll have to use a filename instead.
 
 =item Deep recursion on subroutine "%s"
 
-(W recursion) This subroutine has called itself (directly or indirectly) 100
-times more than it has returned.  This probably indicates an infinite
-recursion, unless you're writing strange benchmark programs, in which
-case it indicates something else.
+(W recursion) This subroutine has called itself (directly or indirectly)
+100 times more than it has returned.  This probably indicates an
+infinite recursion, unless you're writing strange benchmark programs, in
+which case it indicates something else.
 
 =item defined(@array) is deprecated
 
-(D deprecated) defined() is not usually useful on arrays because it checks for an
-undefined I<scalar> value.  If you want to see if the array is empty,
-just use C<if (@array) { # not empty }> for example.  
+(D deprecated) defined() is not usually useful on arrays because it
+checks for an undefined I<scalar> value.  If you want to see if the
+array is empty, just use C<if (@array) { # not empty }> for example.  
 
 =item defined(%hash) is deprecated
 
-(D deprecated) defined() is not usually useful on hashes because it checks for an
-undefined I<scalar> value.  If you want to see if the hash is empty,
-just use C<if (%hash) { # not empty }> for example.  
+(D deprecated) defined() is not usually useful on hashes because it
+checks for an undefined I<scalar> value.  If you want to see if the hash
+is empty, just use C<if (%hash) { # not empty }> for example.  
 
 =item Delimiter for here document is too long
 
-(F) In a here document construct like C<<<FOO>, the label
-C<FOO> is too long for Perl to handle.  You have to be seriously
-twisted to write code that triggers this error.
+(F) In a here document construct like C<<<FOO>, the label C<FOO> is too
+long for Perl to handle.  You have to be seriously twisted to write code
+that triggers this error.
 
 =item Did not produce a valid header
 
 See Server error.
 
-=item Did you mean &%s instead?
+=item %s did not return a true value
+
+(F) A required (or used) file must return a true value to indicate that
+it compiled correctly and ran its initialization code correctly.  It's
+traditional to end such a file with a "1;", though any true value would
+do.  See L<perlfunc/require>.
+
+=item (Did you mean &%s instead?)
 
-(W) You probably referred to an imported subroutine &FOO as $FOO or some such.
+(W) You probably referred to an imported subroutine &FOO as $FOO or some
+such.
 
-=item Did you mean "local" instead of "our"?
+=item (Did you mean "local" instead of "our"?)
 
-(W misc) Remember that "our" does not localize the declared global variable.
-You have declared it again in the same lexical scope, which seems superfluous.
+(W misc) Remember that "our" does not localize the declared global
+variable.  You have declared it again in the same lexical scope, which
+seems superfluous.
 
-=item Did you mean $ or @ instead of %?
+=item (Did you mean $ or @ instead of %?)
 
-(W) You probably said %hash{$key} when you meant $hash{$key} or @hash{@keys}.
-On the other hand, maybe you just meant %hash and got carried away.
+(W) You probably said %hash{$key} when you meant $hash{$key} or
+@hash{@keys}.  On the other hand, maybe you just meant %hash and got
+carried away.
 
 =item Died
 
 (F) You passed die() an empty string (the equivalent of C<die "">) or
 you called it with no args and both C<$@> and C<$_> were empty.
 
-=item Do you need to predeclare %s?
-
-(S) This is an educated guess made in conjunction with the message "%s
-found where operator expected".  It often means a subroutine or module
-name is being referenced that hasn't been declared yet.  This may be
-because of ordering problems in your file, or because of a missing
-"sub", "package", "require", or "use" statement.  If you're
-referencing something that isn't defined yet, you don't actually have
-to define the subroutine or package before the current location.  You
-can use an empty "sub foo;" or "package FOO;" to enter a "forward"
-declaration.
-
 =item Document contains no data
 
 See Server error.
@@ -1359,24 +1216,29 @@ See Server error.
 
 (P) This should have been caught by safemalloc() instead.
 
+=item (Do you need to predeclare %s?)
+
+(S) This is an educated guess made in conjunction with the message "%s
+found where operator expected".  It often means a subroutine or module
+name is being referenced that hasn't been declared yet.  This may be
+because of ordering problems in your file, or because of a missing
+"sub", "package", "require", or "use" statement.  If you're referencing
+something that isn't defined yet, you don't actually have to define the
+subroutine or package before the current location.  You can use an empty
+"sub foo;" or "package FOO;" to enter a "forward" declaration.
+
 =item Duplicate free() ignored
 
-(S malloc) An internal routine called free() on something that had already
-been freed.
+(S malloc) An internal routine called free() on something that had
+already been freed.
 
 =item elseif should be elsif
 
-(S) There is no keyword "elseif" in Perl because Larry thinks it's
-ugly.  Your code will be interpreted as an attempt to call a method
-named "elseif" for the class returned by the following block.  This is
+(S) There is no keyword "elseif" in Perl because Larry thinks it's ugly.
+Your code will be interpreted as an attempt to call a method named
+"elseif" for the class returned by the following block.  This is
 unlikely to be what you want.
 
-=item %s failed--call queue aborted
-
-(F) An untrapped exception was raised while executing a CHECK, INIT, or
-END subroutine.  Processing of the remainder of the queue of such
-routines has been prematurely ended.
-
 =item entering effective %s failed
 
 (F) While under the C<use filetest> pragma, switching the real and
@@ -1386,30 +1248,30 @@ effective uids or gids failed.
 
 (F) An error peculiar to VMS.  Because Perl may have to deal with file
 specifications in either VMS or Unix syntax, it converts them to a
-single form when it must operate on them directly.  Either you've
-passed an invalid file specification to Perl, or you've found a
-case the conversion routines don't handle.  Drat.
+single form when it must operate on them directly.  Either you've passed
+an invalid file specification to Perl, or you've found a case the
+conversion routines don't handle.  Drat.
 
 =item %s: Eval-group in insecure regular expression
 
-(F) Perl detected tainted data when trying to compile a regular expression
-that contains the C<(?{ ... })> zero-width assertion, which is unsafe.
-See L<perlre/(?{ code })>, and L<perlsec>.
+(F) Perl detected tainted data when trying to compile a regular
+expression that contains the C<(?{ ... })> zero-width assertion, which
+is unsafe.  See L<perlre/(?{ code })>, and L<perlsec>.
 
-=item %s: Eval-group not allowed, use re 'eval'
+=item %s: Eval-group not allowed at run time
 
-(F) A regular expression contained the C<(?{ ... })> zero-width assertion,
-but that construct is only allowed when the C<use re 'eval'> pragma is
-in effect.  See L<perlre/(?{ code })>.
+(F) Perl tried to compile a regular expression containing the
+C<(?{ ... })> zero-width assertion at run time, as it would when the
+pattern contains interpolated values.  Since that is a security risk, it
+is not allowed.  If you insist, you may still do this by explicitly
+building the pattern from an interpolated string at run time and using
+that in an eval().  See L<perlre/(?{ code })>.
 
-=item %s: Eval-group not allowed at run time
+=item %s: Eval-group not allowed, use re 'eval'
 
-(F) Perl tried to compile a regular expression containing the C<(?{ ... })>
-zero-width assertion at run time, as it would when the pattern contains
-interpolated values.  Since that is a security risk, it is not allowed.
-If you insist, you may still do this by explicitly building the pattern
-from an interpolated string at run time and using that in an eval().
-See L<perlre/(?{ code })>.
+(F) A regular expression contained the C<(?{ ... })> zero-width
+assertion, but that construct is only allowed when the C<use re 'eval'>
+pragma is in effect.  See L<perlre/(?{ code })>.
 
 =item Excessively long <> operator
 
@@ -1424,50 +1286,61 @@ variable and glob that.
 
 =item Exiting eval via %s
 
-(W exiting) You are exiting an eval by unconventional means, such as
-goto, or a loop control statement.
+(W exiting) You are exiting an eval by unconventional means, such as a
+goto, or a loop control statement.
 
 =item Exiting format via %s
 
-(W exiting) You are exiting an eval by unconventional means, such as
-goto, or a loop control statement.
+(W exiting) You are exiting an eval by unconventional means, such as a
+goto, or a loop control statement.
 
 =item Exiting pseudo-block via %s
 
-(W exiting) You are exiting a rather special block construct (like a sort block or
-subroutine) by unconventional means, such as a goto, or a loop control
-statement.  See L<perlfunc/sort>.
+(W exiting) You are exiting a rather special block construct (like a
+sort block or subroutine) by unconventional means, such as a goto, or a
+loop control statement.  See L<perlfunc/sort>.
 
 =item Exiting subroutine via %s
 
-(W exiting) You are exiting a subroutine by unconventional means, such as
-a goto, or a loop control statement.
+(W exiting) You are exiting a subroutine by unconventional means, such
+as a goto, or a loop control statement.
 
 =item Exiting substitution via %s
 
-(W exiting) You are exiting a substitution by unconventional means, such as
-a return, a goto, or a loop control statement.
+(W exiting) You are exiting a substitution by unconventional means, such
+as a return, a goto, or a loop control statement.
 
 =item Explicit blessing to '' (assuming package main)
 
 (W misc) You are blessing a reference to a zero length string.  This has
 the effect of blessing the reference into the package main.  This is
-usually not what you want.  Consider providing a default target
-package, e.g. bless($ref, $p || 'MyPackage');
+usually not what you want.  Consider providing a default target package,
+e.g. bless($ref, $p || 'MyPackage');
+
+=item %s: Expression syntax
+
+(A) You've accidentally run your script through B<csh> instead of Perl.
+Check the #! line, or manually feed your script into Perl yourself.
+
+=item %s failed--call queue aborted
+
+(F) An untrapped exception was raised while executing a CHECK, INIT, or
+END subroutine.  Processing of the remainder of the queue of such
+routines has been prematurely ended.
 
 =item false [] range "%s" in regexp
 
-(W regexp) A character class range must start and end at a literal character, not
-another character class like C<\d> or C<[:alpha:]>.  The "-" in your false
-range is interpreted as a literal "-".  Consider quoting the "-",  "\-".
-See L<perlre>.
+(W regexp) A character class range must start and end at a literal
+character, not another character class like C<\d> or C<[:alpha:]>.  The
+"-" in your false range is interpreted as a literal "-".  Consider
+quoting the "-",  "\-".  See L<perlre>.
 
 =item Fatal VMS error at %s, line %d
 
-(P) An error peculiar to VMS.  Something untoward happened in a VMS system
-service or RTL routine; Perl's exit status should provide more details.  The
-filename in "at %s" and the line number in "line %d" tell you which section of
-the Perl source code is distressed.
+(P) An error peculiar to VMS.  Something untoward happened in a VMS
+system service or RTL routine; Perl's exit status should provide more
+details.  The filename in "at %s" and the line number in "line %d" tell
+you which section of the Perl source code is distressed.
 
 =item fcntl is not implemented
 
@@ -1476,45 +1349,54 @@ PDP-11 or something?
 
 =item Filehandle %s never opened
 
-(W unopened) An I/O operation was attempted on a filehandle that was never initialized.
-You need to do an open() or a socket() call, or call a constructor from
-the FileHandle package.
+(W unopened) An I/O operation was attempted on a filehandle that was
+never initialized.  You need to do an open() or a socket() call, or call
+a constructor from the FileHandle package.
 
 =item Filehandle %s opened only for input
 
-(W io) You tried to write on a read-only filehandle.  If you
-intended it to be a read-write filehandle, you needed to open it with
-"+<" or "+>" or "+>>" instead of with "<" or nothing.  If
-you intended only to write the file, use ">" or ">>".  See
-L<perlfunc/open>.
+(W io) You tried to write on a read-only filehandle.  If you intended it
+to be a read-write filehandle, you needed to open it with "+<" or "+>"
+or "+>>" instead of with "<" or nothing.  If you intended only to write
+the file, use ">" or ">>".  See L<perlfunc/open>.
 
 =item Filehandle %s opened only for output
 
-(W io) You tried to read from a filehandle opened only for writing.  If you
-intended it to be a read/write filehandle, you needed to open it with
-"+<" or "+>" or "+>>" instead of with "<" or nothing.  If
-you intended only to read from the file, use "<".  See
-L<perlfunc/open>.
+(W io) You tried to read from a filehandle opened only for writing.  If
+you intended it to be a read/write filehandle, you needed to open it
+with "+<" or "+>" or "+>>" instead of with "<" or nothing.  If you
+intended only to read from the file, use "<".  See L<perlfunc/open>.
 
 =item Final $ should be \$ or $name
 
 (F) You must now decide whether the final $ in a string was meant to be
-a literal dollar sign, or was meant to introduce a variable name
-that happens to be missing.  So you have to put either the backslash or
-the name.
+a literal dollar sign, or was meant to introduce a variable name that
+happens to be missing.  So you have to put either the backslash or the
+name.
 
 =item Final @ should be \@ or @name
 
 (F) You must now decide whether the final @ in a string was meant to be
-a literal "at" sign, or was meant to introduce a variable name
-that happens to be missing.  So you have to put either the backslash or
-the name.
+a literal "at" sign, or was meant to introduce a variable name that
+happens to be missing.  So you have to put either the backslash or the
+name.
 
 =item flock() on closed filehandle %s
 
-(W closed) The filehandle you're attempting to flock() got itself closed some
-time before now.  Check your logic flow.  flock() operates on filehandles.
-Are you attempting to call flock() on a dirhandle by the same name?
+(W closed) The filehandle you're attempting to flock() got itself closed
+some time before now.  Check your logic flow.  flock() operates on
+filehandles.  Are you attempting to call flock() on a dirhandle by the
+same name?
+
+=item ?+* follows nothing in regexp
+
+(F) You started a regular expression with a quantifier.  Backslash it if
+you meant it literally.   See L<perlre>.
+
+=item Format not terminated
+
+(F) A format must be terminated by a line with a solitary dot.  Perl got
+to the end of your file without finding such a line.
 
 =item Format %s redefined
 
@@ -1525,11 +1407,6 @@ Are you attempting to call flock() on a dirhandle by the same name?
        eval "format NAME =...";
     }
 
-=item Format not terminated
-
-(F) A format must be terminated by a line with a solitary dot.  Perl got
-to the end of your file without finding such a line.
-
 =item Found = in conditional, should be ==
 
 (W syntax) You said
@@ -1542,6 +1419,13 @@ when you meant
 
 (or something like that).
 
+=item %s found where operator expected
+
+(S) The Perl lexer knows whether to expect a term or an operator.  If it
+sees what it knows to be a term when it was expecting to see an
+operator, it gives you this warning.  Usually it indicates that an
+operator or delimiter was omitted, such as a semicolon.
+
 =item gdbm store returned %d, errno %d, key "%s"
 
 (S) A warning from the GDBM_File extension that a store failed.
@@ -1554,34 +1438,19 @@ on the Internet.
 
 =item get%sname() on closed socket %s
 
-(W closed) You tried to get a socket or peer socket name on a closed socket.
-Did you forget to check the return value of your socket() call?
+(W closed) You tried to get a socket or peer socket name on a closed
+socket.  Did you forget to check the return value of your socket() call?
 
 =item getpwnam returned invalid UIC %#o for user "%s"
 
 (S) A warning peculiar to VMS.  The call to C<sys$getuai> underlying the
 C<getpwnam> operator returned an invalid UIC.
 
-=item glob failed (%s)
-
-(W glob) Something went wrong with the external program(s) used for C<glob>
-and C<< <*.c> >>.  Usually, this means that you supplied a C<glob>
-pattern that caused the external program to fail and exit with a nonzero
-status.  If the message indicates that the abnormal exit resulted in a
-coredump, this may also mean that your csh (C shell) is broken.  If so,
-you should change all of the csh-related variables in config.sh:  If you
-have tcsh, make the variables refer to it as if it were csh (e.g.
-C<full_csh='/usr/bin/tcsh'>); otherwise, make them all empty (except that
-C<d_csh> should be C<'undef'>) so that Perl will think csh is missing.
-In either case, after editing config.sh, run C<./Configure -S> and
-rebuild Perl.
+=item getsockopt() on closed socket %s
 
-=item Glob not terminated
-
-(F) The lexer saw a left angle bracket in a place where it was expecting
-a term, so it's looking for the corresponding right angle bracket, and not
-finding it.  Chances are you left some needed parentheses out earlier in
-the line, and you really meant a "less than".
+(W closed) You tried to get a socket option on a closed socket.  Did you
+forget to check the return value of your socket() call?  See
+L<perlfunc/getsockopt>.
 
 =item Global symbol "%s" requires explicit package name
 
@@ -1590,21 +1459,56 @@ must either be lexically scoped (using "my"), declared beforehand using
 "our", or explicitly qualified to say which package the global variable
 is in (using "::").
 
+=item glob failed (%s)
+
+(W glob) Something went wrong with the external program(s) used for
+C<glob> and C<< <*.c> >>.  Usually, this means that you supplied a
+C<glob> pattern that caused the external program to fail and exit with a
+nonzero status.  If the message indicates that the abnormal exit
+resulted in a coredump, this may also mean that your csh (C shell) is
+broken.  If so, you should change all of the csh-related variables in
+config.sh:  If you have tcsh, make the variables refer to it as if it
+were csh (e.g.  C<full_csh='/usr/bin/tcsh'>); otherwise, make them all
+empty (except that C<d_csh> should be C<'undef'>) so that Perl will
+think csh is missing.  In either case, after editing config.sh, run
+C<./Configure -S> and rebuild Perl.
+
+=item Glob not terminated
+
+(F) The lexer saw a left angle bracket in a place where it was expecting
+a term, so it's looking for the corresponding right angle bracket, and
+not finding it.  Chances are you left some needed parentheses out
+earlier in the line, and you really meant a "less than".
+
+=item Got an error from DosAllocMem
+
+(P) An error peculiar to OS/2.  Most probably you're using an obsolete
+version of Perl, and this should not happen anyway.
+
 =item goto must have label
 
 (F) Unlike with "next" or "last", you're not allowed to goto an
 unspecified destination.  See L<perlfunc/goto>.
 
+=item %s had compilation errors
+
+(F) The final summary message when a C<perl -c> fails.
+
 =item Had to create %s unexpectedly
 
-(S internal) A routine asked for a symbol from a symbol table that ought to have
-existed already, but for some reason it didn't, and had to be created on
-an emergency basis to prevent a core dump.
+(S internal) A routine asked for a symbol from a symbol table that ought
+to have existed already, but for some reason it didn't, and had to be
+created on an emergency basis to prevent a core dump.
 
 =item Hash %%s missing the % in argument %d of %s()
 
-(D deprecated) Really old Perl let you omit the % on hash names in some spots.  This
-is now heavily deprecated.
+(D deprecated) Really old Perl let you omit the % on hash names in some
+spots.  This is now heavily deprecated.
+
+=item %s has too many errors
+
+(F) The parser has given up trying to parse the program after 10 errors.
+Further error messages would likely be uninformative.
 
 =item Hexadecimal number > 0xffffffff non-portable
 
@@ -1616,99 +1520,102 @@ L<perlport> for more on portability concerns.
 
 (F) Perl limits identifiers (names for variables, functions, etc.) to
 about 250 characters for simple names, and somewhat more for compound
-names (like C<$A::B>).  You've exceeded Perl's limits.  Future
-versions of Perl are likely to eliminate these arbitrary limitations.
+names (like C<$A::B>).  You've exceeded Perl's limits.  Future versions
+of Perl are likely to eliminate these arbitrary limitations.
 
-=item Ill-formed CRTL environ value "%s"
+=item Illegal binary digit %s
 
-(W internal) A warning peculiar to VMS.  Perl tried to read the CRTL's internal
-environ array, and encountered an element without the C<=> delimiter
-used to spearate keys from values.  The element is ignored.
+(F) You used a digit other than 0 or 1 in a binary number.
 
-=item Ill-formed message in prime_env_iter: |%s|
+=item Illegal binary digit %s ignored
 
-(W internal) A warning peculiar to VMS.  Perl tried to read a logical name
-or CLI symbol definition when preparing to iterate over %ENV, and
-didn't see the expected delimiter between key and value, so the
-line was ignored.
+(W digit) You may have tried to use a digit other than 0 or 1 in a
+binary number.  Interpretation of the binary number stopped before the
+offending digit.
 
 =item Illegal character %s (carriage return)
 
 (F) Perl normally treats carriage returns in the program text as it
-would any other whitespace, which means you should never see this
-error when Perl was built using standard options.  For some reason,
-your version of Perl appears to have been built without this support.
-Talk to your Perl administrator.
+would any other whitespace, which means you should never see this error
+when Perl was built using standard options.  For some reason, your
+version of Perl appears to have been built without this support.  Talk
+to your Perl administrator.
 
 =item Illegal division by zero
 
-(F) You tried to divide a number by 0.  Either something was wrong in your
-logic, or you need to put a conditional in to guard against meaningless input.
+(F) You tried to divide a number by 0.  Either something was wrong in
+your logic, or you need to put a conditional in to guard against
+meaningless input.
+
+=item Illegal hexadecimal digit %s ignored
+
+(W digit) You may have tried to use a character other than 0 - 9 or
+A - F, a - f in a hexadecimal number.  Interpretation of the hexadecimal
+number stopped before the illegal character.
 
 =item Illegal modulus zero
 
-(F) You tried to divide a number by 0 to get the remainder.  Most numbers
-don't take to this kindly.
+(F) You tried to divide a number by 0 to get the remainder.  Most
+numbers don't take to this kindly.
 
-=item Illegal binary digit %s
+=item Illegal number of bits in vec
 
-(F) You used a digit other than 0 or 1 in a binary number.
+(F) The number of bits in vec() (the third argument) must be a power of
+two from 1 to 32 (or 64, if your platform supports that).
 
 =item Illegal octal digit %s
 
 (F) You used an 8 or 9 in a octal number.
 
-=item Illegal binary digit %s ignored
-
-(W digit) You may have tried to use a digit other than 0 or 1 in a binary number.
-Interpretation of the binary number stopped before the offending digit.
-
 =item Illegal octal digit %s ignored
 
-(W digit) You may have tried to use an 8 or 9 in a octal number.  Interpretation
-of the octal number stopped before the 8 or 9.
-
-=item Illegal hexadecimal digit %s ignored
-
-(W digit) You may have tried to use a character other than 0 - 9 or A - F, a - f
-in a hexadecimal number.  Interpretation of the hexadecimal number stopped
-before the illegal character.
-
-=item Illegal number of bits in vec
-
-(F) The number of bits in vec() (the third argument) must be a power of
-two from 1 to 32 (or 64, if your platform supports that).
+(W digit) You may have tried to use an 8 or 9 in a octal number.
+Interpretation of the octal number stopped before the 8 or 9.
 
 =item Illegal switch in PERL5OPT: %s
 
 (X) The PERL5OPT environment variable may only be used to set the
 following switches: B<-[DIMUdmw]>.
 
-=item In string, @%s now must be written as \@%s
+=item Ill-formed CRTL environ value "%s"
 
-(F) It used to be that Perl would try to guess whether you wanted an
-array interpolated or a literal @.  It did this when the string was first
-used at runtime.  Now strings are parsed at compile time, and ambiguous
-instances of @ must be disambiguated, either by prepending a backslash to
-indicate a literal, or by declaring (or using) the array within the
-program before the string (lexically).  (Someday it will simply assume
-that an unbackslashed @ interpolates an array.)
+(W internal) A warning peculiar to VMS.  Perl tried to read the CRTL's
+internal environ array, and encountered an element without the C<=>
+delimiter used to separate keys from values.  The element is ignored.
+
+=item Ill-formed message in prime_env_iter: |%s|
+
+(W internal) A warning peculiar to VMS.  Perl tried to read a logical
+name or CLI symbol definition when preparing to iterate over %ENV, and
+didn't see the expected delimiter between key and value, so the line was
+ignored.
+
+=item (in cleanup) %s
+
+(W misc) This prefix usually indicates that a DESTROY() method raised
+the indicated exception.  Since destructors are usually called by the
+system at arbitrary points during execution, and often a vast number of
+times, the warning is issued only once for any number of failures that
+would otherwise result in the same message being repeated.
+
+Failure of user callbacks dispatched using the C<G_KEEPERR> flag could
+also result in this warning.  See L<perlcall/G_KEEPERR>.
 
 =item Insecure dependency in %s
 
 (F) You tried to do something that the tainting mechanism didn't like.
-The tainting mechanism is turned on when you're running setuid or setgid,
-or when you specify B<-T> to turn it on explicitly.  The tainting mechanism
-labels all data that's derived directly or indirectly from the user,
-who is considered to be unworthy of your trust.  If any such data is
-used in a "dangerous" operation, you get this error.  See L<perlsec>
-for more information.
+The tainting mechanism is turned on when you're running setuid or
+setgid, or when you specify B<-T> to turn it on explicitly.  The
+tainting mechanism labels all data that's derived directly or indirectly
+from the user, who is considered to be unworthy of your trust.  If any
+such data is used in a "dangerous" operation, you get this error.  See
+L<perlsec> for more information.
 
 =item Insecure directory in %s
 
-(F) You can't use system(), exec(), or a piped open in a setuid or setgid
-script if C<$ENV{PATH}> contains a directory that is writable by the world.
-See L<perlsec>.
+(F) You can't use system(), exec(), or a piped open in a setuid or
+setgid script if C<$ENV{PATH}> contains a directory that is writable by
+the world.  See L<perlsec>.
 
 =item Insecure $ENV{%s} while running %s
 
@@ -1718,36 +1625,52 @@ C<$ENV{ENV}> or C<$ENV{BASH_ENV}> are derived from data supplied (or
 potentially supplied) by the user.  The script must set the path to a
 known value, using trustworthy data.  See L<perlsec>.
 
+=item In string, @%s now must be written as \@%s
+
+(F) It used to be that Perl would try to guess whether you wanted an
+array interpolated or a literal @.  It did this when the string was
+first used at runtime.  Now strings are parsed at compile time, and
+ambiguous instances of @ must be disambiguated, either by prepending a
+backslash to indicate a literal, or by declaring (or using) the array
+within the program before the string (lexically).  (Someday it will
+simply assume that an unbackslashed @ interpolates an array.)
+
 =item Integer overflow in %s number
 
-(W overflow) The hexadecimal, octal or binary number you have specified either
-as a literal or as an argument to hex() or oct() is too big for your
-architecture, and has been converted to a floating point number.  On a
-32-bit architecture the largest hexadecimal, octal or binary number
+(W overflow) The hexadecimal, octal or binary number you have specified
+either as a literal or as an argument to hex() or oct() is too big for
+your architecture, and has been converted to a floating point number.
+On a 32-bit architecture the largest hexadecimal, octal or binary number
 representable without overflow is 0xFFFFFFFF, 037777777777, or
 0b11111111111111111111111111111111 respectively.  Note that Perl
 transparently promotes all numbers to a floating point representation
 internally--subject to loss of precision errors in subsequent
 operations.
 
-=item Internal inconsistency in tracking vforks
-
-(S) A warning peculiar to VMS.  Perl keeps track of the number
-of times you've called C<fork> and C<exec>, to determine
-whether the current call to C<exec> should affect the current
-script or a subprocess (see L<perlvms/"exec LIST">).  Somehow, this count
-has become scrambled, so Perl is making a guess and treating
-this C<exec> as a request to terminate the Perl script
-and execute the specified command.
-
 =item internal disaster in regexp
 
 (P) Something went badly wrong in the regular expression parser.
 
+=item Internal inconsistency in tracking vforks
+
+(S) A warning peculiar to VMS.  Perl keeps track of the number of times
+you've called C<fork> and C<exec>, to determine whether the current call
+to C<exec> should affect the current script or a subprocess (see
+L<perlvms/"exec LIST">).  Somehow, this count has become scrambled, so
+Perl is making a guess and treating this C<exec> as a request to
+terminate the Perl script and execute the specified command.
+
 =item internal urp in regexp at /%s/
 
 (P) Something went badly awry in the regular expression parser.
 
+=item %s (...) interpreted as function
+
+(W syntax) You've run afoul of the rule that says that any list operator
+followed by parentheses turns into a function, with all the list
+operators arguments found inside the parentheses.  See L<perlop/Terms
+and List Operators (Leftward)>.
+
 =item Invalid %s attribute: %s
 
 The indicated attribute for a subroutine or variable was not recognized
@@ -1755,37 +1678,38 @@ by Perl or by a user-supplied handler.  See L<attributes>.
 
 =item Invalid %s attributes: %s
 
-The indicated attributes for a subroutine or variable were not recognized
-by Perl or by a user-supplied handler.  See L<attributes>.
+The indicated attributes for a subroutine or variable were not
+recognized by Perl or by a user-supplied handler.  See L<attributes>.
+
+=item Invalid conversion in %s: "%s"
+
+(W printf) Perl does not understand the given format conversion.  See
+L<perlfunc/sprintf>.
 
 =item invalid [] range "%s" in regexp
 
 (F) The range specified in a character class had a minimum character
 greater than the maximum character.  See L<perlre>.
 
-=item Invalid conversion in %s: "%s"
-
-(W printf) Perl does not understand the given format conversion.
-See L<perlfunc/sprintf>.
-
 =item Invalid separator character %s in attribute list
 
 (F) Something other than a colon or whitespace was seen between the
-elements of an attribute list.  If the previous attribute
-had a parenthesised parameter list, perhaps that list was terminated
-too soon.  See L<attributes>.
+elements of an attribute list.  If the previous attribute had a
+parenthesised parameter list, perhaps that list was terminated too soon.
+See L<attributes>.
 
 =item Invalid type in pack: '%s'
 
 (F) The given character is not a valid pack type.  See L<perlfunc/pack>.
-(W pack) The given character is not a valid pack type but used to be silently
-ignored.
+(W pack) The given character is not a valid pack type but used to be
+silently ignored.
 
 =item Invalid type in unpack: '%s'
 
-(F) The given character is not a valid unpack type.  See L<perlfunc/unpack>.
-(W unpack) The given character is not a valid unpack type but used to be silently
-ignored.
+(F) The given character is not a valid unpack type.  See
+L<perlfunc/unpack>.
+(W unpack) The given character is not a valid unpack type but used to be
+silently ignored.
 
 =item ioctl is not implemented
 
@@ -1798,9 +1722,9 @@ strange for a machine that supports C.
 
 =item Label not found for "last %s"
 
-(F) You named a loop to break out of, but you're not currently in a
-loop of that name, not even if you count where you were called from.
-See L<perlfunc/last>.
+(F) You named a loop to break out of, but you're not currently in a loop
+of that name, not even if you count where you were called from.  See
+L<perlfunc/last>.
 
 =item Label not found for "next %s"
 
@@ -1821,14 +1745,42 @@ effective uids or gids failed.
 
 =item listen() on closed socket %s
 
-(W closed) You tried to do a listen on a closed socket.  Did you forget to check
-the return value of your socket() call?  See L<perlfunc/listen>.
+(W closed) You tried to do a listen on a closed socket.  Did you forget
+to check the return value of your socket() call?  See
+L<perlfunc/listen>.
 
 =item Lvalue subs returning %s not implemented yet
 
 (F) Due to limitations in the current implementation, array and hash
-values cannot be returned in subroutines used in lvalue context.
-See L<perlsub/"Lvalue subroutines">.
+values cannot be returned in subroutines used in lvalue context.  See
+L<perlsub/"Lvalue subroutines">.
+
+=item Malformed PERLLIB_PREFIX
+
+(F) An error peculiar to OS/2.  PERLLIB_PREFIX should be of the form
+
+    prefix1;prefix2
+
+or
+
+    prefix1 prefix2
+
+with nonempty prefix1 and prefix2.  If C<prefix1> is indeed a prefix of
+a builtin library search path, prefix2 is substituted.  The error may
+appear if components are not found, or are too long.  See
+"PERLLIB_PREFIX" in F<README.os2>.
+
+=item %s matches null string many times
+
+(W regexp) The pattern you've specified would be an infinite loop if the
+regular expression engine didn't specifically check for that.  See
+L<perlre>.
+
+=item % may only be used in unpack
+
+(F) You can't pack a string by supplying a checksum, because the
+checksumming process loses information, and you can't go the other way.
+See L<perlfunc/unpack>.
 
 =item Method for operation %s not found in package %s during blessing
 
@@ -1849,12 +1801,6 @@ ended earlier on the current line.
 
 (W syntax) An underline in a decimal constant wasn't on a 3-digit boundary.
 
-=item Missing $ on loop variable
-
-(F) Apparently you've been programming in B<csh> too much.  Variables are always
-mentioned with the $ in Perl, unlike in the shells, where it can vary from
-one line to the next.
-
 =item Missing %sbrace%s on \N{}
 
 (F) Wrong syntax of character name literal C<\N{charname}> within
@@ -1867,19 +1813,37 @@ double-quotish context.
 
 =item Missing command in piped open
 
-(W pipe) You used the C<open(FH, "| command")> or C<open(FH, "command |")>
-construction, but the command was missing or blank.
+(W pipe) You used the C<open(FH, "| command")> or
+C<open(FH, "command |")> construction, but the command was missing or
+blank.
+
+=item Missing name in "my sub"
+
+(F) The reserved syntax for lexically scoped subroutines requires that
+they have a name with which they can be found.
+
+=item Missing $ on loop variable
+
+(F) Apparently you've been programming in B<csh> too much.  Variables
+are always mentioned with the $ in Perl, unlike in the shells, where it
+can vary from one line to the next.
 
-=item Missing operator before %s?
+=item (Missing operator before %s?)
 
 (S) This is an educated guess made in conjunction with the message "%s
 found where operator expected".  Often the missing operator is a comma.
 
 =item Missing right curly or square bracket
 
-(F) The lexer counted more opening curly or square brackets than
-closing ones.  As a general rule, you'll find it's missing near the place
-you were last editing.
+(F) The lexer counted more opening curly or square brackets than closing
+ones.  As a general rule, you'll find it's missing near the place you
+were last editing.
+
+=item (Missing semicolon on previous line?)
+
+(S) This is an educated guess made in conjunction with the message "%s
+found where operator expected".  Don't automatically put a semicolon on
+the previous line just because you saw this message.
 
 =item Modification of a read-only value attempted
 
@@ -1892,76 +1856,100 @@ catches that.  But an easy way to do the same thing is:
 
 Another way is to assign to a substr() that's off the end of the string.
 
-=item Modification of non-creatable array value attempted, subscript %d
+=item Modification of non-creatable array value attempted, %s
 
 (F) You tried to make an array value spring into existence, and the
 subscript was probably negative, even counting from end of the array
 backwards.
 
-=item Modification of non-creatable hash value attempted, subscript "%s"
+=item Modification of non-creatable hash value attempted, %s
 
-(P) You tried to make a hash value spring into existence, and it couldn't
-be created for some peculiar reason.
+(P) You tried to make a hash value spring into existence, and it
+couldn't be created for some peculiar reason.
 
 =item Module name must be constant
 
 (F) Only a bare module name is allowed as the first argument to a "use".
 
+=item Module name required with -%c option
+
+(F) The C<-M> or C<-m> options say that Perl should load some module, but
+you omitted the name of the module.  Consult L<perlrun> for full details
+about C<-M> and C<-m>.
+
 =item msg%s not implemented
 
 (F) You don't have System V message IPC on your system.
 
 =item Multidimensional syntax %s not supported
 
-(W syntax) Multidimensional arrays aren't written like C<$foo[1,2,3]>.  They're written
-like C<$foo[1][2][3]>, as in C.
+(W syntax) Multidimensional arrays aren't written like C<$foo[1,2,3]>.
+They're written like C<$foo[1][2][3]>, as in C.
 
-=item Missing name in "my sub"
+=item / must be followed by a*, A* or Z*
+
+(F) You had a pack template indicating a counted-length string,
+Currently the only things that can have their length counted are a*, A*
+or Z*.  See L<perlfunc/pack>.
+
+=item / must be followed by a, A or Z
+
+(F) You had an unpack template indicating a counted-length string, which
+must be followed by one of the letters a, A or Z to indicate what sort
+of string is to be unpacked.  See L<perlfunc/pack>.
 
-(F) The reserved syntax for lexically scoped subroutines requires that they
-have a name with which they can be found.
+=item / must follow a numeric type
+
+(F) You had an unpack template that contained a '#', but this did not
+follow some numeric unpack specification.  See L<perlfunc/pack>.
+
+=item "my sub" not yet implemented
+
+(F) Lexically scoped subroutines are not yet implemented.  Don't try
+that yet.
+
+=item "my" variable %s can't be in a package
+
+(F) Lexically scoped variables aren't in a package, so it doesn't make
+sense to try to declare one with a package qualifier on the front.  Use
+local() if you want to localize a package variable.
 
 =item Name "%s::%s" used only once: possible typo
 
 (W once) Typographical errors often show up as unique variable names.
-If you had a good reason for having a unique name, then just mention
-it again somehow to suppress the message.  The C<our> declaration is
+If you had a good reason for having a unique name, then just mention it
+again somehow to suppress the message.  The C<our> declaration is
 provided for this purpose.
 
 =item Negative length
 
-(F) You tried to do a read/write/send/recv operation with a buffer length
-that is less than 0.  This is difficult to imagine.
+(F) You tried to do a read/write/send/recv operation with a buffer
+length that is less than 0.  This is difficult to imagine.
 
 =item nested *?+ in regexp
 
 (F) You can't quantify a quantifier without intervening parentheses.  So
 things like ** or +* or ?* are illegal.
 
-Note, however, that the minimal matching quantifiers, C<*?>, C<+?>, and C<??> appear
-to be nested quantifiers, but aren't.  See L<perlre>.
+Note, however, that the minimal matching quantifiers, C<*?>, C<+?>, and
+C<??> appear to be nested quantifiers, but aren't.  See L<perlre>.
 
-=item No #! line
+=item %s never introduced
 
-(F) The setuid emulator requires that scripts have a well-formed #! line
-even on machines that don't support the #! construct.
+(S internal) The symbol in question was declared but somehow went out of
+scope before it could possibly have been used.
 
 =item No %s allowed while running setuid
 
-(F) Certain operations are deemed to be too insecure for a setuid or setgid
-script to even be allowed to attempt.  Generally speaking there will be
-another way to do what you want that is, if not secure, at least securable.
-See L<perlsec>.
+(F) Certain operations are deemed to be too insecure for a setuid or
+setgid script to even be allowed to attempt.  Generally speaking there
+will be another way to do what you want that is, if not secure, at least
+securable.  See L<perlsec>.
 
 =item No B<-e> allowed in setuid scripts
 
 (F) A setuid script can't be specified by the user.
 
-=item No %s specified for -%c
-
-(F) The indicated command line switch needs a mandatory argument, but
-you haven't specified one.
-
 =item No comma allowed after %s
 
 (F) A list operator that has a filehandle or "indirect object" is not
@@ -1982,18 +1970,17 @@ this error was triggered?
 
 =item No command into which to pipe on command line
 
-(F) An error peculiar to VMS.  Perl handles its own command line redirection,
-and found a '|' at the end of the command line, so it doesn't know where you
-want to pipe the output from this command.
+(F) An error peculiar to VMS.  Perl handles its own command line
+redirection, and found a '|' at the end of the command line, so it
+doesn't know where you want to pipe the output from this command.
 
 =item No DB::DB routine defined
 
-(F) The currently executing code was compiled with the B<-d> switch,
-but for some reason the perl5db.pl file (or some facsimile thereof)
-didn't define a routine to be called at the beginning of each
-statement.  Which is odd, because the file should have been required
-automatically, and should have blown up the require if it didn't parse
-right.
+(F) The currently executing code was compiled with the B<-d> switch, but
+for some reason the perl5db.pl file (or some facsimile thereof) didn't
+define a routine to be called at the beginning of each statement.  Which
+is odd, because the file should have been required automatically, and
+should have blown up the require if it didn't parse right.
 
 =item No dbm on this machine
 
@@ -2009,33 +1996,43 @@ ordinary subroutine call.
 
 =item No error file after 2> or 2>> on command line
 
-(F) An error peculiar to VMS.  Perl handles its own command line redirection,
-and found a '2>' or a '2>>' on the command line, but can't find
-the name of the file to which to write data destined for stderr.
+(F) An error peculiar to VMS.  Perl handles its own command line
+redirection, and found a '2>' or a '2>>' on the command line, but can't
+find the name of the file to which to write data destined for stderr.
 
 =item No input file after < on command line
 
-(F) An error peculiar to VMS.  Perl handles its own command line redirection,
-and found a '<' on the command line, but can't find the name of the file
-from which to read data for stdin.
+(F) An error peculiar to VMS.  Perl handles its own command line
+redirection, and found a '<' on the command line, but can't find the
+name of the file from which to read data for stdin.
+
+=item No #! line
+
+(F) The setuid emulator requires that scripts have a well-formed #! line
+even on machines that don't support the #! construct.
+
+=item "no" not allowed in expression
+
+(F) The "no" keyword is recognized and executed at compile time, and
+returns no useful value.  See L<perlmod>.
 
 =item No output file after > on command line
 
-(F) An error peculiar to VMS.  Perl handles its own command line redirection,
-and found a lone '>' at the end of the command line, so it doesn't know
-where you wanted to redirect stdout.
+(F) An error peculiar to VMS.  Perl handles its own command line
+redirection, and found a lone '>' at the end of the command line, so it
+doesn't know where you wanted to redirect stdout.
 
 =item No output file after > or >> on command line
 
-(F) An error peculiar to VMS.  Perl handles its own command line redirection,
-and found a '>' or a '>>' on the command line, but can't find the
-name of the file to which to write data destined for stdout.
+(F) An error peculiar to VMS.  Perl handles its own command line
+redirection, and found a '>' or a '>>' on the command line, but can't
+find the name of the file to which to write data destined for stdout.
 
 =item No package name allowed for variable %s in "our"
 
-(F) Fully qualified variable names are not allowed in "our" declarations,
-because that doesn't make much sense under existing semantics.  Such
-syntax is reserved for future extensions.
+(F) Fully qualified variable names are not allowed in "our"
+declarations, because that doesn't make much sense under existing
+semantics.  Such syntax is reserved for future extensions.
 
 =item No Perl script found in input
 
@@ -2054,8 +2051,19 @@ your system.
 
 =item No space allowed after -%c
 
-(F) The argument to the indicated command line switch must follow immediately
-after the switch, without intervening spaces.
+(F) The argument to the indicated command line switch must follow
+immediately after the switch, without intervening spaces.
+
+=item No %s specified for -%c
+
+(F) The indicated command line switch needs a mandatory argument, but
+you haven't specified one.
+
+=item No such pipe open
+
+(P) An error peculiar to VMS.  The internal routine my_pclose() tried to
+close a pipe which hadn't been opened.  This should have been caught
+earlier as an attempt to close an unopened filehandle.
 
 =item No such pseudo-hash field "%s"
 
@@ -2065,36 +2073,23 @@ array indices for that to work.
 
 =item No such pseudo-hash field "%s" in variable %s of type %s
 
-(F) You tried to access a field of a typed variable where the type
-does not know about the field name.  The field names are looked up in
-the %FIELDS hash in the type package at compile time.  The %FIELDS hash
-is usually set up with the 'fields' pragma.
-
-=item No such pipe open
-
-(P) An error peculiar to VMS.  The internal routine my_pclose() tried to
-close a pipe which hadn't been opened.  This should have been caught earlier as
-an attempt to close an unopened filehandle.
+(F) You tried to access a field of a typed variable where the type does
+not know about the field name.  The field names are looked up in the
+%FIELDS hash in the type package at compile time.  The %FIELDS hash is
+%usually set up with the 'fields' pragma.
 
 =item No such signal: SIG%s
 
-(W signal) You specified a signal name as a subscript to %SIG that was not recognized.
-Say C<kill -l> in your shell to see the valid signal names on your system.
-
-=item no UTC offset information; assuming local time is UTC
-
-(S) A warning peculiar to VMS.  Perl was unable to find the local
-timezone offset, so it's assuming that local system time is equivalent
-to UTC.  If it's not, define the logical name F<SYS$TIMEZONE_DIFFERENTIAL>
-to translate to the number of seconds which need to be added to UTC to
-get local time.
+(W signal) You specified a signal name as a subscript to %SIG that was
+not recognized.  Say C<kill -l> in your shell to see the valid signal
+names on your system.
 
 =item Not a CODE reference
 
 (F) Perl was trying to evaluate a reference to a code value (that is, a
 subroutine), but found a reference to something else instead.  You can
-use the ref() function to find out what kind of ref it really was.
-See also L<perlref>.
+use the ref() function to find out what kind of ref it really was.  See
+also L<perlref>.
 
 =item Not a format reference
 
@@ -2103,16 +2098,22 @@ format, but this indicates you did, and that it didn't exist.
 
 =item Not a GLOB reference
 
-(F) Perl was trying to evaluate a reference to a "typeglob" (that is,
-symbol table entry that looks like C<*foo>), but found a reference to
-something else instead.  You can use the ref() function to find out
-what kind of ref it really was.  See L<perlref>.
+(F) Perl was trying to evaluate a reference to a "typeglob" (that is, a
+symbol table entry that looks like C<*foo>), but found a reference to
+something else instead.  You can use the ref() function to find out what
+kind of ref it really was.  See L<perlref>.
 
 =item Not a HASH reference
 
-(F) Perl was trying to evaluate a reference to a hash value, but
-found a reference to something else instead.  You can use the ref()
-function to find out what kind of ref it really was.  See L<perlref>.
+(F) Perl was trying to evaluate a reference to a hash value, but found a
+reference to something else instead.  You can use the ref() function to
+find out what kind of ref it really was.  See L<perlref>.
+
+=item Not an ARRAY reference
+
+(F) Perl was trying to evaluate a reference to an array value, but found
+a reference to something else instead.  You can use the ref() function
+to find out what kind of ref it really was.  See L<perlref>.
 
 =item Not a perl script
 
@@ -2122,41 +2123,54 @@ mention perl.
 
 =item Not a SCALAR reference
 
-(F) Perl was trying to evaluate a reference to a scalar value, but
-found a reference to something else instead.  You can use the ref()
-function to find out what kind of ref it really was.  See L<perlref>.
+(F) Perl was trying to evaluate a reference to a scalar value, but found
+a reference to something else instead.  You can use the ref() function
+to find out what kind of ref it really was.  See L<perlref>.
 
 =item Not a subroutine reference
 
 (F) Perl was trying to evaluate a reference to a code value (that is, a
 subroutine), but found a reference to something else instead.  You can
-use the ref() function to find out what kind of ref it really was.
-See also L<perlref>.
+use the ref() function to find out what kind of ref it really was.  See
+also L<perlref>.
 
 =item Not a subroutine reference in overload table
 
 (F) An attempt was made to specify an entry in an overloading table that
 doesn't somehow point to a valid subroutine.  See L<overload>.
 
-=item Not an ARRAY reference
-
-(F) Perl was trying to evaluate a reference to an array value, but
-found a reference to something else instead.  You can use the ref()
-function to find out what kind of ref it really was.  See L<perlref>.
-
 =item Not enough arguments for %s
 
 (F) The function requires more arguments than you specified.
 
 =item Not enough format arguments
 
-(W syntax) A format specified more picture fields than the next line supplied.
-See L<perlform>.
+(W syntax) A format specified more picture fields than the next line
+supplied.  See L<perlform>.
+
+=item %s: not found
+
+(A) You've accidentally run your script through the Bourne shell instead
+of Perl.  Check the #! line, or manually feed your script into Perl
+yourself.
+
+=item no UTC offset information; assuming local time is UTC
+
+(S) A warning peculiar to VMS.  Perl was unable to find the local
+timezone offset, so it's assuming that local system time is equivalent
+to UTC.  If it's not, define the logical name
+F<SYS$TIMEZONE_DIFFERENTIAL> to translate to the number of seconds which
+need to be added to UTC to get local time.
 
 =item Null filename used
 
-(F) You can't require the null filename, especially because on many machines
-that means the current directory!  See L<perlfunc/require>.
+(F) You can't require the null filename, especially because on many
+machines that means the current directory!  See L<perlfunc/require>.
+
+=item NULL OP IN RUN
+
+(P debugging) Some internal routine called run() with a null opcode
+pointer.
 
 =item Null picture in formline
 
@@ -2164,10 +2178,6 @@ that means the current directory!  See L<perlfunc/require>.
 specification.  It was found to be empty, which probably means you
 supplied it an uninitialized value.  See L<perlform>.
 
-=item NULL OP IN RUN
-
-(P debugging) Some internal routine called run() with a null opcode pointer.
-
 =item Null realloc
 
 (P) An attempt was made to realloc NULL.
@@ -2182,36 +2192,37 @@ supplied it an uninitialized value.  See L<perlform>.
 
 =item Number too long
 
-(F) Perl limits the representation of decimal numbers in programs to about
-about 250 characters.  You've exceeded that length.  Future versions of
-Perl are likely to eliminate this arbitrary limitation.  In the meantime,
-try using scientific notation (e.g. "1e6" instead of "1_000_000").
+(F) Perl limits the representation of decimal numbers in programs to
+about about 250 characters.  You've exceeded that length.  Future
+versions of Perl are likely to eliminate this arbitrary limitation.  In
+the meantime, try using scientific notation (e.g. "1e6" instead of
+"1_000_000").
 
-=item Octal number > 037777777777 non-portable
+=item Octal number in vector unsupported
 
-(W portable) The octal number you specified is larger than 2**32-1 (4294967295)
-and therefore non-portable between systems.  See L<perlport> for more
-on portability concerns.
+(F) Numbers with a leading C<0> are not currently allowed in vectors.
+The octal number interpretation of such numbers may be supported in a
+future version.
 
-See also L<perlport> for writing portable code.
+=item Octal number > 037777777777 non-portable
 
-=item Octal number in vector unsupported
+(W portable) The octal number you specified is larger than 2**32-1
+(4294967295) and therefore non-portable between systems.  See
+L<perlport> for more on portability concerns.
 
-(F) Numbers with a leading C<0> are not currently allowed in vectors.  The
-octal number interpretation of such numbers may be supported in a future
-version.
+See also L<perlport> for writing portable code.
 
 =item Odd number of elements in hash assignment
 
-(W misc) You specified an odd number of elements to initialize a hash, which
-is odd, because hashes come in key/value pairs.
+(W misc) You specified an odd number of elements to initialize a hash,
+which is odd, because hashes come in key/value pairs.
 
 =item Offset outside string
 
 (F) You tried to do a read/write/send/recv operation with an offset
-pointing outside the buffer.  This is difficult to imagine.
-The sole exception to this is that C<sysread()>ing past the buffer
-will extend the buffer and zero pad the new area.
+pointing outside the buffer.  This is difficult to imagine.  The sole
+exception to this is that C<sysread()>ing past the buffer will extend
+the buffer and zero pad the new area.
 
 =item oops: oopsAV
 
@@ -2223,59 +2234,81 @@ will extend the buffer and zero pad the new area.
 
 =item Operation `%s': no method found, %s
 
-(F) An attempt was made to perform an overloaded operation for which
-no handler was defined.  While some handlers can be autogenerated in
-terms of other handlers, there is no default handler for any
-operation, unless C<fallback> overloading key is specified to be
-true.  See L<overload>.
+(F) An attempt was made to perform an overloaded operation for which no
+handler was defined.  While some handlers can be autogenerated in terms
+of other handlers, there is no default handler for any operation, unless
+C<fallback> overloading key is specified to be true.  See L<overload>.
 
 =item Operator or semicolon missing before %s
 
-(S ambiguous) You used a variable or subroutine call where the parser was
-expecting an operator.  The parser has assumed you really meant
-to use an operator, but this is highly likely to be incorrect.
-For example, if you say "*foo *foo" it will be interpreted as
-if you said "*foo * 'foo'".
+(S ambiguous) You used a variable or subroutine call where the parser
+was expecting an operator.  The parser has assumed you really meant to
+use an operator, but this is highly likely to be incorrect.  For
+example, if you say "*foo *foo" it will be interpreted as if you said
+"*foo * 'foo'".
+
+=item "our" variable %s redeclared
+
+(W misc) You seem to have already declared the same global once before
+in the current lexical scope.
 
 =item Out of memory!
 
 (X) The malloc() function returned 0, indicating there was insufficient
-remaining memory (or virtual memory) to satisfy the request.  Perl
-has no option but to exit immediately.
+remaining memory (or virtual memory) to satisfy the request.  Perl has
+no option but to exit immediately.
 
-=item Out of memory for yacc stack
+=item Out of memory during "large" request for %s
 
-(F) The yacc parser wanted to grow its stack so it could continue parsing,
-but realloc() wouldn't give it more memory, virtual or otherwise.
+(F) The malloc() function returned 0, indicating there was insufficient
+remaining memory (or virtual memory) to satisfy the request. However,
+the request was judged large enough (compile-time default is 64K), so a
+possibility to shut down by trapping this error is granted.
 
 =item Out of memory during request for %s
 
-(X|F) The malloc() function returned 0, indicating there was insufficient
-remaining memory (or virtual memory) to satisfy the request.
+(X|F) The malloc() function returned 0, indicating there was
+insufficient remaining memory (or virtual memory) to satisfy the
+request.
 
 The request was judged to be small, so the possibility to trap it
 depends on the way perl was compiled.  By default it is not trappable.
-However, if compiled for this, Perl may use the contents of C<$^M> as
-an emergency pool after die()ing with this message.  In this case the
-error is trappable I<once>.
-
-=item Out of memory during "large" request for %s
-
-(F) The malloc() function returned 0, indicating there was insufficient
-remaining memory (or virtual memory) to satisfy the request. However,
-the request was judged large enough (compile-time default is 64K), so
-a possibility to shut down by trapping this error is granted.
+However, if compiled for this, Perl may use the contents of C<$^M> as an
+emergency pool after die()ing with this message.  In this case the error
+is trappable I<once>.
 
 =item Out of memory during ridiculously large request
 
 (F) You can't allocate more than 2^31+"small amount" bytes.  This error
-is most likely to be caused by a typo in the Perl program. e.g., C<$arr[time]>
-instead of C<$arr[$time]>.
+is most likely to be caused by a typo in the Perl program. e.g.,
+C<$arr[time]> instead of C<$arr[$time]>.
+
+=item Out of memory for yacc stack
+
+(F) The yacc parser wanted to grow its stack so it could continue
+parsing, but realloc() wouldn't give it more memory, virtual or
+otherwise.
+
+=item @ outside of string
+
+(F) You had a pack template that specified an absolute position outside
+the string being unpacked.  See L<perlfunc/pack>.
+
+=item %s package attribute may clash with future reserved word: %s
+
+(W reserved) A lowercase attribute name was used that had a
+package-specific handler.  That name might have a meaning to Perl itself
+some day, even though it doesn't yet.  Perhaps you should use a
+mixed-case attribute name, instead.  See L<attributes>.
 
 =item page overflow
 
-(W io) A single call to write() produced more lines than can fit on a page.
-See L<perlform>.
+(W io) A single call to write() produced more lines than can fit on a
+page.  See L<perlform>.
+
+=item panic: %s
+
+(P) An internal error.
 
 =item panic: ck_grep
 
@@ -2287,8 +2320,8 @@ See L<perlform>.
 
 =item panic: corrupt saved stack index
 
-(P) The savestack was requested to restore more localized values than there
-are in the savestack.
+(P) The savestack was requested to restore more localized values than
+there are in the savestack.
 
 =item panic: del_backref
 
@@ -2302,7 +2335,8 @@ it wasn't an eval context.
 
 =item panic: do_match
 
-(P) The internal pp_match() routine was called with invalid operational data.
+(P) The internal pp_match() routine was called with invalid operational
+data.
 
 =item panic: do_split
 
@@ -2310,11 +2344,13 @@ it wasn't an eval context.
 
 =item panic: do_subst
 
-(P) The internal pp_subst() routine was called with invalid operational data.
+(P) The internal pp_subst() routine was called with invalid operational
+data.
 
 =item panic: do_trans
 
-(P) The internal do_trans() routine was called with invalid operational data.
+(P) The internal do_trans() routine was called with invalid operational
+data.
 
 =item panic: frexp
 
@@ -2344,22 +2380,23 @@ it wasn't a block context.
 
 =item panic: leave_scope clearsv
 
-(P) A writable lexical variable became read-only somehow within the scope.
+(P) A writable lexical variable became read-only somehow within the
+scope.
 
 =item panic: leave_scope inconsistency
 
 (P) The savestack probably got out of sync.  At least, there was an
 invalid enum on the top of it.
 
-=item panic: malloc
-
-(P) Something requested a negative number of bytes of malloc.
-
 =item panic: magic_killbackrefs
 
 (P) Failed an internal consistency check while trying to reset all weak
 references to an object.
 
+=item panic: malloc
+
+(P) Something requested a negative number of bytes of malloc.
+
 =item panic: mapstart
 
 (P) The compiler is screwed up with respect to the map() function.
@@ -2435,10 +2472,6 @@ was string.
 
 (P) The lexer got into a bad state while processing a case modifier.
 
-=item panic: %s
-
-(P) An internal error.
-
 =item Parentheses missing around "%s" list
 
 (W parenthesis) You said something like
@@ -2451,11 +2484,37 @@ when you meant
 
 Remember that "my", "our", and "local" bind tighter than comma.
 
-=item Perl %3.3f required--this is only version %s, stopped
+=item Perl %s required--this is only version %s, stopped
 
-(F) The module in question uses features of a version of Perl more recent
-than the currently running version.  How long has it been since you upgraded,
-anyway?  See L<perlfunc/require>.
+(F) The module in question uses features of a version of Perl more
+recent than the currently running version.  How long has it been since
+you upgraded, anyway?  See L<perlfunc/require>.
+
+=item PERL_SH_DIR too long
+
+(F) An error peculiar to OS/2. PERL_SH_DIR is the directory to find the
+C<sh>-shell in.  See "PERL_SH_DIR" in F<README.os2>.
+
+=item perl: warning: Setting locale failed.
+
+(S) The whole warning message will look something like:
+
+       perl: warning: Setting locale failed.
+       perl: warning: Please check that your locale settings:
+               LC_ALL = "En_US",
+               LANG = (unset)
+           are supported and installed on your system.
+       perl: warning: Falling back to the standard locale ("C").
+
+Exactly what were the failed locale settings varies.  In the above the
+settings were that the LC_ALL was "En_US" and the LANG had no value.
+This error means that Perl detected that you and/or your system
+administrator have set up the so-called variable system but Perl could
+not use those settings.  This was not dead serious, fortunately: there
+is a "default locale" called "C" that Perl can and will use, the script
+will be run.  Before you really fix the problem, however, you will get
+the same error message each time you run Perl.  How to really fix the
+problem can be found in L<perllocale> section B<LOCALE PROBLEMS>.
 
 =item Permission denied
 
@@ -2463,25 +2522,20 @@ anyway?  See L<perlfunc/require>.
 
 =item pid %x not a child
 
-(W exec) A warning peculiar to VMS.  Waitpid() was asked to wait for a process which
-isn't a subprocess of the current process.  While this is fine from VMS'
-perspective, it's probably not what you intended.
+(W exec) A warning peculiar to VMS.  Waitpid() was asked to wait for a
+process which isn't a subprocess of the current process.  While this is
+fine from VMS' perspective, it's probably not what you intended.
 
 =item POSIX getpgrp can't take an argument
 
 (F) Your system has POSIX getpgrp(), which takes no argument, unlike
 the BSD version, which takes a pid.
 
-=item Possible Y2K bug: %s
-
-(W y2k) You are concatenating the number 19 with another number, which
-could be a potential Year 2000 problem.
-
 =item Possible attempt to put comments in qw() list
 
 (W qw) qw() lists contain items separated by whitespace; as with literal
-strings, comment characters are not ignored, but are instead treated
-as literal data.  (You may have used different delimiters than the
+strings, comment characters are not ignored, but are instead treated as
+literal data.  (You may have used different delimiters than the
 parentheses shown here; braces are also frequently used.)
 
 You probably wrote something like this:
@@ -2508,10 +2562,10 @@ old-fashioned way, with quotes and commas:
 
 =item Possible attempt to separate words with commas
 
-(W qw) qw() lists contain items separated by whitespace; therefore commas
-aren't needed to separate the items.  (You may have used different
-delimiters than the parentheses shown here; braces are also frequently
-used.)
+(W qw) qw() lists contain items separated by whitespace; therefore
+commas aren't needed to separate the items.  (You may have used
+different delimiters than the parentheses shown here; braces are also
+frequently used.)
 
 You probably wrote something like this:
 
@@ -2529,6 +2583,29 @@ Perl guesses a reasonable buffer size, but puts a sentinel byte at the
 end of the buffer just in case.  This sentinel byte got clobbered, and
 Perl assumes that memory is now corrupted.  See L<perlfunc/ioctl>.
 
+=item Possible Y2K bug: %s
+
+(W y2k) You are concatenating the number 19 with another number, which
+could be a potential Year 2000 problem.
+
+=item pragma "attrs" is deprecated, use "sub NAME : ATTRS" instead
+
+(W deprecated) You have written something like this:
+
+    sub doit
+    {
+        use attrs qw(locked);
+    }
+
+You should use the new declaration syntax instead.
+
+    sub doit : locked
+    {
+        ...
+
+The C<use attrs> pragma is now obsolete, and is only provided for
+backward-compatibility. See L<perlsub/"Subroutine Attributes">.
+
 =item Precedence problem: open %s should be open(%s)
 
 (S precedence) The old irregular construct
@@ -2539,55 +2616,63 @@ is now misinterpreted as
 
     open(FOO || die);
 
-because of the strict regularization of Perl 5's grammar into unary
-and list operators.  (The old open was a little of both.)  You must
-put parentheses around the filehandle, or use the new "or" operator
-instead of "||".
+because of the strict regularization of Perl 5's grammar into unary and
+list operators.  (The old open was a little of both.)  You must put
+parentheses around the filehandle, or use the new "or" operator instead
+of "||".
 
 =item Premature end of script headers
 
 See Server error.
 
+=item printf() on closed filehandle %s
+
+(W closed) The filehandle you're writing to got itself closed sometime
+before now.  Check your logic flow.
+
 =item print() on closed filehandle %s
 
-(W closed) The filehandle you're printing on got itself closed sometime before now.
-Check your logic flow.
+(W closed) The filehandle you're printing on got itself closed sometime
+before now.  Check your logic flow.
 
-=item printf() on closed filehandle %s
+=item Process terminated by SIG%s
 
-(W closed) The filehandle you're writing to got itself closed sometime before now.
-Check your logic flow.
+(W) This is a standard message issued by OS/2 applications, while *nix
+applications die in silence.  It is considered a feature of the OS/2
+port.  One can easily disable this by appropriate sighandlers, see
+L<perlipc/"Signals">.  See also "Process terminated by SIGTERM/SIGINT"
+in F<README.os2>.
 
 =item Prototype mismatch: %s vs %s
 
-(S unsafe) The subroutine being declared or defined had previously been declared
-or defined with a different function prototype.
+(S unsafe) The subroutine being declared or defined had previously been
+declared or defined with a different function prototype.
 
 =item Range iterator outside integer range
 
 (F) One (or both) of the numeric arguments to the range operator ".."
 are outside the range which can be represented by integers internally.
-One possible workaround is to force Perl to use magical string
-increment by prepending "0" to your numbers.
+One possible workaround is to force Perl to use magical string increment
+by prepending "0" to your numbers.
 
 =item readline() on closed filehandle %s
 
-(W closed) The filehandle you're reading from got itself closed sometime before now.
-Check your logic flow.
-
-=item realloc() of freed memory ignored
-
-(S malloc) An internal routine called realloc() on something that had already
-been freed.
+(W closed) The filehandle you're reading from got itself closed sometime
+before now.  Check your logic flow.
 
 =item Reallocation too large: %lx
 
 (F) You can't allocate more than 64K on an MS-DOS machine.
 
+=item realloc() of freed memory ignored
+
+(S malloc) An internal routine called realloc() on something that had
+already been freed.
+
 =item Recompile perl with B<-D>DEBUGGING to use B<-D> switch
 
-(F debugging) You can't use the B<-D> option unless the code to produce the
-desired output is compiled into Perl, which entails some overhead,
+(F debugging) You can't use the B<-D> option unless the code to produce
+the desired output is compiled into Perl, which entails some overhead,
 which is why it's currently left out of your copy.
 
 =item Recursive inheritance detected in package '%s'
@@ -2595,17 +2680,18 @@ which is why it's currently left out of your copy.
 (F) More than 100 levels of inheritance were used.  Probably indicates
 an unintended loop in your inheritance hierarchy.
 
-=item Recursive inheritance detected while looking for method '%s' in package '%s'
+=item Recursive inheritance detected while looking for method %s
 
-(F) More than 100 levels of inheritance were encountered while invoking a
-method.  Probably indicates an unintended loop in your inheritance hierarchy.
+(F) More than 100 levels of inheritance were encountered while invoking
+a method.  Probably indicates an unintended loop in your inheritance
+hierarchy.
 
 =item Reference found where even-sized list expected
 
-(W misc) You gave a single reference where Perl was expecting a list with
-an even number of elements (for assignment to a hash). This
-usually means that you used the anon hash constructor when you meant 
-to use parens. In any case, a hash requires key/value B<pairs>.
+(W misc) You gave a single reference where Perl was expecting a list
+with an even number of elements (for assignment to a hash). This usually
+means that you used the anon hash constructor when you meant to use
+parens. In any case, a hash requires key/value B<pairs>.
 
     %hash = { one => 1, two => 2, };   # WRONG
     %hash = [ qw/ an anon array / ];   # WRONG
@@ -2619,27 +2705,38 @@ Doing so has no effect.
 
 =item Reference miscount in sv_replace()
 
-(W internal) The internal sv_replace() function was handed a new SV with a
-reference count of other than 1.
+(W internal) The internal sv_replace() function was handed a new SV with
+a reference count of other than 1.
+
+=item regexp memory corruption
+
+(P) The regular expression engine got confused by what the regular
+expression compiler gave it.
 
 =item regexp *+ operand could be empty
 
-(F) The part of the regexp subject to either the * or + quantifier
-could match an empty string.
+(F) The part of the regexp subject to either the * or + quantifier could
+match an empty string.
+
+=item regexp out of space
+
+(P) A "can't happen" error, because safemalloc() should have caught it
+earlier.
 
-=item regexp memory corruption
+=item Repeat count in pack overflows
 
-(P) The regular expression engine got confused by what the regular
-expression compiler gave it.
+(F) You can't specify a repeat count so large that it overflows your
+signed integers.  See L<perlfunc/pack>.
 
-=item regexp out of space
+=item Repeat count in unpack overflows
 
-(P) A "can't happen" error, because safemalloc() should have caught it earlier.
+(F) You can't specify a repeat count so large that it overflows your
+signed integers.  See L<perlfunc/unpack>.
 
 =item Reversed %s= operator
 
-(W syntax) You wrote your assignment operator backwards.  The = must always
-comes last, to avoid ambiguity with subsequent unary operators.
+(W syntax) You wrote your assignment operator backwards.  The = must
+always comes last, to avoid ambiguity with subsequent unary operators.
 
 =item Runaway format
 
@@ -2651,12 +2748,13 @@ shifting or popping (for array variables).  See L<perlform>.
 
 =item Scalar value @%s[%s] better written as $%s[%s]
 
-(W syntax) You've used an array slice (indicated by @) to select a single element of
-an array.  Generally it's better to ask for a scalar value (indicated by $).
-The difference is that C<$foo[&bar]> always behaves like a scalar, both when
-assigning to it and when evaluating its argument, while C<@foo[&bar]> behaves
-like a list when you assign to it, and provides a list context to its
-subscript, which can do weird things if you're expecting only one subscript.
+(W syntax) You've used an array slice (indicated by @) to select a
+single element of an array.  Generally it's better to ask for a scalar
+value (indicated by $).  The difference is that C<$foo[&bar]> always
+behaves like a scalar, both when assigning to it and when evaluating its
+argument, while C<@foo[&bar]> behaves like a list when you assign to it,
+and provides a list context to its subscript, which can do weird things
+if you're expecting only one subscript.
 
 On the other hand, if you were actually hoping to treat the array
 element as a list, you need to look into how references work, because
@@ -2665,16 +2763,17 @@ L<perlref>.
 
 =item Scalar value @%s{%s} better written as $%s{%s}
 
-(W syntax) You've used a hash slice (indicated by @) to select a single element of
-a hash.  Generally it's better to ask for a scalar value (indicated by $).
-The difference is that C<$foo{&bar}> always behaves like a scalar, both when
-assigning to it and when evaluating its argument, while C<@foo{&bar}> behaves
-like a list when you assign to it, and provides a list context to its
-subscript, which can do weird things if you're expecting only one subscript.
-
-On the other hand, if you were actually hoping to treat the hash
-element as a list, you need to look into how references work, because
-Perl will not magically convert between scalars and lists for you.  See
+(W syntax) You've used a hash slice (indicated by @) to select a single
+element of a hash.  Generally it's better to ask for a scalar value
+(indicated by $).  The difference is that C<$foo{&bar}> always behaves
+like a scalar, both when assigning to it and when evaluating its
+argument, while C<@foo{&bar}> behaves like a list when you assign to it,
+and provides a list context to its subscript, which can do weird things
+if you're expecting only one subscript.
+
+On the other hand, if you were actually hoping to treat the hash element
+as a list, you need to look into how references work, because Perl will
+not magically convert between scalars and lists for you.  See
 L<perlref>.
 
 =item Script is not setuid/setgid in suidperl
@@ -2690,41 +2789,36 @@ Missing the leading C<$> from a variable C<$m> may cause this error.
 
 =item %sseek() on unopened file
 
-(W unopened) You tried to use the seek() or sysseek() function on a filehandle that
-was either never opened or has since been closed.
+(W unopened) You tried to use the seek() or sysseek() function on a
+filehandle that was either never opened or has since been closed.
 
 =item select not implemented
 
 (F) This machine doesn't implement the select() system call.
 
-=item sem%s not implemented
+=item Semicolon seems to be missing
 
-(F) You don't have System V semaphore IPC on your system.
+(W semicolon) A nearby syntax error was probably caused by a missing
+semicolon, or possibly some other missing operator, such as a comma.
 
 =item semi-panic: attempt to dup freed string
 
-(S internal) The internal newSVsv() routine was called to duplicate a scalar
-that had previously been marked as free.
+(S internal) The internal newSVsv() routine was called to duplicate a
+scalar that had previously been marked as free.
 
-=item Semicolon seems to be missing
+=item sem%s not implemented
 
-(W semicolon) A nearby syntax error was probably caused by a missing semicolon,
-or possibly some other missing operator, such as a comma.
+(F) You don't have System V semaphore IPC on your system.
 
 =item send() on closed socket %s
 
-(W closed) The socket you're sending to got itself closed sometime before now.
-Check your logic flow.
+(W closed) The socket you're sending to got itself closed sometime
+before now.  Check your logic flow.
 
 =item Sequence (? incomplete
 
-(F) A regular expression ended with an incomplete extension (?.
-See L<perlre>.
-
-=item Sequence (?#... not terminated
-
-(F) A regular expression comment must be terminated by a closing
-parenthesis.  Embedded parentheses aren't allowed.  See L<perlre>.
+(F) A regular expression ended with an incomplete extension (?.  See
+L<perlre>.
 
 =item Sequence (?%s...) not implemented
 
@@ -2736,23 +2830,32 @@ but has not yet been written.  See L<perlre>.
 (F) You used a regular expression extension that doesn't make sense.
 See L<perlre>.
 
+=item Sequence (?#... not terminated
+
+(F) A regular expression comment must be terminated by a closing
+parenthesis.  Embedded parentheses aren't allowed.  See L<perlre>.
+
+=item 500 Server error
+
+See Server error.
+
 =item Server error
 
 This is the error message generally seen in a browser window when trying
-to run a CGI program (including SSI) over the web. The actual error
-text varies widely from server to server. The most frequently-seen
-variants are "500 Server error", "Method (something) not permitted",
-"Document contains no data", "Premature end of script headers", and
-"Did not produce a valid header".
+to run a CGI program (including SSI) over the web. The actual error text
+varies widely from server to server. The most frequently-seen variants
+are "500 Server error", "Method (something) not permitted", "Document
+contains no data", "Premature end of script headers", and "Did not
+produce a valid header".
 
 B<This is a CGI error, not a Perl error>.
 
-You need to make sure your script is executable, is accessible by the user
-CGI is running the script under (which is probably not the user account you
-tested it under), does not rely on any environment variables (like PATH)
-from the user it isn't running under, and isn't in a location where the CGI
-server can't find it, basically, more or less.  Please see the following
-for more information:
+You need to make sure your script is executable, is accessible by the
+user CGI is running the script under (which is probably not the user
+account you tested it under), does not rely on any environment variables
+(like PATH) from the user it isn't running under, and isn't in a
+location where the CGI server can't find it, basically, more or less.
+Please see the following for more information:
 
        http://www.perl.com/CPAN/doc/FAQs/cgi/idiots-guide.html
        http://www.perl.com/CPAN/doc/FAQs/cgi/perl-cgi-faq.html
@@ -2764,50 +2867,70 @@ You should also look at L<perlfaq9>.
 
 =item setegid() not implemented
 
-(F) You tried to assign to C<$)>, and your operating system doesn't support
-the setegid() system call (or equivalent), or at least Configure didn't
-think so.
+(F) You tried to assign to C<$)>, and your operating system doesn't
+support the setegid() system call (or equivalent), or at least Configure
+didn't think so.
 
 =item seteuid() not implemented
 
-(F) You tried to assign to C<< $> >>, and your operating system doesn't support
-the seteuid() system call (or equivalent), or at least Configure didn't
-think so.
+(F) You tried to assign to C<< $> >>, and your operating system doesn't
+support the seteuid() system call (or equivalent), or at least Configure
+didn't think so.
 
 =item setpgrp can't take arguments
 
-(F) Your system has the setpgrp() from BSD 4.2, which takes no arguments,
-unlike POSIX setpgid(), which takes a process ID and process group ID.
+(F) Your system has the setpgrp() from BSD 4.2, which takes no
+arguments, unlike POSIX setpgid(), which takes a process ID and process
+group ID.
 
 =item setrgid() not implemented
 
-(F) You tried to assign to C<$(>, and your operating system doesn't support
-the setrgid() system call (or equivalent), or at least Configure didn't
-think so.
+(F) You tried to assign to C<$(>, and your operating system doesn't
+support the setrgid() system call (or equivalent), or at least Configure
+didn't think so.
 
 =item setruid() not implemented
 
-(F) You tried to assign to C<$<>, and your operating system doesn't support
-the setruid() system call (or equivalent), or at least Configure didn't
-think so.
+(F) You tried to assign to C<$<>, and your operating system doesn't
+support the setruid() system call (or equivalent), or at least Configure
+didn't think so.
+
+=item setsockopt() on closed socket %s
+
+(W closed) You tried to set a socket option on a closed socket.  Did you
+forget to check the return value of your socket() call?  See
+L<perlfunc/setsockopt>.
 
 =item Setuid/gid script is writable by world
 
-(F) The setuid emulator won't run a script that is writable by the world,
-because the world might have written on it already.
+(F) The setuid emulator won't run a script that is writable by the
+world, because the world might have written on it already.
 
 =item shm%s not implemented
 
 (F) You don't have System V shared memory IPC on your system.
 
+=item <> should be quotes
+
+(F) You wrote C<< require <file> >> when you should have written
+C<require 'file'>.
+
+=item /%s/ should probably be written as "%s"
+
+(W syntax) You have used a pattern where Perl expected to find a string,
+as in the first argument to C<join>.  Perl will treat the true or false
+result of matching the pattern against $_ as the string, which is
+probably not what you had in mind.
+
 =item shutdown() on closed socket %s
 
-(W closed) You tried to do a shutdown on a closed socket.  Seems a bit superfluous.
+(W closed) You tried to do a shutdown on a closed socket.  Seems a bit
+superfluous.
 
 =item SIG%s handler "%s" not defined
 
-(W signal) The signal handler named in %SIG doesn't, in fact, exist.  Perhaps you
-put it into the wrong package?
+(W signal) The signal handler named in %SIG doesn't, in fact, exist.
+Perhaps you put it into the wrong package?
 
 =item sort is now a reserved word
 
@@ -2827,36 +2950,37 @@ or less than one element.  See L<perlfunc/sort>.
 
 =item Split loop
 
-(P) The split was looping infinitely.  (Obviously, a split shouldn't iterate
-more times than there are characters of input, which is what happened.)
-See L<perlfunc/split>.
+(P) The split was looping infinitely.  (Obviously, a split shouldn't
+iterate more times than there are characters of input, which is what
+happened.) See L<perlfunc/split>.
 
-=item Stat on unopened file <%s>
+=item Statement unlikely to be reached
 
-(W unopened) You tried to use the stat() function (or an equivalent file test)
-on a filehandle that was either never opened or has since been closed.
+(W exec) You did an exec() with some statement after it other than a
+die().  This is almost always an error, because exec() never returns
+unless there was a failure.  You probably wanted to use system()
+instead, which does return.  To suppress this warning, put the exec() in
+a block by itself.
 
-=item Statement unlikely to be reached
+=item Stat on unopened file <%s>
 
-(W exec) You did an exec() with some statement after it other than a die().
-This is almost always an error, because exec() never returns unless
-there was a failure.  You probably wanted to use system() instead,
-which does return.  To suppress this warning, put the exec() in a block
-by itself.
+(W unopened) You tried to use the stat() function (or an equivalent file
+test) on a filehandle that was either never opened or has since been
+closed.
 
 =item Strange *+?{} on zero-length expression
 
-(W regexp) You applied a regular expression quantifier in a place where it
-makes no sense, such as on a zero-width assertion.
-Try putting the quantifier inside the assertion instead.  For example,
-the way to match "abc" provided that it is followed by three
-repetitions of "xyz" is C</abc(?=(?:xyz){3})/>, not C</abc(?=xyz){3}/>.
+(W regexp) You applied a regular expression quantifier in a place where
+it makes no sense, such as on a zero-width assertion.  Try putting the
+quantifier inside the assertion instead.  For example, the way to match
+"abc" provided that it is followed by three repetitions of "xyz" is
+C</abc(?=(?:xyz){3})/>, not C</abc(?=xyz){3}/>.
 
-=item Stub found while resolving method `%s' overloading `%s' in package `%s'
+=item Stub found while resolving method `%s' overloading %s
 
-(P) Overloading resolution over @ISA tree may be broken by importation stubs.
-Stubs should never be implicitely created, but explicit calls to C<can>
-may break this.
+(P) Overloading resolution over @ISA tree may be broken by importation
+stubs.  Stubs should never be implicitly created, but explicit calls to
+C<can> may break this.
 
 =item Subroutine %s redefined
 
@@ -2869,9 +2993,9 @@ may break this.
 
 =item Substitution loop
 
-(P) The substitution was looping infinitely.  (Obviously, a
-substitution shouldn't iterate more times than there are characters of
-input, which is what happened.)  See the discussion of substitution in
+(P) The substitution was looping infinitely.  (Obviously, a substitution
+shouldn't iterate more times than there are characters of input, which
+is what happened.)  See the discussion of substitution in
 L<perlop/"Quote and Quote-like Operators">.
 
 =item Substitution pattern not terminated
@@ -2888,21 +3012,21 @@ Missing the leading C<$> from variable C<$s> may cause this error.
 
 =item substr outside of string
 
-(W substr),(F) You tried to reference a substr() that pointed outside of a
-string.  That is, the absolute value of the offset was larger than the
-length of the string.  See L<perlfunc/substr>.  This warning is
-fatal if substr is used in an lvalue context (as the left hand side
-of an assignment or as a subroutine argument for example).
+(W substr),(F) You tried to reference a substr() that pointed outside of
+string.  That is, the absolute value of the offset was larger than the
+length of the string.  See L<perlfunc/substr>.  This warning is fatal if
+substr is used in an lvalue context (as the left hand side of an
+assignment or as a subroutine argument for example).
 
 =item suidperl is no longer needed since %s
 
-(F) Your Perl was compiled with B<-D>SETUID_SCRIPTS_ARE_SECURE_NOW, but a
-version of the setuid emulator somehow got run anyway.
+(F) Your Perl was compiled with B<-D>SETUID_SCRIPTS_ARE_SECURE_NOW, but
+version of the setuid emulator somehow got run anyway.
 
 =item switching effective %s is not implemented
 
-(F) While under the C<use filetest> pragma, we cannot switch the
-real and effective uids or gids.
+(F) While under the C<use filetest> pragma, we cannot switch the real
+and effective uids or gids.
 
 =item syntax error
 
@@ -2923,13 +3047,18 @@ before this, because Perl is good at understanding random input.
 Occasionally the line number may be misleading, and once in a blue moon
 the only way to figure out what's triggering the error is to call
 C<perl -c> repeatedly, chopping away half the program each time to see
-if the error went away.  Sort of the cybernetic version of S<20 questions>.
+if the error went away.  Sort of the cybernetic version of S<20
+questions>.
 
 =item syntax error at line %d: `%s' unexpected
 
-(A) You've accidentally run your script through the Bourne shell
-instead of Perl.  Check the #! line, or manually feed your script
-into Perl yourself.
+(A) You've accidentally run your script through the Bourne shell instead
+of Perl.  Check the #! line, or manually feed your script into Perl
+yourself.
+
+=item %s syntax OK
+
+(F) The final summary message when a C<perl -c> succeeds.
 
 =item System V %s is not implemented on this machine
 
@@ -2940,28 +3069,28 @@ unconfigured.  Consult your system support.
 
 =item syswrite() on closed filehandle %s
 
-(W closed) The filehandle you're writing to got itself closed sometime before now.
-Check your logic flow.
+(W closed) The filehandle you're writing to got itself closed sometime
+before now.  Check your logic flow.
 
 =item Target of goto is too deeply nested
 
-(F) You tried to use C<goto> to reach a label that was too deeply
-nested for Perl to reach.  Perl is doing you a favor by refusing.
+(F) You tried to use C<goto> to reach a label that was too deeply nested
+for Perl to reach.  Perl is doing you a favor by refusing.
 
 =item tell() on unopened file
 
-(W unopened) You tried to use the tell() function on a filehandle that was either
-never opened or has since been closed.
+(W unopened) You tried to use the tell() function on a filehandle that
+was either never opened or has since been closed.
 
 =item Test on unopened file <%s>
 
-(W unopened) You tried to invoke a file test operator on a filehandle that isn't
-open.  Check your logic.  See also L<perlfunc/-X>.
+(W unopened) You tried to invoke a file test operator on a filehandle
+that isn't open.  Check your logic.  See also L<perlfunc/-X>.
 
 =item That use of $[ is unsupported
 
-(F) Assignment to C<$[> is now strictly circumscribed, and interpreted as
-a compiler directive.  You may say only one of
+(F) Assignment to C<$[> is now strictly circumscribed, and interpreted
+as a compiler directive.  You may say only one of
 
     $[ = 0;
     $[ = 1;
@@ -2970,13 +3099,8 @@ a compiler directive.  You may say only one of
     local $[ = 1;
     ...
 
-This is to prevent the problem of one module changing the array base
-out from under another module inadvertently.  See L<perlvar/$[>.
-
-=item The %s function is unimplemented
-
-The function indicated isn't implemented on this architecture, according
-to the probings of Configure.
+This is to prevent the problem of one module changing the array base out
+from under another module inadvertently.  See L<perlvar/$[>.
 
 =item The crypt() function is unimplemented due to excessive paranoia
 
@@ -2986,27 +3110,34 @@ think the U.S. Government thinks it's a secret, or at least that they
 will continue to pretend that it is.  And if you quote me on that, I
 will deny it.
 
+=item The %s function is unimplemented
+
+The function indicated isn't implemented on this architecture, according
+to the probings of Configure.
+
 =item The stat preceding C<-l _> wasn't an lstat
 
-(F) It makes no sense to test the current stat buffer for symbolic linkhood
-if the last stat that wrote to the stat buffer already went past
-the symlink to get to the real file.  Use an actual filename instead.
+(F) It makes no sense to test the current stat buffer for symbolic
+linkhood if the last stat that wrote to the stat buffer already went
+past the symlink to get to the real file.  Use an actual filename
+instead.
 
 =item This Perl can't reset CRTL environ elements (%s)
 
 =item This Perl can't set CRTL environ elements (%s=%s)
 
-(W internal) Warnings peculiar to VMS.  You tried to change or delete an element
-of the CRTL's internal environ array, but your copy of Perl wasn't
-built with a CRTL that contained the setenv() function.  You'll need to
-rebuild Perl with a CRTL that does, or redefine F<PERL_ENV_TABLES> (see
-L<perlvms>) so that the environ array isn't the target of the change to
+(W internal) Warnings peculiar to VMS.  You tried to change or delete an
+element of the CRTL's internal environ array, but your copy of Perl
+wasn't built with a CRTL that contained the setenv() function.  You'll
+need to rebuild Perl with a CRTL that does, or redefine
+F<PERL_ENV_TABLES> (see L<perlvms>) so that the environ array isn't the
+target of the change to
 %ENV which produced the warning.
 
 =item times not implemented
 
-(F) Your version of the C library apparently doesn't do times().  I suspect
-you're not running on Unix.
+(F) Your version of the C library apparently doesn't do times().  I
+suspect you're not running on Unix.
 
 =item Too few args to syscall
 
@@ -3022,9 +3153,9 @@ script, it's too late to properly taint everything from the environment.
 So Perl gives up.
 
 If the Perl script is being executed as a command using the #!
-mechanism (or its local equivalent), this error can usually be fixed
-by editing the #! line so that the B<-T> option is a part of Perl's
-first argument: e.g. change C<perl -n -T> to C<perl -T -n>.
+mechanism (or its local equivalent), this error can usually be fixed by
+editing the #! line so that the B<-T> option is a part of Perl's first
+argument: e.g. change C<perl -n -T> to C<perl -T -n>.
 
 If the Perl script is being executed as C<perl scriptname>, then the
 B<-T> option must appear on the command line: C<perl -T scriptname>.
@@ -3035,13 +3166,13 @@ B<-T> option must appear on the command line: C<perl -T scriptname>.
 B<-M> or B<-m> option.  This is an error because B<-M> and B<-m> options
 are not intended for use inside scripts.  Use the C<use> pragma instead.
 
-=item Too many ('s
-
-=item Too many )'s
+=item Too late to run %s block
 
-(A) You've accidentally run your script through B<csh> instead
-of Perl.  Check the #! line, or manually feed your script into
-Perl yourself.
+(W void) A CHECK or INIT block is being defined during run time proper,
+when the opportunity to run them has already passed.  Perhaps you are
+loading a file with C<require> or C<do> when you should be using C<use>
+instead.  Or perhaps you should put the C<require> or C<do> inside a
+BEGIN block.
 
 =item Too many args to syscall
 
@@ -3051,10 +3182,17 @@ Perl yourself.
 
 (F) The function requires fewer arguments than you specified.
 
+=item Too many )'s
+
+(A) You've accidentally run your script through B<csh> instead of Perl.
+Check the #! line, or manually feed your script into Perl yourself.
+
+=item Too many ('s
+
 =item trailing \ in regexp
 
-(F) The regular expression ends with an unbackslashed backslash.  Backslash
-it.   See L<perlre>.
+(F) The regular expression ends with an unbackslashed backslash.
+Backslash it.   See L<perlre>.
 
 =item Transliteration pattern not terminated
 
@@ -3086,8 +3224,8 @@ literals always start with 0 in Perl, as in C.
 
 =item umask not implemented
 
-(F) Your machine doesn't implement the umask function and you tried
-to use it to restrict permissions for yourself (EXPR & 0700).
+(F) Your machine doesn't implement the umask function and you tried to
+use it to restrict permissions for yourself (EXPR & 0700).
 
 =item Unable to create sub named "%s"
 
@@ -3095,23 +3233,23 @@ to use it to restrict permissions for yourself (EXPR & 0700).
 
 =item Unbalanced context: %d more PUSHes than POPs
 
-(W internal) The exit code detected an internal inconsistency in how many execution
-contexts were entered and left.
+(W internal) The exit code detected an internal inconsistency in how
+many execution contexts were entered and left.
 
 =item Unbalanced saves: %d more saves than restores
 
-(W internal) The exit code detected an internal inconsistency in how many
-values were temporarily localized.
+(W internal) The exit code detected an internal inconsistency in how
+many values were temporarily localized.
 
 =item Unbalanced scopes: %d more ENTERs than LEAVEs
 
-(W internal) The exit code detected an internal inconsistency in how many blocks
-were entered and left.
+(W internal) The exit code detected an internal inconsistency in how
+many blocks were entered and left.
 
 =item Unbalanced tmps: %d more allocs than frees
 
-(W internal) The exit code detected an internal inconsistency in how many mortal
-scalars were allocated and freed.
+(W internal) The exit code detected an internal inconsistency in how
+many mortal scalars were allocated and freed.
 
 =item Undefined format "%s" called
 
@@ -3120,13 +3258,13 @@ another package?  See L<perlform>.
 
 =item Undefined sort subroutine "%s" called
 
-(F) The sort comparison routine specified doesn't seem to exist.  Perhaps
-it's in a different package?  See L<perlfunc/sort>.
+(F) The sort comparison routine specified doesn't seem to exist.
+Perhaps it's in a different package?  See L<perlfunc/sort>.
 
 =item Undefined subroutine &%s called
 
-(F) The subroutine indicated hasn't been defined, or if it was, it
-has since been undefined.
+(F) The subroutine indicated hasn't been defined, or if it was, it has
+since been undefined.
 
 =item Undefined subroutine called
 
@@ -3135,8 +3273,8 @@ or if it was, it has since been undefined.
 
 =item Undefined subroutine in sort
 
-(F) The sort comparison routine specified is declared but doesn't seem to
-have been defined yet.  See L<perlfunc/sort>.
+(F) The sort comparison routine specified is declared but doesn't seem
+to have been defined yet.  See L<perlfunc/sort>.
 
 =item Undefined top format "%s" called
 
@@ -3145,8 +3283,14 @@ another package?  See L<perlform>.
 
 =item Undefined value assigned to typeglob
 
-(W misc) An undefined value was assigned to a typeglob, a la C<*foo = undef>.
-This does nothing.  It's possible that you really mean C<undef *foo>.
+(W misc) An undefined value was assigned to a typeglob, a la
+C<*foo = undef>.  This does nothing.  It's possible that you really mean
+C<undef *foo>.
+
+=item %s: Undefined variable
+
+(A) You've accidentally run your script through B<csh> instead of Perl.
+Check the #! line, or manually feed your script into Perl yourself.
 
 =item unexec of %s into %s failed!
 
@@ -3155,7 +3299,8 @@ representative, who probably put it there in the first place.
 
 =item Unknown BYTEORDER
 
-(F) There are no byte-swapping functions for a machine with this byte order.
+(F) There are no byte-swapping functions for a machine with this byte
+order.
 
 =item Unknown open() mode '%s'
 
@@ -3170,30 +3315,31 @@ iterating over it, and someone else stuck a message in the stream of
 data Perl expected.  Someone's very confused, or perhaps trying to
 subvert Perl's population of %ENV for nefarious purposes.
 
+=item unmatched [] in regexp
+
+(F) The brackets around a character class must match.  If you wish to
+include a closing bracket in a character class, backslash it or put it
+first.  See L<perlre>.
+
 =item unmatched () in regexp
 
 (F) Unbackslashed parentheses must always be balanced in regular
-expressions.  If you're a vi user, the % key is valuable for finding
-the matching parenthesis.  See L<perlre>.
+expressions.  If you're a vi user, the % key is valuable for finding the
+matching parenthesis.  See L<perlre>.
 
 =item Unmatched right %s bracket
 
-(F) The lexer counted more closing curly or square brackets than
-opening ones, so you're probably missing a matching opening bracket.
-As a general rule, you'll find the missing one (so to speak) near the
-place you were last editing.
-
-=item unmatched [] in regexp
-
-(F) The brackets around a character class must match.  If you wish to
-include a closing bracket in a character class, backslash it or put it first.
-See L<perlre>.
+(F) The lexer counted more closing curly or square brackets than opening
+ones, so you're probably missing a matching opening bracket.  As a
+general rule, you'll find the missing one (so to speak) near the place
+you were last editing.
 
 =item Unquoted string "%s" may clash with future reserved word
 
-(W reserved) You used a bareword that might someday be claimed as a reserved word.
-It's best to put such a word in quotes, or capitalize it somehow, or insert
-an underbar into it.  You might also declare it as a subroutine.
+(W reserved) You used a bareword that might someday be claimed as a
+reserved word.  It's best to put such a word in quotes, or capitalize it
+somehow, or insert an underbar into it.  You might also declare it as a
+subroutine.
 
 =item Unrecognized character %s
 
@@ -3201,238 +3347,283 @@ an underbar into it.  You might also declare it as a subroutine.
 in your Perl script (or eval).  Perhaps you tried to run a compressed
 script, a binary program, or a directory as a Perl program.
 
+=item /%s/: Unrecognized escape \\%c in character class passed through
+
+(W regexp) You used a backslash-character combination which is not
+recognized by Perl inside character classes.  The character was
+understood literally.
+
+=item /%s/: Unrecognized escape \\%c passed through
+
+(W regexp) You used a backslash-character combination which is not
+recognized by Perl.  This combination appears in an interpolated
+variable or a C<'>-delimited regular expression.  The character was
+understood literally.
+
 =item Unrecognized escape \\%c passed through
 
-(W misc) You used a backslash-character combination which is not recognized
-by Perl.
+(W misc) You used a backslash-character combination which is not
+recognized by Perl.
 
 =item Unrecognized signal name "%s"
 
-(F) You specified a signal name to the kill() function that was not recognized.
-Say C<kill -l> in your shell to see the valid signal names on your system.
+(F) You specified a signal name to the kill() function that was not
+recognized.  Say C<kill -l> in your shell to see the valid signal names
+on your system.
 
 =item Unrecognized switch: -%s  (-h will show valid options)
 
-(F) You specified an illegal option to Perl.  Don't do that.
-(If you think you didn't do that, check the #! line to see if it's
-supplying the bad switch on your behalf.)
+(F) You specified an illegal option to Perl.  Don't do that.  (If you
+think you didn't do that, check the #! line to see if it's supplying the
+bad switch on your behalf.)
 
 =item Unsuccessful %s on filename containing newline
 
-(W newline) A file operation was attempted on a filename, and that operation
-failed, PROBABLY because the filename contained a newline, PROBABLY
-because you forgot to chop() or chomp() it off.  See L<perlfunc/chomp>.
+(W newline) A file operation was attempted on a filename, and that
+operation failed, PROBABLY because the filename contained a newline,
+PROBABLY because you forgot to chop() or chomp() it off.  See
+L<perlfunc/chomp>.
 
 =item Unsupported directory function "%s" called
 
 (F) Your machine doesn't support opendir() and readdir().
 
-=item Unsupported function fork
-
-(F) Your version of executable does not support forking.
-
-Note that under some systems, like OS/2, there may be different flavors of
-Perl executables, some of which may support fork, some not. Try changing
-the name you call Perl by to C<perl_>, C<perl__>, and so on.
-
 =item Unsupported function %s
 
 (F) This machine doesn't implement the indicated function, apparently.
 At least, Configure doesn't think so.
 
+=item Unsupported function fork
+
+(F) Your version of executable does not support forking.
+
+Note that under some systems, like OS/2, there may be different flavors
+of Perl executables, some of which may support fork, some not. Try
+changing the name you call Perl by to C<perl_>, C<perl__>, and so on.
+
 =item Unsupported socket function "%s" called
 
 (F) Your machine doesn't support the Berkeley socket mechanism, or at
 least that's what Configure thought.
 
-=item Unterminated <> operator
+=item Unterminated attribute list
 
-(F) The lexer saw a left angle bracket in a place where it was expecting
-a term, so it's looking for the corresponding right angle bracket, and not
-finding it.  Chances are you left some needed parentheses out earlier in
-the line, and you really meant a "less than".
+(F) The lexer found something other than a simple identifier at the
+start of an attribute, and it wasn't a semicolon or the start of a
+block.  Perhaps you terminated the parameter list of the previous
+attribute too soon.  See L<attributes>.
 
 =item Unterminated attribute parameter in attribute list
 
-(F) The lexer saw an opening (left) parenthesis character while parsing an
-attribute list, but the matching closing (right) parenthesis
+(F) The lexer saw an opening (left) parenthesis character while parsing
+an attribute list, but the matching closing (right) parenthesis
 character was not found.  You may need to add (or remove) a backslash
 character to get your parentheses to balance.  See L<attributes>.
 
-=item Unterminated attribute list
+=item Unterminated <> operator
 
-(F) The lexer found something other than a simple identifier at the start
-of an attribute, and it wasn't a semicolon or the start of a
-block.  Perhaps you terminated the parameter list of the previous attribute
-too soon.  See L<attributes>.
+(F) The lexer saw a left angle bracket in a place where it was expecting
+a term, so it's looking for the corresponding right angle bracket, and
+not finding it.  Chances are you left some needed parentheses out
+earlier in the line, and you really meant a "less than".
 
-=item Use of $# is deprecated
+=item untie attempted while %d inner references still exist
 
-(D deprecated) This was an ill-advised attempt to emulate a poorly defined B<awk> feature.
-Use an explicit printf() or sprintf() instead.
+(W untie) A copy of the object returned from C<tie> (or C<tied>) was
+still valid when C<untie> was called.
 
-=item Use of $* is deprecated
+=item Useless use of %s in void context
 
-(D deprecated) This variable magically turned on multi-line pattern matching, both for
-you and for any luckless subroutine that you happen to call.  You should
-use the new C<//m> and C<//s> modifiers now to do that without the dangerous
-action-at-a-distance effects of C<$*>.
+(W void) You did something without a side effect in a context that does
+nothing with the return value, such as a statement that doesn't return a
+value from a block, or the left side of a scalar comma operator.  Very
+often this points not to stupidity on your part, but a failure of Perl
+to parse your program the way you thought it would.  For example, you'd
+get this if you mixed up your C precedence with Python precedence and
+said
 
-=item Use of %s in printf format not supported
+    $one, $two = 1, 2;
 
-(F) You attempted to use a feature of printf that is accessible from
-only C.  This usually means there's a better way to do it in Perl.
+when you meant to say
 
-=item Use of bare << to mean <<"" is deprecated
+    ($one, $two) = (1, 2);
+
+Another common error is to use ordinary parentheses to construct a list
+reference when you should be using square or curly brackets, for
+example, if you say
 
-(D deprecated) You are now encouraged to use the explicitly quoted form if you
-wish to use an empty line as the terminator of the here-document.
+    $array = (1,2);
 
-=item Use of implicit split to @_ is deprecated
+when you should have said
 
-(D deprecated) It makes a lot of work for the compiler when you clobber a
-subroutine's argument list, so it's better if you assign the results of
-a split() explicitly to an array (or list).
+    $array = [1,2];
 
-=item Use of inherited AUTOLOAD for non-method %s() is deprecated
+The square brackets explicitly turn a list value into a scalar value,
+while parentheses do not.  So when a parenthesized list is evaluated in
+a scalar context, the comma is treated like C's comma operator, which
+throws away the left argument, which is not what you want.  See
+L<perlref> for more on this.
 
-(D deprecated) As an (ahem) accidental feature, C<AUTOLOAD> subroutines are
-looked up as methods (using the C<@ISA> hierarchy) even when the subroutines
-to be autoloaded were called as plain functions (e.g.  C<Foo::bar()>),
-not as methods (e.g. C<< Foo->bar() >> or C<< $obj->bar() >>).
+=item Useless use of "re" pragma
 
-This bug will be rectified in Perl 5.005, which will use method lookup
-only for methods' C<AUTOLOAD>s.  However, there is a significant base
-of existing code that may be using the old behavior.  So, as an
-interim step, Perl 5.004 issues an optional warning when non-methods
-use inherited C<AUTOLOAD>s.
+(W) You did C<use re;> without any arguments.   That isn't very useful.
 
-The simple rule is:  Inheritance will not work when autoloading
-non-methods.  The simple fix for old code is:  In any module that used to
-depend on inheriting C<AUTOLOAD> for non-methods from a base class named
-C<BaseClass>, execute C<*AUTOLOAD = \&BaseClass::AUTOLOAD> during startup.
+=item "use" not allowed in expression
 
-In code that currently says C<use AutoLoader; @ISA = qw(AutoLoader);> you
-should remove AutoLoader from @ISA and change C<use AutoLoader;> to
-C<use AutoLoader 'AUTOLOAD';>.
+(F) The "use" keyword is recognized and executed at compile time, and
+returns no useful value.  See L<perlmod>.
 
-=item Use of reserved word "%s" is deprecated
+=item Use of bare << to mean <<"" is deprecated
 
-(D deprecated) The indicated bareword is a reserved word.  Future versions of perl
-may use it as a keyword, so you're better off either explicitly quoting
-the word in a manner appropriate for its context of use, or using a
-different name altogether.  The warning can be suppressed for subroutine
-names by either adding a C<&> prefix, or using a package qualifier,
-e.g. C<&our()>, or C<Foo::our()>.
+(D deprecated) You are now encouraged to use the explicitly quoted form
+if you wish to use an empty line as the terminator of the here-document.
 
-=item Use of %s is deprecated
+=item Use of implicit split to @_ is deprecated
 
-(D deprecated) The construct indicated is no longer recommended for use, generally
-because there's a better way to do it, and also because the old way has
-bad side effects.
+(D deprecated) It makes a lot of work for the compiler when you clobber
+a subroutine's argument list, so it's better if you assign the results
+of a split() explicitly to an array (or list).
 
-=item Use of uninitialized value%s
+=item Use of inherited AUTOLOAD for non-method %s() is deprecated
 
-(W uninitialized) An undefined value was used as if it were already defined.  It was
-interpreted as a "" or a 0, but maybe it was a mistake.  To suppress this
-warning assign a defined value to your variables.
+(D deprecated) As an (ahem) accidental feature, C<AUTOLOAD> subroutines
+are looked up as methods (using the C<@ISA> hierarchy) even when the
+subroutines to be autoloaded were called as plain functions (e.g.
+C<Foo::bar()>), not as methods (e.g. C<< Foo->bar() >> or C<<
+$obj->bar() >>).
 
-=item Useless use of "re" pragma
+This bug will be rectified in future by using method lookup only for
+methods' C<AUTOLOAD>s.  However, there is a significant base of existing
+code that may be using the old behavior.  So, as an interim step, Perl
+currently issues an optional warning when non-methods use inherited
+C<AUTOLOAD>s.
 
-(W) You did C<use re;> without any arguments.   That isn't very useful.
+The simple rule is:  Inheritance will not work when autoloading
+non-methods.  The simple fix for old code is:  In any module that used
+to depend on inheriting C<AUTOLOAD> for non-methods from a base class
+named C<BaseClass>, execute C<*AUTOLOAD = \&BaseClass::AUTOLOAD> during
+startup.
 
-=item Useless use of %s in void context
+In code that currently says C<use AutoLoader; @ISA = qw(AutoLoader);>
+you should remove AutoLoader from @ISA and change C<use AutoLoader;> to
+C<use AutoLoader 'AUTOLOAD';>.
 
-(W void) You did something without a side effect in a context that does nothing
-with the return value, such as a statement that doesn't return a value
-from a block, or the left side of a scalar comma operator.  Very often
-this points not to stupidity on your part, but a failure of Perl to parse
-your program the way you thought it would.  For example, you'd get this
-if you mixed up your C precedence with Python precedence and said
+=item Use of %s in printf format not supported
 
-    $one, $two = 1, 2;
+(F) You attempted to use a feature of printf that is accessible from
+only C.  This usually means there's a better way to do it in Perl.
 
-when you meant to say
+=item Use of $* is deprecated
 
-    ($one, $two) = (1, 2);
+(D deprecated) This variable magically turned on multi-line pattern
+matching, both for you and for any luckless subroutine that you happen
+to call.  You should use the new C<//m> and C<//s> modifiers now to do
+that without the dangerous action-at-a-distance effects of C<$*>.
 
-Another common error is to use ordinary parentheses to construct a list
-reference when you should be using square or curly brackets, for
-example, if you say
+=item Use of %s is deprecated
 
-    $array = (1,2);
+(D deprecated) The construct indicated is no longer recommended for use,
+generally because there's a better way to do it, and also because the
+old way has bad side effects.
 
-when you should have said
+=item Use of $# is deprecated
 
-    $array = [1,2];
+(D deprecated) This was an ill-advised attempt to emulate a poorly
+defined B<awk> feature.  Use an explicit printf() or sprintf() instead.
 
-The square brackets explicitly turn a list value into a scalar value,
-while parentheses do not.  So when a parenthesized list is evaluated in
-a scalar context, the comma is treated like C's comma operator, which
-throws away the left argument, which is not what you want.  See
-L<perlref> for more on this.
+=item Use of reserved word "%s" is deprecated
 
-=item untie attempted while %d inner references still exist
+(D deprecated) The indicated bareword is a reserved word.  Future
+versions of perl may use it as a keyword, so you're better off either
+explicitly quoting the word in a manner appropriate for its context of
+use, or using a different name altogether.  The warning can be
+suppressed for subroutine names by either adding a C<&> prefix, or using
+a package qualifier, e.g. C<&our()>, or C<Foo::our()>.
+
+=item Use of uninitialized value%s
+
+(W uninitialized) An undefined value was used as if it were already
+defined.  It was interpreted as a "" or a 0, but maybe it was a mistake.
+To suppress this warning assign a defined value to your variables.
 
-(W untie) A copy of the object returned from C<tie> (or C<tied>) was still
-valid when C<untie> was called.
+To help you figure out what was undefined, perl tells you what operation
+you used the undefined value in.  Note, however, that perl optimizes your
+program and the operation displayed in the warning may not necessarily
+appear literally in your program.  For example, C<"that $foo"> is
+usually optimized into C<"that " . $foo>, and the warning will refer to
+the C<concatenation (.)> operator, even though there is no C<.> in your
+program.
 
 =item Value of %s can be "0"; test with defined()
 
-(W misc) In a conditional expression, you used <HANDLE>, <*> (glob), C<each()>,
-or C<readdir()> as a boolean value.  Each of these constructs can return a
-value of "0"; that would make the conditional expression false, which is
-probably not what you intended.  When using these constructs in conditional
-expressions, test their values with the C<defined> operator.
+(W misc) In a conditional expression, you used <HANDLE>, <*> (glob),
+C<each()>, or C<readdir()> as a boolean value.  Each of these constructs
+can return a value of "0"; that would make the conditional expression
+false, which is probably not what you intended.  When using these
+constructs in conditional expressions, test their values with the
+C<defined> operator.
 
 =item Value of CLI symbol "%s" too long
 
-(W misc) A warning peculiar to VMS.  Perl tried to read the value of an %ENV
-element from a CLI symbol table, and found a resultant string longer
-than 1024 characters.  The return value has been truncated to 1024
-characters.
+(W misc) A warning peculiar to VMS.  Perl tried to read the value of an
+%ENV element from a CLI symbol table, and found a resultant string
+longer than 1024 characters.  The return value has been truncated to
+1024 characters.
 
 =item Variable "%s" is not imported%s
 
-(F) While "use strict" in effect, you referred to a global variable
-that you apparently thought was imported from another module, because
-something else of the same name (usually a subroutine) is exported
-by that module.  It usually means you put the wrong funny character
-on the front of your variable.
+(F) While "use strict" in effect, you referred to a global variable that
+you apparently thought was imported from another module, because
+something else of the same name (usually a subroutine) is exported by
+that module.  It usually means you put the wrong funny character on the
+front of your variable.
+
+=item "%s" variable %s masks earlier declaration in same %s
+
+(W misc) A "my" or "our" variable has been redeclared in the current
+scope or statement, effectively eliminating all access to the previous
+instance.  This is almost always a typographical error.  Note that the
+earlier variable will still exist until the end of the scope or until
+all closure referents to it are destroyed.
 
 =item Variable "%s" may be unavailable
 
-(W closure) An inner (nested) I<anonymous> subroutine is inside a I<named>
-subroutine, and outside that is another subroutine; and the anonymous
-(innermost) subroutine is referencing a lexical variable defined in
-the outermost subroutine.  For example:
+(W closure) An inner (nested) I<anonymous> subroutine is inside a
+I<named> subroutine, and outside that is another subroutine; and the
+anonymous (innermost) subroutine is referencing a lexical variable
+defined in the outermost subroutine.  For example:
 
    sub outermost { my $a; sub middle { sub { $a } } }
 
 If the anonymous subroutine is called or referenced (directly or
-indirectly) from the outermost subroutine, it will share the variable
-as you would expect.  But if the anonymous subroutine is called or
-referenced when the outermost subroutine is not active, it will see
-the value of the shared variable as it was before and during the
-*first* call to the outermost subroutine, which is probably not what
-you want.
-
-In these circumstances, it is usually best to make the middle
-subroutine anonymous, using the C<sub {}> syntax.  Perl has specific
-support for shared variables in nested anonymous subroutines; a named
-subroutine in between interferes with this feature.
+indirectly) from the outermost subroutine, it will share the variable as
+you would expect.  But if the anonymous subroutine is called or
+referenced when the outermost subroutine is not active, it will see the
+value of the shared variable as it was before and during the *first*
+call to the outermost subroutine, which is probably not what you want.
+
+In these circumstances, it is usually best to make the middle subroutine
+anonymous, using the C<sub {}> syntax.  Perl has specific support for
+shared variables in nested anonymous subroutines; a named subroutine in
+between interferes with this feature.
+
+=item Variable syntax
+
+(A) You've accidentally run your script through B<csh> instead
+of Perl.  Check the #! line, or manually feed your script into
+Perl yourself.
 
 =item Variable "%s" will not stay shared
 
-(W closure) An inner (nested) I<named> subroutine is referencing a lexical
-variable defined in an outer subroutine.
+(W closure) An inner (nested) I<named> subroutine is referencing a
+lexical variable defined in an outer subroutine.
 
 When the inner subroutine is called, it will probably see the value of
-the outer subroutine's variable as it was before and during the
-*first* call to the outer subroutine; in this case, after the first
-call to the outer subroutine is complete, the inner and outer
-subroutines will no longer share a common value for the variable.  In
-other words, the variable will no longer be shared.
+the outer subroutine's variable as it was before and during the *first*
+call to the outer subroutine; in this case, after the first call to the
+outer subroutine is complete, the inner and outer subroutines will no
+longer share a common value for the variable.  In other words, the
+variable will no longer be shared.
 
 Furthermore, if the outer subroutine is anonymous and references a
 lexical variable outside itself, then the outer and inner subroutines
@@ -3440,15 +3631,8 @@ will I<never> share the given variable.
 
 This problem can usually be solved by making the inner subroutine
 anonymous, using the C<sub {}> syntax.  When inner anonymous subs that
-reference variables in outer subroutines are called or referenced,
-they are automatically rebound to the current values of such
-variables.
-
-=item Variable syntax
-
-(A) You've accidentally run your script through B<csh> instead
-of Perl.  Check the #! line, or manually feed your script into
-Perl yourself.
+reference variables in outer subroutines are called or referenced, they
+are automatically rebound to the current values of such variables.
 
 =item Version number must be a constant number
 
@@ -3456,27 +3640,6 @@ Perl yourself.
 its equivalent C<BEGIN> block found an internal inconsistency with
 the version number.
 
-=item perl: warning: Setting locale failed.
-
-(S) The whole warning message will look something like:
-
-       perl: warning: Setting locale failed.
-       perl: warning: Please check that your locale settings:
-               LC_ALL = "En_US",
-               LANG = (unset)
-           are supported and installed on your system.
-       perl: warning: Falling back to the standard locale ("C").
-
-Exactly what were the failed locale settings varies.  In the above the
-settings were that the LC_ALL was "En_US" and the LANG had no value.
-This error means that Perl detected that you and/or your system
-administrator have set up the so-called variable system but Perl could
-not use those settings.  This was not dead serious, fortunately: there
-is a "default locale" called "C" that Perl can and will use, the
-script will be run.  Before you really fix the problem, however, you
-will get the same error message each time you run Perl.  How to really
-fix the problem can be found in L<perllocale> section B<LOCALE PROBLEMS>.
-
 =item Warning: something's wrong
 
 (W) You passed warn() an empty string (the equivalent of C<warn "">) or
@@ -3484,15 +3647,16 @@ you called it with no args and C<$_> was empty.
 
 =item Warning: unable to close filehandle %s properly
 
-(S) The implicit close() done by an open() got an error indication on the
-close().  This usually indicates your file system ran out of disk space.
+(S) The implicit close() done by an open() got an error indication on
+the close().  This usually indicates your file system ran out of disk
+space.
 
 =item Warning: Use of "%s" without parentheses is ambiguous
 
-(S ambiguous) You wrote a unary operator followed by something that looks like a
-binary operator that could also have been interpreted as a term or
-unary operator.  For instance, if you know that the rand function
-has a default argument of 1.0, and you write
+(S ambiguous) You wrote a unary operator followed by something that
+looks like a binary operator that could also have been interpreted as a
+term or unary operator.  For instance, if you know that the rand
+function has a default argument of 1.0, and you write
 
     rand + 5;
 
@@ -3508,8 +3672,8 @@ So put in parentheses to say what you really mean.
 
 =item write() on closed filehandle %s
 
-(W closed) The filehandle you're writing to got itself closed sometime before now.
-Check your logic flow.
+(W closed) The filehandle you're writing to got itself closed sometime
+before now.  Check your logic flow.
 
 =item X outside of string
 
@@ -3523,99 +3687,34 @@ the end of the string being unpacked.  See L<perlfunc/pack>.
 
 =item Xsub "%s" called in sort
 
-(F) The use of an external subroutine as a sort comparison is not yet supported.
+(F) The use of an external subroutine as a sort comparison is not yet
+supported.
 
 =item Xsub called in sort
 
-(F) The use of an external subroutine as a sort comparison is not yet supported.
+(F) The use of an external subroutine as a sort comparison is not yet
+supported.
 
 =item You can't use C<-l> on a filehandle
 
-(F) A filehandle represents an opened file, and when you opened the file it
-already went past any symlink you are presumably trying to look for.
+(F) A filehandle represents an opened file, and when you opened the file
+it already went past any symlink you are presumably trying to look for.
 Use a filename instead.
 
 =item YOU HAVEN'T DISABLED SET-ID SCRIPTS IN THE KERNEL YET!
 
 (F) And you probably never will, because you probably don't have the
 sources to your kernel, and your vendor probably doesn't give a rip
-about what you want.  Your best bet is to use the wrapsuid script in
-the eg directory to put a setuid C wrapper around your script.
+about what you want.  Your best bet is to use the wrapsuid script in the
+eg directory to put a setuid C wrapper around your script.
 
 =item You need to quote "%s"
 
-(W syntax) You assigned a bareword as a signal handler name.  Unfortunately, you
-already have a subroutine of that name declared, which means that Perl 5
-will try to call the subroutine when the assignment is executed, which is
-probably not what you want.  (If it IS what you want, put an & in front.)
-
-=item %cetsockopt() on closed socket %s
-
-(W closed) You tried to get or set a socket option on a closed socket.
-Did you forget to check the return value of your socket() call?
-See L<perlfunc/getsockopt> and L<perlfunc/setsockopt>.
-
-=item \1 better written as $1
-
-(W syntax) Outside of patterns, backreferences live on as variables.  The use
-of backslashes is grandfathered on the right-hand side of a
-substitution, but stylistically it's better to use the variable form
-because other Perl programmers will expect it, and it works better
-if there are more than 9 backreferences.
-
-=item '|' and '<' may not both be specified on command line
-
-(F) An error peculiar to VMS.  Perl does its own command line redirection, and
-found that STDIN was a pipe, and that you also tried to redirect STDIN using
-'<'.  Only one STDIN stream to a customer, please.
-
-=item '|' and '>' may not both be specified on command line
-
-(F) An error peculiar to VMS.  Perl does its own command line redirection, and
-thinks you tried to redirect stdout both to a file and into a pipe to another
-command.  You need to choose one or the other, though nothing's stopping you
-from piping into a program or Perl script which 'splits' output into two
-streams, such as
-
-    open(OUT,">$ARGV[0]") or die "Can't write to $ARGV[0]: $!";
-    while (<STDIN>) {
-        print;
-        print OUT;
-    }
-    close OUT;
-
-=item Got an error from DosAllocMem
-
-(P) An error peculiar to OS/2.  Most probably you're using an obsolete
-version of Perl, and this should not happen anyway.
-
-=item Malformed PERLLIB_PREFIX
-
-(F) An error peculiar to OS/2.  PERLLIB_PREFIX should be of the form
-
-    prefix1;prefix2
-
-or
-
-    prefix1 prefix2
-
-with nonempty prefix1 and prefix2.  If C<prefix1> is indeed a prefix
-of a builtin library search path, prefix2 is substituted.  The error
-may appear if components are not found, or are too long.  See
-"PERLLIB_PREFIX" in F<README.os2>.
-
-=item PERL_SH_DIR too long
-
-(F) An error peculiar to OS/2. PERL_SH_DIR is the directory to find the
-C<sh>-shell in.  See "PERL_SH_DIR" in F<README.os2>.
-
-=item Process terminated by SIG%s
-
-(W) This is a standard message issued by OS/2 applications, while *nix
-applications die in silence.  It is considered a feature of the OS/2
-port.  One can easily disable this by appropriate sighandlers, see
-L<perlipc/"Signals">.  See also "Process terminated by SIGTERM/SIGINT"
-in F<README.os2>.
+(W syntax) You assigned a bareword as a signal handler name.
+Unfortunately, you already have a subroutine of that name declared,
+which means that Perl 5 will try to call the subroutine when the
+assignment is executed, which is probably not what you want.  (If it IS
+what you want, put an & in front.)
 
 =back
 
index 372e1ff..b05b736 100644 (file)
@@ -48,7 +48,8 @@ uninteresting, but may still be what you want.
 
 =head2 How do I debug my Perl programs?
 
-Have you used C<-w>?  It enables warnings for dubious practices.
+Have you tried C<use warnings> or used C<-w>?  They enable warnings 
+for dubious practices.
 
 Have you tried C<use strict>?  It prevents you from using symbolic
 references, makes you predeclare any subroutines that you call as bare
index ad48245..e997a8f 100644 (file)
@@ -444,11 +444,9 @@ nested patterns, nor can they.  For that you'll have to write a
 parser.
 
 If you are serious about writing a parser, there are a number of
-modules or oddities that will make your life a lot easier.  There is
-the CPAN module Parse::RecDescent, the standard module Text::Balanced,
-the byacc program, the CPAN module Parse::Yapp, and Mark-Jason
-Dominus's excellent I<py> tool at http://www.plover.com/%7Emjd/perl/py/
-.
+modules or oddities that will make your life a lot easier.  There are
+the CPAN modules Parse::RecDescent, Parse::Yapp, and Text::Balanced;
+and the byacc program.
 
 One simple destructive, inside-out approach that you might try is to
 pull out the smallest nesting parts one at a time:
@@ -940,7 +938,8 @@ with
 
     @bad[0]  = `same program that outputs several lines`;
 
-The B<-w> flag will warn you about these matters.
+The C<use warnings> pragma and the B<-w> flag will warn you about these 
+matters.
 
 =head2 How can I remove duplicate elements from a list or array?
 
@@ -1070,7 +1069,7 @@ strings.  Modify if you have other needs.
 
     sub compare_arrays {
        my ($first, $second) = @_;
-       local $^W = 0;  # silence spurious -w undef complaints
+       no warnings;  # silence spurious -w undef complaints
        return 0 unless @$first == @$second;
        for (my $i = 0; $i < @$first; $i++) {
            return 0 if $first->[$i] ne $second->[$i];
index 6ae7755..feb66a4 100644 (file)
@@ -841,7 +841,7 @@ you see someone do this:
 
 You should think long and hard about why you need everything loaded
 at once.  It's just not a scalable solution.  You might also find it
-more fun to use the the standard DB_File module's $DB_RECNO bindings,
+more fun to use the standard DB_File module's $DB_RECNO bindings,
 which allow you to tie an array to a file so that accessing an element
 the array actually accesses the corresponding line in the file.
 
index 0afbc0d..1ca7893 100644 (file)
@@ -84,8 +84,17 @@ Another way is to use undef as an element on the left-hand-side:
 
 =head2 How do I temporarily block warnings?
 
-The C<$^W> variable (documented in L<perlvar>) controls
-runtime warnings for a block:
+If you are running Perl 5.6.0 or better, the C<use warnings> pragma
+allows fine control of what warning are produced.
+See L<perllexwarn> for more details.
+
+    {
+       no warnings;          # temporarily turn off warnings
+       $a = $b + $c;         # I know these might be undef
+    }
+
+If you have an older version of Perl, the C<$^W> variable (documented
+in L<perlvar>) controls runtime warnings for a block:
 
     {
        local $^W = 0;        # temporarily turn off warnings
@@ -95,10 +104,6 @@ runtime warnings for a block:
 Note that like all the punctuation variables, you cannot currently
 use my() on C<$^W>, only local().
 
-A new C<use warnings> pragma is in the works to provide finer control
-over all this.  The curious should check the perl5-porters mailing list
-archives for details.
-
 =head2 What's an extension?
 
 A way of calling compiled C code from Perl.  Reading L<perlxstut>
@@ -168,6 +173,7 @@ own module.  Make sure to change the names appropriately.
     package Some::Module;  # assumes Some/Module.pm
 
     use strict;
+    use warnings;
 
     BEGIN {
        use Exporter   ();
@@ -611,7 +617,7 @@ Why do you want to do that? :-)
 
 If you want to override a predefined function, such as open(),
 then you'll have to import the new definition from a different
-module.  See L<perlsub/"Overriding Builtin Functions">.  There's
+module.  See L<perlsub/"Overriding Built-in Functions">.  There's
 also an example in L<perltoot/"Class::Template">.
 
 If you want to overload a Perl operator, such as C<+> or C<**>,
index bf287c0..c3c8315 100644 (file)
@@ -410,6 +410,7 @@ Here is the complete Debug filter:
     package Debug;
 
     use strict;
+    use warnings;
     use Filter::Util::Call ;
 
     use constant TRUE => 1 ;
index d930e93..82ac689 100644 (file)
@@ -11,7 +11,7 @@ call is available, Perl's fork() simply calls it.
 On some platforms such as Windows where the fork() system call is not
 available, Perl can be built to emulate fork() at the interpreter level.
 While the emulation is designed to be as compatible as possible with the
-real fork() at the the level of the Perl program, there are certain
+real fork() at the level of the Perl program, there are certain
 important differences that stem from the fact that all the pseudo child
 "processes" created this way live in the same real process as far as the
 operating system is concerned.
@@ -51,7 +51,7 @@ pseudo-processes are launched after others have been wait()-ed on.
 
 =item %ENV
 
-Each pseudo-process maintains its own virtual enviroment.  Modifications
+Each pseudo-process maintains its own virtual environment.  Modifications
 to %ENV affect the virtual environment, and are only visible within that
 pseudo-process, and in any processes (or pseudo-processes) launched from
 it.
index 7bae55a..4e67506 100644 (file)
@@ -146,11 +146,11 @@ C<goto>, C<last>, C<next>, C<redo>, C<return>, C<sub>, C<wantarray>
 
 =item Keywords related to scoping
 
-C<caller>, C<import>, C<local>, C<my>, C<package>, C<use>
+C<caller>, C<import>, C<local>, C<my>, C<our>, C<package>, C<use>
 
 =item Miscellaneous functions
 
-C<defined>, C<dump>, C<eval>, C<formline>, C<local>, C<my>, C<reset>,
+C<defined>, C<dump>, C<eval>, C<formline>, C<local>, C<my>, C<our>, C<reset>,
 C<scalar>, C<undef>, C<wantarray>
 
 =item Functions for processes and process groups
@@ -200,8 +200,8 @@ C<gmtime>, C<localtime>, C<time>, C<times>
 =item Functions new in perl5
 
 C<abs>, C<bless>, C<chomp>, C<chr>, C<exists>, C<formline>, C<glob>,
-C<import>, C<lc>, C<lcfirst>, C<map>, C<my>, C<no>, C<prototype>, C<qx>,
-C<qw>, C<readline>, C<readpipe>, C<ref>, C<sub*>, C<sysopen>, C<tie>,
+C<import>, C<lc>, C<lcfirst>, C<map>, C<my>, C<no>, C<our>, C<prototype>, 
+C<qx>, C<qw>, C<readline>, C<readpipe>, C<ref>, C<sub*>, C<sysopen>, C<tie>,
 C<tied>, C<uc>, C<ucfirst>, C<untie>, C<use>
 
 * - C<sub> was a keyword in perl4, but in perl5 it is an
@@ -488,7 +488,7 @@ files, but it can be disastrous for binary files.
 Another consequence of using binmode() (on some systems) is that
 special end-of-file markers will be seen as part of the data stream.
 For systems from the Microsoft family this means that if your binary
-data contains C<\cZ>, the I/O subsystem will ragard it as the end of
+data contains C<\cZ>, the I/O subsystem will regard it as the end of
 the file, unless you use binmode().
 
 binmode() is not only important for readline() and print() operations,
@@ -539,9 +539,10 @@ Here $subroutine may be C<(eval)> if the frame is not a subroutine
 call, but an C<eval>.  In such a case additional elements $evaltext and
 C<$is_require> are set: C<$is_require> is true if the frame is created by a
 C<require> or C<use> statement, $evaltext contains the text of the
-C<eval EXPR> statement.  In particular, for a C<eval BLOCK> statement,
+C<eval EXPR> statement.  In particular, for an C<eval BLOCK> statement,
 $filename is C<(eval)>, but $evaltext is undefined.  (Note also that
 each C<use> statement creates a C<require> frame inside an C<eval EXPR>)
+frame.  C<$hasargs> is true if a new instance of C<@_> was set up for the
 frame.  C<$hints> and C<$bitmask> contain pragmatic hints that the caller
 was compiled with.  The C<$hints> and C<$bitmask> values are subject to
 change between versions of Perl, and are not meant for external use.
@@ -1055,7 +1056,7 @@ If C<$@> is empty then the string C<"Died"> is used.
 die() can also be called with a reference argument.  If this happens to be
 trapped within an eval(), $@ contains the reference.  This behavior permits
 a more elaborate exception handling implementation using objects that
-maintain arbitary state about the nature of the exception.  Such a scheme
+maintain arbitrary state about the nature of the exception.  Such a scheme
 is sometimes preferable to matching particular string values of $@ using
 regular expressions.  Here's an example:
 
@@ -1432,6 +1433,12 @@ program, passing it C<"surprise"> an argument.  The second version
 didn't--it tried to run a program literally called I<"echo surprise">,
 didn't find it, and set C<$?> to a non-zero value indicating failure.
 
+Beginning with v5.6.0, Perl will attempt to flush all files opened for
+output before the exec, but this may not be supported on some platforms
+(see L<perlport>).  To be safe, you may need to set C<$|> ($AUTOFLUSH
+in English) or call the C<autoflush()> method of C<IO::Handle> on any
+open handles in order to avoid lost output.
+
 Note that C<exec> will not call your C<END> blocks, nor will it call
 any C<DESTROY> methods in your objects.
 
@@ -1650,7 +1657,11 @@ fork(), great care has gone into making it extremely efficient (for
 example, using copy-on-write technology on data pages), making it the
 dominant paradigm for multitasking over the last few decades.
 
-All files opened for output are flushed before forking the child process.
+Beginning with v5.6.0, Perl will attempt to flush all files opened for
+output before forking the child process, but this may not be supported
+on some platforms (see L<perlport>).  To be safe, you may need to set
+C<$|> ($AUTOFLUSH in English) or call the C<autoflush()> method of
+C<IO::Handle> on any open handles in order to avoid duplicate output.
 
 If you C<fork> without ever waiting on your children, you will
 accumulate zombies.  On some systems, you can avoid this by setting
@@ -1849,6 +1860,14 @@ various get routines are as follows:
 
 (If the entry doesn't exist you get a null list.)
 
+The exact meaning of the $gcos field varies but it usually contains
+the real name of the user (as opposed to the login name) and other
+information pertaining to the user.  Beware, however, that in many
+system users are able to change this information and therefore it
+cannot be trusted and therefore the $gcos is tainted (see
+L<perlsec>).  The $passwd and $shell, user's encrypted password and
+login shell, are also tainted, because of the same reason.
+
 In scalar context, you get the name, unless the function was a
 lookup by name, in which case you get the other thing, whatever it is.
 (If the entry doesn't exist you get the undefined value.)  For example:
@@ -1861,26 +1880,27 @@ lookup by name, in which case you get the other thing, whatever it is.
     $name  = getgrent();
     #etc.
 
-In I<getpw*()> the fields $quota, $comment, and $expire are
-special cases in the sense that in many systems they are unsupported.
-If the $quota is unsupported, it is an empty scalar.  If it is
-supported, it usually encodes the disk quota.  If the $comment
-field is unsupported, it is an empty scalar.  If it is supported it
-usually encodes some administrative comment about the user.  In some
-systems the $quota field may be $change or $age, fields that have
-to do with password aging.  In some systems the $comment field may
-be $class.  The $expire field, if present, encodes the expiration
-period of the account or the password.  For the availability and the
-exact meaning of these fields in your system, please consult your
-getpwnam(3) documentation and your F<pwd.h> file.  You can also find
-out from within Perl what your $quota and $comment fields mean
-and whether you have the $expire field by using the C<Config> module
-and the values C<d_pwquota>, C<d_pwage>, C<d_pwchange>, C<d_pwcomment>,
-and C<d_pwexpire>.  Shadow password files are only supported if your
-vendor has implemented them in the intuitive fashion that calling the
-regular C library routines gets the shadow versions if you're running
-under privilege.  Those that incorrectly implement a separate library
-call are not supported.
+In I<getpw*()> the fields $quota, $comment, and $expire are special
+cases in the sense that in many systems they are unsupported.  If the
+$quota is unsupported, it is an empty scalar.  If it is supported, it
+usually encodes the disk quota.  If the $comment field is unsupported,
+it is an empty scalar.  If it is supported it usually encodes some
+administrative comment about the user.  In some systems the $quota
+field may be $change or $age, fields that have to do with password
+aging.  In some systems the $comment field may be $class.  The $expire
+field, if present, encodes the expiration period of the account or the
+password.  For the availability and the exact meaning of these fields
+in your system, please consult your getpwnam(3) documentation and your
+F<pwd.h> file.  You can also find out from within Perl what your
+$quota and $comment fields mean and whether you have the $expire field
+by using the C<Config> module and the values C<d_pwquota>, C<d_pwage>,
+C<d_pwchange>, C<d_pwcomment>, and C<d_pwexpire>.  Shadow password
+files are only supported if your vendor has implemented them in the
+intuitive fashion that calling the regular C library routines gets the
+shadow versions if you're running under privilege or if there exists
+the shadow(3) functions as found in System V ( this includes Solaris
+and Linux.)  Those systems which implement a proprietary shadow password
+facility are unlikely to be supported.
 
 The $members value returned by I<getgr*()> is a space separated list of
 the login names of the members of the group.
@@ -1966,7 +1986,7 @@ itself, in the range C<0..11> with 0 indicating January and 11
 indicating December.  $year is the number of years since 1900.  That
 is, $year is C<123> in year 2023.  $wday is the day of the week, with
 0 indicating Sunday and 3 indicating Wednesday.  $yday is the day of
-the year, in the range C<1..365> (or C<1..366> in leap years.)  
+the year, in the range C<0..364> (or C<0..365> in leap years.)  
 
 Note that the $year element is I<not> simply the last two digits of
 the year.  If you assume it is, then you create non-Y2K-compliant
@@ -2197,6 +2217,9 @@ or how about sorted by key:
        print $key, '=', $ENV{$key}, "\n";
     }
 
+The returned values are copies of the original keys in the hash, so
+modifying them will not affect the original hash.  Compare L</values>.
+
 To sort a hash by value, you'll need to use a C<sort> function.
 Here's a descending numeric sort of a hash by its values:
 
@@ -2334,7 +2357,7 @@ itself, in the range C<0..11> with 0 indicating January and 11
 indicating December.  $year is the number of years since 1900.  That
 is, $year is C<123> in year 2023.  $wday is the day of the week, with
 0 indicating Sunday and 3 indicating Wednesday.  $yday is the day of
-the year, in the range C<1..365> (or C<1..366> in leap years.)  $isdst
+the year, in the range C<0..364> (or C<0..365> in leap years.)  $isdst
 is true if the specified time occurs during daylight savings time,
 false otherwise.
 
@@ -2480,22 +2503,25 @@ Calls the System V IPC function msgget(2).  Returns the message queue
 id, or the undefined value if there is an error.  See also C<IPC::SysV>
 and C<IPC::Msg> documentation.
 
-=item msgsnd ID,MSG,FLAGS
-
-Calls the System V IPC function msgsnd to send the message MSG to the
-message queue ID.  MSG must begin with the native long integer message
-type, which may be created with C<pack("l!", $type)>.  Returns true if
-successful, or false if there is an error.  See also C<IPC::SysV> and
-C<IPC::SysV::Msg> documentation.
-
 =item msgrcv ID,VAR,SIZE,TYPE,FLAGS
 
 Calls the System V IPC function msgrcv to receive a message from
 message queue ID into variable VAR with a maximum message size of
-SIZE.  Note that if a message is received, the message type will be
-the first thing in VAR, and the maximum length of VAR is SIZE plus the
-size of the message type.  Returns true if successful, or false if
-there is an error.  See also C<IPC::SysV> and C<IPC::SysV::Msg> documentation.
+SIZE.  Note that when a message is received, the message type as a
+native long integer will be the first thing in VAR, followed by the
+actual message.  This packing may be opened with C<unpack("l! a*")>.
+Taints the variable.  Returns true if successful, or false if there is
+an error.  See also C<IPC::SysV> and C<IPC::SysV::Msg> documentation.
+
+=item msgsnd ID,MSG,FLAGS
+
+Calls the System V IPC function msgsnd to send the message MSG to the
+message queue ID.  MSG must begin with the native long integer message
+type, and be followed by the length of the actual message, and finally
+the message itself.  This kind of packing can be achieved with
+C<pack("l! a*", $type, $message)>.  Returns true if successful,
+or false if there is an error.  See also C<IPC::SysV>
+and C<IPC::SysV::Msg> documentation.
 
 =item my EXPR
 
@@ -2567,7 +2593,10 @@ conversion assumes base 10.)
 
 Opens the file whose filename is given by EXPR, and associates it with
 FILEHANDLE.  If FILEHANDLE is an expression, its value is used as the
-name of the real filehandle wanted.  If EXPR is omitted, the scalar
+name of the real filehandle wanted.  (This is considered a symbolic
+reference, so C<use strict 'refs'> should I<not> be in effect.)
+
+If EXPR is omitted, the scalar
 variable of the same name as the FILEHANDLE contains the filename.
 (Note that lexical variables--those declared with C<my>--will not work
 for this purpose; so if you're using C<my>, specify EXPR in your call
@@ -2599,7 +2628,8 @@ C<'|'>, the filename is interpreted as a command which pipes output to
 us.  See L<perlipc/"Using open() for IPC">
 for more examples of this.  (You are not allowed to C<open> to a command
 that pipes both in I<and> out, but see L<IPC::Open2>, L<IPC::Open3>,
-and L<perlipc/"Bidirectional Communication"> for alternatives.)
+and L<perlipc/"Bidirectional Communication with Another Process">
+for alternatives.)
 
 If MODE is C<'|-'>, the filename is interpreted as a
 command to which output is to be piped, and if MODE is
@@ -2753,8 +2783,13 @@ The following triples are more or less equivalent:
 
 See L<perlipc/"Safe Pipe Opens"> for more examples of this.
 
-NOTE: On any operation that may do a fork, all files opened for output
-are flushed before the fork is attempted.  On systems that support a
+Beginning with v5.6.0, Perl will attempt to flush all files opened for
+output before any operation that may do a fork, but this may not be
+supported on some platforms (see L<perlport>).  To be safe, you may need
+to set C<$|> ($AUTOFLUSH in English) or call the C<autoflush()> method
+of C<IO::Handle> on any open handles.
+
+On systems that support a
 close-on-exec flag on files, the flag will be set for the newly opened
 file descriptor as determined by the value of $^F.  See L<perlvar/$^F>.
 
@@ -2781,7 +2816,7 @@ otherwise it's necessary to protect any leading and trailing whitespace:
     open(FOO, "< $file\0");
 
 (this may not work on some bizzare filesystems).  One should
-conscientiously choose between the the I<magic> and 3-arguments form
+conscientiously choose between the I<magic> and 3-arguments form
 of open():
 
     open IN, $ARGV[0];
@@ -2894,7 +2929,7 @@ sequence of characters that give the order and type of values, as
 follows:
 
     a  A string with arbitrary binary data, will be null padded.
-    A  An ascii string, will be space padded.
+    A  An ASCII string, will be space padded.
     Z  A null terminated (asciz) string, will be null padded.
 
     b  A bit string (ascending bit order inside each byte, like vec()).
@@ -3898,7 +3933,7 @@ GETALL, then ARG must be a variable which will hold the returned
 semid_ds structure or semaphore value array.  Returns like C<ioctl>:
 the undefined value for error, "C<0 but true>" for zero, or the actual
 return value otherwise.  The ARG must consist of a vector of native
-short integers, which may may be created with C<pack("s!",(0)x$nsem)>.
+short integers, which may be created with C<pack("s!",(0)x$nsem)>.
 See also C<IPC::SysV> and C<IPC::Semaphore> documentation.
 
 =item semget KEY,NSEMS,FLAGS
@@ -3967,7 +4002,7 @@ C<@ARGV> array at file scopes or within the lexical scopes established by
 the C<eval ''>, C<BEGIN {}>, C<INIT {}>, C<CHECK {}>, and C<END {}>
 constructs.
 
-See also C<unshift>, C<push>, and C<pop>.  C<Shift()> and C<unshift> do the
+See also C<unshift>, C<push>, and C<pop>.  C<shift()> and C<unshift> do the
 same thing to the left end of an array that C<pop> and C<push> do to the
 right end.
 
@@ -3999,8 +4034,8 @@ detaching from it.  When reading, VAR must be a variable that will
 hold the data read.  When writing, if STRING is too long, only SIZE
 bytes are used; if STRING is too short, nulls are written to fill out
 SIZE bytes.  Return true if successful, or false if there is an error.
-See also C<IPC::SysV> documentation and the C<IPC::Shareable> module
-from CPAN.
+shmread() taints the variable. See also C<IPC::SysV> documentation and
+the C<IPC::Shareable> module from CPAN.
 
 =item shutdown SOCKET,HOW
 
@@ -4103,9 +4138,9 @@ of a SUBNAME, you can provide a BLOCK as an anonymous, in-line sort
 subroutine.
 
 If the subroutine's prototype is C<($$)>, the elements to be compared
-are passed by reference in C<@_>, as for a normal subroutine.  If not,
-the normal calling code for subroutines is bypassed in the interests of
-efficiency, and the elements to be compared are passed into the subroutine
+are passed by reference in C<@_>, as for a normal subroutine.  This is
+slower than unprototyped subroutines, where the elements to be
+compared are passed into the subroutine
 as the package global variables $a and $b (see example below).  Note that
 in the latter case, it is usually counter-productive to declare $a and
 $b as lexicals.
@@ -4625,7 +4660,7 @@ The commonly available S_IF* constants are
 
 and the S_IF* functions are
 
-    S_IFMODE($mode)    the part of $mode containg the permission bits
+    S_IFMODE($mode)    the part of $mode containing the permission bits
                        and the setuid/setgid/sticky bits
 
     S_IFMT($mode)      the part of $mode containing the file type
@@ -4910,7 +4945,11 @@ platforms).  If there are no shell metacharacters in the argument,
 it is split into words and passed directly to C<execvp>, which is
 more efficient.
 
-All files opened for output are flushed before attempting the exec().
+Beginning with v5.6.0, Perl will attempt to flush all files opened for
+output before any operation that may do a fork, but this may not be
+supported on some platforms (see L<perlport>).  To be safe, you may need
+to set C<$|> ($AUTOFLUSH in English) or call the C<autoflush()> method
+of C<IO::Handle> on any open handles.
 
 The return value is the exit status of the program as
 returned by the C<wait> call.  To get the actual exit value divide by
@@ -5382,12 +5421,11 @@ subject to change in future versions of perl, but it is guaranteed to
 be the same order as either the C<keys> or C<each> function would
 produce on the same (unmodified) hash.
 
-Note that you cannot modify the values of a hash this way, because the
-returned list is just a copy.  You need to use a hash slice for that, 
-since it's lvaluable in a way that values() is not.
+Note that the values are not copied, which means modifying them will
+modify the contents of the hash:
 
-    for (values %hash)             { s/foo/bar/g }   # FAILS!
-    for (@hash{keys %hash}) { s/foo/bar/g }   # ok
+    for (values %hash)             { s/foo/bar/g }   # modifies %hash values
+    for (@hash{keys %hash}) { s/foo/bar/g }   # same
 
 As a side effect, calling values() resets the HASH's internal iterator.
 See also C<keys>, C<each>, and C<sort>.
index 6caed3e..5f1dd21 100644 (file)
@@ -398,14 +398,13 @@ you to stringify the keys (unlike the previous set of functions).
 
 They also return and accept whole hash entries (C<HE*>), making their
 use more efficient (since the hash number for a particular string
-doesn't have to be recomputed every time).  See L<API LISTING> later in
-this document for detailed descriptions.
+doesn't have to be recomputed every time).  See L<perlapi> for detailed
+descriptions.
 
 The following macros must always be used to access the contents of hash
 entries.  Note that the arguments to these macros must be simple
 variables, since they may get evaluated more than once.  See
-L<API LISTING> later in this document for detailed descriptions of these
-macros.
+L<perlapi> for detailed descriptions of these macros.
 
     HePV(HE* he, STRLEN len)
     HeVAL(HE* he)
@@ -912,7 +911,7 @@ calling these functions, or by using one of the C<sv_set*_mg()> or
 C<sv_cat*_mg()> functions.  Similarly, generic C code must call the
 C<SvGETMAGIC()> macro to invoke any 'get' magic if they use an SV
 obtained from external sources in functions that don't handle magic.
-L<API LISTING> later in this document identifies such functions.
+See L<perlapi> for a description of these functions.
 For example, calls to the C<sv_cat*()> functions typically need to be
 followed by C<SvSETMAGIC()>, but they don't need a prior C<SvGETMAGIC()>
 since their implementation handles 'get' magic.
@@ -1464,13 +1463,13 @@ C<gvsv gvsv add whatever>.
 
 =head2 Compile pass 1: check routines
 
-The tree is created by the I<pseudo-compiler> while yacc code feeds it
-the constructions it recognizes. Since yacc works bottom-up, so does
+The tree is created by the compiler while I<yacc> code feeds it
+the constructions it recognizes. Since I<yacc> works bottom-up, so does
 the first pass of perl compilation.
 
 What makes this pass interesting for perl developers is that some
 optimization may be performed on this pass.  This is optimization by
-so-called I<check routines>.  The correspondence between node names
+so-called "check routines".  The correspondence between node names
 and corresponding check routines is described in F<opcode.pl> (do not
 forget to run C<make regen_headers> if you modify this file).
 
@@ -1524,9 +1523,6 @@ are subject to the same restrictions as in the pass 2.
 
 =head1 How multiple interpreters and concurrency are supported
 
-WARNING: This information is subject to radical changes prior to
-the Perl 5.6 release.  Use with caution.
-
 =head2 Background and PERL_IMPLICIT_CONTEXT
 
 The Perl interpreter can be regarded as a closed box: it has an API
@@ -1560,8 +1556,8 @@ which will be private.  All functions whose names begin C<S_> are private
 "Perl_", but just because a function begins with "Perl_" does not mean it is
 part of the API. The easiest way to be B<sure> a function is part of the API
 is to find its entry in L<perlapi>.  If it exists in L<perlapi>, it's part
-of the API.  If it doesn't, and you think it should be (i.e., you need it fo
-your extension), send mail via L<perlbug> explaining why you think it
+of the API.  If it doesn't, and you think it should be (i.e., you need it for
+your extension), send mail via L<perlbug> explaining why you think it
 should be.
 
 (L<perlapi> itself is generated by embed.pl, a Perl script that generates
@@ -1669,7 +1665,7 @@ Thus, something like:
 
         sv_setsv(asv, bsv);
 
-in your extesion will translate to this when PERL_IMPLICIT_CONTEXT is
+in your extension will translate to this when PERL_IMPLICIT_CONTEXT is
 in effect:
 
         Perl_sv_setsv(Perl_get_context(), asv, bsv);
index 3a84e95..c640870 100644 (file)
@@ -269,7 +269,7 @@ way to gain a precise understanding of the overall architecture of
 the language.
 
 If you build a version of the Perl interpreter with C<-DDEBUGGING>,
-Perl's B<-D> commandline flag will cause copious debugging information
+Perl's B<-D> command line flag will cause copious debugging information
 to be emitted (see the C<perlrun> manpage).  If you build a version of
 Perl with compiler debugging information (e.g. with the C compiler's
 C<-g> option instead of C<-O>) then you can step through the execution
index 17a13a2..4311ee2 100644 (file)
@@ -333,10 +333,13 @@ the strings?).
          5.005_62      1999-Oct-15
          5.005_63      1999-Dec-09
          5.5.640       2000-Feb-02
-         5.5.650       2000-Feb-08     5.6 beta1
-         5.5.660       2000-Feb-22     5.6 beta2
-         5.5.670       2000-Feb-29     5.6 beta3
-         5.6.0-RC1     2000-Mar-09     5.6 release candidate 1
+         5.5.650       2000-Feb-08     beta1
+         5.5.660       2000-Feb-22     beta2
+         5.5.670       2000-Feb-29     beta3
+         5.6.0-RC1     2000-Mar-09     release candidate 1
+         5.6.0-RC2     2000-Mar-14     release candidate 2
+         5.6.0-RC3     2000-Mar-21     release candidate 3
+         5.6.0         2000-Mar-22
 
 =head2 SELECTED RELEASE SIZES
 
index 58eeac6..b0aab33 100644 (file)
@@ -6,7 +6,7 @@ perlintern - autogenerated documentation of purely B<internal>
 =head1 DESCRIPTION
 
 This file is the autogenerated documentation of functions in the 
-Perl intrepreter that are documented using Perl's internal documentation
+Perl interpreter that are documented using Perl's internal documentation
 format but are not marked as part of the Perl API. In other words, 
 B<they are not for use in extensions>!
 
@@ -16,7 +16,7 @@ B<they are not for use in extensions>!
 
 =head1 AUTHORS
 
-The autodocumentation system was orignally added to the Perl core by 
+The autodocumentation system was originally added to the Perl core by 
 Benjamin Stuhl. Documentation is by whoever was kind enough to 
 document their functions.
 
index 3ddea3e..475271d 100644 (file)
@@ -453,8 +453,8 @@ doesn't actually work:
 
     open(PROG_FOR_READING_AND_WRITING, "| some program |")
 
-and if you forget to use the B<-w> flag, then you'll miss out
-entirely on the diagnostic message:
+and if you forget to use the C<use warnings> pragma or the B<-w> flag,
+then you'll miss out entirely on the diagnostic message:
 
     Can't do bidirectional pipe at -e line 1.
 
@@ -667,7 +667,8 @@ instead.
 
     my $port = shift || 2345;
     my $proto = getprotobyname('tcp');
-    $port = $1 if $port =~ /(\d+)/; # untaint port number
+
+    ($port) = $port =~ /^(\d+)$/                        || die "invalid port";
 
     socket(Server, PF_INET, SOCK_STREAM, $proto)       || die "socket: $!";
     setsockopt(Server, SOL_SOCKET, SO_REUSEADDR,
@@ -710,7 +711,8 @@ go back to service a new client.
 
     my $port = shift || 2345;
     my $proto = getprotobyname('tcp');
-    $port = $1 if $port =~ /(\d+)/; # untaint port number
+
+    ($port) = $port =~ /^(\d+)$/                        || die "invalid port";
 
     socket(Server, PF_INET, SOCK_STREAM, $proto)       || die "socket: $!";
     setsockopt(Server, SOL_SOCKET, SO_REUSEADDR,
@@ -922,7 +924,7 @@ For those preferring a higher-level interface to socket programming, the
 IO::Socket module provides an object-oriented approach.  IO::Socket is
 included as part of the standard Perl distribution as of the 5.004
 release.  If you're running an earlier version of Perl, just fetch
-IO::Socket from CPAN, where you'll also find find modules providing easy
+IO::Socket from CPAN, where you'll also find modules providing easy
 interfaces to the following systems: DNS, FTP, Ident (RFC 931), NIS and
 NISPlus, NNTP, Ping, POP3, SMTP, SNMP, SSLeay, Telnet, and Time--just
 to name a few.
@@ -1022,7 +1024,7 @@ something to the server before fetching the server's response.
     }
 
 The web server handing the "http" service, which is assumed to be at
-its standard port, number 80.  If your the web server you're trying to
+its standard port, number 80.  If the web server you're trying to
 connect to is at a different port (like 1080 or 8080), you should specify
 as the named-parameter pair, C<< PeerPort => 8080 >>.  The C<autoflush>
 method is used on the socket because otherwise the system would buffer
@@ -1305,16 +1307,16 @@ you weren't wanting it to.
 
 Here's a small example showing shared memory usage.
 
-    use IPC::SysV qw(IPC_PRIVATE IPC_RMID S_IRWXU S_IRWXG S_IRWXO);
+    use IPC::SysV qw(IPC_PRIVATE IPC_RMID S_IRWXU);
 
     $size = 2000;
-    $key = shmget(IPC_PRIVATE, $size, S_IRWXU|S_IRWXG|S_IRWXO) || die "$!";
-    print "shm key $key\n";
+    $id = shmget(IPC_PRIVATE, $size, S_IRWXU) || die "$!";
+    print "shm key $id\n";
 
     $message = "Message #1";
-    shmwrite($key, $message, 0, 60) || die "$!";
+    shmwrite($id, $message, 0, 60) || die "$!";
     print "wrote: '$message'\n";
-    shmread($key, $buff, 0, 60) || die "$!";
+    shmread($id, $buff, 0, 60) || die "$!";
     print "read : '$buff'\n";
 
     # the buffer of shmread is zero-character end-padded.
@@ -1322,16 +1324,16 @@ Here's a small example showing shared memory usage.
     print "un" unless $buff eq $message;
     print "swell\n";
 
-    print "deleting shm $key\n";
-    shmctl($key, IPC_RMID, 0) || die "$!";
+    print "deleting shm $id\n";
+    shmctl($id, IPC_RMID, 0) || die "$!";
 
 Here's an example of a semaphore:
 
     use IPC::SysV qw(IPC_CREAT);
 
     $IPC_KEY = 1234;
-    $key = semget($IPC_KEY, 10, 0666 | IPC_CREAT ) || die "$!";
-    print "shm key $key\n";
+    $id = semget($IPC_KEY, 10, 0666 | IPC_CREAT ) || die "$!";
+    print "shm key $id\n";
 
 Put this code in a separate file to be run in more than one process.
 Call the file F<take>:
@@ -1339,8 +1341,8 @@ Call the file F<take>:
     # create a semaphore
 
     $IPC_KEY = 1234;
-    $key = semget($IPC_KEY,  0 , 0 );
-    die if !defined($key);
+    $id = semget($IPC_KEY,  0 , 0 );
+    die if !defined($id);
 
     $semnum = 0;
     $semflag = 0;
@@ -1348,14 +1350,14 @@ Call the file F<take>:
     # 'take' semaphore
     # wait for semaphore to be zero
     $semop = 0;
-    $opstring1 = pack("sss", $semnum, $semop, $semflag);
+    $opstring1 = pack("s!s!s!", $semnum, $semop, $semflag);
 
     # Increment the semaphore count
     $semop = 1;
-    $opstring2 = pack("sss", $semnum, $semop,  $semflag);
+    $opstring2 = pack("s!s!s!", $semnum, $semop,  $semflag);
     $opstring = $opstring1 . $opstring2;
 
-    semop($key,$opstring) || die "$!";
+    semop($id,$opstring) || die "$!";
 
 Put this code in a separate file to be run in more than one process.
 Call this file F<give>:
@@ -1365,22 +1367,53 @@ Call this file F<give>:
     # that the second process continues
 
     $IPC_KEY = 1234;
-    $key = semget($IPC_KEY, 0, 0);
-    die if !defined($key);
+    $id = semget($IPC_KEY, 0, 0);
+    die if !defined($id);
 
     $semnum = 0;
     $semflag = 0;
 
     # Decrement the semaphore count
     $semop = -1;
-    $opstring = pack("sss", $semnum, $semop, $semflag);
+    $opstring = pack("s!s!s!", $semnum, $semop, $semflag);
 
-    semop($key,$opstring) || die "$!";
+    semop($id,$opstring) || die "$!";
 
 The SysV IPC code above was written long ago, and it's definitely
 clunky looking.  For a more modern look, see the IPC::SysV module
 which is included with Perl starting from Perl 5.005.
 
+A small example demonstrating SysV message queues:
+
+    use IPC::SysV qw(IPC_PRIVATE IPC_RMID IPC_CREAT S_IRWXU);
+
+    my $id = msgget(IPC_PRIVATE, IPC_CREAT | S_IRWXU);
+
+    my $sent = "message";
+    my $type = 1234;
+    my $rcvd;
+    my $type_rcvd;
+
+    if (defined $id) {
+        if (msgsnd($id, pack("l! a*", $type_sent, $sent), 0)) {
+            if (msgrcv($id, $rcvd, 60, 0, 0)) {
+                ($type_rcvd, $rcvd) = unpack("l! a*", $rcvd);
+                if ($rcvd eq $sent) {
+                    print "okay\n";
+                } else {
+                    print "not okay\n";
+                }
+            } else {
+                die "# msgrcv failed\n";
+            }
+        } else {
+            die "# msgsnd failed\n";
+        }
+        msgctl($id, IPC_RMID, 0) || die "# msgctl failed: $!\n";
+    } else {
+        die "# msgget failed\n";
+    }
+
 =head1 NOTES
 
 Most of these routines quietly but politely return C<undef> when they
index af1a910..0052d33 100644 (file)
@@ -9,7 +9,7 @@ flag B<-w> and the equivalent Perl variable, C<$^W>.
 
 The pragma works just like the existing "strict" pragma.
 This means that the scope of the warning pragma is limited to the
-enclosing block. It also means that that the pragma setting will not
+enclosing block. It also means that the pragma setting will not
 leak across files (via C<use>, C<require> or C<do>). This allows
 authors to independently define the degree of warning checks that will
 be applied to their module.
@@ -195,7 +195,7 @@ or B<-X> command line flags.
 
 =back
 
-The combined effect of 3 & 4 is that it will will allow code which uses
+The combined effect of 3 & 4 is that it will allow code which uses
 the C<warnings> pragma to control the warning behavior of $^W-type
 code (using a C<local $^W=0>) if it really wants to, but not vice-versa.
 
@@ -339,20 +339,49 @@ fatal error.
 
 =head2 Reporting Warnings from a Module
 
-The C<warnings> pragma provides two functions, namely C<warnings::enabled>
-and C<warnings::warn>, that are useful for module authors. They are
-used when you want to report a module-specific warning, but only when
-the calling module has enabled warnings via the C<warnings> pragma.
+The C<warnings> pragma provides a number of functions that are useful for
+module authors. These are used when you want to report a module-specific
+warning when the calling module has enabled warnings via the C<warnings>
+pragma.
 
-Consider the module C<abc> below.
+Consider the module C<MyMod::Abc> below.
 
-    package abc;
+    package MyMod::Abc;
 
-    sub open
-    {
+    use warnings::register;
+
+    sub open {
+        my $path = shift ;
+        if (warnings::enabled() && $path !~ m#^/#) {
+            warnings::warn("changing relative path to /tmp/");
+            $path = "/tmp/$path" ; 
+        }
+    }
+
+    1 ;
+
+The call to C<warnings::register> will create a new warnings category
+called "MyMod::abc", i.e. the new category name matches the module
+name. The C<open> function in the module will display a warning message
+if it gets given a relative path as a parameter. This warnings will only
+be displayed if the code that uses C<MyMod::Abc> has actually enabled
+them with the C<warnings> pragma like below.
+
+    use MyMod::Abc;
+    use warnings 'MyMod::Abc';
+    ...
+    abc::open("../fred.txt");
+
+It is also possible to test whether the pre-defined warnings categories are
+set in the calling module with the C<warnings::enabled> function. Consider
+this snippet of code:
+
+    package MyMod::Abc;
+
+    sub open {
         if (warnings::enabled("deprecated")) {
             warnings::warn("deprecated", 
-                           "abc::open is deprecated. Use abc:new") ;
+                           "open is deprecated, use new instead") ;
         }
         new(@_) ;
     }
@@ -366,21 +395,21 @@ display a warning message whenever the calling module has (at least) the
 "deprecated" warnings category enabled. Something like this, say.
 
     use warnings 'deprecated';
-    use abc;
+    use MyMod::Abc;
     ...
-    abc::open($filename) ;
-
+    MyMod::Abc::open($filename) ;
 
-If the calling module has escalated the "deprecated" warnings category
-into a fatal error like this:
+The C<warnings::warn> function should be used to actually display the
+warnings message. This is because they can make use of the feature that
+allows warnings to be escalated into fatal errors. So in this case
 
-    use warnings 'FATAL deprecated';
-    use abc;
+    use MyMod::Abc;
+    use warnings FATAL => 'MyMod::Abc';
     ...
-    abc::open($filename) ;
+    MyMod::Abc::open('../fred.txt');
 
-then C<warnings::warn> will detect this and die after displaying the
-warning message.
+the C<warnings::warn> function will detect this and die after
+displaying the warning message.
 
 =head1 TODO
 
index ea56e1e..55ccf44 100644 (file)
@@ -289,7 +289,7 @@ than the PERL_BADLANG approach, but setting LC_ALL (or
 other locale variables) may affect other programs as well, not just
 Perl.  In particular, external programs run from within Perl will see
 these changes.  If you make the new settings permanent (read on), all
-programs you run see the changes.  See L<ENVIRONMENT> for for
+programs you run see the changes.  See L<ENVIRONMENT> for
 the full list of relevant environment variables and L<USING LOCALES>
 for their effects in Perl.  Effects in other programs are 
 easily deducible.  For example, the variable LC_COLLATE may well affect
@@ -332,9 +332,9 @@ Second, if using the listed commands you see something B<exactly>
 (prefix matches do not count and case usually counts) like "En_US"
 without the quotes, then you should be okay because you are using a
 locale name that should be installed and available in your system.
-In this case, see L<Permanently fixing system locale configuration>.
+In this case, see L<Permanently fixing your system's locale configuration>.
 
-=head2 Permanently fixing your locale configuration
+=head2 Permanently fixing your system's locale configuration
 
 This is when you see something like:
 
index 994c3eb..6bec46b 100644 (file)
@@ -85,7 +85,7 @@ and L<perlref> regarding closures.
 
 The symbol table for a package happens to be stored in the hash of that
 name with two colons appended.  The main symbol table's name is thus
-C<%main::>, or C<%::> for short.  Likewise symbol table for the nested
+C<%main::>, or C<%::> for short.  Likewise the symbol table for the nested
 package mentioned earlier is named C<%OUTER::INNER::>.
 
 The value in each entry of the hash is what you are referring to when you
@@ -97,7 +97,7 @@ table lookups at compile time:
     local $main::{foo}  = $main::{bar};
 
 You can use this to print out all the variables in a package, for
-instance.  The standard but antequated F<dumpvar.pl> library and
+instance.  The standard but antiquated F<dumpvar.pl> library and
 the CPAN module Devel::Symdump make use of this.
 
 Assignment to a typeglob performs an aliasing operation, i.e.,
@@ -115,7 +115,7 @@ Which makes $richard and $dick the same variable, but leaves
 @richard and @dick as separate arrays.  Tricky, eh?
 
 This mechanism may be used to pass and return cheap references
-into or from subroutines if you won't want to copy the whole
+into or from subroutines if you don't want to copy the whole
 thing.  It only works when assigning to dynamic variables, not
 lexicals.
 
@@ -132,7 +132,7 @@ lexicals.
 On return, the reference will overwrite the hash slot in the
 symbol table specified by the *some_hash typeglob.  This
 is a somewhat tricky way of passing around references cheaply
-when you won't want to have to remember to dereference variables
+when you don't want to have to remember to dereference variables
 explicitly.
 
 Another use of symbol tables is for making "constant" scalars.
@@ -141,9 +141,9 @@ Another use of symbol tables is for making "constant" scalars.
 
 Now you cannot alter $PI, which is probably a good thing all in all.
 This isn't the same as a constant subroutine, which is subject to
-optimization at compile-time.  This isn't.  A constant subroutine is one
-prototyped to take no arguments and to return a constant expression.
-See L<perlsub> for details on these.  The C<use constant> pragma is a
+optimization at compile-time.  A constant subroutine is one prototyped
+to take no arguments and to return a constant expression.  See 
+L<perlsub> for details on these.  The C<use constant> pragma is a
 convenient shorthand for these.
 
 You can say C<*foo{PACKAGE}> and C<*foo{NAME}> to find out what name and
@@ -163,7 +163,7 @@ This prints
     You gave me bar::baz
 
 The C<*foo{THING}> notation can also be used to obtain references to the
-individual elements of *foo, see L<perlref>.
+individual elements of *foo.  See L<perlref>.
 
 Subroutine definitions (and declarations, for that matter) need
 not necessarily be situated in the package whose symbol table they
@@ -233,7 +233,7 @@ being blown out of the water by a signal--you have to trap that yourself
 (if you can).)  You may have multiple C<END> blocks within a file--they
 will execute in reverse order of definition; that is: last in, first
 out (LIFO).  C<END> blocks are not executed when you run perl with the
-C<-c> switch.
+C<-c> switch, or if compilation fails.
 
 Inside an C<END> subroutine, C<$?> contains the value that the program is
 going to pass to C<exit()>.  You can modify C<$?> to change the exit
@@ -251,10 +251,10 @@ LIFO order.  C<CHECK> blocks are again useful in the Perl compiler
 suite to save the compiled state of the program.
 
 When you use the B<-n> and B<-p> switches to Perl, C<BEGIN> and
-C<END> work just as they do in B<awk>, as a degenerate case.  As currently
-implemented (and subject to change, since its inconvenient at best),
-both C<BEGIN> and<END> blocks are run when you use the B<-c> switch
-for a compile-only syntax check, although your main code is not.
+C<END> work just as they do in B<awk>, as a degenerate case.
+Both C<BEGIN> and C<CHECK> blocks are run when you use the B<-c>
+switch for a compile-only syntax check, although your main code
+is not.
 
 =head2 Perl Classes
 
@@ -268,14 +268,14 @@ For more on this, see L<perltoot> and L<perlobj>.
 
 =head2 Perl Modules
 
-A module is just a set of related function in a library file a Perl
-package with the same name as the file.  It is specifically designed
-to be reusable by other modules or programs.  It may do this by
-providing a mechanism for exporting some of its symbols into the
+A module is just a set of related functions in a library file, i.e.,
+a Perl package with the same name as the file.  It is specifically 
+designed to be reusable by other modules or programs.  It may do this
+by providing a mechanism for exporting some of its symbols into the
 symbol table of any package using it.  Or it may function as a class
 definition and make its semantics available implicitly through
 method calls on the class and its objects, without explicitly
-exportating anything.  Or it can do a little of both.
+exporting anything.  Or it can do a little of both.
 
 For example, to start a traditional, non-OO module called Some::Module,
 create a file called F<Some/Module.pm> and start with this template:
@@ -283,6 +283,7 @@ create a file called F<Some/Module.pm> and start with this template:
     package Some::Module;  # assumes Some/Module.pm
 
     use strict;
+    use warnings;
 
     BEGIN {
         use Exporter   ();
@@ -418,19 +419,19 @@ that other module.  In that case, it's easy to use C<require>s instead.
 
 Perl packages may be nested inside other package names, so we can have
 package names containing C<::>.  But if we used that package name
-directly as a filename it would makes for unwieldy or impossible
+directly as a filename it would make for unwieldy or impossible
 filenames on some systems.  Therefore, if a module's name is, say,
 C<Text::Soundex>, then its definition is actually found in the library
 file F<Text/Soundex.pm>.
 
 Perl modules always have a F<.pm> file, but there may also be
 dynamically linked executables (often ending in F<.so>) or autoloaded
-subroutine definitions (often ending in F<.al> associated with the
+subroutine definitions (often ending in F<.al>) associated with the
 module.  If so, these will be entirely transparent to the user of
 the module.  It is the responsibility of the F<.pm> file to load
 (or arrange to autoload) any additional functionality.  For example,
 although the POSIX module happens to do both dynamic loading and
-autoloading, but the user can say just C<use POSIX> to get it all.
+autoloading, the user can say just C<use POSIX> to get it all.
 
 =head1 SEE ALSO
 
index 5f1c62e..57f62a5 100644 (file)
@@ -91,6 +91,11 @@ While still in that directory, type:
 Make sure you have appropriate permissions to install the module
 in your Perl 5 library directory.  Often, you'll need to be root.
 
+Perl maintains a record of all module installations.  To look at
+this list, simply type:
+
+      perldoc perllocal
+
 That's all you need to do on Unix systems with dynamic linking.
 Most Unix systems have dynamic linking--if yours doesn't, or if for
 another reason you have a statically-linked perl, I<and> the
@@ -183,7 +188,7 @@ A. DECOMPRESS
 In general, all Macintosh decompression utilities mentioned here
 can be found in the Info-Mac Hyperarchive
 ( http://hyperarchive.lcs.mit.edu/HyperArchive.html ).
-Specificly the "Commpress & Translate" listing
+Specifically the "Compress & Translate" listing
 ( http://hyperarchive.lcs.mit.edu/HyperArchive/Abstracts/cmp/HyperArchive.html ).
 
 
index 38044c9..164cb64 100644 (file)
@@ -802,23 +802,28 @@ By-name interface to Perl's built-in getpw*() functions
 
 To find out I<all> modules installed on your system, including
 those without documentation or outside the standard release, 
-jus tdo this:
+jusdo this:
 
     % find `perl -e 'print "@INC"'` -name '*.pm' -print
 
-They should all have their own documentation installed and accessible
-via your system man(1) command.  If you do not have a B<find>
+To get a log of all module distributions which have been installed
+since perl was installed, just do:
+
+    % perldoc perllocal
+
+Modules should all have their own documentation installed and accessible
+via your system man(1) command, or via the C<perldoc> program.  If you do
+not have a B<find>
 program, you can use the Perl B<find2perl> program instead, which
 generates Perl code as output you can run through perl.  If you
 have a B<man> program but it doesn't find your modules, you'll have
-to fix your manpath.  See L<perl> for details.  If you have no
-system B<man> command, you might try the B<perldoc> program.
+to fix your manpath.  See L<perl> for details.
 
 =head2 Extension Modules
 
 Extension modules are written in C (or a mix of Perl and C).  They
 are usually dynamically loaded into Perl if and when you need them,
-but may also be be linked in statically.  Supported extension modules
+but may also be linked in statically.  Supported extension modules
 include Socket, Fcntl, and POSIX.
 
 Many popular C extension modules do not come bundled (at least, not
@@ -1120,7 +1125,9 @@ scheme as the original author.
 
 =item Try to design the new module to be easy to extend and reuse.
 
-Always use B<-w>.  
+Try to C<use warnings;> (or C<use warnings qw(...);>).
+Remember that you can add C<no warnings qw(...);> to individual blocks
+of code that need less warnings.  
 
 Use blessed references.  Use the two argument form of bless to bless
 into the class name given as the first parameter of the constructor,
index c05b066..d179d8c 100644 (file)
@@ -22,11 +22,11 @@ Perl's operator overloading facility is completely ignored here.  Operator
 overloading allows user-defined behaviors for numbers, such as operations
 over arbitrarily large integers, floating points numbers with arbitrary
 precision, operations over "exotic" numbers such as modular arithmetic or
-p-adic arithmetic, and so on.  See L<perlovl> for details.
+p-adic arithmetic, and so on.  See L<overload> for details.
 
 =head1 Storing numbers
 
-Perl can internally represents numbers in 3 different ways: as native
+Perl can internally represent numbers in 3 different ways: as native
 integers, as native floating point numbers, and as decimal strings.
 Decimal strings may have an exponential notation part, as in C<"12.34e-56">.
 I<Native> here means "a format supported by the C compiler which was used
@@ -36,10 +36,10 @@ The term "native" does not mean quite as much when we talk about native
 integers, as it does when native floating point numbers are involved.
 The only implication of the term "native" on integers is that the limits for
 the maximal and the minimal supported true integral quantities are close to
-powers of 2.  However, for "native" floats have a most fundamental
+powers of 2.  However, "native" floats have a most fundamental
 restriction: they may represent only those numbers which have a relatively
 "short" representation when converted to a binary fraction.  For example,
-0.9 cannot be respresented by a native float, since the binary fraction
+0.9 cannot be represented by a native float, since the binary fraction
 for 0.9 is infinite:
 
   binary0.1110011001100...
@@ -54,14 +54,14 @@ The upshot of all this is that Perl cannot store a number like
 12345678901234567 as a floating point number on such architectures without
 loss of information.
 
-Similarly, decimal strings may represent only those numbers which have a
+Similarly, decimal strings can represent only those numbers which have a
 finite decimal expansion.  Being strings, and thus of arbitrary length, there
 is no practical limit for the exponent or number of decimal digits for these
 numbers.  (But realize that what we are discussing the rules for just the
 I<storage> of these numbers.  The fact that you can store such "large" numbers
-does not mean that that the I<operations> over these numbers will use all
+does not mean that the I<operations> over these numbers will use all
 of the significant digits.
-See L<"Numeric operations and numeric conversions"> for details.)
+See L<"Numeric operators and numeric conversions"> for details.)
 
 In fact numbers stored in the native integer format may be stored either
 in the signed native form, or in the unsigned native form.  Thus the limits
@@ -182,4 +182,4 @@ Editorial adjustments by Gurusamy Sarathy <gsar@ActiveState.com>
 
 =head1 SEE ALSO
 
-L<perlovl>
+L<overload>
index 5e4ce93..b4caed9 100644 (file)
@@ -788,8 +788,8 @@ If "'" is the delimiter, no interpolation is performed on the PATTERN.
 
 PATTERN may contain variables, which will be interpolated (and the
 pattern recompiled) every time the pattern search is evaluated, except
-for when the delimiter is a single quote.  (Note that C<$)> and C<$|>
-might not be interpolated because they look like end-of-string tests.)
+for when the delimiter is a single quote.  (Note that C<$(>, C<$)>, and
+C<$|> are not interpolated because they look like end-of-string tests.)
 If you want such a pattern to be compiled only once, add a C</o> after
 the trailing delimiter.  This avoids expensive run-time recompilations,
 and is useful when the value you are interpolating won't change over
@@ -1051,6 +1051,12 @@ multiple commands in a single line by separating them with the command
 separator character, if your shell supports that (e.g. C<;> on many Unix
 shells; C<&> on the Windows NT C<cmd> shell).
 
+Beginning with v5.6.0, Perl will attempt to flush all files opened for
+output before starting the child process, but this may not be supported
+on some platforms (see L<perlport>).  To be safe, you may need to set
+C<$|> ($AUTOFLUSH in English) or call the C<autoflush()> method of
+C<IO::Handle> on any open handles.
+
 Beware that some command shells may place restrictions on the length
 of the command line.  You must ensure your strings don't exceed this
 limit after any necessary interpolations.  See the platform-specific
@@ -1091,8 +1097,8 @@ Some frequently seen examples:
 
 A common mistake is to try to separate the words with comma or to
 put comments into a multi-line C<qw>-string.  For this reason, the
-B<-w> switch (that is, the C<$^W> variable) produces warnings if
-the STRING contains the "," or the "#" character.
+C<use warnings> pragma and the B<-w> switch (that is, the C<$^W> variable) 
+produces warnings if the STRING contains the "," or the "#" character.
 
 =item s/PATTERN/REPLACEMENT/egimosx
 
@@ -1134,9 +1140,10 @@ text is not evaluated as a command.  If the
 PATTERN is delimited by bracketing quotes, the REPLACEMENT has its own
 pair of quotes, which may or may not be bracketing quotes, e.g.,
 C<s(foo)(bar)> or C<< s<foo>/bar/ >>.  A C</e> will cause the
-replacement portion to be interpreted as a full-fledged Perl expression
-and eval()ed right then and there.  It is, however, syntax checked at
-compile-time.
+replacement portion to be treated as a full-fledged Perl expression
+and evaluated right then and there.  It is, however, syntax checked at
+compile-time. A second C<e> modifier will cause the replacement portion
+to be C<eval>ed before being run as a Perl expression.
 
 Examples:
 
@@ -1163,8 +1170,12 @@ Examples:
     # symbolic dereferencing
     s/\$(\w+)/${$1}/g;
 
-    # /e's can even nest;  this will expand
-    # any embedded scalar variable (including lexicals) in $_
+    # Add one to the value of any numbers in the string
+    s/(\d+)/1 + $1/eg;
+
+    # This will expand any embedded scalar variable
+    # (including lexicals) in $_ : First $1 is interpolated
+    # to the variable name, and then evaluated
     s/(\$\w+)/$1/eeg;
 
     # Delete (most) C comments.
@@ -1214,6 +1225,12 @@ SEARCHLIST is delimited by bracketing quotes, the REPLACEMENTLIST has
 its own pair of quotes, which may or may not be bracketing quotes,
 e.g., C<tr[A-Z][a-z]> or C<tr(+\-*/)/ABCD/>.
 
+Note that C<tr> does B<not> do regular expression character classes
+such as C<\d> or C<[:lower:]>.  The <tr> operator is not equivalent to
+the tr(1) utility.  If you want to map strings between lower/upper
+cases, see L<perlfunc/lc> and L<perlfunc/uc>, and in general consider
+using the C<s> operator if you need regular expressions.
+
 Note also that the whole range idea is rather unportable between
 character sets--and even within character sets they may cause results
 you probably didn't expect.  A sound principle is to use only ranges
@@ -1401,7 +1418,7 @@ as C<"\\\t"> (since TAB is not alphanumeric).  Note also that:
 may be closer to the conjectural I<intention> of the writer of C<"\Q\t\E">.
 
 Interpolated scalars and arrays are converted internally to the C<join> and
-C<.> catentation operations.  Thus, C<"$foo XXX '@arr'"> becomes:
+C<.> catenation operations.  Thus, C<"$foo XXX '@arr'"> becomes:
 
   $foo . " XXX '" . (join $", @arr) . "'";
 
@@ -1452,8 +1469,8 @@ the result is not predictable.
 It is at this step that C<\1> is begrudgingly converted to C<$1> in
 the replacement text of C<s///> to correct the incorrigible
 I<sed> hackers who haven't picked up the saner idiom yet.  A warning
-is emitted if the B<-w> command-line flag (that is, the C<$^W> variable)
-was set.
+is emitted if the C<use warnings> pragma or the B<-w> command-line flag
+(that is, the C<$^W> variable) was set.
 
 The lack of processing of C<\\> creates specific restrictions on
 the post-processed text.  If the delimiter is C</>, one cannot get
@@ -1514,7 +1531,7 @@ terminator of a C<{}>-delimited construct.
 It is possible to inspect both the string given to RE engine and the
 resulting finite automaton.  See the arguments C<debug>/C<debugcolor>
 in the C<use L<re>> pragma, as well as Perl's B<-Dr> command-line
-switch documented in L<perlrun/Switches>.
+switch documented in L<perlrun/"Command Switches">.
 
 =item Optimization of regular expressions
 
@@ -1591,7 +1608,8 @@ to terminate the loop, they should be tested for explicitly:
     while (<STDIN>) { last unless $_; ... }
 
 In other boolean contexts, C<< <I<filehandle>> >> without an
-explicit C<defined> test or comparison elicit a warning if the B<-w>
+explicit C<defined> test or comparison elicit a warning if the 
+C<use warnings> pragma or the B<-w>
 command-line switch (the C<$^W> variable) is in effect.
 
 The filehandles STDIN, STDOUT, and STDERR are predefined.  (The
@@ -1719,7 +1737,7 @@ A (file)glob evaluates its (embedded) argument only when it is
 starting a new list.  All values must be read before it will start
 over.  In list context, this isn't important because you automatically
 get them all anyway.  However, in scalar context the operator returns
-the next value each time it's called, or C
+the next value each time it's called, or C<undef> when the list has
 run out.  As with filehandle reads, an automatic C<defined> is
 generated when the glob occurs in the test part of a C<while>,
 because legal glob returns (e.g. a file called F<0>) would otherwise
index 9cb9f67..5d2d48e 100644 (file)
@@ -309,7 +309,7 @@ C<O_DEFER>, C<O_SYNC>, C<O_ASYNC>, C<O_DSYNC>, C<O_RSYNC>,
 C<O_NOCTTY>, C<O_NDELAY> and C<O_LARGEFILE>.  Consult your open(2)
 manpage or its local equivalent for details.  (Note: starting from
 Perl release 5.6 the O_LARGEFILE flag, if available, is automatically
-added to the sysopen() flags because large files are the the default.)
+added to the sysopen() flags because large files are the default.)
 
 Here's how to use C<sysopen> to emulate the simple C<open> calls we had
 before.  We'll omit the C<|| die $!> checks for clarity, but make sure
index fd0a1de..6c0c534 100644 (file)
@@ -154,10 +154,11 @@ It will be filled, and maybe even
 justified.  Certain interior sequences are recognized both
 here and in commands:
 
-    I<text>     italicize text, used for emphasis or variables
-    B<text>     embolden text, used for switches and programs
-    S<text>     text contains non-breaking spaces
-    C<code>    literal code
+    I<text>     Italicize text, used for emphasis or variables
+    B<text>     Embolden text, used for switches and programs
+    S<text>     Text contains non-breaking spaces
+    C<code>     Render code in a typewriter font, or give some other
+                indication that this represents program text
     L<name>     A link (cross reference) to name
                    L<name>             manual page
                    L<name/ident>       item in manual page
index 10723ee..7f779c9 100644 (file)
@@ -197,7 +197,7 @@ If you need to distinguish between endian architectures you could use
 either of the variables set like so:
 
     $is_big_endian   = unpack("h*", pack("s", 1)) =~ /01/;
-    $is_litte_endian = unpack("h*", pack("s", 1)) =~ /^1/;
+    $is_little_endian = unpack("h*", pack("s", 1)) =~ /^1/;
 
 Differing widths can cause truncation even between platforms of equal
 endianness.  The platform of shorter width loses the upper parts of the
@@ -217,7 +217,7 @@ So, it is reasonably safe to assume that all platforms support the
 notion of a "path" to uniquely identify a file on the system.  How
 that path is really written, though, differs considerably.
 
-Atlhough similar, file path specifications differ between Unix,
+Although similar, file path specifications differ between Unix,
 Windows, S<Mac OS>, OS/2, VMS, VOS, S<RISC OS>, and probably others.
 Unix, for example, is one of the few OSes that has the elegant idea
 of a single root directory.
@@ -355,7 +355,7 @@ Commands that launch external processes are generally supported on
 most platforms (though many of them do not support any type of
 forking).  The problem with using them arises from what you invoke
 them on.  External tools are often named differently on different
-platforms, may not be available in the same location, migth accept
+platforms, may not be available in the same location, might accept
 different arguments, can behave differently, and often present their
 results in a platform-dependent way.  Thus, you should seldom depend
 on them to produce consistent results. (Then again, if you're calling 
@@ -528,7 +528,7 @@ a given module works on a given platform.
 
 =item Mailing list: cpan-testers@perl.org
 
-=item Testing results: C<http://testers.cpan.org/>
+=item Testing results: http://testers.cpan.org/
 
 =back
 
@@ -654,21 +654,41 @@ Also see:
 
 =over 4
 
-=item The djgpp environment for DOS, C<http://www.delorie.com/djgpp/>
+=item *
 
-=item The EMX environment for DOS, OS/2, etc. C<emx@iaehv.nl>,
-C<http://www.leo.org/pub/comp/os/os2/leo/gnu/emx+gcc/index.html> or
-C<ftp://hobbes.nmsu.edu/pub/os2/dev/emx>
+The djgpp environment for DOS, http://www.delorie.com/djgpp/
+and L<perldos>.
 
-=item Build instructions for Win32, L<perlwin32>.
+=item *
 
-=item The ActiveState Pages, C<http://www.activestate.com/>
+The EMX environment for DOS, OS/2, etc. emx@iaehv.nl,
+http://www.leo.org/pub/comp/os/os2/leo/gnu/emx+gcc/index.html or
+ftp://hobbes.nmsu.edu/pub/os2/dev/emx.  Also L<perlos2>.
 
-=item The Cygwin environment for Win32; F<README.cygwin> (installed 
-as L<perlcygwin>), C<http://sourceware.cygnus.com/cygwin/>
+=item *
 
-=item The U/WIN environment for Win32,
-C<http://www.research.att.com/sw/tools/uwin/>
+Build instructions for Win32 in L<perlwin32>, or under the Cygnus environment
+in L<perlcygwin>.  
+
+=item *
+
+The C<Win32::*> modules in L<Win32>.
+
+=item *
+
+The ActiveState Pages, http://www.activestate.com/
+
+=item *
+
+The Cygwin environment for Win32; F<README.cygwin> (installed 
+as L<perlcygwin>), http://sourceware.cygnus.com/cygwin/
+
+=item *
+
+The U/WIN environment for Win32,
+<http://www.research.att.com/sw/tools/uwin/
+
+=item Build instructions for OS/2, L<perlos2>
 
 
 =back
@@ -742,17 +762,23 @@ Also see:
 
 =over 4
 
-=item The MacPerl Pages, C<http://www.macperl.com/>.
+=item *
+
+The MacPerl Pages, http://www.macperl.com/ .
+
+=item *
 
-=item The MacPerl mailing lists, C<http://www.macperl.org/>.
+The MacPerl mailing lists, http://www.macperl.org/ .
 
-=item MacPerl Module Porters, C<http://pudge.net/mmp/>.
+=item *
+
+MacPerl Module Porters, http://pudge.net/mmp/ .
 
 =back
 
 =head2 VMS
 
-Perl on VMS is discussed in F<vms/perlvms.pod> in the perl distribution.
+Perl on VMS is discussed in L<perlvms> in the perl distribution.
 Perl on VMS can accept either VMS- or Unix-style file
 specifications as in either of the following:
 
@@ -844,13 +870,19 @@ Also see:
 
 =over 4
 
-=item F<README.vms> (installed as L<README_vms>), L<perlvms>
+=item *
+
+F<README.vms> (installed as L<README_vms>), L<perlvms>
+
+=item *
 
-=item vmsperl list, C<majordomo@perl.org>
+vmsperl list, majordomo@perl.org
 
-Put the words C<subscribe vmsperl> in message body.
+(Put the words C<subscribe vmsperl> in message body.)
 
-=item vmsperl on the web, C<http://www.sidhe.org/vmsperl/index.html>
+=item *
+
+vmsperl on the web, http://www.sidhe.org/vmsperl/index.html
 
 =back
 
@@ -883,7 +915,7 @@ ftp.stratus.com.
 
 The value of C<$^O> on VOS is "VOS".  To determine the architecture that
 you are running on without resorting to loading all of C<%Config> you
-can examine the content of the C<@INC> array like so:
+can examine the content of the @INC array like so:
 
     if ($^O =~ /VOS/) {
         print "I'm on a Stratus box!\n";
@@ -909,16 +941,22 @@ Also see:
 
 =over 4
 
-=item F<README.vos>
+=item *
+
+F<README.vos>
 
-=item VOS mailing list
+=item *
+
+The VOS mailing list.
 
 There is no specific mailing list for Perl on VOS.  You can post
 comments to the comp.sys.stratus newsgroup, or subscribe to the general
 Stratus mailing list.  Send a letter with "Subscribe Info-Stratus" in
 the message body to majordomo@list.stratagy.com.
 
-=item VOS Perl on the web at C<http://ftp.stratus.com/pub/vos/vos.html>
+=item *
+
+VOS Perl on the web at http://ftp.stratus.com/pub/vos/vos.html
 
 =back
 
@@ -931,6 +969,7 @@ Character Code Set ID 0037 for OS/400 and either 1047 or POSIX-BC for S/390
 systems).  On the mainframe perl currently works under the "Unix system
 services for OS/390" (formerly known as OpenEdition), VM/ESA OpenEdition, or
 the BS200 POSIX-BC system (BS2000 is supported in perl 5.6 and greater).
+See L<perlos390> for details.  
 
 As of R2.5 of USS for OS/390 and Version 2.3 of VM/ESA these Unix
 sub-systems do not support the C<#!> shebang trick for script invocation.
@@ -999,15 +1038,22 @@ Also see:
 
 =over 4
 
-=item F<README.os390>, F<README.posix-bc>, F<README.vmesa>
+=item *
+
+*
 
-=item perl-mvs list
+L<perlos390>, F<README.os390>, F<README.posix-bc>, F<README.vmesa>
+
+=item *
 
 The perl-mvs@perl.org list is for discussion of porting issues as well as
 general usage issues for all EBCDIC Perls.  Send a message body of
 "subscribe perl-mvs" to majordomo@perl.org.
 
-=item AS/400 Perl information at C<http://as400.rochester.ibm.com/>
+=item  *
+
+AS/400 Perl information at
+ttp://as400.rochester.ibm.com/
 as well as on CPAN in the F<ports/> directory.
 
 =back
@@ -1138,23 +1184,33 @@ See also:
 
 =over 4
 
-=item Amiga, F<README.amiga> (installed as L<perlamiga>).
+=item *
 
-=item Atari, F<README.mint> and Guido Flohr's web page
-C<http://stud.uni-sb.de/~gufl0000/>
+Amiga, F<README.amiga> (installed as L<perlamiga>).
 
-=item Be OS, F<README.beos>
+=item *
 
-=item HP 300 MPE/iX, F<README.mpeix> and Mark Bixby's web page
-C<http://www.cccd.edu/~markb/perlix.html>
+Atari, F<README.mint> and Guido Flohr's web page
+http://stud.uni-sb.de/~gufl0000/
 
-=item Novell Netware
+=item *
+
+Be OS, F<README.beos>
+
+=item *
+
+HP 300 MPE/iX, F<README.mpeix> and Mark Bixby's web page
+http://www.cccd.edu/~markb/perlix.html
+
+=item *
 
 A free perl5-based PERL.NLM for Novell Netware is available in
-precompiled binary and source code form from C<http://www.novell.com/>
+precompiled binary and source code form from http://www.novell.com/
 as well as from CPAN.
 
-=item Plan 9, F<README.plan9>
+=item 
+
+Plan 9, F<README.plan9>
 
 =back
 
@@ -1223,6 +1279,12 @@ suffixes.  C<-S> is meaningless.  (Win32)
 C<-x> (or C<-X>) determine if a file has an executable file type.
 (S<RISC OS>)
 
+=item alarm SECONDS
+
+=item alarm
+
+Not implemented. (Win32)
+
 =item binmode FILEHANDLE
 
 Meaningless.  (S<Mac OS>, S<RISC OS>)
@@ -1287,6 +1349,9 @@ Not implemented. (S<Mac OS>)
 
 Implemented via Spawn. (VM/ESA)
 
+Does not automatically flush output handles on some platforms.
+(SunOS, Solaris, HP-UX)
+
 =item fcntl FILEHANDLE,FUNCTION,SCALAR
 
 Not implemented. (Win32, VMS)
@@ -1299,7 +1364,12 @@ Available only on Windows NT (not on Windows 95). (Win32)
 
 =item fork
 
-Not implemented. (S<Mac OS>, Win32, AmigaOS, S<RISC OS>, VOS, VM/ESA)
+Not implemented. (S<Mac OS>, AmigaOS, S<RISC OS>, VOS, VM/ESA)
+
+Emulated using multiple interpreters.  See L<perlfork>.  (Win32)
+
+Does not automatically flush output handles on some platforms.
+(SunOS, Solaris, HP-UX)
 
 =item getlogin
 
@@ -1436,14 +1506,8 @@ Not implemented. (S<Mac OS>, Plan9)
 Globbing built-in, but only C<*> and C<?> metacharacters are supported.
 (S<Mac OS>)
 
-Features depend on external perlglob.exe or perlglob.bat.  May be
-overridden with something like File::DosGlob, which is recommended.
-(Win32)
-
-Globbing built-in, but only C<*> and C<?> metacharacters are supported.
-Globbing relies on operating system calls, which may return filenames
-in any order.  As most filesystems are case-insensitive, even "sorted"
-filenames will not be in case-sensitive order. (S<RISC OS>)
+This operator is implemented via the File::Glob extension on most
+platforms.  See L<File::Glob> for portability information.
 
 =item ioctl FILEHANDLE,FUNCTION,SCALAR
 
@@ -1459,9 +1523,12 @@ Available only for socket handles. (S<RISC OS>)
 Not implemented, hence not useful for taint checking. (S<Mac OS>,
 S<RISC OS>)
 
-C<kill($sig, $pid)> makes the process exit immediately with exit
-status $sig.  As in Unix, if $sig is 0 and the specified process exists,
-it returns true without actually terminating it. (Win32)
+C<kill()> doesn't have the semantics of C<raise()>, i.e. it doesn't send
+a signal to the identified process like it does on Unix platforms.
+Instead C<kill($sig, $pid)> terminates the process identified by $pid,
+and makes it exit immediately with exit status $sig.  As in Unix, if
+$sig is 0 and the specified process exists, it returns true without
+actually terminating it. (Win32)
 
 =item link OLDFILE,NEWFILE
 
@@ -1481,7 +1548,7 @@ under NTFS only.
 
 Not implemented. (VMS, S<RISC OS>)
 
-Return values may be bogus. (Win32)
+Return values (especially for device and inode) may be bogus. (Win32)
 
 =item msgctl ID,CMD,ARG
 
@@ -1502,6 +1569,9 @@ The C<|> variants are supported only if ToolServer is installed.
 
 open to C<|-> and C<-|> are unsupported. (S<Mac OS>, Win32, S<RISC OS>)
 
+Opening a process does not automatically flush output handles on some
+platforms.  (SunOS, Solaris, HP-UX)
+
 =item pipe READHANDLE,WRITEHANDLE
 
 Not implemented. (S<Mac OS>)
@@ -1520,6 +1590,8 @@ Only implemented on sockets. (Win32)
 
 Only reliable on sockets. (S<RISC OS>)
 
+Note that the C<socket FILEHANDLE> form is generally portable.
+
 =item semctl ID,SEMNUM,CMD,ARG
 
 =item semget KEY,NSEMS,FLAGS
@@ -1601,7 +1673,10 @@ As an optimization, may not call the command shell specified in
 C<$ENV{PERL5SHELL}>.  C<system(1, @args)> spawns an external
 process and immediately returns its process designator, without
 waiting for it to terminate.  Return value may be used subsequently
-in C<wait> or C<waitpid>.  (Win32)
+in C<wait> or C<waitpid>.  Failure to spawn() a subprocess is indicated
+by setting $? to "255 << 8".  C<$?> is set in a way compatible with
+Unix (i.e. the exitstatus of the subprocess is obtained by "$? >> 8",
+as described in the documentation).  (Win32)
 
 There is no shell to process metacharacters, and the native standard is
 to pass a command line terminated by "\n" "\r" or "\0" to the spawned
@@ -1618,13 +1693,17 @@ Far from being POSIX compliant.  Because there may be no underlying
 first token in its argument string.  Handles basic redirection
 ("<" or ">") on its own behalf. (MiNT)
 
+Does not automatically flush output handles on some platforms.
+(SunOS, Solaris, HP-UX)
+
 =item times
 
 Only the first entry returned is nonzero. (S<Mac OS>)
 
-"cumulative" times will be bogus.  On anything other than Windows NT,
-"system" time will be bogus, and "user" time is actually the time
-returned by the clock() function in the C runtime library. (Win32)
+"cumulative" times will be bogus.  On anything other than Windows NT
+or Windows 2000, "system" time will be bogus, and "user" time is
+actually the time returned by the clock() function in the C runtime
+library. (Win32)
 
 Not useful. (S<RISC OS>)
 
@@ -1677,6 +1756,11 @@ Not useful. (S<RISC OS>)
 
 =over 4
 
+=item v1.47, 22 March 2000
+
+Various cleanups from Tom Christiansen, including migration of 
+long platform listings from L<perl>.
+
 =item v1.46, 12 February 2000
 
 Updates for VOS and MPE/iX. (Peter Prymmer)  Other small changes.
@@ -1752,6 +1836,158 @@ First public release with perl5.005.
 
 =back
 
+=head1 Supported Platforms
+
+As of early March 2000 (the Perl release 5.6.0), the following
+platforms are able to build Perl from the standard source code
+distribution available at http://www.perl.com/CPAN/src/index.html
+
+       AIX
+       DOS DJGPP       1)
+       EPOC
+       FreeBSD
+       HP-UX
+       IRIX
+       Linux
+       LynxOS
+       MachTen
+       MPE/iX
+       NetBSD
+       OpenBSD
+       OS/2
+       QNX
+       Rhapsody/Darwin 2)
+       SCO SV
+       SINIX
+       Solaris
+       SVR4
+       Tru64 UNIX      3)
+       UNICOS
+       UNICOS/mk
+       Unixware
+       VMS
+       VOS
+       Windows 3.1     1)
+       Windows 95      1) 4)
+       Windows 98      1) 4)
+       Windows NT      1) 4)
+
+        1) in DOS mode either the DOS or OS/2 ports can be used
+        2) new in 5.6.0: the BSD/NeXT-based UNIX of Mac OS X
+        3) formerly known as Digital UNIX and before that DEC OSF/1
+        4) compilers: Borland, Cygwin, Mingw32 EGCS/GCC, VC++
+
+The following platforms worked for the previous major release
+(5.005_03 being the latest maintenance release of that, as of early
+March 2000), but be did not manage to test these in time for the 5.6.0
+release of Perl.  There is a very good chance that these will work
+just fine with 5.6.0.
+
+       A/UX
+       BeOS
+       BSD/OS
+       DG/UX
+       DYNIX/ptx
+       DomainOS
+       Hurd
+       NextSTEP
+       OpenSTEP
+       PowerMAX
+       SCO ODT/OSR     
+       SunOS
+       Ultrix
+
+The following platform worked for the previous major release (5.005_03
+being the latest maintenance release of that, as of early March 2000).
+However, standardization on UTF-8 as the internal string representation
+in 5.6.0 has introduced incompatibilities in this EBCDIC platform.
+Support for this platform may be enabled in a future release:
+
+       OS390   1)
+
+       1) Previously known as MVS, or OpenEdition MVS.
+
+Strongly related to the OS390 platform by also being EBCDIC-based
+mainframe platforms are the following platforms:
+
+       BS2000
+       VM/ESA
+
+These are also not expected to work under 5.6.0 for the same reasons
+as OS390.  Contact the mailing list perl-mvs@perl.org for more details.
+
+MacOS (Classic, pre-X) is almost 5.6.0-ready; building from the source
+does work with 5.6.0, but additional MacOS specific source code is needed
+for a complete port.  Contact the mailing list macperl-porters@macperl.org
+for more information.
+
+The following platforms have been known to build Perl from source in
+the past, but we haven't been able to verify their status for the
+current release, either because the hardware/software platforms are
+rare or because we don't have an active champion on these
+platforms--or both:
+
+       3b1
+       AmigaOS
+       ConvexOS
+       CX/UX
+       DC/OSx
+       DDE SMES
+       DOS EMX
+       Dynix
+       EP/IX
+       ESIX
+       FPS
+       GENIX
+       Greenhills
+       ISC
+       MachTen 68k
+       MiNT
+       MPC
+       NEWS-OS
+       Opus
+       Plan 9
+       PowerUX
+       RISC/os
+       Stellar
+       SVR2
+       TI1500
+       TitanOS
+       Unisys Dynix
+       Unixware
+
+Support for the following platform is planned for a future Perl release:
+
+       Netware
+
+The following platforms have their own source code distributions and
+binaries available via http://www.perl.com/CPAN/ports/index.html:
+
+                               Perl release
+
+       AS/400                  5.003
+       Netware                 5.003_07
+       Tandem Guardian         5.004
+
+The following platforms have only binaries available via
+http://www.perl.com/CPAN/ports/index.html :
+
+                               Perl release
+
+       Acorn RISCOS            5.005_02
+       AOS                     5.002
+       LynxOS                  5.004_02
+
+Although we do suggest that you always build your own Perl from
+the source code, both for maximal configurability and for security,
+in case you are in a hurry you can check
+http://www.perl.com/CPAN/ports/index.html for binary distributions.
+
+=head1 SEE ALSO
+
+L<perlamiga>, L<perlcygwin>, L<perldos>, L<perlhpux>, L<perlos2>,
+L<perlos390>, L<perlwin32>, L<perlvms>, and L<Win32>.
+
 =head1 AUTHORS / CONTRIBUTORS
 
 Abigail <abigail@fnx.com>,
@@ -1792,4 +2028,4 @@ This document is maintained by Chris Nandor
 
 =head1 VERSION
 
-Version 1.46, last modified 12 February 2000
+Version 1.47, last modified 22 March 2000
index 09bee37..2db4139 100644 (file)
@@ -662,7 +662,8 @@ which uses C<< (?>...) >> matches exactly when the one above does (verifying
 this yourself would be a productive exercise), but finishes in a fourth
 the time when used on a similar string with 1000000 C<a>s.  Be aware,
 however, that this pattern currently triggers a warning message under
-B<-w> saying it C<"matches the null string many times">):
+the C<use warnings> pragma or B<-w> switch saying it
+C<"matches the null string many times">):
 
 On simple groups, such as the pattern C<< (?> [^()]+ ) >>, a comparable
 effect may be achieved by negative look-ahead, as in C<[^()]+ (?! [^()] )>.
@@ -672,7 +673,7 @@ The "grab all you can, and do not give anything back" semantic is desirable
 in many situations where on the first sight a simple C<()*> looks like
 the correct solution.  Suppose we parse text with comments being delimited
 by C<#> followed by some optional (horizontal) whitespace.  Contrary to
-its appearence, C<#[ \t]*> I<is not> the correct subexpression to match
+its appearance, C<#[ \t]*> I<is not> the correct subexpression to match
 the comment delimiter, because it may "give up" some whitespace if
 the remainder of the pattern can be made to match that way.  The correct
 answer is either one of these:
index 274f43d..2727e95 100644 (file)
@@ -528,7 +528,8 @@ makes it more than a bareword:
     $array{ +shift }
     $array{ shift @_ }
 
-The B<-w> switch will warn you if it interprets a reserved word as a string.
+The C<use warnings> pragma or the B<-w> switch will warn you if it
+interprets a reserved word as a string.
 But it will no longer warn you about using lowercase words, because the
 string is effectively quoted.
 
diff --git a/pod/perlrequick.pod b/pod/perlrequick.pod
new file mode 100644 (file)
index 0000000..d151e26
--- /dev/null
@@ -0,0 +1,473 @@
+=head1 NAME
+
+perlrequick - Perl regular expressions quick start
+
+=head1 DESCRIPTION
+
+This page covers the very basics of understanding, creating and
+using regular expressions ('regexps') in Perl.
+
+=head1 The Guide
+
+=head2 Simple word matching
+
+The simplest regexp is simply a word, or more generally, a string of
+characters.  A regexp consisting of a word matches any string that
+contains that word:
+
+    "Hello World" =~ /World/;  # matches
+
+In this statement, C<World> is a regexp and the C<//> enclosing
+C</World/> tells perl to search a string for a match.  The operator
+C<=~> associates the string with the regexp match and produces a true
+value if the regexp matched, or false if the regexp did not match.  In
+our case, C<World> matches the second word in C<"Hello World">, so the
+expression is true.  This idea has several variations.
+
+Expressions like this are useful in conditionals:
+
+    print "It matches\n" if "Hello World" =~ /World/;
+
+The sense of the match can be reversed by using C<!~> operator:
+
+    print "It doesn't match\n" if "Hello World" !~ /World/;
+
+The literal string in the regexp can be replaced by a variable:
+
+    $greeting = "World";
+    print "It matches\n" if "Hello World" =~ /$greeting/;
+
+If you're matching against C<$_>, the C<$_ =~> part can be omitted:
+
+    $_ = "Hello World";
+    print "It matches\n" if /World/;
+
+Finally, the C<//> default delimiters for a match can be changed to
+arbitrary delimiters by putting an C<'m'> out front:
+
+    "Hello World" =~ m!World!;   # matches, delimited by '!'
+    "Hello World" =~ m{World};   # matches, note the matching '{}'
+    "/usr/bin/perl" =~ m"/perl"; # matches after '/usr/bin',
+                                 # '/' becomes an ordinary char
+
+Regexps must match a part of the string I<exactly> in order for the
+statement to be true:
+
+    "Hello World" =~ /world/;  # doesn't match, case sensitive
+    "Hello World" =~ /o W/;    # matches, ' ' is an ordinary char
+    "Hello World" =~ /World /; # doesn't match, no ' ' at end
+
+perl will always match at the earliest possible point in the string:
+
+    "Hello World" =~ /o/;       # matches 'o' in 'Hello'
+    "That hat is red" =~ /hat/; # matches 'hat' in 'That'
+
+Not all characters can be used 'as is' in a match.  Some characters,
+called B<metacharacters>, are reserved for use in regexp notation.
+The metacharacters are
+
+    {}[]()^$.|*+?\
+
+A metacharacter can be matched by putting a backslash before it:
+
+    "2+2=4" =~ /2+2/;    # doesn't match, + is a metacharacter
+    "2+2=4" =~ /2\+2/;   # matches, \+ is treated like an ordinary +
+    'C:\WIN32' =~ /C:\\WIN/;                       # matches
+    "/usr/bin/perl" =~ /\/usr\/local\/bin\/perl/;  # matches
+
+In the last regexp, the forward slash C<'/'> is also backslashed,
+because it is used to delimit the regexp.
+
+Non-printable ASCII characters are represented by B<escape sequences>.
+Common examples are C<\t> for a tab, C<\n> for a newline, and C<\r>
+for a carriage return.  Arbitrary bytes are represented by octal
+escape sequences, e.g., C<\033>, or hexadecimal escape sequences,
+e.g., C<\x1B>:
+
+    "1000\t2000" =~ m(0\t2)        # matches
+    "cat"        =~ /\143\x61\x74/ # matches, but a weird way to spell cat
+
+Regexps are treated mostly as double quoted strings, so variable
+substitution works:
+
+    $foo = 'house';
+    'cathouse' =~ /cat$foo/;   # matches
+    'housecat' =~ /${foo}cat/; # matches
+
+With all of the regexps above, if the regexp matched anywhere in the
+string, it was considered a match.  To specify I<where> it should
+match, we would use the B<anchor> metacharacters C<^> and C<$>.  The
+anchor C<^> means match at the beginning of the string and the anchor
+C<$> means match at the end of the string, or before a newline at the
+end of the string.  Some examples:
+
+    "housekeeper" =~ /keeper/;    # matches
+    "housekeeper" =~ /^keeper/;   # doesn't match
+    "housekeeper" =~ /keeper$/;   # matches
+    "housekeeper\n" =~ /keeper$/; # matches
+
+=head2 Using character classes
+
+A B<character class> allows a set of possible characters, rather than
+just a single character, to match at a particular point in a regexp.
+Character classes are denoted by brackets C<[...]>, with the set of
+characters to be possibly matched inside.  Here are some examples:
+
+    /cat/;            # matches 'cat'
+    /[bcr]at/;        # matches 'bat, 'cat', or 'rat'
+    "abc" =~ /[cab]/; # matches 'a'
+
+In the last statement, even though C<'c'> is the first character in
+the class, the earliest point at which the regexp can match is C<'a'>.
+
+    /[yY][eE][sS]/; # match 'yes' in a case-insensitive way
+                    # 'yes', 'Yes', 'YES', etc.
+    /yes/i;         # also match 'yes' in a case-insensitive way
+
+The last example shows a match with an C<'i'> B<modifier>, which makes
+the match case-insensitive.
+
+Character classes also have ordinary and special characters, but the
+sets of ordinary and special characters inside a character class are
+different than those outside a character class.  The special
+characters for a character class are C<-]\^$> and are matched using an
+escape:
+
+   /[\]c]def/; # matches ']def' or 'cdef'
+   $x = 'bcr';
+   /[$x]at/;   # matches 'bat, 'cat', or 'rat'
+   /[\$x]at/;  # matches '$at' or 'xat'
+   /[\\$x]at/; # matches '\at', 'bat, 'cat', or 'rat'
+
+The special character C<'-'> acts as a range operator within character
+classes, so that the unwieldy C<[0123456789]> and C<[abc...xyz]>
+become the svelte C<[0-9]> and C<[a-z]>:
+
+    /item[0-9]/;  # matches 'item0' or ... or 'item9'
+    /[0-9a-fA-F]/;  # matches a hexadecimal digit
+
+If C<'-'> is the first or last character in a character class, it is
+treated as an ordinary character.
+
+The special character C<^> in the first position of a character class
+denotes a B<negated character class>, which matches any character but
+those in the bracket.  Both C<[...]> and C<[^...]> must match a
+character, or the match fails.  Then
+
+    /[^a]at/;  # doesn't match 'aat' or 'at', but matches
+               # all other 'bat', 'cat, '0at', '%at', etc.
+    /[^0-9]/;  # matches a non-numeric character
+    /[a^]at/;  # matches 'aat' or '^at'; here '^' is ordinary
+
+Perl has several abbreviations for common character classes:
+
+=over 4
+
+=item *
+\d is a digit and represents [0-9]
+
+=item *
+\s is a whitespace character and represents [\ \t\r\n\f]
+
+=item *
+\w is a word character (alphanumeric or _) and represents [0-9a-zA-Z_]
+
+=item *
+\D is a negated \d; it represents any character but a digit [^0-9]
+
+=item *
+\S is a negated \s; it represents any non-whitespace character [^\s]
+
+=item *
+\W is a negated \w; it represents any non-word character [^\w]
+
+=item *
+The period '.' matches any character but "\n"
+
+=back
+
+The C<\d\s\w\D\S\W> abbreviations can be used both inside and outside
+of character classes.  Here are some in use:
+
+    /\d\d:\d\d:\d\d/; # matches a hh:mm:ss time format
+    /[\d\s]/;         # matches any digit or whitespace character
+    /\w\W\w/;         # matches a word char, followed by a
+                      # non-word char, followed by a word char
+    /..rt/;           # matches any two chars, followed by 'rt'
+    /end\./;          # matches 'end.'
+    /end[.]/;         # same thing, matches 'end.'
+
+The S<B<word anchor> > C<\b> matches a boundary between a word
+character and a non-word character C<\w\W> or C<\W\w>:
+
+    $x = "Housecat catenates house and cat";
+    $x =~ /\bcat/;  # matches cat in 'catenates'
+    $x =~ /cat\b/;  # matches cat in 'housecat'
+    $x =~ /\bcat\b/;  # matches 'cat' at end of string
+
+In the last example, the end of the string is considered a word
+boundary.
+
+=head2 Matching this or that
+
+We can match match different character strings with the B<alternation>
+metacharacter C<'|'>.  To match C<dog> or C<cat>, we form the regexp
+C<dog|cat>.  As before, perl will try to match the regexp at the
+earliest possible point in the string.  At each character position,
+perl will first try to match the the first alternative, C<dog>.  If
+C<dog> doesn't match, perl will then try the next alternative, C<cat>.
+If C<cat> doesn't match either, then the match fails and perl moves to
+the next position in the string.  Some examples:
+
+    "cats and dogs" =~ /cat|dog|bird/;  # matches "cat"
+    "cats and dogs" =~ /dog|cat|bird/;  # matches "cat"
+
+Even though C<dog> is the first alternative in the second regexp,
+C<cat> is able to match earlier in the string.
+
+    "cats"          =~ /c|ca|cat|cats/; # matches "c"
+    "cats"          =~ /cats|cat|ca|c/; # matches "cats"
+
+At a given character position, the first alternative that allows the
+regexp match to succeed wil be the one that matches. Here, all the
+alternatives match at the first string position, so th first matches.
+
+=head2 Grouping things and hierarchical matching
+
+The B<grouping> metacharacters C<()> allow a part of a regexp to be
+treated as a single unit.  Parts of a regexp are grouped by enclosing
+them in parentheses.  The regexp C<house(cat|keeper)> means match
+C<house> followed by either C<cat> or C<keeper>.  Some more examples
+are
+
+    /(a|b)b/;    # matches 'ab' or 'bb'
+    /(^a|b)c/;   # matches 'ac' at start of string or 'bc' anywhere
+
+    /house(cat|)/;  # matches either 'housecat' or 'house'
+    /house(cat(s|)|)/;  # matches either 'housecats' or 'housecat' or
+                        # 'house'.  Note groups can be nested.
+
+    "20" =~ /(19|20|)\d\d/;  # matches the null alternative '()\d\d',
+                             # because '20\d\d' can't match
+
+=head2 Extracting matches
+
+The grouping metacharacters C<()> also allow the extraction of the
+parts of a string that matched.  For each grouping, the part that
+matched inside goes into the special variables C<$1>, C<$2>, etc.
+They can be used just as ordinary variables:
+
+    # extract hours, minutes, seconds
+    $time =~ /(\d\d):(\d\d):(\d\d)/;  # match hh:mm:ss format
+    $hours = $1;
+    $minutes = $2;
+    $seconds = $3;
+
+In list context, a match C</regexp/ with groupings will return the
+list of matched values C<($1,$2,...)>.  So we could rewrite it as
+
+    ($hours, $minutes, $second) = ($time =~ /(\d\d):(\d\d):(\d\d)/);
+
+If the groupings in a regexp are nested, C<$1> gets the group with the
+leftmost opening parenthesis, C<$2> the next opening parenthesis,
+etc.  For example, here is a complex regexp and the matching variables
+indicated below it:
+
+    /(ab(cd|ef)((gi)|j))/;
+     1  2      34
+
+Associated with the matching variables C<$1>, C<$2>, ... are
+the B<backreferences> C<\1>, C<\2>, ...  Backreferences are
+matching variables that can be used I<inside> a regexp:
+
+    /(\w\w\w)\s\1/; # find sequences like 'the the' in string
+
+C<$1>, C<$2>, ... should only be used outside of a regexp, and C<\1>,
+C<\2>, ... only inside a regexp.
+
+=head2 Matching repetitions
+
+The B<quantifier> metacharacters C<?>, C<*>, C<+>, and C<{}> allow us
+to determine the number of repeats of a portion of a regexp we
+consider to be a match.  Quantifiers are put immediately after the
+character, character class, or grouping that we want to specify.  They
+have the following meanings:
+
+=over 4
+
+=item * C<a?> = match 'a' 1 or 0 times
+
+=item * C<a*> = match 'a' 0 or more times, i.e., any number of times
+
+=item * C<a+> = match 'a' 1 or more times, i.e., at least once
+
+=item * C<a{n,m}> = match at least C<n> times, but not more than C<m>
+times.
+
+=item * C<a{n,}> = match at least C<n> or more times
+
+=item * C<a{n}> = match exactly C<n> times
+
+=back
+
+Here are some examples:
+
+    /[a-z]+\s+\d*/;  # match a lowercase word, at least some space, and
+                     # any number of digits
+    /(\w+)\s+\1/;    # match doubled words of arbitrary length
+    $year =~ /\d{2,4}/;  # make sure year is at least 2 but not more
+                         # than 4 digits
+    $year =~ /\d{4}|\d{2}/;    # better match; throw out 3 digit dates
+
+These quantifiers will try to match as much of the string as possible,
+while still allowing the regexp to match.  So we have
+
+    $x =~ /^(.*)(at)(.*)$/; # matches,
+                            # $1 = 'the cat in the h'
+                            # $2 = 'at'
+                            # $3 = ''   (0 matches)
+
+The first quantifier C<.*> grabs as much of the string as possible
+while still having the regexp match. The second quantifier C<.*> has
+no string left to it, so it matches 0 times.
+
+=head2 More matching
+
+There are a few more things you might want to know about matching
+operators.  In the code
+
+    $pattern = 'Seuss';
+    while (<>) {
+        print if /$pattern/;
+    }
+
+perl has to re-evaluate C<$pattern> each time through the loop.  If
+C<$pattern> won't be changing, use the C<//o> modifier, to only
+perform variable substitutions once.  If you don't want any
+substitutions at all, use the special delimiter C<m''>:
+
+    $pattern = 'Seuss';
+    m'$pattern'; # matches '$pattern', not 'Seuss'
+
+The global modifier C<//g> allows the matching operator to match
+within a string as many times as possible.  In scalar context,
+successive matches against a string will have C<//g> jump from match
+to match, keeping track of position in the string as it goes along.
+You can get or set the position with the C<pos()> function.
+For example,
+
+    $x = "cat dog house"; # 3 words
+    while ($x =~ /(\w+)/g) {
+        print "Word is $1, ends at position ", pos $x, "\n";
+    }
+
+prints
+
+    Word is cat, ends at position 3
+    Word is dog, ends at position 7
+    Word is house, ends at position 13
+
+A failed match or changing the target string resets the position.  If
+you don't want the position reset after failure to match, add the
+C<//c>, as in C</regexp/gc>.
+
+In list context, C<//g> returns a list of matched groupings, or if
+there are no groupings, a list of matches to the whole regexp.  So
+
+    @words = ($x =~ /(\w+)/g);  # matches,
+                                # $word[0] = 'cat'
+                                # $word[1] = 'dog'
+                                # $word[2] = 'house'
+
+=head2 Search and replace
+
+Search and replace is perform using C<s/regexp/replacement/modifiers>.
+The C<replacement> is a Perl double quoted string that replaces in the
+string whatever is matched with the C<regexp>.  The operator C<=~> is
+also used here to associate a string with C<s///>.  If matching
+against C<$_>, the S<C<$_ =~> > can be dropped.  If there is a match,
+C<s///> returns the number of substitutions made, otherwise it returns
+false.  Here are a few examples:
+
+    $x = "Time to feed the cat!";
+    $x =~ s/cat/hacker/;   # $x contains "Time to feed the hacker!"
+    $y = "'quoted words'";
+    $y =~ s/^'(.*)'$/$1/;  # strip single quotes,
+                           # $y contains "quoted words"
+
+With the C<s///> operator, the matched variables C<$1>, C<$2>, etc.
+are immediately available for use in the replacement expression. With
+the global modifier, C<s///g> will search and replace all occurrences
+of the regexp in the string:
+
+    $x = "I batted 4 for 4";
+    $x =~ s/4/four/;   # $x contains "I batted four for 4"
+    $x = "I batted 4 for 4";
+    $x =~ s/4/four/g;  # $x contains "I batted four for four"
+
+The evaluation modifier C<s///e> wraps an C<eval{...}> around the
+replacement string and the evaluated result is substituted for the
+matched substring.  This counts character frequencies in a line:
+
+    $x = "the cat";
+    $x =~ s/(.)/$chars{$1}++;$1/eg;  # final $1 replaces char with itself
+    print "frequency of '$_' is $chars{$_}\n"
+        foreach (sort {$chars{$b} <=> $chars{$a}} keys %chars);
+
+This prints
+
+    frequency of 't' is 2
+    frequency of 'e' is 1
+    frequency of ' ' is 1
+    frequency of 'h' is 1
+    frequency of 'a' is 1
+    frequency of 'c' is 1
+
+C<s///> can use other delimiters, such as C<s!!!> and C<s{}{}>, and
+even C<s{}//>.  If single quotes are used C<s'''>, then the regexp and
+replacement are treated as single quoted strings.
+
+=head2 The split operator
+
+C<split /regexp/, string> splits C<string> into a list of substrings
+and returns that list.  The regexp determines the character sequence
+that C<string> is split with respect to.  For example, to split a
+string into words, use
+
+    $x = "Calvin and Hobbes";
+    @words = split /\s+/, $x;  # $word[0] = 'Calvin'
+                               # $word[1] = 'and'
+                               # $word[2] = 'Hobbes'
+
+If the empty regexp C<//> is used, the string is split into individual
+characters.  If the regexp has groupings, then list produced contains
+the matched substrings from the groupings as well:
+
+    $x = "/usr/bin";
+    @parts = split m!(/)!, $x;  # $parts[0] = ''
+                                # $parts[1] = '/'
+                                # $parts[2] = 'usr'
+                                # $parts[3] = '/'
+                                # $parts[4] = 'bin'
+
+Since the first character of $x matched the regexp, C<split> prepended
+an empty initial element to the list.
+
+=head1 BUGS
+
+None.
+
+=head1 SEE ALSO
+
+This is just a quick start guide.  For a more in-depth tutorial on
+regexps, see L<perlretut> and for the reference page, see L<perlre>.
+
+=head1 AUTHOR AND COPYRIGHT
+
+Copyright (c) 2000 Mark Kvale
+All rights reserved.
+
+This document may be distributed under the same terms as Perl itself.
+
+=cut
+
diff --git a/pod/perlretut.pod b/pod/perlretut.pod
new file mode 100644 (file)
index 0000000..5ff4298
--- /dev/null
@@ -0,0 +1,2382 @@
+=head1 NAME
+
+perlretut - Perl regular expressions tutorial
+
+=head1 DESCRIPTION
+
+This page provides a basic tutorial on understanding, creating and
+using regular expressions in Perl.  It serves as a complement to the
+reference page on regular expressions L<perlre>.  Regular expressions
+are an integral part of the C<m//>, C<s///>, C<qr//> and C<split>
+operators and so this tutorial also overlaps with
+L<perlop/"Regexp Quote-Like Operators"> and L<perlfunc/split>.
+
+Perl is widely renowned for excellence in text processing, and regular
+expressions are one of the big factors behind this fame.  Perl regular
+expressions display an efficiency and flexibility unknown in most
+other computer languages.  Mastering even the basics of regular
+expressions will allow you to manipulate text with surprising ease.
+
+What is a regular expression?  A regular expression is simply a string
+that describes a pattern.  Patterns are in common use these days;
+examples are the patterns typed into a search engine to find web pages
+and the patterns used to list files in a directory, e.g., C<ls *.txt>
+or C<dir *.*>.  In Perl, the patterns described by regular expressions
+are used to search strings, extract desired parts of strings, and to
+do search and replace operations.
+
+Regular expressions have the undeserved reputation of being abstract
+and difficult to understand.  Regular expressions are constructed using
+simple concepts like conditionals and loops and are no more difficult
+to understand than the corresponding C<if> conditionals and C<while>
+loops in the Perl language itself.  In fact, the main challenge in
+learning regular expressions is just getting used to the terse
+notation used to express these concepts.
+
+This tutorial flattens the learning curve by discussing regular
+expression concepts, along with their notation, one at a time and with
+many examples.  The first part of the tutorial will progress from the
+simplest word searches to the basic regular expression concepts.  If
+you master the first part, you will have all the tools needed to solve
+about 98% of your needs.  The second part of the tutorial is for those
+comfortable with the basics and hungry for more power tools.  It
+discusses the more advanced regular expression operators and
+introduces the latest cutting edge innovations in 5.6.0.
+
+A note: to save time, 'regular expression' is often abbreviated as
+regexp or regex.  Regexp is a more natural abbreviation than regex, but
+is harder to pronounce.  The Perl pod documentation is evenly split on
+regexp vs regex; in Perl, there is more than one way to abbreviate it.
+We'll use regexp in this tutorial.
+
+=head1 Part 1: The basics
+
+=head2 Simple word matching
+
+The simplest regexp is simply a word, or more generally, a string of
+characters.  A regexp consisting of a word matches any string that
+contains that word:
+
+    "Hello World" =~ /World/;  # matches
+
+What is this perl statement all about? C<"Hello World"> is a simple
+double quoted string.  C<World> is the regular expression and the
+C<//> enclosing C</World/> tells perl to search a string for a match.
+The operator C<=~> associates the string with the regexp match and
+produces a true value if the regexp matched, or false if the regexp
+did not match.  In our case, C<World> matches the second word in
+C<"Hello World">, so the expression is true.  Expressions like this
+are useful in conditionals:
+
+    if ("Hello World" =~ /World/) {
+        print "It matches\n";
+    }
+    else {
+        print "It doesn't match\n";
+    }
+
+There are useful variations on this theme.  The sense of the match can
+be reversed by using C<!~> operator:
+
+    if ("Hello World" !~ /World/) {
+        print "It doesn't match\n";
+    }
+    else {
+        print "It matches\n";
+    }
+
+The literal string in the regexp can be replaced by a variable:
+
+    $greeting = "World";
+    if ("Hello World" =~ /$greeting/) {
+        print "It matches\n";
+    }
+    else {
+        print "It doesn't match\n";
+    }
+
+If you're matching against the special default variable C<$_>, the
+C<$_ =~> part can be omitted:
+
+    $_ = "Hello World";
+    if (/World/) {
+        print "It matches\n";
+    }
+    else {
+        print "It doesn't match\n";
+    }
+
+And finally, the C<//> default delimiters for a match can be changed
+to arbitrary delimiters by putting an C<'m'> out front:
+
+    "Hello World" =~ m!World!;   # matches, delimited by '!'
+    "Hello World" =~ m{World};   # matches, note the matching '{}'
+    "/usr/bin/perl" =~ m"/perl"; # matches after '/usr/bin',
+                                 # '/' becomes an ordinary char
+
+C</World/>, C<m!World!>, and C<m{World}> all represent the
+same thing.  When, e.g., C<""> is used as a delimiter, the forward
+slash C<'/'> becomes an ordinary character and can be used in a regexp
+without trouble.
+
+Let's consider how different regexps would match C<"Hello World">:
+
+    "Hello World" =~ /world/;  # doesn't match
+    "Hello World" =~ /o W/;    # matches
+    "Hello World" =~ /oW/;     # doesn't match
+    "Hello World" =~ /World /; # doesn't match
+
+The first regexp C<world> doesn't match because regexps are
+case-sensitive.  The second regexp matches because the substring
+S<C<'o W'> > occurs in the string S<C<"Hello World"> >.  The space
+character ' ' is treated like any other character in a regexp and is
+needed to match in this case.  The lack of a space character is the
+reason the third regexp C<'oW'> doesn't match.  The fourth regexp
+C<'World '> doesn't match because there is a space at the end of the
+regexp, but not at the end of the string.  The lesson here is that
+regexps must match a part of the string I<exactly> in order for the
+statement to be true.
+
+If a regexp matches in more than one place in the string, perl will
+always match at the earliest possible point in the string:
+
+    "Hello World" =~ /o/;       # matches 'o' in 'Hello'
+    "That hat is red" =~ /hat/; # matches 'hat' in 'That'
+
+With respect to character matching, there are a few more points you
+need to know about.   First of all, not all characters can be used 'as
+is' in a match.  Some characters, called B<metacharacters>, are reserved
+for use in regexp notation.  The metacharacters are
+
+    {}[]()^$.|*+?\
+
+The significance of each of these will be explained
+in the rest of the tutorial, but for now, it is important only to know
+that a metacharacter can be matched by putting a backslash before it:
+
+    "2+2=4" =~ /2+2/;    # doesn't match, + is a metacharacter
+    "2+2=4" =~ /2\+2/;   # matches, \+ is treated like an ordinary +
+    "The interval is [0,1)." =~ /[0,1)./     # is a syntax error!
+    "The interval is [0,1)." =~ /\[0,1\)\./  # matches
+    "/usr/bin/perl" =~ /\/usr\/local\/bin\/perl/;  # matches
+
+In the last regexp, the forward slash C<'/'> is also backslashed,
+because it is used to delimit the regexp.  This can lead to LTS
+(leaning toothpick syndrome), however, and it is often more readable
+to change delimiters.
+
+
+The backslash character C<'\'> is a metacharacter itself and needs to
+be backslashed:
+
+    'C:\WIN32' =~ /C:\\WIN/;   # matches
+
+In addition to the metacharacters, there are some ASCII characters
+which don't have printable character equivalents and are instead
+represented by B<escape sequences>.  Common examples are C<\t> for a
+tab, C<\n> for a newline, C<\r> for a carriage return and C<\a> for a
+bell.  If your string is better thought of as a sequence of arbitrary
+bytes, the octal escape sequence, e.g., C<\033>, or hexadecimal escape
+sequence, e.g., C<\x1B> may be a more natural representation for your
+bytes.  Here are some examples of escapes:
+
+    "1000\t2000" =~ m(0\t2)   # matches
+    "1000\n2000" =~ /0\n20/   # matches
+    "1000\t2000" =~ /\000\t2/ # doesn't match, "0" ne "\000"
+    "cat"        =~ /\143\x61\x74/ # matches, but a weird way to spell cat
+
+If you've been around Perl a while, all this talk of escape sequences
+may seem familiar.  Similar escape sequences are used in double-quoted
+strings and in fact the regexps in Perl are mostly treated as
+double-quoted strings.  This means that variables can be used in
+regexps as well.  Just like double-quoted strings, the values of the
+variables in the regexp will be substituted in before the regexp is
+evaluated for matching purposes.  So we have:
+
+    $foo = 'house';
+    'housecat' =~ /$foo/;      # matches
+    'cathouse' =~ /cat$foo/;   # matches
+    'housecat' =~ /${foo}cat/; # matches
+
+So far, so good.  With the knowledge above you can already perform
+searches with just about any literal string regexp you can dream up.
+Here is a I<very simple> emulation of the Unix grep program:
+
+    % cat > simple_grep
+    #!/usr/bin/perl
+    $regexp = shift;
+    while (<>) {
+        print if /$regexp/;
+    }
+    ^D
+
+    % chmod +x simple_grep
+
+    % simple_grep abba /usr/dict/words
+    Babbage
+    cabbage
+    cabbages
+    sabbath
+    Sabbathize
+    Sabbathizes
+    sabbatical
+    scabbard
+    scabbards
+
+This program is easy to understand.  C<#!/usr/bin/perl> is the standard
+way to invoke a perl program from the shell.
+S<C<$regexp = shift;> > saves the first command line argument as the
+regexp to be used, leaving the rest of the command line arguments to
+be treated as files.  S<C<< while (<>) >> > loops over all the lines in
+all the files.  For each line, S<C<print if /$regexp/;> > prints the
+line if the regexp matches the line.  In this line, both C<print> and
+C</$regexp/> use the default variable C<$_> implicitly.
+
+With all of the regexps above, if the regexp matched anywhere in the
+string, it was considered a match.  Sometimes, however, we'd like to
+specify I<where> in the string the regexp should try to match.  To do
+this, we would use the B<anchor> metacharacters C<^> and C<$>.  The
+anchor C<^> means match at the beginning of the string and the anchor
+C<$> means match at the end of the string, or before a newline at the
+end of the string.  Here is how they are used:
+
+    "housekeeper" =~ /keeper/;    # matches
+    "housekeeper" =~ /^keeper/;   # doesn't match
+    "housekeeper" =~ /keeper$/;   # matches
+    "housekeeper\n" =~ /keeper$/; # matches
+
+The second regexp doesn't match because C<^> constrains C<keeper> to
+match only at the beginning of the string, but C<"housekeeper"> has
+keeper starting in the middle.  The third regexp does match, since the
+C<$> constrains C<keeper> to match only at the end of the string.
+
+When both C<^> and C<$> are used at the same time, the regexp has to
+match both the beginning and the end of the string, i.e., the regexp
+matches the whole string.  Consider
+
+    "keeper" =~ /^keep$/;      # doesn't match
+    "keeper" =~ /^keeper$/;    # matches
+    ""       =~ /^$/;          # ^$ matches an empty string
+
+The first regexp doesn't match because the string has more to it than
+C<keep>.  Since the second regexp is exactly the string, it
+matches.  Using both C<^> and C<$> in a regexp forces the complete
+string to match, so it gives you complete control over which strings
+match and which don't.  Suppose you are looking for a fellow named
+bert, off in a string by himself:
+
+    "dogbert" =~ /bert/;   # matches, but not what you want
+
+    "dilbert" =~ /^bert/;  # doesn't match, but ..
+    "bertram" =~ /^bert/;  # matches, so still not good enough
+
+    "bertram" =~ /^bert$/; # doesn't match, good
+    "dilbert" =~ /^bert$/; # doesn't match, good
+    "bert"    =~ /^bert$/; # matches, perfect
+
+Of course, in the case of a literal string, one could just as easily
+use the string equivalence S<C<$string eq 'bert'> > and it would be
+more efficient.   The  C<^...$> regexp really becomes useful when we
+add in the more powerful regexp tools below.
+
+=head2 Using character classes
+
+Although one can already do quite a lot with the literal string
+regexps above, we've only scratched the surface of regular expression
+technology.  In this and subsequent sections we will introduce regexp
+concepts (and associated metacharacter notations) that will allow a
+regexp to not just represent a single character sequence, but a I<whole
+class> of them.
+
+One such concept is that of a B<character class>.  A character class
+allows a set of possible characters, rather than just a single
+character, to match at a particular point in a regexp.  Character
+classes are denoted by brackets C<[...]>, with the set of characters
+to be possibly matched inside.  Here are some examples:
+
+    /cat/;       # matches 'cat'
+    /[bcr]at/;   # matches 'bat, 'cat', or 'rat'
+    /item[0123456789]/;  # matches 'item0' or ... or 'item9'
+    "abc" =~ /[cab]/;    # matches 'a'
+
+In the last statement, even though C<'c'> is the first character in
+the class, C<'a'> matches because the first character position in the
+string is the earliest point at which the regexp can match.
+
+    /[yY][eE][sS]/;      # match 'yes' in a case-insensitive way
+                         # 'yes', 'Yes', 'YES', etc.
+
+This regexp displays a common task: perform a a case-insensitive
+match.  Perl provides away of avoiding all those brackets by simply
+appending an C<'i'> to the end of the match.  Then C</[yY][eE][sS]/;>
+can be rewritten as C</yes/i;>.  The C<'i'> stands for
+case-insensitive and is an example of a B<modifier> of the matching
+operation.  We will meet other modifiers later in the tutorial.
+
+We saw in the section above that there were ordinary characters, which
+represented themselves, and special characters, which needed a
+backslash C<\> to represent themselves.  The same is true in a
+character class, but the sets of ordinary and special characters
+inside a character class are different than those outside a character
+class.  The special characters for a character class are C<-]\^$>.  C<]>
+is special because it denotes the end of a character class.  C<$> is
+special because it denotes a scalar variable.  C<\> is special because
+it is used in escape sequences, just like above.  Here is how the
+special characters C<]$\> are handled:
+
+   /[\]c]def/; # matches ']def' or 'cdef'
+   $x = 'bcr';
+   /[$x]at/;   # matches 'bat', 'cat', or 'rat'
+   /[\$x]at/;  # matches '$at' or 'xat'
+   /[\\$x]at/; # matches '\at', 'bat, 'cat', or 'rat'
+
+The last two are a little tricky.  in C<[\$x]>, the backslash protects
+the dollar sign, so the character class has two members C<$> and C<x>.
+In C<[\\$x]>, the backslash is protected, so C<$x> is treated as a
+variable and substituted in double quote fashion.
+
+The special character C<'-'> acts as a range operator within character
+classes, so that a contiguous set of characters can be written as a
+range.  With ranges, the unwieldy C<[0123456789]> and C<[abc...xyz]>
+become the svelte C<[0-9]> and C<[a-z]>.  Some examples are
+
+    /item[0-9]/;  # matches 'item0' or ... or 'item9'
+    /[0-9bx-z]aa/;  # matches '0aa', ..., '9aa',
+                    # 'baa', 'xaa', 'yaa', or 'zaa'
+    /[0-9a-fA-F]/;  # matches a hexadecimal digit
+    /[0-9a-zA-Z_]/; # matches an alphanumeric character,
+                    # like those in a perl variable name
+
+If C<'-'> is the first or last character in a character class, it is
+treated as an ordinary character; C<[-ab]>, C<[ab-]> and C<[a\-b]> are
+all equivalent.
+
+The special character C<^> in the first position of a character class
+denotes a B<negated character class>, which matches any character but
+those in the brackets.  Both C<[...]> and C<[^...]> must match a
+character, or the match fails.  Then
+
+    /[^a]at/;  # doesn't match 'aat' or 'at', but matches
+               # all other 'bat', 'cat, '0at', '%at', etc.
+    /[^0-9]/;  # matches a non-numeric character
+    /[a^]at/;  # matches 'aat' or '^at'; here '^' is ordinary
+
+Now, even C<[0-9]> can be a bother the write multiple times, so in the
+interest of saving keystrokes and making regexps more readable, Perl
+has several abbreviations for common character classes:
+
+=over 4
+
+=item *
+\d is a digit and represents [0-9]
+
+=item *
+\s is a whitespace character and represents [\ \t\r\n\f]
+
+=item *
+\w is a word character (alphanumeric or _) and represents [0-9a-zA-Z_]
+
+=item *
+\D is a negated \d; it represents any character but a digit [^0-9]
+
+=item *
+\S is a negated \s; it represents any non-whitespace character [^\s]
+
+=item *
+\W is a negated \w; it represents any non-word character [^\w]
+
+=item *
+The period '.' matches any character but "\n"
+
+=back
+
+The C<\d\s\w\D\S\W> abbreviations can be used both inside and outside
+of character classes.  Here are some in use:
+
+    /\d\d:\d\d:\d\d/; # matches a hh:mm:ss time format
+    /[\d\s]/;         # matches any digit or whitespace character
+    /\w\W\w/;         # matches a word char, followed by a
+                      # non-word char, followed by a word char
+    /..rt/;           # matches any two chars, followed by 'rt'
+    /end\./;          # matches 'end.'
+    /end[.]/;         # same thing, matches 'end.'
+
+Because a period is a metacharacter, it needs to be escaped to match
+as an ordinary period. Because, for example, C<\d> and C<\w> are sets
+of characters, it is incorrect to think of C<[^\d\w]> as C<[\D\W]>; in
+fact C<[^\d\w]> is the same as C<[^\w]>, which is the same as
+C<[\W]>. Think DeMorgan's laws.
+
+An anchor useful in basic regexps is the S<B<word anchor> >
+C<\b>.  This matches a boundary between a word character and a non-word
+character C<\w\W> or C<\W\w>:
+
+    $x = "Housecat catenates house and cat";
+    $x =~ /cat/;    # matches cat in 'housecat'
+    $x =~ /\bcat/;  # matches cat in 'catenates'
+    $x =~ /cat\b/;  # matches cat in 'housecat'
+    $x =~ /\bcat\b/;  # matches 'cat' at end of string
+
+Note in the last example, the end of the string is considered a word
+boundary.
+
+You might wonder why C<'.'> matches everything but C<"\n"> - why not
+every character? The reason is that often one is matching against
+lines and would like to ignore the newline characters.  For instance,
+while the string C<"\n"> represents one line, we would like to think
+of as empty.  Then
+
+    ""   =~ /^$/;    # matches
+    "\n" =~ /^$/;    # matches, "\n" is ignored
+
+    ""   =~ /./;      # doesn't match; it needs a char
+    ""   =~ /^.$/;    # doesn't match; it needs a char
+    "\n" =~ /^.$/;    # doesn't match; it needs a char other than "\n"
+    "a"  =~ /^.$/;    # matches
+    "a\n"  =~ /^.$/;  # matches, ignores the "\n"
+
+This behavior is convenient, because we usually want to ignore
+newlines when we count and match characters in a line.  Sometimes,
+however, we want to keep track of newlines.  We might even want C<^>
+and C<$> to anchor at the beginning and end of lines within the
+string, rather than just the beginning and end of the string.  Perl
+allows us to choose between ignoring and paying attention to newlines
+by using the C<//s> and C<//m> modifiers.  C<//s> and C<//m> stand for
+single line and multi-line and they determine whether a string is to
+be treated as one continuous string, or as a set of lines.  The two
+modifiers affect two aspects of how the regexp is interpreted: 1) how
+the C<'.'> character class is defined, and 2) where the anchors C<^>
+and C<$> are able to match.  Here are the four possible combinations:
+
+=over 4
+
+=item *
+no modifiers (//): Default behavior.  C<'.'> matches any character
+except C<"\n">.  C<^> matches only at the beginning of the string and
+C<$> matches only at the end or before a newline at the end.
+
+=item *
+s modifier (//s): Treat string as a single long line.  C<'.'> matches
+any character, even C<"\n">.  C<^> matches only at the beginning of
+the string and C<$> matches only at the end or before a newline at the
+end.
+
+=item *
+m modifier (//m): Treat string as a set of multiple lines.  C<'.'>
+matches any character except C<"\n">.  C<^> and C<$> are able to match
+at the start or end of I<any> line within the string.
+
+=item *
+both s and m modifiers (//sm): Treat string as a single long line, but
+detect multiple lines.  C<'.'> matches any character, even
+C<"\n">.  C<^> and C<$>, however, are able to match at the start or end
+of I<any> line within the string.
+
+=back
+
+Here are examples of C<//s> and C<//m> in action:
+
+    $x = "There once was a girl\nWho programmed in Perl\n";
+
+    $x =~ /^Who/;   # doesn't match, "Who" not at start of string
+    $x =~ /^Who/s;  # doesn't match, "Who" not at start of string
+    $x =~ /^Who/m;  # matches, "Who" at start of second line
+    $x =~ /^Who/sm; # matches, "Who" at start of second line
+
+    $x =~ /girl.Who/;   # doesn't match, "." doesn't match "\n"
+    $x =~ /girl.Who/s;  # matches, "." matches "\n"
+    $x =~ /girl.Who/m;  # doesn't match, "." doesn't match "\n"
+    $x =~ /girl.Who/sm; # matches, "." matches "\n"
+
+Most of the time, the default behavior is what is want, but C<//s> and
+C<//m> are occasionally very useful.  If C<//m> is being used, the start
+of the string can still be matched with C<\A> and the end of string
+can still be matched with the anchors C<\Z> (matches both the end and
+the newline before, like C<$>), and C<\z> (matches only the end):
+
+    $x =~ /^Who/m;   # matches, "Who" at start of second line
+    $x =~ /\AWho/m;  # doesn't match, "Who" is not at start of string
+
+    $x =~ /girl$/m;  # matches, "girl" at end of first line
+    $x =~ /girl\Z/m; # doesn't match, "girl" is not at end of string
+
+    $x =~ /Perl\Z/m; # matches, "Perl" is at newline before end
+    $x =~ /Perl\z/m; # doesn't match, "Perl" is not at end of string
+
+We now know how to create choices among classes of characters in a
+regexp.  What about choices among words or character strings? Such
+choices are described in the next section.
+
+=head2 Matching this or that
+
+Sometimes we would like to our regexp to be able to match different
+possible words or character strings.  This is accomplished by using
+the B<alternation> metacharacter C<|>.  To match C<dog> or C<cat>, we
+form the regexp C<dog|cat>.  As before, perl will try to match the
+regexp at the earliest possible point in the string.  At each
+character position, perl will first try to match the first
+alternative, C<dog>.  If C<dog> doesn't match, perl will then try the
+next alternative, C<cat>.  If C<cat> doesn't match either, then the
+match fails and perl moves to the next position in the string.  Some
+examples:
+
+    "cats and dogs" =~ /cat|dog|bird/;  # matches "cat"
+    "cats and dogs" =~ /dog|cat|bird/;  # matches "cat"
+
+Even though C<dog> is the first alternative in the second regexp,
+C<cat> is able to match earlier in the string.
+
+    "cats"          =~ /c|ca|cat|cats/; # matches "c"
+    "cats"          =~ /cats|cat|ca|c/; # matches "cats"
+
+Here, all the alternatives match at the first string position, so the
+first alternative is the one that matches.  If some of the
+alternatives are truncations of the others, put the longest ones first
+to give them a chance to match.
+
+    "cab" =~ /a|b|c/ # matches "c"
+                     # /a|b|c/ == /[abc]/
+
+The last example points out that character classes are like
+alternations of characters.  At a given character position, the first
+alternative that allows the regexp match to succeed wil be the one
+that matches.
+
+=head2 Grouping things and hierarchical matching
+
+Alternation allows a regexp to choose among alternatives, but by
+itself it unsatisfying.  The reason is that each alternative is a whole
+regexp, but sometime we want alternatives for just part of a
+regexp.  For instance, suppose we want to search for housecats or
+housekeepers.  The regexp C<housecat|housekeeper> fits the bill, but is
+inefficient because we had to type C<house> twice.  It would be nice to
+have parts of the regexp be constant, like C<house>, and and some
+parts have alternatives, like C<cat|keeper>.
+
+The B<grouping> metacharacters C<()> solve this problem.  Grouping
+allows parts of a regexp to be treated as a single unit.  Parts of a
+regexp are grouped by enclosing them in parentheses.  Thus we could solve
+the C<housecat|housekeeper> by forming the regexp as
+C<house(cat|keeper)>.  The regexp C<house(cat|keeper)> means match
+C<house> followed by either C<cat> or C<keeper>.  Some more examples
+are
+
+    /(a|b)b/;    # matches 'ab' or 'bb'
+    /(ac|b)b/;   # matches 'acb' or 'bb'
+    /(^a|b)c/;   # matches 'ac' at start of string or 'bc' anywhere
+    /(a|[bc])d/; # matches 'ad', 'bd', or 'cd'
+
+    /house(cat|)/;  # matches either 'housecat' or 'house'
+    /house(cat(s|)|)/;  # matches either 'housecats' or 'housecat' or
+                        # 'house'.  Note groups can be nested.
+
+    /(19|20|)\d\d/;  # match years 19xx, 20xx, or the Y2K problem, xx
+    "20" =~ /(19|20|)\d\d/;  # matches the null alternative '()\d\d',
+                             # because '20\d\d' can't match
+
+Alternations behave the same way in groups as out of them: at a given
+string position, the leftmost alternative that allows the regexp to
+match is taken.  So in the last example at tth first string position,
+C<"20"> matches the second alternative, but there is nothing left over
+to match the next two digits C<\d\d>.  So perl moves on to the next
+alternative, which is the null alternative and that works, since
+C<"20"> is two digits.
+
+The process of trying one alternative, seeing if it matches, and
+moving on to the next alternative if it doesn't, is called
+B<backtracking>.  The term 'backtracking' comes from the idea that
+matching a regexp is like a walk in the woods.  Successfully matching
+a regexp is like arriving at a destination.  There are many possible
+trailheads, one for each string position, and each one is tried in
+order, left to right.  From each trailhead there may be many paths,
+some of which get you there, and some which are dead ends.  When you
+walk along a trail and hit a dead end, you have to backtrack along the
+trail to an earlier point to try another trail.  If you hit your
+destination, you stop immediately and forget about trying all the
+other trails.  You are persistent, and only if you have tried all the
+trails from all the trailheads and not arrived at your destination, do
+you declare failure.  To be concrete, here is a step-by-step analysis
+of what perl does when it tries to match the regexp
+
+    "abcde" =~ /(abd|abc)(df|d|de)/;
+
+=over 4
+
+=item 0 Start with the first letter in the string 'a'.
+
+=item 1 Try the first alternative in the first group 'abd'.
+
+=item 2 Match 'a' followed by 'b'. So far so good.
+
+=item 3 'd' in the regexp doesn't match 'c' in the string - a dead
+end.  So backtrack two characters and pick the second alternative in
+the first group 'abc'.
+
+=item 4 Match 'a' followed by 'b' followed by 'c'.  We are on a roll
+and have satisfied the first group. Set $1 to 'abc'.
+
+=item 5 Move on to the second group and pick the first alternative
+'df'.
+
+=item 6 Match the 'd'.
+
+=item 7 'f' in the regexp doesn't match 'e' in the string, so a dead
+end.  Backtrack one character and pick the second alternative in the
+second group 'd'.
+
+=item 8 'd' matches. The second grouping is satisfied, so set $2 to
+'d'.
+
+=item 9 We are at the end of the regexp, so we are done! We have
+matched 'abcd' out of the string "abcde".
+
+=back
+
+There are a couple of things to note about this analysis.  First, the
+third alternative in the second group 'de' also allows a match, but we
+stopped before we got to it - at a given character position, leftmost
+wins.  Second, we were able to get a match at the first character
+position of the string 'a'.  If there were no matches at the first
+position, perl would move to the second character position 'b' and
+attempt the match all over again.  Only when all possible paths at all
+possible character positions have been exhausted does perl give give
+up and declare S<C<$string =~ /(abd|abc)(df|d|de)/;> > to be false.
+
+Even with all this work, regexp matching happens remarkably fast.  To
+speed things up, during compilation stage, perl compiles the regexp
+into a compact sequence of opcodes that can often fit inside a
+processor cache.  When the code is executed, these opcodes can then run
+at full throttle and search very quickly.
+
+=head2 Extracting matches
+
+The grouping metacharacters C<()> also serve another completely
+different function: they allow the extraction of the parts of a string
+that matched.  This is very useful to find out what matched and for
+text processing in general.  For each grouping, the part that matched
+inside goes into the special variables C<$1>, C<$2>, etc.  They can be
+used just as ordinary variables:
+
+    # extract hours, minutes, seconds
+    $time =~ /(\d\d):(\d\d):(\d\d)/;  # match hh:mm:ss format
+    $hours = $1;
+    $minutes = $2;
+    $seconds = $3;
+
+Now, we know that in scalar context,
+S<C<$time =~ /(\d\d):(\d\d):(\d\d)/> > returns a true or false
+value.  In list context, however, it returns the list of matched values
+C<($1,$2,$3)>.  So we could write the code more compactly as
+
+    # extract hours, minutes, seconds
+    ($hours, $minutes, $second) = ($time =~ /(\d\d):(\d\d):(\d\d)/);
+
+If the groupings in a regexp are nested, C<$1> gets the group with the
+leftmost opening parenthesis, C<$2> the next opening parenthesis,
+etc.  For example, here is a complex regexp and the matching variables
+indicated below it:
+
+    /(ab(cd|ef)((gi)|j))/;
+     1  2      34
+
+so that if the regexp matched, e.g., C<$2> would contain 'cd' or 'ef'.
+For convenience, perl sets C<$+> to the highest numbered C<$1>, C<$2>,
+... that got assigned.
+
+Closely associated with the matching variables C<$1>, C<$2>, ... are
+the B<backreferences> C<\1>, C<\2>, ... .  Backreferences are simply
+matching variables that can be used I<inside> a regexp.  This is a
+really nice feature - what matches later in a regexp can depend on
+what matched earlier in the regexp.  Suppose we wanted to look
+for doubled words in text, like 'the the'.  The following regexp finds
+all 3-letter doubles with a space in between:
+
+    /(\w\w\w)\s\1/;
+
+The grouping assigns a value to \1, so that the same 3 letter sequence
+is used for both parts.  Here are some words with repeated parts:
+
+    % simple_grep '^(\w\w\w\w|\w\w\w|\w\w|\w)\1$' /usr/dict/words
+    beriberi
+    booboo
+    coco
+    mama
+    murmur
+    papa
+
+The regexp has a single grouping which considers 4-letter
+combinations, then 3-letter combinations, etc.  and uses C<\1> to look for
+a repeat.  Although C<$1> and C<\1> represent the same thing, care should be
+taken to use matched variables C<$1>, C<$2>, ... only outside a regexp
+and backreferences C<\1>, C<\2>, ... only inside a regexp; not doing
+so may lead to surprising and/or undefined results.
+
+In addition to what was matched, Perl 5.6.0 also provides the
+positions of what was matched with the C<@-> and C<@+>
+arrays. C<$-[0]> is the position of the start of the entire match and
+C<$+[0]> is the position of the end. Similarly, C<$-[n]> is the
+position of the start of the C<$n> match and C<$+[n]> is the position
+of the end. If C<$n> is undefined, so are C<$-[n]> and C<$+[n]>. Then
+this code
+
+    $x = "Mmm...donut, thought Homer";
+    $x =~ /^(Mmm|Yech)\.\.\.(donut|peas)/; # matches
+    foreach $expr (1..$#-) {
+        print "Match $expr: '${$expr}' at position ($-[$expr],$+[$expr])\n";
+    }
+
+prints
+
+    Match 1: 'Mmm' at position (0,3)
+    Match 2: 'donut' at position (6,11)
+
+Even if there are no groupings in a regexp, it is still possible to
+find out what exactly matched in a string.  If you use them, perl
+will set C<$`> to the part of the string before the match, will set C<$&>
+to the part of the string that matched, and will set C<$'> to the part
+of the string after the match.  An example:
+
+    $x = "the cat caught the mouse";
+    $x =~ /cat/;  # $` = 'the ', $& = 'cat', $' = ' caught the mouse'
+    $x =~ /the/;  # $` = '', $& = 'the', $' = ' cat caught the mouse'
+
+In the second match, S<C<$` = ''> > because the regexp matched at the
+first character position in the string and stopped, it never saw the
+second 'the'.  It is important to note that using C<$`> and C<$'>
+slows down regexp matching quite a bit, and C< $& > slows it down to a
+lesser extent, because if they are used in one regexp in a program,
+they are generated for <all> regexps in the program.  So if raw
+performance is a goal of your application, they should be avoided.
+If you need them, use C<@-> and C<@+> instead:
+
+    $` is the same as substr( $x, 0, $-[0] )
+    $& is the same as substr( $x, $-[0], $+[0]-$-[0] )
+    $' is the same as substr( $x, $+[0] )
+
+=head2 Matching repetitions
+
+The examples in the previous section display an annoying weakness.  We
+were only matching 3-letter words, or syllables of 4 letters or
+less.  We'd like to be able to match words or syllables of any length,
+without writing out tedious alternatives like
+C<\w\w\w\w|\w\w\w|\w\w|\w>.
+
+This is exactly the problem the B<quantifier> metacharacters C<?>,
+C<*>, C<+>, and C<{}> were created for.  They allow us to determine the
+number of repeats of a portion of a regexp we consider to be a
+match.  Quantifiers are put immediately after the character, character
+class, or grouping that we want to specify.  They have the following
+meanings:
+
+=over 4
+
+=item * C<a?> = match 'a' 1 or 0 times
+
+=item * C<a*> = match 'a' 0 or more times, i.e., any number of times
+
+=item * C<a+> = match 'a' 1 or more times, i.e., at least once
+
+=item * C<a{n,m}> = match at least C<n> times, but not more than C<m>
+times.
+
+=item * C<a{n,}> = match at least C<n> or more times
+
+=item * C<a{n}> = match exactly C<n> times
+
+=back
+
+Here are some examples:
+
+    /[a-z]+\s+\d*/;  # match a lowercase word, at least some space, and
+                     # any number of digits
+    /(\w+)\s+\1/;    # match doubled words of arbitrary length
+    /y(es)?/i;       # matches 'y', 'Y', or a case-insensitive 'yes'
+    $year =~ /\d{2,4}/;  # make sure year is at least 2 but not more
+                         # than 4 digits
+    $year =~ /\d{4}|\d{2}/;    # better match; throw out 3 digit dates
+    $year =~ /\d{2}(\d{2})?/;  # same thing written differently. However,
+                               # this produces $1 and the other does not.
+
+    % simple_grep '^(\w+)\1$' /usr/dict/words   # isn't this easier?
+    beriberi
+    booboo
+    coco
+    mama
+    murmur
+    papa
+
+For all of these quantifiers, perl will try to match as much of the
+string as possible, while still allowing the regexp to succeed.  Thus
+with C</a?.../>, perl will first try to match the regexp with the C<a>
+present; if that fails, perl will try to match the regexp without the
+C<a> present.  For the quantifier C<*>, we get the following:
+
+    $x = "the cat in the hat";
+    $x =~ /^(.*)(cat)(.*)$/; # matches,
+                             # $1 = 'the '
+                             # $2 = 'cat'
+                             # $3 = ' in the hat'
+
+Which is what we might expect, the match finds the only C<cat> in the
+string and locks onto it.  Consider, however, this regexp:
+
+    $x =~ /^(.*)(at)(.*)$/; # matches,
+                            # $1 = 'the cat in the h'
+                            # $2 = 'at'
+                            # $3 = ''   (0 matches)
+
+One might initially guess that perl would find the C<at> in C<cat> and
+stop there, but that wouldn't give the longest possible string to the
+first quantifier C<.*>.  Instead, the first quantifier C<.*> grabs as
+much of the string as possible while still having the regexp match.  In
+this example, that means having the C<at> sequence with the final C<at>
+in the string.  The other important principle illustrated here is that
+when there are two or more elements in a regexp, the I<leftmost>
+quantifier, if there is one, gets to grab as much the string as
+possible, leaving the rest of the regexp to fight over scraps.  Thus in
+our example, the first quantifier C<.*> grabs most of the string, while
+the second quantifier C<.*> gets the empty string.   Quantifiers that
+grab as much of the string as possible are called B<maximal match> or
+B<greedy> quantifiers.
+
+When a regexp can match a string in several different ways, we can use
+the principles above to predict which way the regexp will match:
+
+=over 4
+
+=item *
+Principle 0: Taken as a whole, any regexp will be matched at the
+earliest possible position in the string.
+
+=item *
+Principle 1: In an alternation C<a|b|c...>, the leftmost alternative
+that allows a match for the whole regexp will be the one used.
+
+=item *
+Principle 2: The maximal matching quantifiers C<?>, C<*>, C<+> and
+C<{n,m}> will in general match as much of the string as possible while
+still allowing the whole regexp to match.
+
+=item *
+Principle 3: If there are two or more elements in a regexp, the
+leftmost greedy quantifier, if any, will match as much of the string
+as possible while still allowing the whole regexp to match.  The next
+leftmost greedy quantifier, if any, will try to match as much of the
+string remaining available to it as possible, while still allowing the
+whole regexp to match.  And so on, until all the regexp elements are
+satisfied.
+
+=back
+
+As we have seen above, Principle 0 overrides the others - the regexp
+will be matched as early as possible, with the other principles
+determining how the regexp matches at that earliest character
+position.
+
+Here is an example of these principles in action:
+
+    $x = "The programming republic of Perl";
+    $x =~ /^(.+)(e|r)(.*)$/;  # matches,
+                              # $1 = 'The programming republic of Pe'
+                              # $2 = 'r'
+                              # $3 = 'l'
+
+This regexp matches at the earliest string position, C<'T'>.  One
+might think that C<e>, being leftmost in the alternation, would be
+matched, but C<r> produces the longest string in the first quantifier.
+
+    $x =~ /(m{1,2})(.*)$/;  # matches,
+                            # $1 = 'mm'
+                            # $2 = 'ing republic of Perl'
+
+Here, The earliest possible match is at the first C<'m'> in
+C<programming>. C<m{1,2}> is the first quantifier, so it gets to match
+a maximal C<mm>.
+
+    $x =~ /.*(m{1,2})(.*)$/;  # matches,
+                              # $1 = 'm'
+                              # $2 = 'ing republic of Perl'
+
+Here, the regexp matches at the start of the string. The first
+quantifier C<.*> grabs as much as possible, leaving just a single
+C<'m'> for the second quantifier C<m{1,2}>.
+
+    $x =~ /(.?)(m{1,2})(.*)$/;  # matches,
+                                # $1 = 'a'
+                                # $2 = 'mm'
+                                # $3 = 'ing republic of Perl'
+
+Here, C<.?> eats its maximal one character at the earliest possible
+position in the string, C<'a'> in C<programming>, leaving C<m{1,2}>
+the opportunity to match both C<m>'s. Finally,
+
+    "aXXXb" =~ /(X*)/; # matches with $1 = ''
+
+because it can match zero copies of C<'X'> at the beginning of the
+string.  If you definitely want to match at least one C<'X'>, use
+C<X+>, not C<X*>.
+
+Sometimes greed is not good.  At times, we would like quantifiers to
+match a I<minimal> piece of string, rather than a maximal piece.  For
+this purpose, Larry Wall created the S<B<minimal match> > or
+B<non-greedy> quantifiers C<??>,C<*?>, C<+?>, and C<{}?>.  These are
+the usual quantifiers with a C<?> appended to them.  They have the
+following meanings:
+
+=over 4
+
+=item * C<a??> = match 'a' 0 or 1 times. Try 0 first, then 1.
+
+=item * C<a*?> = match 'a' 0 or more times, i.e., any number of times,
+but as few times as possible
+
+=item * C<a+?> = match 'a' 1 or more times, i.e., at least once, but
+as few times as possible
+
+=item * C<a{n,m}?> = match at least C<n> times, not more than C<m>
+times, as few times as possible
+
+=item * C<a{n,}?> = match at least C<n> times, but as few times as
+possible
+
+=item * C<a{n}?> = match exactly C<n> times.  Because we match exactly
+C<n> times, C<a{n}?> is equivalent to C<a{n}> and is just there for
+notational consistency.
+
+=back
+
+Let's look at the example above, but with minimal quantifiers:
+
+    $x = "The programming republic of Perl";
+    $x =~ /^(.+?)(e|r)(.*)$/; # matches,
+                              # $1 = 'Th'
+                              # $2 = 'e'
+                              # $3 = ' programming republic of Perl'
+
+The minimal string that will allow both the start of the string C<^>
+and the alternation to match is C<Th>, with the alternation C<e|r>
+matching C<e>.  The second quantifier C<.*> is free to gobble up the
+rest of the string.
+
+    $x =~ /(m{1,2}?)(.*?)$/;  # matches,
+                              # $1 = 'm'
+                              # $2 = 'ming republic of Perl'
+
+The first string position that this regexp can match is at the first
+C<'m'> in C<programming>. At this position, the minimal C<m{1,2}?>
+matches just one C<'m'>.  Although the second quantifier C<.*?> would
+prefer to match no characters, it is constrained by the end-of-string
+anchor C<$> to match the rest of the string.
+
+    $x =~ /(.*?)(m{1,2}?)(.*)$/;  # matches,
+                                  # $1 = 'The progra'
+                                  # $2 = 'm'
+                                  # $3 = 'ming republic of Perl'
+
+In this regexp, you might expect the first minimal quantifier C<.*?>
+to match the empty string, because it is not constrained by a C<^>
+anchor to match the beginning of the word.  Principle 0 applies here,
+however.  Because it is possible for the whole regexp to match at the
+start of the string, it I<will> match at the start of the string.  Thus
+the first quantifier has to match everything up to the first C<m>.  The
+second minimal quantifier matches just one C<m> and the third
+quantifier matches the rest of the string.
+
+    $x =~ /(.??)(m{1,2})(.*)$/;  # matches,
+                                 # $1 = 'a'
+                                 # $2 = 'mm'
+                                 # $3 = 'ing republic of Perl'
+
+Just as in the previous regexp, the first quantifier C<.??> can match
+earliest at position C<'a'>, so it does.  The second quantifier is
+greedy, so it matches C<mm>, and the third matches the rest of the
+string.
+
+We can modify principle 3 above to take into account non-greedy
+quantifiers:
+
+=over 4
+
+=item *
+Principle 3: If there are two or more elements in a regexp, the
+leftmost greedy (non-greedy) quantifier, if any, will match as much
+(little) of the string as possible while still allowing the whole
+regexp to match.  The next leftmost greedy (non-greedy) quantifier, if
+any, will try to match as much (little) of the string remaining
+available to it as possible, while still allowing the whole regexp to
+match.  And so on, until all the regexp elements are satisfied.
+
+=back
+
+Just like alternation, quantifiers are also susceptible to
+backtracking.  Here is a step-by-step analysis of the example
+
+    $x = "the cat in the hat";
+    $x =~ /^(.*)(at)(.*)$/; # matches,
+                            # $1 = 'the cat in the h'
+                            # $2 = 'at'
+                            # $3 = ''   (0 matches)
+
+=over 4
+
+=item 0 Start with the first letter in the string 't'.
+
+=item 1 The first quantifier '.*' starts out by matching the whole
+string 'the cat in the hat'.
+
+=item 2 'a' in the regexp element 'at' doesn't match the end of the
+string.  Backtrack one character.
+
+=item 3 'a' in the regexp element 'at' still doesn't match the last
+letter of the string 't', so backtrack one more character.
+
+=item 4 Now we can match the 'a' and the 't'.
+
+=item 5 Move on to the third element '.*'.  Since we are at the end of
+the string and '.*' can match 0 times, assign it the empty string.
+
+=item 6 We are done!
+
+=back
+
+Most of the time, all this moving forward and backtracking happens
+quickly and searching is fast.   There are some pathological regexps,
+however, whose execution time exponentially grows with the size of the
+string.  A typical structure that blows up in your face is of the form
+
+    /(a|b+)*/;
+
+The problem is the nested indeterminate quantifiers.  There are many
+different ways of partitioning a string of length n between the C<+>
+and C<*>: one repetition with C<b+> of length n, two repetitions with
+the first C<b+> length k and the second with length n-k, m repetitions
+whose bits add up to length n, etc.  In fact there are an exponential
+number of ways to partition a string as a function of length.  A
+regexp may get lucky and match early in the process, but if there is
+no match, perl will try I<every> possibility before giving up.  So be
+careful with nested C<*>'s, C<{n,m}>'s, and C<+>'s.  The book
+I<Mastering regular expressions> by Jeffrey Friedl gives a wonderful
+discussion of this and other efficiency issues.
+
+=head2 Building a regexp
+
+At this point, we have all the basic regexp concepts covered, so let's
+give a more involved example of a regular expression.  We will build a
+regexp that matches numbers.
+
+The first task in building a regexp is to decide what we want to match
+and what we want to exclude.  In our case, we want to match both
+integers and floating point numbers and we want to reject any string
+that isn't a number.
+
+The next task is to break the problem down into smaller problems that
+are easily converted into a regexp.
+
+The simplest case is integers.  These consist of a sequence of digits,
+with an optional sign in front.  The digits we can represent with
+C<\d+> and the sign can be matched with C<[+-]>.  Thus the integer
+regexp is
+
+    /[+-]?\d+/;  # matches integers
+
+A floating point number potentially has a sign, an integral part, a
+decimal point, a fractional part, and an exponent.  One or more of these
+parts is optional, so we need to check out the different
+possibilities.  Floating point numbers which are in proper form include
+123., 0.345, .34, -1e6, and 25.4E-72.  As with integers, the sign out
+front is completely optional and can be matched by C<[+-]?>.  We can
+see that if there is no exponent, floating point numbers must have a
+decimal point, otherwise they are integers.  We might be tempted to
+model these with C<\d*\.\d*>, but this would also match just a single
+decimal point, which is not a number.  So the three cases of floating
+point number sans exponent are
+
+   /[+-]?\d+\./;  # 1., 321., etc.
+   /[+-]?\.\d+/;  # .1, .234, etc.
+   /[+-]?\d+\.\d+/;  # 1.0, 30.56, etc.
+
+These can be combined into a single regexp with a three-way alternation:
+
+   /[+-]?(\d+\.\d+|\d+\.|\.\d+)/;  # floating point, no exponent
+
+In this alternation, it is important to put C<'\d+\.\d+'> before
+C<'\d+\.'>.  If C<'\d+\.'> were first, the regexp would happily match that
+and ignore the fractional part of the number.
+
+Now consider floating point numbers with exponents.  The key
+observation here is that I<both> integers and numbers with decimal
+points are allowed in front of an exponent.  Then exponents, like the
+overall sign, are independent of whether we are matching numbers with
+or without decimal points, and can be 'decoupled' from the
+mantissa.  The overall form of the regexp now becomes clear:
+
+    /^(optional sign)(integer | f.p. mantissa)(optional exponent)$/;
+
+The exponent is an C<e> or C<E>, followed by an integer.  So the
+exponent regexp is
+
+   /[eE][+-]?\d+/;  # exponent
+
+Putting all the parts together, we get a regexp that matches numbers:
+
+   /^[+-]?(\d+\.\d+|\d+\.|\.\d+|\d+)([eE][+-]?\d+)?$/;  # Ta da!
+
+Long regexps like this may impress your friends, but can be hard to
+decipher.  In complex situations like this, the C<//x> modifier for a
+match is invaluable.  It allows one to put nearly arbitrary whitespace
+and comments into a regexp without affecting their meaning.  Using it,
+we can rewrite our 'extended' regexp in the more pleasing form
+
+   /^
+      [+-]?         # first, match an optional sign
+      (             # then match integers or f.p. mantissas:
+          \d+\.\d+  # mantissa of the form a.b
+         |\d+\.     # mantissa of the form a.
+         |\.\d+     # mantissa of the form .b
+         |\d+       # integer of the form a
+      )
+      ([eE][+-]?\d+)?  # finally, optionally match an exponent
+   $/x;
+
+If whitespace is mostly irrelevant, how does one include space
+characters in an extended regexp? The answer is to backslash it
+S<C<'\ '> > or put it in a character class S<C<[ ]> >.  The same thing
+goes for pound signs, use C<\#> or C<[#]>.  For instance, Perl allows
+a space between the sign and the mantissa/integer, and we could add
+this to our regexp as follows:
+
+   /^
+      [+-]?\ *      # first, match an optional sign *and space*
+      (             # then match integers or f.p. mantissas:
+          \d+\.\d+  # mantissa of the form a.b
+         |\d+\.     # mantissa of the form a.
+         |\.\d+     # mantissa of the form .b
+         |\d+       # integer of the form a
+      )
+      ([eE][+-]?\d+)?  # finally, optionally match an exponent
+   $/x;
+
+In this form, it is easier to see a way to simplify the
+alternation.  Alternatives 1, 2, and 4 all start with C<\d+>, so it
+could be factored out:
+
+   /^
+      [+-]?\ *      # first, match an optional sign
+      (             # then match integers or f.p. mantissas:
+          \d+       # start out with a ...
+          (
+              \.\d* # mantissa of the form a.b or a.
+          )?        # ? takes care of integers of the form a
+         |\.\d+     # mantissa of the form .b
+      )
+      ([eE][+-]?\d+)?  # finally, optionally match an exponent
+   $/x;
+
+or written in the compact form,
+
+    /^[+-]?\ *(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?$/;
+
+This is our final regexp.  To recap, we built a regexp by
+
+=over 4
+
+=item * specifying the task in detail,
+
+=item * breaking down the problem into smaller parts,
+
+=item * translating the small parts into regexps,
+
+=item * combining the regexps,
+
+=item * and optimizing the final combined regexp.
+
+=back
+
+These are also the typical steps involved in writing a computer
+program.  This makes perfect sense, because regular expressions are
+essentially programs written a little computer language that specifies
+patterns.
+
+=head2 Using regular expressions in Perl
+
+The last topic of Part 1 briefly covers how regexps are used in Perl
+programs.  Where do they fit into Perl syntax?
+
+We have already introduced the matching operator in its default
+C</regexp/> and arbitrary delimiter C<m!regexp!> forms.  We have used
+the binding operator C<=~> and its negation C<!~> to test for string
+matches.  Associated with the matching operator, we have discussed the
+single line C<//s>, multi-line C<//m>, case-insensitive C<//i> and
+extended C<//x> modifiers.
+
+There are a few more things you might want to know about matching
+operators.  First, we pointed out earlier that variables in regexps are
+substituted before the regexp is evaluated:
+
+    $pattern = 'Seuss';
+    while (<>) {
+        print if /$pattern/;
+    }
+
+This will print any lines containing the word C<Seuss>.  It is not as
+efficient as it could be, however, because perl has to re-evaluate
+C<$pattern> each time through the loop.  If C<$pattern> won't be
+changing over the lifetime of the script, we can add the C<//o>
+modifier, which directs perl to only perform variable substitutions
+once:
+
+    #!/usr/bin/perl
+    #    Improved simple_grep
+    $regexp = shift;
+    while (<>) {
+        print if /$regexp/o;  # a good deal faster
+    }
+
+If you change C<$pattern> after the first substitution happens, perl
+will ignore it.  If you don't want any substitutions at all, use the
+special delimiter C<m''>:
+
+    $pattern = 'Seuss';
+    while (<>) {
+        print if m'$pattern';  # matches '$pattern', not 'Seuss'
+    }
+
+C<m''> acts like single quotes on a regexp; all other C<m> delimiters
+act like double quotes.  If the regexp evaluates to the empty string,
+the regexp in the I<last successful match> is used instead.  So we have
+
+    "dog" =~ /d/;  # 'd' matches
+    "dogbert =~ //;  # this matches the 'd' regexp used before
+
+The final two modifiers C<//g> and C<//c> concern multiple matches.
+The modifier C<//g> stands for global matching and allows the the
+matching operator to match within a string as many times as possible.
+In scalar context, successive invocations against a string will have
+`C<//g> jump from match to match, keeping track of position in the
+string as it goes along.  You can get or set the position with the
+C<pos()> function.
+
+The use of C<//g> is shown in the following example.  Suppose we have
+a string that consists of words separated by spaces.  If we know how
+many words there are in advance, we could extract the words using
+groupings:
+
+    $x = "cat dog house"; # 3 words
+    $x =~ /^\s*(\w+)\s+(\w+)\s+(\w+)\s*$/; # matches,
+                                           # $1 = 'cat'
+                                           # $2 = 'dog'
+                                           # $3 = 'house'
+
+But what if we had an indeterminate number of words? This is the sort
+of task C<//g> was made for.  To extract all words, form the simple
+regexp C<(\w+)> and loop over all matches with C</(\w+)/g>:
+
+    while ($x =~ /(\w+)/g) {
+        print "Word is $1, ends at position ", pos $x, "\n";
+    }
+
+prints
+
+    Word is cat, ends at position 3
+    Word is dog, ends at position 7
+    Word is house, ends at position 13
+
+A failed match or changing the target string resets the position.  If
+you don't want the position reset after failure to match, add the
+C<//c>, as in C</regexp/gc>.  The current position in the string is
+associated with the string, not the regexp.  This means that different
+strings have different positions and their respective positions can be
+set or read independently.
+
+In list context, C<//g> returns a list of matched groupings, or if
+there are no groupings, a list of matches to the whole regexp.  So if
+we wanted just the words, we could use
+
+    @words = ($x =~ /(\w+)/g);  # matches,
+                                # $word[0] = 'cat'
+                                # $word[1] = 'dog'
+                                # $word[2] = 'house'
+
+Closely associated with the C<//g> modifier is the C<\G> anchor.  The
+C<\G> anchor matches at the point where the previous C<//g> match left
+off.  C<\G> allows us to easily do context-sensitive matching:
+
+    $metric = 1;  # use metric units
+    ...
+    $x = <FILE>;  # read in measurement
+    $x =~ /^([+-]?\d+)\s*/g;  # get magnitude
+    $weight = $1;
+    if ($metric) { # error checking
+        print "Units error!" unless $x =~ /\Gkg\./g;
+    }
+    else {
+        print "Units error!" unless $x =~ /\Glbs\./g;
+    }
+    $x =~ /\G\s+(widget|sprocket)/g;  # continue processing
+
+The combination of C<//g> and C<\G> allows us to process the string a
+bit at a time and use arbitrary Perl logic to decide what to do next.
+
+C<\G> is also invaluable in processing fixed length records with
+regexps.  Suppose we have a snippet of coding region DNA, encoded as
+base pair letters C<ATCGTTGAAT...> and we want to find all the stop
+codons C<TGA>.  In a coding region, codons are 3-letter sequences, so
+we can think of the DNA snippet as a sequence of 3-letter records.  The
+naive regexp
+
+    # expanded, this is "ATC GTT GAA TGC AAA TGA CAT GAC"
+    $dna = "ATCGTTGAATGCAAATGACATGAC";
+    $dna =~ /TGA/;
+
+doesn't work; it may match an C<TGA>, but there is no guarantee that
+the match is aligned with codon boundaries, e.g., the substring
+S<C<GTT GAA> > gives a match.  A better solution is
+
+    while ($dna =~ /(\w\w\w)*?TGA/g) {  # note the minimal *?
+        print "Got a TGA stop codon at position ", pos $dna, "\n";
+    }
+
+which prints
+
+    Got a TGA stop codon at position 18
+    Got a TGA stop codon at position 23
+
+Position 18 is good, but position 23 is bogus.  What happened?
+
+The answer is that our regexp works well until we get past the last
+real match.  Then the regexp will fail to match a synchronized C<TGA>
+and start stepping ahead one character position at a time, not what we
+want.  The solution is to use C<\G> to anchor the match to the codon
+alignment:
+
+    while ($dna =~ /\G(\w\w\w)*?TGA/g) {
+        print "Got a TGA stop codon at position ", pos $dna, "\n";
+    }
+
+This prints
+
+    Got a TGA stop codon at position 18
+
+which is the correct answer.  This example illustrates that it is
+important not only to match what is desired, but to reject what is not
+desired.
+
+B<search and replace>
+
+Regular expressions also play a big role in B<search and replace>
+operations in Perl.  Search and replace is accomplished with the
+C<s///> operator.  The general form is
+C<s/regexp/replacement/modifiers>, with everything we know about
+regexps and modifiers applying in this case as well.  The
+C<replacement> is a Perl double quoted string that replaces in the
+string whatever is matched with the C<regexp>.  The operator C<=~> is
+also used here to associate a string with C<s///>.  If matching
+against C<$_>, the S<C<$_ =~> > can be dropped.  If there is a match,
+C<s///> returns the number of substitutions made, otherwise it returns
+false.  Here are a few examples:
+
+    $x = "Time to feed the cat!";
+    $x =~ s/cat/hacker/;   # $x contains "Time to feed the hacker!"
+    if ($x =~ s/^(Time.*hacker)!$/$1 now!/) {
+        $more_insistent = 1;
+    }
+    $y = "'quoted words'";
+    $y =~ s/^'(.*)'$/$1/;  # strip single quotes,
+                           # $y contains "quoted words"
+
+In the last example, the whole string was matched, but only the part
+inside the single quotes was grouped.  With the C<s///> operator, the
+matched variables C<$1>, C<$2>, etc.  are immediately available for use
+in the replacement expression, so we use C<$1> to replace the quoted
+string with just what was quoted.  With the global modifier, C<s///g>
+will search and replace all occurrences of the regexp in the string:
+
+    $x = "I batted 4 for 4";
+    $x =~ s/4/four/;   # doesn't do it all:
+                       # $x contains "I batted four for 4"
+    $x = "I batted 4 for 4";
+    $x =~ s/4/four/g;  # does it all:
+                       # $x contains "I batted four for four"
+
+If you prefer 'regex' over 'regexp' in this tutorial, you could use
+the following program to replace it:
+
+    % cat > simple_replace
+    #!/usr/bin/perl
+    $regexp = shift;
+    $replacement = shift;
+    while (<>) {
+        s/$regexp/$replacement/go;
+        print;
+    }
+    ^D
+
+    % simple_replace regexp regex perlretut.pod
+
+In C<simple_replace> we used the C<s///g> modifier to replace all
+occurrences of the regexp on each line and the C<s///o> modifier to
+compile the regexp only once.  As with C<simple_grep>, both the
+C<print> and the C<s/$regexp/$replacement/go> use C<$_> implicitly.
+
+A modifier available specifically to search and replace is the
+C<s///e> evaluation modifier.  C<s///e> wraps an C<eval{...}> around
+the replacement string and the evaluated result is substituted for the
+matched substring.  C<s///e> is useful if you need to do a bit of
+computation in the process of replacing text.  This example counts
+character frequencies in a line:
+
+    $x = "Bill the cat";
+    $x =~ s/(.)/$chars{$1}++;$1/eg;  # final $1 replaces char with itself
+    print "frequency of '$_' is $chars{$_}\n"
+        foreach (sort {$chars{$b} <=> $chars{$a}} keys %chars);
+
+This prints
+
+    frequency of ' ' is 2
+    frequency of 't' is 2
+    frequency of 'l' is 2
+    frequency of 'B' is 1
+    frequency of 'c' is 1
+    frequency of 'e' is 1
+    frequency of 'h' is 1
+    frequency of 'i' is 1
+    frequency of 'a' is 1
+
+As with the match C<m//> operator, C<s///> can use other delimiters,
+such as C<s!!!> and C<s{}{}>, and even C<s{}//>.  If single quotes are
+used C<s'''>, then the regexp and replacement are treated as single
+quoted strings and there are no substitutions.  C<s///> in list context
+returns the same thing as in scalar context, i.e., the number of
+matches.
+
+B<The split operator>
+
+The B<C<split> > function can also optionally use a matching operator
+C<m//> to split a string.  C<split /regexp/, string, limit> splits
+C<string> into a list of substrings and returns that list.  The regexp
+is used to match the character sequence that the C<string> is split
+with respect to.  The C<limit>, if present, constrains splitting into
+no more than C<limit> number of strings.  For example, to split a
+string into words, use
+
+    $x = "Calvin and Hobbes";
+    @words = split /\s+/, $x;  # $word[0] = 'Calvin'
+                               # $word[1] = 'and'
+                               # $word[2] = 'Hobbes'
+
+If the empty regexp C<//> is used, the regexp always matches and
+the string is split into individual characters.  If the regexp has
+groupings, then list produced contains the matched substrings from the
+groupings as well.  For instance,
+
+    $x = "/usr/bin/perl";
+    @dirs = split m!/!, $x;  # $dirs[0] = ''
+                             # $dirs[1] = 'usr'
+                             # $dirs[2] = 'bin'
+                             # $dirs[3] = 'perl'
+    @parts = split m!(/)!, $x;  # $parts[0] = ''
+                                # $parts[1] = '/'
+                                # $parts[2] = 'usr'
+                                # $parts[3] = '/'
+                                # $parts[4] = 'bin'
+                                # $parts[5] = '/'
+                                # $parts[6] = 'perl'
+
+Since the first character of $x matched the regexp, C<split> prepended
+an empty initial element to the list.
+
+If you have read this far, congratulations! You now have all the basic
+tools needed to use regular expressions to solve a wide range of text
+processing problems.  If this is your first time through the tutorial,
+why not stop here and play around with regexps a while...  S<Part 2>
+concerns the more esoteric aspects of regular expressions and those
+concepts certainly aren't needed right at the start.
+
+=head1 Part 2: Power tools
+
+OK, you know the basics of regexps and you want to know more.  If
+matching regular expressions is analogous to a walk in the woods, then
+the tools discussed in Part 1 are analogous to topo maps and a
+compass, basic tools we use all the time.  Most of the tools in part 2
+are are analogous to flare guns and satellite phones.  They aren't used
+too often on a hike, but when we are stuck, they can be invaluable.
+
+What follows are the more advanced, less used, or sometimes esoteric
+capabilities of perl regexps.  In Part 2, we will assume you are
+comfortable with the basics and concentrate on the new features.
+
+=head2 More on characters, strings, and character classes
+
+There are a number of escape sequences and character classes that we
+haven't covered yet.
+
+There are several escape sequences that convert characters or strings
+between upper and lower case.  C<\l> and C<\u> convert the next
+character to lower or upper case, respectively:
+
+    $x = "perl";
+    $string =~ /\u$x/;  # matches 'Perl' in $string
+    $x = "M(rs?|s)\\."; # note the double backslash
+    $string =~ /\l$x/;  # matches 'mr.', 'mrs.', and 'ms.',
+
+C<\L> and C<\U> converts a whole substring, delimited by C<\L> or
+C<\U> and C<\E>, to lower or upper case:
+
+    $x = "This word is in lower case:\L SHOUT\E";
+    $x =~ /shout/;       # matches
+    $x = "I STILL KEYPUNCH CARDS FOR MY 360"
+    $x =~ /\Ukeypunch/;  # matches punch card string
+
+If there is no C<\E>, case is converted until the end of the
+string. The regexps C<\L\u$word> or C<\u\L$word> convert the first
+character of C<$word> to uppercase and the rest of the characters to
+lowercase.
+
+Control characters can be escaped with C<\c>, so that a control-Z
+character would be matched with C<\cZ>.  The escape sequence
+C<\Q>...C<\E> quotes, or protects most non-alphabetic characters.   For
+instance,
+
+    $x = "\QThat !^*&%~& cat!";
+    $x =~ /\Q!^*&%~&\E/;  # check for rough language
+
+It does not protect C<$> or C<@>, so that variables can still be
+substituted.
+
+With the advent of 5.6.0, perl regexps can handle more than just the
+standard ASCII character set.  Perl now supports B<Unicode>, a standard
+for encoding the character sets from many of the world's written
+languages.  Unicode does this by allowing characters to be more than
+one byte wide.  Perl uses the UTF-8 encoding, in which ASCII characters
+are still encoded as one byte, but characters greater than C<chr(127)>
+may be stored as two or more bytes.
+
+What does this mean for regexps? Well, regexp users don't need to know
+much about perl's internal representation of strings.  But they do need
+to know 1) how to represent Unicode characters in a regexp and 2) when
+a matching operation will treat the string to be searched as a
+sequence of bytes (the old way) or as a sequence of Unicode characters
+(the new way).  The answer to 1) is that Unicode characters greater
+than C<chr(127)> may be represented using the C<\x{hex}> notation,
+with C<hex> a hexadecimal integer:
+
+    use utf8;    # We will be doing Unicode processing
+    /\x{263a}/;  # match a Unicode smiley face :)
+
+Unicode characters in the range of 128-255 use two hexadecimal digits
+with braces: C<\x{ab}>.  Note that this is different than C<\xab>,
+which is just a hexadecimal byte with no Unicode
+significance.
+
+Figuring out the hexadecimal sequence of a Unicode character you want
+or deciphering someone else's hexadecimal Unicode regexp is about as
+much fun as programming in machine code.  So another way to specify
+Unicode characters is to use the S<B<named character> > escape
+sequence C<\N{name}>.  C<name> is a name for the Unicode character, as
+specified in the Unicode standard.  For instance, if we wanted to
+represent or match the astrological sign for the planet Mercury, we
+could use
+
+    use utf8;              # We will be doing Unicode processing
+    use charnames ":full"; # use named chars with Unicode full names
+    $x = "abc\N{MERCURY}def";
+    $x =~ /\N{MERCURY}/;   # matches
+
+One can also use short names or restrict names to a certain alphabet:
+
+    use utf8;              # We will be doing Unicode processing
+
+    use charnames ':full';
+    print "\N{GREEK SMALL LETTER SIGMA} is called sigma.\n";
+
+    use charnames ":short";
+    print "\N{greek:Sigma} is an upper-case sigma.\n";
+
+    use charnames qw(greek);
+    print "\N{sigma} is Greek sigma\n";
+
+A list of full names is found in the file Names.txt in the
+lib/perl5/5.6.0/unicode directory.
+
+The answer to requirement 2), as of 5.6.0, is that if a regexp
+contains Unicode characters, the string is searched as a sequence of
+Unicode characters.  Otherwise, the string is searched as a sequence of
+bytes.  If the string is being searched as a sequence of Unicode
+characters, but matching a single byte is required, we can use the C<\C>
+escape sequence.  C<\C> is a character class akin to C<.> except that
+it matches I<any> byte 0-255.  So
+
+    use utf8;              # We will be doing Unicode processing
+    use charnames ":full"; # use named chars with Unicode full names
+    $x = "a";
+    $x =~ /\C/;  # matches 'a', eats one byte
+    $x = "";
+    $x =~ /\C/;  # doesn't match, no bytes to match
+    $x = "\N{MERCURY}";  # two-byte Unicode character
+    $x =~ /\C/;  # matches, but dangerous!
+
+The last regexp matches, but is dangerous because the string
+I<character> position is no longer synchronized to the string I<byte>
+position.  This generates the warning 'Malformed UTF-8
+character'.  C<\C> is best used for matching the binary data in strings
+with binary data intermixed with Unicode characters.
+
+Let us now discuss the rest of the character classes.  Just as with
+Unicode characters, there are named Unicode character classes
+represented by the C<\p{name}> escape sequence.  Closely associated is
+the C<\P{name}> character class, which is the negation of the
+C<\p{name}> class.  For example, to match lower and uppercase
+characters,
+
+    use utf8;              # We will be doing Unicode processing
+    use charnames ":full"; # use named chars with Unicode full names
+    $x = "BOB";
+    $x =~ /^\p{IsUpper}/;   # matches, uppercase char class
+    $x =~ /^\P{IsUpper}/;   # doesn't match, char class sans uppercase
+    $x =~ /^\p{IsLower}/;   # doesn't match, lowercase char class
+    $x =~ /^\P{IsLower}/;   # matches, char class sans lowercase
+
+If a C<name> is just one letter, the braces can be dropped.  For
+instance, C<\pM> is the character class of Unicode 'marks'.  Here is
+the association between some Perl named classes and the traditional
+Unicode classes:
+
+    Perl class name  Unicode class name
+
+    IsAlpha          Lu, Ll, or Lo
+    IsAlnum          Lu, Ll, Lo, or Nd
+    IsASCII          $code le 127
+    IsCntrl          C
+    IsDigit          Nd
+    IsGraph          [^C] and $code ne "0020"
+    IsLower          Ll
+    IsPrint          [^C]
+    IsPunct          P
+    IsSpace          Z, or ($code lt "0020" and chr(hex $code) is a \s)
+    IsUpper          Lu
+    IsWord           Lu, Ll, Lo, Nd or $code eq "005F"
+    IsXDigit         $code =~ /^00(3[0-9]|[46][1-6])$/
+
+For a full list of Perl class names, consult the mktables.PL program
+in the lib/perl5/5.6.0/unicode directory.
+
+C<\X> is an abbreviation for a character class sequence that includes
+the Unicode 'combining character sequences'.  A 'combining character
+sequence' is a base character followed by any number of combining
+characters.  An example of a combining character is an accent.   Using
+the Unicode full names, e.g., S<C<A + COMBINING RING> > is a combining
+character sequence with base character C<A> and combining character
+S<C<COMBINING RING> >, which translates in Danish to A with the circle
+atop it, as in the word Angstrom.  C<\X> is equivalent to C<\PM\pM*}>,
+i.e., a non-mark followed by one or more marks.
+
+As if all those classes weren't enough, Perl also defines POSIX style
+character classes.  These have the form C<[:name:]>, with C<name> the
+name of the POSIX class.  The POSIX classes are alpha, alnum, ascii,
+cntrl, digit, graph, lower, print, punct, space, upper, word, and
+xdigit.  If C<utf8> is being used, then these classes are defined the
+same as their corresponding perl Unicode classes: C<[:upper:]> is the
+same as C<\p{IsUpper}>, etc.  The POSIX character classes, however,
+don't require using C<utf8>.  The C<[:digit:]>, C<[:word:]>, and
+C<[:space:]> correspond to the familiar C<\d>, C<\w>, and C<\s>
+character classes.  To negate a POSIX class, put a C<^> in front of the
+name, so that, e.g., C<[:^digit:]> corresponds to C<\D> and under
+C<utf8>, C<\P{IsDigit}>.  The Unicode and POSIX character classes can
+be used just like C<\d>, both inside and outside of character classes:
+
+    /\s+[abc[:digit:]xyz]\s*/;  # match a,b,c,x,y,z, or a digit
+    /^=item\s[:digit:]/;        # match '=item',
+                                # followed by a space and a digit
+    use utf8;
+    use charnames ":full";
+    /\s+[abc\p{IsDigit}xyz]\s+/;  # match a,b,c,x,y,z, or a digit
+    /^=item\s\p{IsDigit}/;        # match '=item',
+                                  # followed by a space and a digit
+
+Whew! That is all the rest of the characters and character classes.
+
+=head2 Compiling and saving regular expressions
+
+In Part 1 we discussed the C<//o> modifier, which compiles a regexp
+just once.  This suggests that a compiled regexp is some data structure
+that can be stored once and used again and again.  The regexp quote
+C<qr//> does exactly that: C<qr/string/> compiles the C<string> as a
+regexp and transforms the result into a form that can be assigned to a
+variable:
+
+    $reg = qr/foo+bar?/;  # reg contains a compiled regexp
+
+Then C<$reg> can be used as a regexp:
+
+    $x = "fooooba";
+    $x =~ $reg;     # matches, just like /foo+bar?/
+    $x =~ /$reg/;   # same thing, alternate form
+
+C<$reg> can also be interpolated into a larger regexp:
+
+    $x =~ /(abc)?$reg/;  # still matches
+
+As with the matching operator, the regexp quote can use different
+delimiters, e.g., C<qr!!>, C<qr{}> and C<qr~~>.  The single quote
+delimiters C<qr''> prevent any interpolation from taking place.
+
+Pre-compiled regexps are useful for creating dynamic matches that
+don't need to be recompiled each time they are encountered.  Using
+pre-compiled regexps, C<simple_grep> program can be expanded into a
+program that matches multiple patterns:
+
+    % cat > multi_grep
+    #!/usr/bin/perl
+    # multi_grep - match any of <number> regexps
+    # usage: multi_grep <number> regexp1 regexp2 ... file1 file2 ...
+
+    $number = shift;
+    $regexp[$_] = shift foreach (0..$number-1);
+    @compiled = map qr/$_/, @regexp;
+    while ($line = <>) {
+        foreach $pattern (@compiled) {
+            if ($line =~ /$pattern/) {
+                print $line;
+                last;  # we matched, so move onto the next line
+            }
+        }
+    }
+    ^D
+
+    % multi_grep 2 last for multi_grep
+        $regexp[$_] = shift foreach (0..$number-1);
+            foreach $pattern (@compiled) {
+                    last;
+
+Storing pre-compiled regexps in an array C<@compiled> allows us to
+simply loop through the regexps without any recompilation, thus gaining
+flexibility without sacrificing speed.
+
+=head2 Embedding comments and modifiers in a regular expression
+
+Starting with this section, we will be discussing Perl's set of
+B<extended patterns>.  These are extensions to the traditional regular
+expression syntax that provide powerful new tools for pattern
+matching.  We have already seen extensions in the form of the minimal
+matching constructs C<??>, C<*?>, C<+?>, C<{n,m}?>, and C<{n,}?>.  The
+rest of the extensions below have the form C<(?char...)>, where the
+C<char> is a character that determines the type of extension.
+
+The first extension is an embedded comment C<(?#text)>.  This embeds a
+comment into the regular expression without affecting its meaning.  The
+comment should not have any closing parentheses in the text.  An
+example is
+
+    /(?# Match an integer:)[+-]?\d+/;
+
+This style of commenting has been largely superseded by the raw,
+freeform commenting that is allowed with the C<//x> modifier.
+
+The modifiers C<//i>, C<//m>, C<//s>, and C<//x> can also embedded in
+a regexp using C<(?i)>, C<(?m)>, C<(?s)>, and C<(?x)>.  For instance,
+
+    /(?i)yes/;  # match 'yes' case insensitively
+    /yes/i;     # same thing
+    /(?x)(          # freeform version of an integer regexp
+             [+-]?  # match an optional sign
+             \d+    # match a sequence of digits
+         )
+    /x;
+
+Embedded modifiers can have two important advantages over the usual
+modifiers.  Embedded modifiers allow a custom set of modifiers to
+I<each> regexp pattern.  This is great for matching an array of regexps
+that must have different modifiers:
+
+    $pattern[0] = '(?i)doctor';
+    $pattern[1] = 'Johnson';
+    ...
+    while (<>) {
+        foreach $patt (@pattern) {
+            print if /$patt/;
+        }
+    }
+
+The second advantage is that embedded modifiers only affect the regexp
+inside the group the embedded modifier is contained in.  So grouping
+can be used to localize the modifier's effects:
+
+    /Answer: ((?i)yes)/;  # matches 'Answer: yes', 'Answer: YES', etc.
+
+Embedded modifiers can also turn off any modifiers already present
+by using, e.g., C<(?-i)>.  Modifiers can also be combined into
+a single expression, e.g., C<(?s-i)> turns on single line mode and
+turns off case insensitivity.
+
+=head2 Non-capturing groupings
+
+We noted in Part 1 that groupings C<()> had two distinct functions: 1)
+group regexp elements together as a single unit, and 2) extract, or
+capture, substrings that matched the regexp in the
+grouping.  Non-capturing groupings, denoted by C<(?:regexp)>, allow the
+regexp to be treated as a single unit, but don't extract substrings or
+set matching variables C<$1>, etc.  Both capturing and non-capturing
+groupings are allowed to co-exist in the same regexp.  Because there is
+no extraction, non-capturing groupings are faster than capturing
+groupings.  Non-capturing groupings are also handy for choosing exactly
+which parts of a regexp are to be extracted to matching variables:
+
+    # match a number, $1-$4 are set, but we only want $1
+    /([+-]?\ *(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?)/;
+
+    # match a number faster , only $1 is set
+    /([+-]?\ *(?:\d+(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+)?)/;
+
+    # match a number, get $1 = whole number, $2 = exponent
+    /([+-]?\ *(?:\d+(?:\.\d*)?|\.\d+)(?:[eE]([+-]?\d+))?)/;
+
+Non-capturing groupings are also useful for removing nuisance
+elements gathered from a split operation:
+
+    $x = '12a34b5';
+    @num = split /(a|b)/, $x;    # @num = ('12','a','34','b','5')
+    @num = split /(?:a|b)/, $x;  # @num = ('12','34','5')
+
+Non-capturing groupings may also have embedded modifiers:
+C<(?i-m:regexp)> is a non-capturing grouping that matches C<regexp>
+case insensitively and turns off multi-line mode.
+
+=head2 Looking ahead and looking behind
+
+This section concerns the lookahead and lookbehind assertions.  First,
+a little background.
+
+In Perl regular expressions, most regexp elements 'eat up' a certain
+amount of string when they match.  For instance, the regexp element
+C<[abc}]> eats up one character of the string when it matches, in the
+sense that perl moves to the next character position in the string
+after the match.  There are some elements, however, that don't eat up
+characters (advance the character position) if they match.  The examples
+we have seen so far are the anchors.  The anchor C<^> matches the
+beginning of the line, but doesn't eat any characters.  Similarly, the
+word boundary anchor C<\b> matches, e.g., if the character to the left
+is a word character and the character to the right is a non-word
+character, but it doesn't eat up any characters itself.  Anchors are
+examples of 'zero-width assertions'.  Zero-width, because they consume
+no characters, and assertions, because they test some property of the
+string.  In the context of our walk in the woods analogy to regexp
+matching, most regexp elements move us along a trail, but anchors have
+us stop a moment and check our surroundings.  If the local environment
+checks out, we can proceed forward.  But if the local environment
+doesn't satisfy us, we must backtrack.
+
+Checking the environment entails either looking ahead on the trail,
+looking behind, or both.  C<^> looks behind, to see that there are no
+characters before.  C<$> looks ahead, to see that there are no
+characters after.  C<\b> looks both ahead and behind, to see if the
+characters on either side differ in their 'word'-ness.
+
+The lookahead and lookbehind assertions are generalizations of the
+anchor concept.  Lookahead and lookbehind are zero-width assertions
+that let us specify which characters we want to test for.  The
+lookahead assertion is denoted by C<(?=regexp)> and the lookbehind
+assertion is denoted by C<< (?<=fixed-regexp) >>.  Some examples are
+
+    $x = "I catch the housecat 'Tom-cat' with catnip";
+    $x =~ /cat(?=\s+)/;  # matches 'cat' in 'housecat'
+    @catwords = ($x =~ /(?<=\s)cat\w+/g);  # matches,
+                                           # $catwords[0] = 'catch'
+                                           # $catwords[1] = 'catnip'
+    $x =~ /\bcat\b/;  # matches 'cat' in 'Tom-cat'
+    $x =~ /(?<=\s)cat(?=\s)/; # doesn't match; no isolated 'cat' in
+                              # middle of $x
+
+Note that the parentheses in C<(?=regexp)> and C<< (?<=regexp) >> are
+non-capturing, since these are zero-width assertions.  Thus in the
+second regexp, the substrings captured are those of the whole regexp
+itself.  Lookahead C<(?=regexp)> can match arbitrary regexps, but
+lookbehind C<< (?<=fixed-regexp) >> only works for regexps of fixed
+width, i.e., a fixed number of characters long.  Thus
+C<< (?<=(ab|bc)) >> is fine, but C<< (?<=(ab)*) >> is not.  The
+negated versions of the lookahead and lookbehind assertions are
+denoted by C<(?!regexp)> and C<< (?<!fixed-regexp) >> respectively.
+They evaluate true if the regexps do I<not> match:
+
+    $x = "foobar";
+    $x =~ /foo(?!bar)/;  # doesn't match, 'bar' follows 'foo'
+    $x =~ /foo(?!baz)/;  # matches, 'baz' doesn't follow 'foo'
+    $x =~ /(?<!\s)foo/;  # matches, there is no \s before 'foo'
+
+=head2 Using independent subexpressions to prevent backtracking
+
+The last few extended patterns in this tutorial are experimental as of
+5.6.0.  Play with them, use them in some code, but don't rely on them
+just yet for production code.
+
+S<B<Independent subexpressions> > are regular expressions, in the
+context of a larger regular expression, that function independently of
+the larger regular expression.  That is, they consume as much or as
+little of the string as they wish without regard for the ability of
+the larger regexp to match.  Independent subexpressions are represented
+by C<< (?>regexp) >>.  We can illustrate their behavior by first
+considering an ordinary regexp:
+
+    $x = "ab";
+    $x =~ /a*ab/;  # matches
+
+This obviously matches, but in the process of matching, the
+subexpression C<a*> first grabbed the C<a>.  Doing so, however,
+wouldn't allow the whole regexp to match, so after backtracking, C<a*>
+eventually gave back the C<a> and matched the empty string.  Here, what
+C<a*> matched was I<dependent> on what the rest of the regexp matched.
+
+Contrast that with an independent subexpression:
+
+    $x =~ /(?>a*)ab/;  # doesn't match!
+
+The independent subexpression C<< (?>a*) >> doesn't care about the rest
+of the regexp, so it sees an C<a> and grabs it.  Then the rest of the
+regexp C<ab> cannot match.  Because C<< (?>a*) >> is independent, there
+is no backtracking and and the independent subexpression does not give
+up its C<a>.  Thus the match of the regexp as a whole fails.  A similar
+behavior occurs with completely independent regexps:
+
+    $x = "ab";
+    $x =~ /a*/g;   # matches, eats an 'a'
+    $x =~ /\Gab/g; # doesn't match, no 'a' available
+
+Here C<//g> and C<\G> create a 'tag team' handoff of the string from
+one regexp to the other.  Regexps with an independent subexpression are
+much like this, with a handoff of the string to the independent
+subexpression, and a handoff of the string back to the enclosing
+regexp.
+
+The ability of an independent subexpression to prevent backtracking
+can be quite useful.  Suppose we want to match a non-empty string
+enclosed in parentheses up to two levels deep.  Then the following
+regexp matches:
+
+    $x = "abc(de(fg)h";  # unbalanced parentheses
+    $x =~ /\( ( [^()]+ | \([^()]*\) )+ \)/x;
+
+The regexp matches an open parenthesis, one or more copies of an
+alternation, and a close parenthesis.  The alternation is two-way, with
+the first alternative C<[^()]+> matching a substring with no
+parentheses and the second alternative C<\([^()]*\)>  matching a
+substring delimited by parentheses.  The problem with this regexp is
+that it is pathological: it has nested indeterminate quantifiers
+ of the form C<(a+|b)+>.  We discussed in Part 1 how nested quantifiers
+like this could take an exponentially long time to execute if there
+was no match possible.  To prevent the exponential blowup, we need to
+prevent useless backtracking at some point.  This can be done by
+enclosing the inner quantifier as an independent subexpression:
+
+    $x =~ /\( ( (?>[^()]+) | \([^()]*\) )+ \)/x;
+
+Here, C<< (?>[^()]+) >> breaks the degeneracy of string partitioning
+by gobbling up as much of the string as possible and keeping it.   Then
+match failures fail much more quickly.
+
+=head2 Conditional expressions
+
+A S<B<conditional expression> > is a form of if-then-else statement
+that allows one to choose which patterns are to be matched, based on
+some condition.  There are two types of conditional expression:
+C<(?(condition)yes-regexp)> and
+C<(?(condition)yes-regexp|no-regexp)>.  C<(?(condition)yes-regexp)> is
+like an S<C<'if () {}'> > statement in Perl.  If the C<condition> is true,
+the C<yes-regexp> will be matched.  If the C<condition> is false, the
+C<yes-regexp> will be skipped and perl will move onto the next regexp
+element.  The second form is like an S<C<'if () {} else {}'> > statement
+in Perl.  If the C<condition> is true, the C<yes-regexp> will be
+matched, otherwise the C<no-regexp> will be matched.
+
+The C<condition> can have two forms.  The first form is simply an
+integer in parentheses C<(integer)>.  It is true if the corresponding
+backreference C<\integer> matched earlier in the regexp.  The second
+form is a bare zero width assertion C<(?...)>, either a
+lookahead, a lookbehind, or a code assertion (discussed in the next
+section).
+
+The integer form of the C<condition> allows us to choose, with more
+flexibility, what to match based on what matched earlier in the
+regexp. This searches for words of the form C<"$x$x"> or
+C<"$x$y$y$x">:
+
+    % simple_grep '^(\w+)(\w+)?(?(2)\2\1|\1)$' /usr/dict/words
+    beriberi
+    coco
+    couscous
+    deed
+    ...
+    toot
+    toto
+    tutu
+
+The lookbehind C<condition> allows, along with backreferences,
+an earlier part of the match to influence a later part of the
+match.  For instance,
+
+    /[ATGC]+(?(?<=AA)G|C)$/;
+
+matches a DNA sequence such that it either ends in C<AAG>, or some
+other base pair combination and C<C>.  Note that the form is
+C<< (?(?<=AA)G|C) >> and not C<< (?((?<=AA))G|C) >>; for the
+lookahead, lookbehind or code assertions, the parentheses around the
+conditional are not needed.
+
+=head2 A bit of magic: executing Perl code in a regular expression
+
+Normally, regexps are a part of Perl expressions.
+S<B<Code evaluation> > expressions turn that around by allowing
+arbitrary Perl code to be a part of of a regexp.  A code evaluation
+expression is denoted C<(?{code})>, with C<code> a string of Perl
+statements.
+
+Code expressions are zero-width assertions, and the value they return
+depends on their environment.  There are two possibilities: either the
+code expression is used as a conditional in a conditional expression
+C<(?(condition)...)>, or it is not.  If the code expression is a
+conditional, the code is evaluated and the result (i.e., the result of
+the last statement) is used to determine truth or falsehood.  If the
+code expression is not used as a conditional, the assertion always
+evaluates true and the result is put into the special variable
+C<$^R>.  The variable C<$^R> can then be used in code expressions later
+in the regexp.  Here are some silly examples:
+
+    $x = "abcdef";
+    $x =~ /abc(?{print "Hi Mom!";})def/; # matches,
+                                         # prints 'Hi Mom!'
+    $x =~ /aaa(?{print "Hi Mom!";})def/; # doesn't match,
+                                         # no 'Hi Mom!'
+    $x =~ /abc(?{print "Hi Mom!";})ddd/; # doesn't match,
+                                         # no 'Hi Mom!'
+    $x =~ /(?{print "Hi Mom!";})/;       # matches,
+                                         # prints 'Hi Mom!'
+    $x =~ /(?{$c = 1;})(?{print "$c";})/;  # matches,
+                                           # prints '1'
+    $x =~ /(?{$c = 1;})(?{print "$^R";})/; # matches,
+                                           # prints '1'
+
+The bit of magic mentioned in the section title occurs when the regexp
+backtracks in the process of searching for a match.  If the regexp
+backtracks over a code expression and if the variables used within are
+localized using C<local>, the changes in the variables produced by the
+code expression are undone! Thus, if we wanted to count how many times
+a character got matched inside a group, we could use, e.g.,
+
+    $x = "aaaa";
+    $count = 0;  # initialize 'a' count
+    $c = "bob";  # test if $c gets clobbered
+    $x =~ /(?{local $c = 0;})         # initialize count
+           ( a                        # match 'a'
+             (?{local $c = $c + 1;})  # increment count
+           )*                         # do this any number of times,
+           aa                         # but match 'aa' at the end
+           (?{$count = $c;})          # copy local $c var into $count
+          /x;
+    print "'a' count is $count, \$c variable is '$c'\n";
+
+This prints
+
+    'a' count is 2, $c variable is 'bob'
+
+If we replace the S<C< (?{local $c = $c + 1;})> > with
+S<C< (?{$c = $c + 1;})> >, the variable changes are I<not> undone
+during backtracking, and we get
+
+    'a' count is 4, $c variable is 'bob'
+
+Note that only localized variable changes are undone.  Other side
+effects of code expression execution are permanent.  Thus
+
+    $x = "aaaa";
+    $x =~ /(a(?{print "Yow\n";}))*aa/;
+
+produces
+
+   Yow
+   Yow
+   Yow
+   Yow
+
+The result C<$^R> is automatically localized, so that it will behave
+properly in the presence of backtracking.
+
+This example uses a code expression in a conditional to match the
+article 'the' in either English or German:
+
+    $lang = 'DE';  # use German
+    ...
+    $text = "das";
+    print "matched\n"
+        if $text =~ /(?(?{
+                          $lang eq 'EN'; # is the language English?
+                         })
+                       the |             # if so, then match 'the'
+                       (die|das|der)     # else, match 'die|das|der'
+                     )
+                    /xi;
+
+Note that the syntax here is C<(?(?{...})yes-regexp|no-regexp)>, not
+C<(?((?{...}))yes-regexp|no-regexp)>.  In other words, in the case of a
+code expression, we don't need the extra parentheses around the
+conditional.
+
+If you try to use code expressions with interpolating variables, perl
+may surprise you:
+
+    $bar = 5;
+    $pat = '(?{ 1 })';
+    /foo(?{ $bar })bar/; # compiles ok, $bar not interpolated
+    /foo(?{ 1 })$bar/;   # compile error!
+    /foo${pat}bar/;      # compile error!
+
+    $pat = qr/(?{ $foo = 1 })/;  # precompile code regexp
+    /foo${pat}bar/;      # compiles ok
+
+If a regexp has (1) code expressions and interpolating variables,or
+(2) a variable that interpolates a code expression, perl treats the
+regexp as an error. If the code expression is precompiled into a
+variable, however, interpolating is ok. The question is, why is this
+an error?
+
+The reason is that variable interpolation and code expressions
+together pose a security risk.  The combination is dangerous because
+many programmers who write search engines often take user input and
+plug it directly into a regexp:
+
+    $regexp = <>;       # read user-supplied regexp
+    $chomp $regexp;     # get rid of possible newline
+    $text =~ /$regexp/; # search $text for the $regexp
+
+If the C<$regexp> variable contains a code expression, the user could
+then execute arbitrary Perl code.  For instance, some joker could
+search for S<C<system('rm -rf *');> > to erase your files.  In this
+sense, the combination of interpolation and code expressions B<taints>
+your regexp.  So by default, using both interpolation and code
+expressions in the same regexp is not allowed.  If you're not
+concerned about malicious users, it is possible to bypass this
+security check by invoking S<C<use re 'eval'> >:
+
+    use re 'eval';       # throw caution out the door
+    $bar = 5;
+    $pat = '(?{ 1 })';
+    /foo(?{ 1 })$bar/;   # compiles ok
+    /foo${pat}bar/;      # compiles ok
+
+Another form of code expression is the S<B<pattern code expression> >.
+The pattern code expression is like a regular code expression, except
+that the result of the code evaluation is treated as a regular
+expression and matched immediately.  A simple example is
+
+    $length = 5;
+    $char = 'a';
+    $x = 'aaaaabb';
+    $x =~ /(??{$char x $length})/x; # matches, there are 5 of 'a'
+
+
+This final example contains both ordinary and pattern code
+expressions.   It detects if a binary string C<1101010010001...> has a
+Fibonacci spacing 0,1,1,2,3,5,...  of the C<1>'s:
+
+    $s0 = 0; $s1 = 1; # initial conditions
+    $x = "1101010010001000001";
+    print "It is a Fibonacci sequence\n"
+        if $x =~ /^1         # match an initial '1'
+                    (
+                       (??{'0' x $s0}) # match $s0 of '0'
+                       1               # and then a '1'
+                       (?{
+                          $largest = $s0;   # largest seq so far
+                          $s2 = $s1 + $s0;  # compute next term
+                          $s0 = $s1;        # in Fibonacci sequence
+                          $s1 = $s2;
+                         })
+                    )+   # repeat as needed
+                  $      # that is all there is
+                 /x;
+    print "Largest sequence matched was $largest\n";
+
+This prints
+
+    It is a Fibonacci sequence
+    Largest sequence matched was 5
+
+Ha! Try that with your garden variety regexp package...
+
+Note that the variables C<$s0> and C<$s1> are not substituted when the
+regexp is compiled, as happens for ordinary variables outside a code
+expression.  Rather, the code expressions are evaluated when perl
+encounters them during the search for a match.
+
+The regexp without the C<//x> modifier is
+
+    /^1((??{'0'x$s0})1(?{$largest=$s0;$s2=$s1+$s0$s0=$s1;$s1=$s2;}))+$/;
+
+and is a great start on an Obfuscated Perl entry :-) When working with
+code and conditional expressions, the extended form of regexps is
+almost necessary in creating and debugging regexps.
+
+=head2 Pragmas and debugging
+
+Speaking of debugging, there are several pragmas available to control
+and debug regexps in Perl.  We have already encountered one pragma in
+the previous section, S<C<use re 'eval';> >, that allows variable
+interpolation and code expressions to coexist in a regexp.  The other
+pragmas are
+
+    use re 'taint';
+    $tainted = <>;
+    @parts = ($tainted =~ /(\w+)\s+(\w+)/; # @parts is now tainted
+
+The C<taint> pragma causes any substrings from a match with a tainted
+variable to be tainted as well.  This is not normally the case, as
+regexps are often used to extract the safe bits from a tainted
+variable.  Use C<taint> when you are not extracting safe bits, but are
+performing some other processing.  Both C<taint> and C<eval> pragmas
+are lexically scoped, which means they are in effect only until
+the end of the block enclosing the pragmas.
+
+    use re 'debug';
+    /^(.*)$/s;       # output debugging info
+
+    use re 'debugcolor';
+    /^(.*)$/s;       # output debugging info in living color
+
+The global C<debug> and C<debugcolor> pragmas allow one to get
+detailed debugging info about regexp compilation and
+execution.  C<debugcolor> is the same as debug, except the debugging
+information is displayed in color on terminals that can display
+termcap color sequences.  Here is example output:
+
+    % perl -e 'use re "debug"; "abc" =~ /a*b+c/;'
+    Compiling REx `a*b+c'
+    size 9 first at 1
+       1: STAR(4)
+       2:   EXACT <a>(0)
+       4: PLUS(7)
+       5:   EXACT <b>(0)
+       7: EXACT <c>(9)
+       9: END(0)
+    floating `bc' at 0..2147483647 (checking floating) minlen 2
+    Guessing start of match, REx `a*b+c' against `abc'...
+    Found floating substr `bc' at offset 1...
+    Guessed: match at offset 0
+    Matching REx `a*b+c' against `abc'
+      Setting an EVAL scope, savestack=3
+       0 <> <abc>             |  1:  STAR
+                               EXACT <a> can match 1 times out of 32767...
+      Setting an EVAL scope, savestack=3
+       1 <a> <bc>             |  4:    PLUS
+                               EXACT <b> can match 1 times out of 32767...
+      Setting an EVAL scope, savestack=3
+       2 <ab> <c>             |  7:      EXACT <c>
+       3 <abc> <>             |  9:      END
+    Match successful!
+    Freeing REx: `a*b+c'
+
+If you have gotten this far into the tutorial, you can probably guess
+what the different parts of the debugging output tell you.  The first
+part
+
+    Compiling REx `a*b+c'
+    size 9 first at 1
+       1: STAR(4)
+       2:   EXACT <a>(0)
+       4: PLUS(7)
+       5:   EXACT <b>(0)
+       7: EXACT <c>(9)
+       9: END(0)
+
+describes the compilation stage.  C<STAR(4)> means that there is a
+starred object, in this case C<'a'>, and if it matches, goto line 4,
+i.e., C<PLUS(7)>.  The middle lines describe some heuristics and
+optimizations performed before a match:
+
+    floating `bc' at 0..2147483647 (checking floating) minlen 2
+    Guessing start of match, REx `a*b+c' against `abc'...
+    Found floating substr `bc' at offset 1...
+    Guessed: match at offset 0
+
+Then the match is executed and the remaining lines describe the
+process:
+
+    Matching REx `a*b+c' against `abc'
+      Setting an EVAL scope, savestack=3
+       0 <> <abc>             |  1:  STAR
+                               EXACT <a> can match 1 times out of 32767...
+      Setting an EVAL scope, savestack=3
+       1 <a> <bc>             |  4:    PLUS
+                               EXACT <b> can match 1 times out of 32767...
+      Setting an EVAL scope, savestack=3
+       2 <ab> <c>             |  7:      EXACT <c>
+       3 <abc> <>             |  9:      END
+    Match successful!
+    Freeing REx: `a*b+c'
+
+Each step is of the form S<C<< n <x> <y> >> >, with C<< <x> >> the
+part of the string matched and C<< <y> >> the part not yet
+matched.  The S<C<< |  1:  STAR >> > says that perl is at line number 1
+n the compilation list above.  See
+L<perldebguts/"Debugging regular expressions"> for much more detail.
+
+An alternative method of debugging regexps is to embed C<print>
+statements within the regexp.  This provides a blow-by-blow account of
+the backtracking in an alternation:
+
+    "that this" =~ m@(?{print "Start at position ", pos, "\n";})
+                     t(?{print "t1\n";})
+                     h(?{print "h1\n";})
+                     i(?{print "i1\n";})
+                     s(?{print "s1\n";})
+                         |
+                     t(?{print "t2\n";})
+                     h(?{print "h2\n";})
+                     a(?{print "a2\n";})
+                     t(?{print "t2\n";})
+                     (?{print "Done at position ", pos, "\n";})
+                    @x;
+
+prints
+
+    Start at position 0
+    t1
+    h1
+    t2
+    h2
+    a2
+    t2
+    Done at position 4
+
+=head1 BUGS
+
+Code expressions, conditional expressions, and independent expressions
+are B<experimental>.  Don't use them in production code.  Yet.
+
+=head1 SEE ALSO
+
+This is just a tutorial.  For the full story on perl regular
+expressions, see the L<perlre> regular expressions reference page.
+
+For more information on the matching C<m//> and substitution C<s///>
+operators, see L<perlop/"Regexp Quote-Like Operators">.  For
+information on the C<split> operation, see L<perlfunc/split>.
+
+For an excellent all-around resource on the care and feeding of
+regular expressions, see the book I<Mastering Regular Expressions> by
+Jeffrey Friedl (published by O'Reilly, ISBN 1556592-257-3).
+
+=head1 AUTHOR AND COPYRIGHT
+
+Copyright (c) 2000 Mark Kvale
+All rights reserved.
+
+This document may be distributed under the same terms as Perl itself.
+
+=head2 Acknowledgments
+
+The inspiration for the stop codon DNA example came from the ZIP
+code example in chapter 7 of I<Mastering Regular Expressions>.
+
+The author would like to thank Jeff Pinyan, Andrew Johnson, Peter
+Haworth, Ronald J Kimball, and Joe Smith for all their helpful
+comments.
+
+=cut
+
index 5cc1969..e105b00 100644 (file)
@@ -701,8 +701,7 @@ can disable or promote into fatal errors specific warnings using
 C<__WARN__> hooks, as described in L<perlvar> and L<perlfunc/warn>.
 See also L<perldiag> and L<perltrap>.  A new, fine-grained warning
 facility is also available if you want to manipulate entire classes
-of warnings; see L<warnings> (or better yet, its source code) about
-that.
+of warnings; see L<warnings> or L<perllexwarn>.
 
 =item B<-W>
 
@@ -810,6 +809,18 @@ Relevant only if your perl executable was built with B<-DDEBUGGING>,
 this controls the behavior of global destruction of objects and other
 references.
 
+=item PERL_ROOT (specific to the VMS port)
+
+A translation concealed rooted logical name that contains perl and the
+logical device for the @INC path on VMS only.  Other logical names that
+affect perl on VMS include PERLSHR, PERL_ENV_TABLES, and 
+SYS$TIMEZONE_DIFFERENTIAL but are optional and discussed further in 
+L<perlvms> and in F<README.vms> in the Perl source distribution.
+
+=item SYS$LOGIN (specific to the VMS port)
+
+Used if chdir has no argument and HOME and LOGDIR are not set.
+
 =back
 
 Perl also has environment variables that control how Perl handles data
index 4037487..4185e84 100644 (file)
@@ -32,17 +32,19 @@ program more secure than the corresponding C program.
 You may not use data derived from outside your program to affect
 something else outside your program--at least, not by accident.  All
 command line arguments, environment variables, locale information (see
-L<perllocale>), results of certain system calls (readdir, readlink,
-the gecos field of getpw* calls), and all file input are marked as
-"tainted".  Tainted data may not be used directly or indirectly in any
-command that invokes a sub-shell, nor in any command that modifies
-files, directories, or processes. (B<Important exception>: If you pass
-a list of arguments to either C<system> or C<exec>, the elements of
-that list are B<NOT> checked for taintedness.) Any variable set
-to a value derived from tainted data will itself be tainted,
-even if it is logically impossible for the tainted data
-to alter the variable.  Because taintedness is associated with each
-scalar value, some elements of an array can be tainted and others not.
+L<perllocale>), results of certain system calls (readdir(),
+readlink(), the variable of shmread(), the messages returned by
+msgrcv(), the password, gcos and shell fields returned by the
+getpwxxx() calls), and all file input are marked as "tainted".
+Tainted data may not be used directly or indirectly in any command
+that invokes a sub-shell, nor in any command that modifies files,
+directories, or processes. (B<Important exception>: If you pass a list
+of arguments to either C<system> or C<exec>, the elements of that list
+are B<NOT> checked for taintedness.) Any variable set to a value
+derived from tainted data will itself be tainted, even if it is
+logically impossible for the tainted data to alter the variable.
+Because taintedness is associated with each scalar value, some
+elements of an array can be tainted and others not.
 
 For example:
 
index 04aab98..bfe5b76 100644 (file)
@@ -10,7 +10,8 @@ make your programs easier to read, understand, and maintain.
 
 The most important thing is to run your programs under the B<-w>
 flag at all times.  You may turn it off explicitly for particular
-portions of code via the C<$^W> variable if you must.  You should
+portions of code via the C<use warnings> pragma or the C<$^W> variable 
+if you must.  You should
 also always run under C<use strict> or know the reason why not.
 The C<use sigtrap> and even C<use diagnostics> pragmas may also prove
 useful.
@@ -260,7 +261,8 @@ Line up your transliterations when it makes sense:
 Think about reusability.  Why waste brainpower on a one-shot when you
 might want to do something like it again?  Consider generalizing your
 code.  Consider writing a module or object class.  Consider making your
-code run cleanly with C<use strict> and B<-w> in effect.  Consider giving away
+code run cleanly with C<use strict> and C<use warnings> (or B<-w>) in effect
+Consider giving away
 your code.  Consider changing your whole world view.  Consider... oh,
 never mind.
 
index 46d1a2a..f1b8792 100644 (file)
@@ -154,7 +154,7 @@ of changing them in place:
     }
 
 Notice how this (unprototyped) function doesn't care whether it was
-passed real scalars or arrays.  Perl sees all arugments as one big,
+passed real scalars or arrays.  Perl sees all arguments as one big,
 long, flat parameter list in C<@_>.  This is one area where
 Perl's simple argument-passing style shines.  The C<upcase()>
 function would work perfectly well without changing the C<upcase()>
@@ -1270,7 +1270,7 @@ see L<attributes>.
 
 See L<perlref/"Function Templates"> for more about references and closures.
 See L<perlxs> if you'd like to learn about calling C subroutines from Perl.  
-See L<perlembed> if you'd like to learn about calling PErl subroutines from C.  
+See L<perlembed> if you'd like to learn about calling Perl subroutines from C.  
 See L<perlmod> to learn about bundling up your functions in separate files.
 See L<perlmodlib> to learn what library modules come standard on your system.
 See L<perltoot> to learn how to make object method calls.
index 7b9590e..dfded2e 100644 (file)
@@ -171,7 +171,8 @@ statements C<next>, C<last>, and C<redo>.
 If the LABEL is omitted, the loop control statement
 refers to the innermost enclosing loop.  This may include dynamically
 looking back your call-stack at run time to find the LABEL.  Such
-desperate behavior triggers a warning if you use the B<-w> flag.
+desperate behavior triggers a warning if you use the C<use warnings>
+pragma or the B<-w> flag.
 Unlike a C<foreach> statement, a C<while> statement never implicitly
 localises any variables.
 
@@ -323,7 +324,7 @@ Examples:
 
     for (@ary) { s/foo/bar/ }
 
-    foreach my $elem (@elements) {
+    for my $elem (@elements) {
        $elem *= 2;
     }
 
@@ -352,8 +353,8 @@ Here's how a C programmer might code up a particular algorithm in Perl:
 Whereas here's how a Perl programmer more comfortable with the idiom might
 do it:
 
-    OUTER: foreach my $wid (@ary1) {
-    INNER:   foreach my $jet (@ary2) {
+    OUTER: for my $wid (@ary1) {
+    INNER:   for my $jet (@ary2) {
                next OUTER if $wid > $jet;
                $wid += $jet;
             }
@@ -482,7 +483,7 @@ Or
 
 Or if you are certainly that all the C<&&> clauses are true, you can use
 something like this, which "switches" on the value of the
-C<HTTP_USER_AGENT> envariable.
+C<HTTP_USER_AGENT> environment variable.
 
     #!/usr/bin/perl 
     # pick out jargon file page based on browser
@@ -524,7 +525,7 @@ The C<goto>-EXPR form expects a label name, whose scope will be resolved
 dynamically.  This allows for computed C<goto>s per FORTRAN, but isn't
 necessarily recommended if you're optimizing for maintainability:
 
-    goto ("FOO", "BAR", "GLARCH")[$i];
+    goto(("FOO", "BAR", "GLARCH")[$i]);
 
 The C<goto>-&NAME form is highly magical, and substitutes a call to the
 named subroutine for the currently running subroutine.  This is used by
index 88849dd..3a1cf86 100644 (file)
@@ -4,6 +4,14 @@ perlthrtut - tutorial on threads in Perl
 
 =head1 DESCRIPTION
 
+    WARNING: Threading is an experimental feature.  Both the interface
+    and implementation are subject to change drastically.  In fact, this
+    documentation describes the flavor of threads that was in version
+    5.005.  Perl 5.6.0 and later have the beginnings of support for
+    interpreter threads, which (when finished) is expected to be
+    significantly different from what is described here.  The information
+    contained here may therefore soon be obsolete.  Use at your own risk!
+
 One of the most prominent new features of Perl 5.005 is the inclusion
 of threads.  Threads make a number of things a lot easier, and are a
 very useful addition to your bag of programming tricks.
@@ -389,7 +397,7 @@ to get them.
 
 =head2 Ignoring A Thread
 
-join() does three things:it waits for a thread to exit, cleans up
+join() does three things: it waits for a thread to exit, cleans up
 after it, and returns any data the thread may have produced.  But what
 if you're not interested in the thread's return values, and you don't
 really care when the thread finishes? All you want is for the thread
@@ -435,10 +443,10 @@ more than one thread can be accessing this data at once.
 Perl's scoping rules don't change because you're using threads.  If a
 subroutine (or block, in the case of async()) could see a variable if
 you weren't running with threads, it can see it if you are.  This is
-especially important for the subroutines that create, and makes my
+especially important for the subroutines that create, and makes C<my>
 variables even more important.  Remember--if your variables aren't
-lexically scoped (declared with C<my>) you're probably sharing it between
-threads.
+lexically scoped (declared with C<my>) you're probably sharing them
+between threads.
 
 =head2 Thread Pitfall: Races
 
@@ -710,7 +718,7 @@ In addition to synchronizing access to data or resources, you might
 find it useful to synchronize access to subroutines.  You may be
 accessing a singular machine resource (perhaps a vector processor), or
 find it easier to serialize calls to a particular subroutine than to
-have a set of locks and sempahores.
+have a set of locks and semaphores.
 
 One of the additions to Perl 5.005 is subroutine attributes.  The
 Thread package uses these to provide several flavors of
@@ -1021,7 +1029,7 @@ LoVerso. Programming under Mach. Addison-Wesley, 1994, ISBN
 0-201-52739-1.
 
 Tanenbaum, Andrew S. Distributed Operating Systems. Prentice Hall,
-1995, ISBN 0-13-143934-0 (great textbook).
+1995, ISBN 0-13-219908-4 (great textbook).
 
 Silberschatz, Abraham, and Peter B. Galvin. Operating System Concepts,
 4th ed. Addison-Wesley, 1995, ISBN 0-201-59292-4
index 9204052..95de3bb 100644 (file)
@@ -743,6 +743,7 @@ a scalar.
     package Remember;
 
     use strict;
+    use warnings;
     use IO::File;
 
     sub TIESCALAR {
@@ -845,7 +846,8 @@ have not been flushed to disk.
 Now that you know what the problem is, what can you do to avoid it?
 Well, the good old C<-w> flag will spot any instances where you call
 untie() and there are still valid references to the tied object.  If
-the second script above is run with the C<-w> flag, Perl prints this
+the second script above this near the top C<use warnings 'untie'>
+or was run with the C<-w> flag, Perl prints this
 warning message:
 
     untie attempted while 1 inner references still exist
@@ -860,14 +862,11 @@ called:
 =head1 SEE ALSO
 
 See L<DB_File> or L<Config> for some interesting tie() implementations.
+A good starting point for many tie() implementations is with one of the
+modules L<Tie::Scalar>, L<Tie::Array>, L<Tie::Hash>, or L<Tie::Handle>.
 
 =head1 BUGS
 
-Tied arrays are I<incomplete>.  They are also distinctly lacking something
-for the C<$#ARRAY> access (which is hard, as it's an lvalue), as well as
-the other obvious array functions, like push(), pop(), shift(), unshift(),
-and splice().
-
 You cannot easily tie a multilevel data structure (such as a hash of
 hashes) to a dbm file.  The first problem is that all but GDBM and
 Berkeley DB have size limitations, but beyond that, you also have problems
index 0a67fdc..6397388 100644 (file)
@@ -95,8 +95,8 @@ line?, Why don't perl one-liners work on my DOS/Mac/VMS system?, Where can
 I learn about CGI or Web programming in Perl?, Where can I learn about
 object-oriented Perl programming?, Where can I learn about linking C with
 Perl? [h2xs, xsubpp], I've read perlembed, perlguts, etc., but I can't
-embed perl inmy C program, what am I doing wrong?, When I tried to run my
-script, I got this message. What does itmean?, What's MakeMaker?,
+embed perl in my C program, what am I doing wrong?, When I tried to run my
+script, I got this message. What does it mean?, What's MakeMaker?,
 L<perlfaq4>: Data Manipulation, Why am I getting long decimals (eg,
 19.9499999999999) instead of the numbers I should be getting (eg, 19.95)?,
 Why isn't my octal data interpreted correctly?, Does Perl have a round()
@@ -121,10 +121,10 @@ How do I strip blank space from the beginning/end of a string?, How do I
 pad a string with blanks or pad a number with zeroes?, How do I extract
 selected columns from a string?, How do I find the soundex value of a
 string?, How can I expand variables in text strings?, What's wrong with
-always quoting "$vars"?, Why don't my E<lt>E<lt>HERE documents work?, What
-is the difference between a list and an array?, What is the difference
-between $array[1] and @array[1]?, How can I remove duplicate elements from
-a list or array?, How can I tell whether a list or array contains a certain
+always quoting "$vars"?, Why don't my <<HERE documents work?, What is the
+difference between a list and an array?, What is the difference between
+$array[1] and @array[1]?, How can I remove duplicate elements from a list
+or array?, How can I tell whether a list or array contains a certain
 element?, How do I compute the difference of two arrays?  How do I compute
 the intersection of two arrays?, How do I test whether two arrays or hashes
 are equal?, How do I find the first array element for which a condition is
@@ -161,16 +161,16 @@ How can I use a filehandle indirectly?, How can I set up a footer format to
 be used with write()?, How can I write() into a string?, How can I output
 my numbers with commas added?, How can I translate tildes (~) in a
 filename?, How come when I open a file read-write it wipes it out?, Why do
-I sometimes get an "Argument list too long" when I use E<lt>*E<gt>?, Is
-there a leak/bug in glob()?, How can I open a file with a leading "E<gt>"
-or trailing blanks?, How can I reliably rename a file?, How can I lock a
-file?, Why can't I just open(FH, ">file.lock")?, I still don't get locking.
- I just want to increment the number in the file.  How can I do this?, How
-do I randomly update a binary file?, How do I get a file's timestamp in
-perl?, How do I set a file's timestamp in perl?, How do I print to more
-than one file at once?, How can I read in an entire file all at once?, How
-can I read in a file by paragraphs?, How can I read a single character from
-file?  From the keyboard?, How can I tell whether there's a character
+I sometimes get an "Argument list too long" when I use <*>?, Is there a
+leak/bug in glob()?, How can I open a file with a leading ">" or trailing
+blanks?, How can I reliably rename a file?, How can I lock a file?, Why
+can't I just open(FH, ">file.lock")?, I still don't get locking.  I just
+want to increment the number in the file.  How can I do this?, How do I
+randomly update a binary file?, How do I get a file's timestamp in perl?,
+How do I set a file's timestamp in perl?, How do I print to more than one
+file at once?, How can I read in an entire file all at once?, How can I
+read in a file by paragraphs?, How can I read a single character from a
+file?  From the keyboard?, How can I tell whether there's a character
 waiting on a filehandle?, How do I do a C<tail -f> in perl?, How do I dup()
 a filehandle in Perl?, How do I close a file descriptor by number?, Why
 can't I use "C:\temp\foo" in DOS paths?  What doesn't `C:\temp\foo.exe`
@@ -210,10 +210,10 @@ Array, Hash, Method, Regex}?, How do I create a static variable?, What's
 the difference between dynamic and lexical (static) scoping?  Between
 local() and my()?, How can I access a dynamic variable while a similarly
 named lexical is in scope?, What's the difference between deep and shallow
-binding?, Why doesn't "my($foo) = E<lt>FILEE<gt>;" work right?, How do I
-redefine a builtin function, operator, or method?, What's the difference
-between calling a function as &foo and foo()?, How do I create a switch or
-case statement?, How can I catch accesses to undefined
+binding?, Why doesn't "my($foo) = <FILE>;" work right?, How do I redefine a
+builtin function, operator, or method?, What's the difference between
+calling a function as &foo and foo()?, How do I create a switch or case
+statement?, How can I catch accesses to undefined
 variables/functions/methods?, Why can't a method included in this same file
 be found?, How can I find out my current package?, How can I comment out a
 large block of perl code?, How do I clear a package?, How can I use a
@@ -382,10 +382,7 @@ What does CPAN/src/... mean?
 
 =item Perl Books
 
-References, Tutorials          
-    *Learning Perl [2nd edition]
-       by Randal L. Schwartz and Tom Christiansen
-           with foreword by Larry Wall, Task-Oriented, Special Topics
+References, Tutorials, Task-Oriented, Special Topics
 
 =item Perl in Magazines
 
@@ -585,7 +582,7 @@ string?
 
 =item What's wrong with always quoting "$vars"?
 
-=item Why don't my E<lt>E<lt>HERE documents work?
+=item Why don't my <<HERE documents work?
 
 1. There must be no space after the << part, 2. There (probably) should be
 a semicolon at the end, 3. You can't (easily) have any space in front of
@@ -736,12 +733,11 @@ filehandles between subroutines?  How do I make an array of filehandles?
 
 =item How come when I open a file read-write it wipes it out?
 
-=item Why do I sometimes get an "Argument list too long" when I use
-E<lt>*E<gt>?
+=item Why do I sometimes get an "Argument list too long" when I use <*>?
 
 =item Is there a leak/bug in glob()?
 
-=item How can I open a file with a leading "E<gt>" or trailing blanks?
+=item How can I open a file with a leading ">" or trailing blanks?
 
 =item How can I reliably rename a file?
 
@@ -911,7 +907,7 @@ is in scope?
 
 =item What's the difference between deep and shallow binding?
 
-=item Why doesn't "my($foo) = E<lt>FILEE<gt>;" work right?
+=item Why doesn't "my($foo) = <FILE>;" work right?
 
 =item How do I redefine a builtin function, operator, or method?
 
@@ -1133,222 +1129,207 @@ CGI script to do bad things?
 
 =back
 
-=head2 perldelta - what's new for perl v5.6 (as of v5.005_64)
+=head2 perldelta - what's new for perl v5.6.0
 
 =over
 
 =item DESCRIPTION
 
-=item Incompatible Changes
+=item Core Enhancements
 
 =over
 
-=item Perl Source Incompatibilities
-
-CHECK is a new keyword, Treatment of list slices of undef has changed
-
-=item Perl's version numbering has changed
-
-Literals of the form C<1.2.3> parse differently, Possibly changed
-pseudo-random number generator, Hashing function for hash keys has changed,
-C<undef> fails on read only values, Close-on-exec bit may be set on pipe
-and socket handles, Writing C<"$$1"> to mean C<"${$}1"> is unsupported,
-delete(), values() and C<\(%h)> operate on aliases to values, not copies,
-vec(EXPR,OFFSET,BITS) enforces powers-of-two BITS, Text of some diagnostic
-output has changed, C<%@> has been removed, Parenthesized not() behaves
-like a list operator, Semantics of bareword prototype C<(*)> have changed
-
-=item On 64-bit platforms the semantics of bit operators have changed
-
-=item C Source Incompatibilities
+=item Interpreter cloning, threads, and concurrency
 
-C<PERL_POLLUTE>, C<PERL_IMPLICIT_CONTEXT>, C<PERL_POLLUTE_MALLOC>
+=item Lexically scoped warning categories
 
-=item Compatible C Source API Changes
+=item Unicode and UTF-8 support
 
-C<PATCHLEVEL> is now C<PERL_VERSION>, Support for C++ exceptions
+=item Support for interpolating named characters
 
-=item Binary Incompatibilities
+=item "our" declarations
 
-=back
+=item Support for strings represented as a vector of ordinals
 
-=item Installation and Configuration Improvements
+=item Improved Perl version numbering system
 
-=over
+=item New syntax for declaring subroutine attributes
 
-=item -Dusethreads means something different
+=item File and directory handles can be autovivified
 
-=item New Configure flags
+=item open() with more than two arguments
 
-=item Threadedness and 64-bitness now more daring
+=item 64-bit support
 
-=item Long Doubles
+=item Large file support
 
-=item -Dusemorebits
+=item Long doubles
 
-=item -Duselargefiles
+=item "more bits"
 
-=item installusrbinperl
+=item Enhanced support for sort() subroutines
 
-=item SOCKS support
+=item C<sort $coderef @foo> allowed
 
-=item C<-A> flag
+=item File globbing implemented internally
 
-=item Enhanced Installation Directories
+Support for CHECK blocks
 
-=back
+=item POSIX character class syntax [: :] supported
 
-=item Core Changes
+Better pseudo-random number generator
 
-=over
+=item Improved C<qw//> operator
 
-=item Unicode and UTF-8 support
+Better worst-case behavior of hashes
 
-=item Interpreter cloning, threads, and concurrency
-
-=item Lexically scoped warning categories
+=item pack() format 'Z' supported
 
-=item Lvalue subroutines
+=item pack() format modifier '!' supported
 
-=item "our" declarations
+=item pack() and unpack() support counted strings
 
-=item Support for strings represented as a vector of ordinals
+=item Comments in pack() templates
 
 =item Weak references
 
-=item File globbing implemented internally
-
 =item Binary numbers supported
 
+=item Lvalue subroutines
+
 =item Some arrows may be omitted in calls through references
 
+=item Boolean assignment operators are legal lvalues
+
 =item exists() is supported on subroutine names
 
 =item exists() and delete() are supported on array elements
 
-=item syswrite() ease-of-use
-
-=item File and directory handles can be autovivified
-
-=item 64-bit support
-
-=item Large file support
-
-=item Long doubles
-
-=item "more bits"
+=item Pseudo-hashes work better
 
-=item Enhanced support for sort() subroutines
+=item Automatic flushing of output buffers
 
-=item Better syntax checks on parenthesized unary operators
+=item Better diagnostics on meaningless filehandle operations
 
-=item POSIX character class syntax [: :] supported
+=item Where possible, buffered data discarded from duped input filehandle
 
-=item Improved C<qw//> operator
+=item eof() has the same old magic as <>
 
-=item pack() format 'Z' supported
+=item binmode() can be used to set :crlf and :raw modes
 
-=item pack() format modifier '!' supported
+=item C<-T> filetest recognizes UTF-8 encoded files as "text"
 
-=item pack() and unpack() support counted strings
+=item system(), backticks and pipe open now reflect exec() failure
 
-=item Comments in pack() templates
+=item Improved diagnostics
 
-=item $^X variables may now have names longer than one character
+=item Diagnostics follow STDERR
 
-=item C<use attrs> implicit in subroutine attributes
+More consistent close-on-exec behavior
 
-=item Regular expression improvements
+=item syswrite() ease-of-use
 
-=item Overloading improvements
+=item Better syntax checks on parenthesized unary operators
 
-=item open() with more than two arguments
+=item Bit operators support full native integer width
 
-=item Support for interpolating named characters
+=item Improved security features
 
-=item Experimental support for user-hooks in @INC
+More functional bareword prototype (*)
 
 =item C<require> and C<do> may be overridden
 
+=item $^X variables may now have names longer than one character
+
 =item New variable $^C reflects C<-c> switch
 
-=item New variable $^V contains Perl version in v5.6.0 format
+=item New variable $^V contains Perl version as a string
 
 =item Optional Y2K warnings
 
 =back
 
-=item Significant bug fixes
+=item Modules and Pragmata
 
 =over
 
-=item E<lt>HANDLEE<gt> on empty files
+=item Modules
 
-=item C<eval '...'> improvements
+attributes, B, Benchmark, ByteLoader, constant, charnames, Data::Dumper,
+DB, DB_File, Devel::DProf, Devel::Peek, Dumpvalue, DynaLoader, English,
+Env, Fcntl, File::Compare, File::Find, File::Glob, File::Spec,
+File::Spec::Functions, Getopt::Long, IO, JPL, lib, Math::BigInt,
+Math::Complex, Math::Trig, Pod::Parser, Pod::InputObjects, Pod::Checker,
+podchecker, Pod::ParseUtils, Pod::Find, Pod::Select, podselect, Pod::Usage,
+pod2usage, Pod::Text and Pod::Man, SDBM_File, Sys::Syslog, Sys::Hostname,
+Term::ANSIColor, Time::Local, Win32, XSLoader, DBM Filters
 
-=item All compilation errors are true errors
+=item Pragmata
 
-=item Automatic flushing of output buffers
+=back
 
-=item Better diagnostics on meaningless filehandle operations
+=item Utility Changes
 
-=item Where possible, buffered data discarded from duped input filehandle
+=over
 
-=item eof() has the same old magic as <>
+=item dprofpp
 
-=item system(), backticks and pipe open now reflect exec() failure
+=item find2perl
 
-=item Implicitly closed filehandles are safer
+=item h2xs
 
-=item C<(\$)> prototype and C<$foo{a}>
+=item perlcc
 
-=item Pseudo-hashes work better
+=item perldoc
 
-=item C<goto &sub> and AUTOLOAD
+=item The Perl Debugger
 
-=item C<-bareword> allowed under C<use integer>
+=back
 
-=item Boolean assignment operators are legal lvalues
+=item Improved Documentation
 
-=item C<sort $coderef @foo> allowed
+perlapi.pod, perlboot.pod, perlcompile.pod, perldbmfilter.pod,
+perldebug.pod, perldebguts.pod, perlfork.pod, perlfilter.pod, perlhack.pod,
+perlintern.pod, perllexwarn.pod, perlnumber.pod, perlopentut.pod,
+perlreftut.pod, perltootc.pod, perltodo.pod, perlunicode.pod
 
-=item Failures in DESTROY()
+=item Performance enhancements
 
-=item Locale bugs fixed
+=over
 
-=item Memory leaks
+=item Simple sort() using { $a <=> $b } and the like are optimized
 
-=item Spurious subroutine stubs after failed subroutine calls
+=item Optimized assignments to lexical variables
 
-=item Consistent numeric conversions
+=item Faster subroutine calls
 
-=item Taint failures under C<-U>
+delete(), each(), values() and hash iteration are faster
 
-=item END blocks and the C<-c> switch
+=back
 
-=item Potential to leak DATA filehandles
+=item Installation and Configuration Improvements
 
-=item Diagnostics follow STDERR
+=over
 
-=item Other fixes for better diagnostics
+=item -Dusethreads means something different
 
-=back
+=item New Configure flags
 
-=item Performance enhancements
+=item Threadedness and 64-bitness now more daring
 
-=over
+=item Long Doubles
 
-=item Simple sort() using { $a <=> $b } and the like are optimized
+=item -Dusemorebits
 
-=item Optimized assignments to lexical variables
+=item -Duselargefiles
 
-=item Method lookups optimized
+=item installusrbinperl
 
-=item Faster mechanism to invoke XSUBs
+=item SOCKS support
 
-=item Perl_malloc() improvements
+=item C<-A> flag
 
-=item Faster subroutine calls
+=item Enhanced Installation Directories
 
 =back
 
@@ -1356,11 +1337,11 @@ C<PATCHLEVEL> is now C<PERL_VERSION>, Support for C++ exceptions
 
 =over
 
-=item Additional supported platforms
+=item Supported platforms
 
 =item DOS
 
-=item OS/2
+=item OS390 (OpenEdition MVS)
 
 =item VMS
 
@@ -1368,44 +1349,41 @@ C<PATCHLEVEL> is now C<PERL_VERSION>, Support for C++ exceptions
 
 =back
 
-=item New tests
-
-=item Modules and Pragmata
+=item Significant bug fixes
 
 =over
 
-=item Modules
+=item <HANDLE> on empty files
 
-attributes, B, ByteLoader, constant, charnames, Data::Dumper, DB, DB_File,
-Devel::DProf, Dumpvalue, Benchmark, Devel::Peek, English,
-ExtUtils::MakeMaker, Fcntl, File::Compare, File::Find, File::Glob,
-File::Spec, File::Spec::Functions, Getopt::Long, IO, JPL, lib,
-Math::BigInt, Math::Complex, Math::Trig, Pod::Parser, Pod::InputObjects,
-Pod::Checker, podchecker, Pod::ParseUtils, Pod::Find, Pod::Select,
-podselect, Pod::Usage, pod2usage, Pod::Text and Pod::Man, SDBM_File,
-Sys::Syslog, Sys::Hostname, Time::Local, Win32, DBM Filters
+=item C<eval '...'> improvements
 
-=item Pragmata
+=item All compilation errors are true errors
 
-=back
+=item Implicitly closed filehandles are safer
 
-=item Utility Changes
+=item Behavior of list slices is more consistent
 
-=over
+=item C<(\$)> prototype and C<$foo{a}>
 
-=item h2ph
+=item C<goto &sub> and AUTOLOAD
 
-=item perlcc
+=item C<-bareword> allowed under C<use integer>
 
-=item h2xs
+=item Failures in DESTROY()
 
-=back
+=item Locale bugs fixed
 
-=item Documentation Changes
+=item Memory leaks
+
+=item Spurious subroutine stubs after failed subroutine calls
 
-perlapi.pod, perlcompile.pod, perlfilter.pod, perlhack.pod, perlintern.pod,
-perlopentut.pod, perlreftut.pod, perlboot.pod, perltootc.pod,
-perlunicode.pod
+=item Taint failures under C<-U>
+
+=item END blocks and the C<-c> switch
+
+=item Potential to leak DATA filehandles
+
+=back
 
 =item New or Changed Diagnostics
 
@@ -1418,46 +1396,114 @@ passed through, /%s/ should probably be written as "%s", %s() called too
 early to check prototype, %s argument is not a HASH or ARRAY element, %s
 argument is not a HASH or ARRAY element or slice, %s argument is not a
 subroutine name, %s package attribute may clash with future reserved word:
-%s,        (in cleanup) %s, <> should be quotes, Attempt to join self, Bad
-evalled substitution pattern, Bad realloc() ignored, Bareword found in
-conditional, Binary number > 0b11111111111111111111111111111111
-non-portable, Bit vector size > 32 non-portable, Buffer overflow in
-prime_env_iter: %s, Can't check filesystem of script "%s", Can't declare
-class for non-scalar %s in "%s", Can't declare %s in "%s", Can't ignore
-signal CHLD, forcing to default, Can't modify non-lvalue subroutine call,
-Can't read CRTL environ, Can't remove %s: %s, skipping file, Can't return
-%s from lvalue subroutine, Can't weaken a nonreference, Character class
-[:%s:] unknown, Character class syntax [%s] belongs inside character
-classes, Constant is not %s reference, constant(%s): %%^H is not localized,
-constant(%s): %s, defined(@array) is deprecated, defined(%hash) is
-deprecated, Did not produce a valid header, Did you mean "local" instead of
-"our"?, Document contains no data, entering effective %s failed, false []
-range "%s" in regexp, Filehandle %s opened only for output, flock() on
-closed filehandle %s, Global symbol "%s" requires explicit package name,
-Hexadecimal number > 0xffffffff non-portable, Ill-formed CRTL environ value
-"%s", Ill-formed message in prime_env_iter: |%s|, Illegal binary digit %s,
-Illegal binary digit %s ignored, Illegal number of bits in vec, Integer
-overflow in %s number, Invalid %s attribute: %s, Invalid %s attributes: %s,
-invalid [] range "%s" in regexp, Invalid separator character %s in
-attribute list, Invalid separator character %s in subroutine attribute
-list, leaving effective %s failed, Lvalue subs returning %s not implemented
-yet, Method %s not permitted, Missing %sbrace%s on \N{}, Missing command in
-piped open, Missing name in "my sub", No %s specified for -%c, No package
-name allowed for variable %s in "our", No space allowed after -%c, no UTC
-offset information; assuming local time is UTC, Octal number > 037777777777
-non-portable, panic: del_backref, panic: kid popen errno read, panic:
-magic_killbackrefs, Parentheses missing around "%s" list, Possible Y2K bug:
-%s, Premature end of script headers, Repeat count in pack overflows, Repeat
-count in unpack overflows, realloc() of freed memory ignored, Reference is
-already weak, setpgrp can't take arguments, Strange *+?{} on zero-length
-expression, switching effective %s is not implemented, This Perl can't
-reset CRTL environ elements (%s), This Perl can't set CRTL environ elements
-(%s=%s), Unknown open() mode '%s', Unknown process %x sent message to
-prime_env_iter: %s, Unrecognized escape \\%c passed through, Unterminated
-attribute parameter in attribute list, Unterminated attribute list,
-Unterminated attribute parameter in subroutine attribute list, Unterminated
-subroutine attribute list, Value of CLI symbol "%s" too long, Version
-number must be a constant number
+%s, (in cleanup) %s, <> should be quotes, Attempt to join self, Bad evalled
+substitution pattern, Bad realloc() ignored, Bareword found in conditional,
+Binary number > 0b11111111111111111111111111111111 non-portable, Bit vector
+size > 32 non-portable, Buffer overflow in prime_env_iter: %s, Can't check
+filesystem of script "%s", Can't declare class for non-scalar %s in "%s",
+Can't declare %s in "%s", Can't ignore signal CHLD, forcing to default,
+Can't modify non-lvalue subroutine call, Can't read CRTL environ, Can't
+remove %s: %s, skipping file, Can't return %s from lvalue subroutine, Can't
+weaken a nonreference, Character class [:%s:] unknown, Character class
+syntax [%s] belongs inside character classes, Constant is not %s reference,
+constant(%s): %s, CORE::%s is not a keyword, defined(@array) is deprecated,
+defined(%hash) is deprecated, Did not produce a valid header, (Did you mean
+"local" instead of "our"?), Document contains no data, entering effective
+%s failed, false [] range "%s" in regexp, Filehandle %s opened only for
+output, flock() on closed filehandle %s, Global symbol "%s" requires
+explicit package name, Hexadecimal number > 0xffffffff non-portable,
+Ill-formed CRTL environ value "%s", Ill-formed message in prime_env_iter:
+|%s|, Illegal binary digit %s, Illegal binary digit %s ignored, Illegal
+number of bits in vec, Integer overflow in %s number, Invalid %s attribute:
+%s, Invalid %s attributes: %s, invalid [] range "%s" in regexp, Invalid
+separator character %s in attribute list, Invalid separator character %s in
+subroutine attribute list, leaving effective %s failed, Lvalue subs
+returning %s not implemented yet, Method %s not permitted, Missing
+%sbrace%s on \N{}, Missing command in piped open, Missing name in "my sub",
+No %s specified for -%c, No package name allowed for variable %s in "our",
+No space allowed after -%c, no UTC offset information; assuming local time
+is UTC, Octal number > 037777777777 non-portable, panic: del_backref,
+panic: kid popen errno read, panic: magic_killbackrefs, Parentheses missing
+around "%s" list, Possible Y2K bug: %s, pragma "attrs" is deprecated, use
+"sub NAME : ATTRS" instead, Premature end of script headers, Repeat count
+in pack overflows, Repeat count in unpack overflows, realloc() of freed
+memory ignored, Reference is already weak, setpgrp can't take arguments,
+Strange *+?{} on zero-length expression, switching effective %s is not
+implemented, This Perl can't reset CRTL environ elements (%s), This Perl
+can't set CRTL environ elements (%s=%s), Too late to run %s block, Unknown
+open() mode '%s', Unknown process %x sent message to prime_env_iter: %s,
+Unrecognized escape \\%c passed through, Unterminated attribute parameter
+in attribute list, Unterminated attribute list, Unterminated attribute
+parameter in subroutine attribute list, Unterminated subroutine attribute
+list, Value of CLI symbol "%s" too long, Version number must be a constant
+number
+
+=item New tests
+
+=item Incompatible Changes
+
+=over
+
+=item Perl Source Incompatibilities
+
+CHECK is a new keyword, Treatment of list slices of undef has changed
+
+=item Format of $English::PERL_VERSION is different
+
+Literals of the form C<1.2.3> parse differently, Possibly changed
+pseudo-random number generator, Hashing function for hash keys has changed,
+C<undef> fails on read only values, Close-on-exec bit may be set on pipe
+and socket handles, Writing C<"$$1"> to mean C<"${$}1"> is unsupported,
+delete(), values() and C<\(%h)> operate on aliases to values, not copies,
+vec(EXPR,OFFSET,BITS) enforces powers-of-two BITS, Text of some diagnostic
+output has changed, C<%@> has been removed, Parenthesized not() behaves
+like a list operator, Semantics of bareword prototype C<(*)> have changed
+
+=item Semantics of bit operators may have changed on 64-bit platforms
+
+=item More builtins taint their results
+
+=item C Source Incompatibilities
+
+C<PERL_POLLUTE>, C<PERL_IMPLICIT_CONTEXT>, C<PERL_POLLUTE_MALLOC>
+
+=item Compatible C Source API Changes
+
+C<PATCHLEVEL> is now C<PERL_VERSION>
+
+=item Binary Incompatibilities
+
+=back
+
+=item Known Problems
+
+=over
+
+=item Thread test failures
+
+=item EBCDIC platforms not supported
+
+=item In 64-bit HP-UX the lib/io_multihomed test may hang
+
+=item NEXTSTEP 3.3 POSIX test failure
+
+=item Tru64 (aka Digital UNIX, aka DEC OSF/1) lib/sdbm test failure with
+gcc
+
+=item UNICOS/mk CC failures during Configure run
+
+=item Arrow operator and arrays
+
+=item Windows 2000
+
+=item Experimental features
+
+Threads, Unicode, 64-bit support, Lvalue subroutines, Weak references, The
+pseudo-hash data type, The Compiler suite, Internal implementation of file
+globbing, The DB module, The regular expression constructs C<(?{ code })>
+and C<(??{ code })>
+
+=back
 
 =item Obsolete Diagnostics
 
@@ -1465,7 +1511,7 @@ Character class syntax [: :] is reserved for future extensions, Ill-formed
 logical name |%s| in prime_env_iter, Probable precedence problem on %s,
 regexp too big, Use of "$$<digit>" to mean "${$}<digit>" is deprecated
 
-=item BUGS
+=item Reporting Bugs
 
 =item SEE ALSO
 
@@ -1618,8 +1664,6 @@ regular expressions
 
 =item Bitwise String Operators
 
-=item Strings of Character
-
 =item Integer Arithmetic
 
 =item Floating-point Arithmetic
@@ -1647,8 +1691,8 @@ cntrl, graph, print, punct, xdigit
 =item Extended Patterns
 
 C<(?#text)>, C<(?imsx-imsx)>, C<(?:pattern)>, C<(?imsx-imsx:pattern)>,
-C<(?=pattern)>, C<(?!pattern)>, C<(?E<lt>=pattern)>, C<(?<!pattern)>, C<(?{
-code })>, C<(??{ code })>, C<(?E<gt>pattern)>,
+C<(?=pattern)>, C<(?!pattern)>, C<(?<=pattern)>, C<(?<!pattern)>, C<(?{
+code })>, C<(??{ code })>, C<< (?>pattern) >>,
 C<(?(condition)yes-pattern|no-pattern)>, C<(?(condition)yes-pattern)>
 
 =item Backtracking
@@ -1662,7 +1706,7 @@ C<(?(condition)yes-pattern|no-pattern)>, C<(?(condition)yes-pattern)>
 =item Combining pieces together
 
 C<ST>, C<S|T>, C<S{REPEAT_COUNT}>, C<S{min,max}>, C<S{min,max}?>, C<S?>,
-C<S*>, C<S+>, C<S??>, C<S*?>, C<S+?>, C<(?E<gt>S)>, C<(?=S)>, C<(?<=S)>,
+C<S*>, C<S+>, C<S??>, C<S*?>, C<S+?>, C<< (?>S) >>, C<(?=S)>, C<(?<=S)>,
 C<(?!S)>, C<(?<!S)>, C<(??{ EXPR })>,
 C<(?(condition)yes-pattern|no-pattern)>
 
@@ -1739,45 +1783,45 @@ in perl5
 
 I<-X> FILEHANDLE, I<-X> EXPR, I<-X>, abs VALUE, abs, accept
 NEWSOCKET,GENERICSOCKET, alarm SECONDS, alarm, atan2 Y,X, bind SOCKET,NAME,
-binmode FILEHANDLE, bless REF,CLASSNAME, bless REF, caller EXPR, caller,
-chdir EXPR, chmod LIST, chomp VARIABLE, chomp LIST, chomp, chop VARIABLE,
-chop LIST, chop, chown LIST, chr NUMBER, chr, chroot FILENAME, chroot,
-close FILEHANDLE, close, closedir DIRHANDLE, connect SOCKET,NAME, continue
-BLOCK, cos EXPR, crypt PLAINTEXT,SALT, dbmclose HASH, dbmopen
-HASH,DBNAME,MASK, defined EXPR, defined, delete EXPR, die LIST, do BLOCK,
-do SUBROUTINE(LIST), do EXPR, dump LABEL, dump, each HASH, eof FILEHANDLE,
-eof (), eof, eval EXPR, eval BLOCK, exec LIST, exec PROGRAM LIST, exists
-EXPR, exit EXPR, exp EXPR, exp, fcntl FILEHANDLE,FUNCTION,SCALAR, fileno
-FILEHANDLE, flock FILEHANDLE,OPERATION, fork, format, formline
-PICTURE,LIST, getc FILEHANDLE, getc, getlogin, getpeername SOCKET, getpgrp
-PID, getppid, getpriority WHICH,WHO, getpwnam NAME, getgrnam NAME,
-gethostbyname NAME, getnetbyname NAME, getprotobyname NAME, getpwuid UID,
-getgrgid GID, getservbyname NAME,PROTO, gethostbyaddr ADDR,ADDRTYPE,
-getnetbyaddr ADDR,ADDRTYPE, getprotobynumber NUMBER, getservbyport
-PORT,PROTO, getpwent, getgrent, gethostent, getnetent, getprotoent,
-getservent, setpwent, setgrent, sethostent STAYOPEN, setnetent STAYOPEN,
-setprotoent STAYOPEN, setservent STAYOPEN, endpwent, endgrent, endhostent,
-endnetent, endprotoent, endservent, getsockname SOCKET, getsockopt
-SOCKET,LEVEL,OPTNAME, glob EXPR, glob, gmtime EXPR, goto LABEL, goto EXPR,
-goto &NAME, grep BLOCK LIST, grep EXPR,LIST, hex EXPR, hex, import, index
-STR,SUBSTR,POSITION, index STR,SUBSTR, int EXPR, int, ioctl
+binmode FILEHANDLE, DISCIPLINE, binmode FILEHANDLE, bless REF,CLASSNAME,
+bless REF, caller EXPR, caller, chdir EXPR, chmod LIST, chomp VARIABLE,
+chomp LIST, chomp, chop VARIABLE, chop LIST, chop, chown LIST, chr NUMBER,
+chr, chroot FILENAME, chroot, close FILEHANDLE, close, closedir DIRHANDLE,
+connect SOCKET,NAME, continue BLOCK, cos EXPR, crypt PLAINTEXT,SALT,
+dbmclose HASH, dbmopen HASH,DBNAME,MASK, defined EXPR, defined, delete
+EXPR, die LIST, do BLOCK, do SUBROUTINE(LIST), do EXPR, dump LABEL, dump,
+each HASH, eof FILEHANDLE, eof (), eof, eval EXPR, eval BLOCK, exec LIST,
+exec PROGRAM LIST, exists EXPR, exit EXPR, exp EXPR, exp, fcntl
+FILEHANDLE,FUNCTION,SCALAR, fileno FILEHANDLE, flock FILEHANDLE,OPERATION,
+fork, format, formline PICTURE,LIST, getc FILEHANDLE, getc, getlogin,
+getpeername SOCKET, getpgrp PID, getppid, getpriority WHICH,WHO, getpwnam
+NAME, getgrnam NAME, gethostbyname NAME, getnetbyname NAME, getprotobyname
+NAME, getpwuid UID, getgrgid GID, getservbyname NAME,PROTO, gethostbyaddr
+ADDR,ADDRTYPE, getnetbyaddr ADDR,ADDRTYPE, getprotobynumber NUMBER,
+getservbyport PORT,PROTO, getpwent, getgrent, gethostent, getnetent,
+getprotoent, getservent, setpwent, setgrent, sethostent STAYOPEN, setnetent
+STAYOPEN, setprotoent STAYOPEN, setservent STAYOPEN, endpwent, endgrent,
+endhostent, endnetent, endprotoent, endservent, getsockname SOCKET,
+getsockopt SOCKET,LEVEL,OPTNAME, glob EXPR, glob, gmtime EXPR, goto LABEL,
+goto EXPR, goto &NAME, grep BLOCK LIST, grep EXPR,LIST, hex EXPR, hex,
+import, index STR,SUBSTR,POSITION, index STR,SUBSTR, int EXPR, int, ioctl
 FILEHANDLE,FUNCTION,SCALAR, join EXPR,LIST, keys HASH, kill SIGNAL, LIST,
 last LABEL, last, lc EXPR, lc, lcfirst EXPR, lcfirst, length EXPR, length,
 link OLDFILE,NEWFILE, listen SOCKET,QUEUESIZE, local EXPR, localtime EXPR,
 lock, log EXPR, log, lstat FILEHANDLE, lstat EXPR, lstat, m//, map BLOCK
 LIST, map EXPR,LIST, mkdir FILENAME,MASK, mkdir FILENAME, msgctl
-ID,CMD,ARG, msgget KEY,FLAGS, msgsnd ID,MSG,FLAGS, msgrcv
-ID,VAR,SIZE,TYPE,FLAGS, my EXPR, my EXPR : ATTRIBUTES, next LABEL, next, no
-Module LIST, oct EXPR, oct, open FILEHANDLE,MODE,EXPR, open
-FILEHANDLE,EXPR, open FILEHANDLE, opendir DIRHANDLE,EXPR, ord EXPR, ord,
-our EXPR, pack TEMPLATE,LIST, package, package NAMESPACE, pipe
-READHANDLE,WRITEHANDLE, pop ARRAY, pop, pos SCALAR, pos, print FILEHANDLE
-LIST, print LIST, print, printf FILEHANDLE FORMAT, LIST, printf FORMAT,
-LIST, prototype FUNCTION, push ARRAY,LIST, q/STRING/, qq/STRING/,
-qr/STRING/, qx/STRING/, qw/STRING/, quotemeta EXPR, quotemeta, rand EXPR,
-rand, read FILEHANDLE,SCALAR,LENGTH,OFFSET, read FILEHANDLE,SCALAR,LENGTH,
-readdir DIRHANDLE, readline EXPR, readlink EXPR, readlink, readpipe EXPR,
-recv SOCKET,SCALAR,LENGTH,FLAGS, redo LABEL, redo, ref EXPR, ref, rename
+ID,CMD,ARG, msgget KEY,FLAGS, msgrcv ID,VAR,SIZE,TYPE,FLAGS, msgsnd
+ID,MSG,FLAGS, my EXPR, my EXPR : ATTRIBUTES, next LABEL, next, no Module
+LIST, oct EXPR, oct, open FILEHANDLE,MODE,LIST, open FILEHANDLE,EXPR, open
+FILEHANDLE, opendir DIRHANDLE,EXPR, ord EXPR, ord, our EXPR, pack
+TEMPLATE,LIST, package, package NAMESPACE, pipe READHANDLE,WRITEHANDLE, pop
+ARRAY, pop, pos SCALAR, pos, print FILEHANDLE LIST, print LIST, print,
+printf FILEHANDLE FORMAT, LIST, printf FORMAT, LIST, prototype FUNCTION,
+push ARRAY,LIST, q/STRING/, qq/STRING/, qr/STRING/, qx/STRING/, qw/STRING/,
+quotemeta EXPR, quotemeta, rand EXPR, rand, read
+FILEHANDLE,SCALAR,LENGTH,OFFSET, read FILEHANDLE,SCALAR,LENGTH, readdir
+DIRHANDLE, readline EXPR, readlink EXPR, readlink, readpipe EXPR, recv
+SOCKET,SCALAR,LENGTH,FLAGS, redo LABEL, redo, ref EXPR, ref, rename
 OLDNAME,NEWNAME, require VERSION, require EXPR, require, reset EXPR, reset,
 return EXPR, return, reverse LIST, rewinddir DIRHANDLE, rindex
 STR,SUBSTR,POSITION, rindex STR,SUBSTR, rmdir FILENAME, rmdir, s///, scalar
@@ -1824,7 +1868,7 @@ LIST, write FILEHANDLE, write EXPR, write, y///
 
 =item Predefined Names
 
-$ARG, $_, $E<lt>I<digits>E<gt>, $MATCH, $&, $PREMATCH, $`, $POSTMATCH, $',
+$ARG, $_, $<I<digits>>, $MATCH, $&, $PREMATCH, $`, $POSTMATCH, $',
 $LAST_PAREN_MATCH, $+, @+, $MULTILINE_MATCHING, $*, input_line_number
 HANDLE EXPR, $INPUT_LINE_NUMBER, $NR, $, input_record_separator HANDLE
 EXPR, $INPUT_RECORD_SEPARATOR, $RS, $/, autoflush HANDLE EXPR,
@@ -2152,7 +2196,7 @@ localization)
 
 =item Permanently fixing locale problems
 
-=item Permanently fixing your locale configuration
+=item Permanently fixing your system's locale configuration
 
 =item Fixing system locale configuration
 
@@ -2843,24 +2887,28 @@ B<filter_fetch_value>
 =item Debugger Commands
 
 h [command], p expr, x expr, V [pkg [vars]], X [vars], T, s [expr], n
-[expr], E<lt>CRE<gt>, c [line|sub], l, l min+incr, l min-max, l line, l
-subname, -, w [line], f filename, /pattern/, ?pattern?, L, S [[!]pattern],
-t, t expr, b [line] [condition], b subname [condition], b postpone subname
+[expr], r, <CR>, c [line|sub], l, l min+incr, l min-max, l line, l subname,
+-, w [line], f filename, /pattern/, ?pattern?, L, S [[!]regex], t, t expr,
+b [line] [condition], b subname [condition], b postpone subname
 [condition], b load filename, b compile subname, d [line], D, a [line]
-command, A, W [expr], W, O [opt[=val]] [opt"val"] [opt?]..,
+command, a [line], A, W expr, W, O booloption .., O anyoption? .., O
+option=value .., < ?, < [ command ], << command, > ?, > command, >>
+command, { ?, { [ command ], {{ command, ! number, ! -number, ! pattern, !!
+cmd, H -number, q or ^D, R, |dbcmd, ||dbcmd, command, m expr, man [manpage]
+
+=item Configurable Options
+
 C<recallCommand>, C<ShellBang>, C<pager>, C<tkRunning>, C<signalLevel>,
 C<warnLevel>, C<dieLevel>, C<AutoTrace>, C<LineInfo>, C<inhibit_exit>,
 C<PrintRet>, C<ornaments>, C<frame>, C<maxTraceLen>, C<arrayDepth>,
 C<hashDepth>, C<compactDump>, C<veryCompact>, C<globPrint>, C<DumpDBFiles>,
 C<DumpPackages>, C<DumpReused>, C<quote>, C<HighBit>, C<undefPrint>,
-C<UsageOnly>, C<TTY>, C<noTTY>, C<ReadLine>, C<NonStop>, E<lt> [ command ],
-E<lt>E<lt> command, E<gt> command, E<gt>E<gt> command, { [ command ], {{
-command, ! number, ! -number, ! pattern, !! cmd, H -number, q or ^D, R,
-|dbcmd, ||dbcmd, command, m expr, m package
+C<UsageOnly>, C<TTY>, C<noTTY>, C<ReadLine>, C<NonStop>
 
 =item Debugger input/output
 
-Prompt, Multiline commands, Stack backtrace, Listing, Frame listing
+Prompt, Multiline commands, Stack backtrace, Line Listing Format, Frame
+listing
 
 =item Debugging compile-time statements
 
@@ -2872,38 +2920,59 @@ Prompt, Multiline commands, Stack backtrace, Listing, Frame listing
 
 =item The Perl Profiler
 
-=item Debugger support in perl
+=back
 
-=item Debugger Internals
+=item Debugging regular expressions
 
-=item Other resources
+=item Debugging memory usage
+
+=item SEE ALSO
 
 =item BUGS
 
 =back
 
-=item Debugging Perl memory usage
+=head2 perlnumber - semantics of numbers and numeric operations in Perl
 
 =over
 
-=item Using C<$ENV{PERL_DEBUG_MSTATS}>
+=item SYNOPSIS
 
-C<buckets SMALLEST(APPROX)..GREATEST(APPROX)>, Free/Used, C<Total sbrk():
-SBRKed/SBRKs:CONTINUOUS>, C<pad: 0>, C<heads: 2192>, C<chain: 0>, C<tail:
-6144>
+=item DESCRIPTION
 
-=item Example of using B<-DL> switch
+=item Storing numbers
 
-C<717>, C<002>, C<054>, C<602>, C<702>, C<704>
+=item Numeric operators and numeric conversions
 
-=item B<-DL> details
+=item Flavors of Perl numeric operations
 
-C<!!!>, C<!!>, C<!>
+Arithmetic operators except, C<no integer>, Arithmetic operators except,
+C<use integer>, Bitwise operators, C<no integer>, Bitwise operators, C<use
+integer>, Operators which expect an integer, Operators which expect a
+string
+
+=item AUTHOR
 
-=item Limitations of B<-DL> statistic
+=item SEE ALSO
 
 =back
 
+=head2 perldebguts - Guts of Perl debugging 
+
+=over
+
+=item DESCRIPTION
+
+=item Debugger Internals
+
+=over
+
+=item Writing Your Own Debugger
+
+=back
+
+=item Frame Listing Output Examples
+
 =item Debugging regular expressions
 
 =over
@@ -2921,28 +2990,27 @@ C<anchored(TYPE)>
 
 =back
 
-=back
-
-=head2 perlnumber - semantics of numbers and numeric operations in Perl
+=item Debugging Perl memory usage
 
 =over
 
-=item SYNOPSIS
+=item Using C<$ENV{PERL_DEBUG_MSTATS}>
 
-=item DESCRIPTION
+C<buckets SMALLEST(APPROX)..GREATEST(APPROX)>, Free/Used, C<Total sbrk():
+SBRKed/SBRKs:CONTINUOUS>, C<pad: 0>, C<heads: 2192>, C<chain: 0>, C<tail:
+6144>
 
-=item Storing numbers
+=item Example of using B<-DL> switch
 
-=item Numeric operators and numeric conversions
+C<717>, C<002>, C<054>, C<602>, C<702>, C<704>
 
-=item Flavors of Perl numeric operations
+=item B<-DL> details
 
-Arithmetic operators except, C<no integer>, Arithmetic operators except,
-C<use integer>, Bitwise operators, C<no integer>, Bitwise operators, C<use
-integer>, Operators which expect an integer, Operators which expect a
-string
+C<!!!>, C<!!>, C<!>
 
-=item AUTHOR
+=item Limitations of B<-DL> statistics
+
+=back
 
 =item SEE ALSO
 
@@ -3109,7 +3177,7 @@ portable
 =item CPAN Testers
 
 Mailing list: cpan-testers@perl.org, Testing results:
-C<http://testers.cpan.org/>
+http://testers.cpan.org/
 
 =item PLATFORMS
 
@@ -3119,49 +3187,20 @@ C<http://testers.cpan.org/>
 
 =item DOS and Derivatives
 
-The djgpp environment for DOS, C<http://www.delorie.com/djgpp/>, The EMX
-environment for DOS, OS/2, etc.
-C<emx@iaehv.nl>,C<http://www.leo.org/pub/comp/os/os2/leo/gnu/emx+gcc/index.
-html> or
-C<ftp://hobbes.nmsu.edu/pub/os2/dev/emx>, Build instructions for Win32,
-L<perlwin32>, The ActiveState Pages, C<http://www.activestate.com/>, The
-Cygwin environment for Win32; F<README.cygwin> (installed as
-L<perlcygwin>), C<http://sourceware.cygnus.com/cygwin/>, The U/WIN
-environment for Win32,C<http://www.research.att.com/sw/tools/uwin/>
+Build instructions for OS/2, L<perlos2>
 
 =item S<Mac OS>
 
-The MacPerl Pages, C<http://www.macperl.com/>, The MacPerl mailing lists,
-C<http://www.macperl.org/>, MacPerl Module Porters,
-C<http://pudge.net/mmp/>
-
 =item VMS
 
-F<README.vms> (installed as L<README_vms>), L<perlvms>, vmsperl list,
-C<majordomo@perl.org>, vmsperl on the web,
-C<http://www.sidhe.org/vmsperl/index.html>
-
 =item VOS
 
-F<README.vos>, VOS mailing list, VOS Perl on the web at
-C<http://ftp.stratus.com/pub/vos/vos.html>
-
 =item EBCDIC Platforms
 
-F<README.os390>, F<README.posix-bc>, F<README.vmesa>, perl-mvs list, AS/400
-Perl information at C<http://as400.rochester.ibm.com/>as well as on CPAN in
-the F<ports/> directory
-
 =item Acorn RISC OS
 
 =item Other perls
 
-Amiga, F<README.amiga> (installed as L<perlamiga>), Atari, F<README.mint>
-and Guido Flohr's web pageC<http://stud.uni-sb.de/~gufl0000/>, Be OS,
-F<README.beos>, HP 300 MPE/iX, F<README.mpeix> and Mark Bixby's web
-pageC<http://www.cccd.edu/~markb/perlix.html>, Novell Netware, Plan 9,
-F<README.plan9>
-
 =back
 
 =item FUNCTION IMPLEMENTATIONS
@@ -3170,22 +3209,22 @@ F<README.plan9>
 
 =item Alphabetical Listing of Perl Functions
 
--I<X> FILEHANDLE, -I<X> EXPR, -I<X>, binmode FILEHANDLE, chmod LIST, chown
-LIST, chroot FILENAME, chroot, crypt PLAINTEXT,SALT, dbmclose HASH, dbmopen
-HASH,DBNAME,MODE, dump LABEL, exec LIST, fcntl FILEHANDLE,FUNCTION,SCALAR,
-flock FILEHANDLE,OPERATION, fork, getlogin, getpgrp PID, getppid,
-getpriority WHICH,WHO, getpwnam NAME, getgrnam NAME, getnetbyname NAME,
-getpwuid UID, getgrgid GID, getnetbyaddr ADDR,ADDRTYPE, getprotobynumber
-NUMBER, getservbyport PORT,PROTO, getpwent, getgrent, gethostent,
-getnetent, getprotoent, getservent, setpwent, setgrent, sethostent
-STAYOPEN, setnetent STAYOPEN, setprotoent STAYOPEN, setservent STAYOPEN,
-endpwent, endgrent, endhostent, endnetent, endprotoent, endservent,
-getsockopt SOCKET,LEVEL,OPTNAME, glob EXPR, glob, ioctl
-FILEHANDLE,FUNCTION,SCALAR, kill SIGNAL, LIST, link OLDFILE,NEWFILE, lstat
-FILEHANDLE, lstat EXPR, lstat, msgctl ID,CMD,ARG, msgget KEY,FLAGS, msgsnd
-ID,MSG,FLAGS, msgrcv ID,VAR,SIZE,TYPE,FLAGS, open FILEHANDLE,EXPR, open
-FILEHANDLE, pipe READHANDLE,WRITEHANDLE, readlink EXPR, readlink, select
-RBITS,WBITS,EBITS,TIMEOUT, semctl ID,SEMNUM,CMD,ARG, semget
+-I<X> FILEHANDLE, -I<X> EXPR, -I<X>, alarm SECONDS, alarm, binmode
+FILEHANDLE, chmod LIST, chown LIST, chroot FILENAME, chroot, crypt
+PLAINTEXT,SALT, dbmclose HASH, dbmopen HASH,DBNAME,MODE, dump LABEL, exec
+LIST, fcntl FILEHANDLE,FUNCTION,SCALAR, flock FILEHANDLE,OPERATION, fork,
+getlogin, getpgrp PID, getppid, getpriority WHICH,WHO, getpwnam NAME,
+getgrnam NAME, getnetbyname NAME, getpwuid UID, getgrgid GID, getnetbyaddr
+ADDR,ADDRTYPE, getprotobynumber NUMBER, getservbyport PORT,PROTO, getpwent,
+getgrent, gethostent, getnetent, getprotoent, getservent, setpwent,
+setgrent, sethostent STAYOPEN, setnetent STAYOPEN, setprotoent STAYOPEN,
+setservent STAYOPEN, endpwent, endgrent, endhostent, endnetent,
+endprotoent, endservent, getsockopt SOCKET,LEVEL,OPTNAME, glob EXPR, glob,
+ioctl FILEHANDLE,FUNCTION,SCALAR, kill SIGNAL, LIST, link OLDFILE,NEWFILE,
+lstat FILEHANDLE, lstat EXPR, lstat, msgctl ID,CMD,ARG, msgget KEY,FLAGS,
+msgsnd ID,MSG,FLAGS, msgrcv ID,VAR,SIZE,TYPE,FLAGS, open FILEHANDLE,EXPR,
+open FILEHANDLE, pipe READHANDLE,WRITEHANDLE, readlink EXPR, readlink,
+select RBITS,WBITS,EBITS,TIMEOUT, semctl ID,SEMNUM,CMD,ARG, semget
 KEY,NSEMS,FLAGS, semop KEY,OPSTRING, setgrent, setpgrp PID,PGRP,
 setpriority WHICH,WHO,PRIORITY, setpwent, setsockopt
 SOCKET,LEVEL,OPTNAME,OPTVAL, shmctl ID,CMD,ARG, shmget KEY,SIZE,FLAGS,
@@ -3200,11 +3239,16 @@ wait, waitpid PID,FLAGS
 
 =item CHANGES
 
-v1.46, 12 February 2000, v1.45, 20 December 1999, v1.44, 19 July 1999,
-v1.43, 24 May 1999, v1.42, 22 May 1999, v1.41, 19 May 1999, v1.40, 11 April
-1999, v1.39, 11 February 1999, v1.38, 31 December 1998, v1.37, 19 December
-1998, v1.36, 9 September 1998, v1.35, 13 August 1998, v1.33, 06 August
-1998, v1.32, 05 August 1998, v1.30, 03 August 1998, v1.23, 10 July 1998
+v1.47, 22 March 2000, v1.46, 12 February 2000, v1.45, 20 December 1999,
+v1.44, 19 July 1999, v1.43, 24 May 1999, v1.42, 22 May 1999, v1.41, 19 May
+1999, v1.40, 11 April 1999, v1.39, 11 February 1999, v1.38, 31 December
+1998, v1.37, 19 December 1998, v1.36, 9 September 1998, v1.35, 13 August
+1998, v1.33, 06 August 1998, v1.32, 05 August 1998, v1.30, 03 August 1998,
+v1.23, 10 July 1998
+
+=item Supported Platforms
+
+=item SEE ALSO
 
 =item AUTHORS / CONTRIBUTORS
 
@@ -3738,13 +3782,13 @@ B::Bytecode, B::C, B::CC, B::Lint, B::Deparse, B::Xref
 
 =over
 
-=item The Cross Referencing Back End (B::Xref)
+=item The Cross Referencing Back End
 
 i, &, s, r
 
 =item The Decompiling Back End
 
-=item The Lint Back End (B::Lint)
+=item The Lint Back End
 
 =item The Simple C Back End
 
@@ -3785,33 +3829,34 @@ isDIGIT, isLOWER, isSPACE, isUPPER, items, ix, LEAVE, looks_like_number,
 MARK, mg_clear, mg_copy, mg_find, mg_free, mg_get, mg_length, mg_magical,
 mg_set, Move, New, newAV, Newc, newCONSTSUB, newHV, newRV_inc, newRV_noinc,
 NEWSV, newSViv, newSVnv, newSVpv, newSVpvf, newSVpvn, newSVrv, newSVsv,
-newXS, newXSproto, Newz, Nullav, Nullch, Nullcv, Nullhv, Nullsv, ORIGMARK,
-perl_alloc, perl_construct, perl_destruct, perl_free, perl_parse, perl_run,
-PL_DBsingle, PL_DBsub, PL_DBtrace, PL_dowarn, PL_modglobal, PL_na,
-PL_sv_no, PL_sv_undef, PL_sv_yes, POPi, POPl, POPn, POPp, POPs, PUSHi,
-PUSHMARK, PUSHn, PUSHp, PUSHs, PUSHu, PUTBACK, Renew, Renewc, require_pv,
-RETVAL, Safefree, savepv, savepvn, SAVETMPS, SP, SPAGAIN, ST, strEQ, strGE,
-strGT, strLE, strLT, strNE, strnEQ, strnNE, StructCopy, SvCUR, SvCUR_set,
-SvEND, SvGETMAGIC, SvGROW, SvIOK, SvIOKp, SvIOK_off, SvIOK_on, SvIOK_only,
-SvIV, SvIVX, SvLEN, SvNIOK, SvNIOKp, SvNIOK_off, SvNOK, SvNOKp, SvNOK_off,
-SvNOK_on, SvNOK_only, SvNV, SvNVX, SvOK, SvOOK, SvPOK, SvPOKp, SvPOK_off,
-SvPOK_on, SvPOK_only, SvPV, SvPVX, SvPV_force, SvPV_nolen, SvREFCNT,
-SvREFCNT_dec, SvREFCNT_inc, SvROK, SvROK_off, SvROK_on, SvRV, SvSETMAGIC,
-SvSetSV, SvSetSV_nosteal, SvSTASH, SvTAINT, SvTAINTED, SvTAINTED_off,
-SvTAINTED_on, SvTRUE, SvTYPE, svtype, SVt_IV, SVt_NV, SVt_PV, SVt_PVAV,
-SVt_PVCV, SVt_PVHV, SVt_PVMG, SvUPGRADE, SvUV, SvUVX, sv_2mortal, sv_bless,
-sv_catpv, sv_catpvf, sv_catpvf_mg, sv_catpvn, sv_catpvn_mg, sv_catpv_mg,
-sv_catsv, sv_catsv_mg, sv_chop, sv_cmp, sv_dec, sv_derived_from, sv_eq,
-sv_grow, sv_inc, sv_insert, sv_isa, sv_isobject, sv_len, sv_magic,
-sv_mortalcopy, sv_newmortal, sv_setiv, sv_setiv_mg, sv_setnv, sv_setnv_mg,
-sv_setpv, sv_setpvf, sv_setpvf_mg, sv_setpviv, sv_setpviv_mg, sv_setpvn,
-sv_setpvn_mg, sv_setpv_mg, sv_setref_iv, sv_setref_nv, sv_setref_pv,
-sv_setref_pvn, sv_setsv, sv_setsv_mg, sv_setuv, sv_setuv_mg, sv_unref,
-sv_upgrade, sv_usepvn, sv_usepvn_mg, sv_vcatpvfn, sv_vsetpvfn, THIS,
-toLOWER, toUPPER, warn, XPUSHi, XPUSHn, XPUSHp, XPUSHs, XPUSHu, XS,
-XSRETURN, XSRETURN_EMPTY, XSRETURN_IV, XSRETURN_NO, XSRETURN_NV,
-XSRETURN_PV, XSRETURN_UNDEF, XSRETURN_YES, XST_mIV, XST_mNO, XST_mNV,
-XST_mPV, XST_mUNDEF, XST_mYES, XS_VERSION, XS_VERSION_BOOTCHECK, Zero
+newSVuv, newXS, newXSproto, Newz, Nullav, Nullch, Nullcv, Nullhv, Nullsv,
+ORIGMARK, perl_alloc, perl_construct, perl_destruct, perl_free, perl_parse,
+perl_run, PL_DBsingle, PL_DBsub, PL_DBtrace, PL_dowarn, PL_modglobal,
+PL_na, PL_sv_no, PL_sv_undef, PL_sv_yes, POPi, POPl, POPn, POPp, POPs,
+PUSHi, PUSHMARK, PUSHn, PUSHp, PUSHs, PUSHu, PUTBACK, Renew, Renewc,
+require_pv, RETVAL, Safefree, savepv, savepvn, SAVETMPS, SP, SPAGAIN, ST,
+strEQ, strGE, strGT, strLE, strLT, strNE, strnEQ, strnNE, StructCopy,
+SvCUR, SvCUR_set, SvEND, SvGETMAGIC, SvGROW, SvIOK, SvIOKp, SvIOK_off,
+SvIOK_on, SvIOK_only, SvIV, SvIVX, SvLEN, SvNIOK, SvNIOKp, SvNIOK_off,
+SvNOK, SvNOKp, SvNOK_off, SvNOK_on, SvNOK_only, SvNV, SvNVX, SvOK, SvOOK,
+SvPOK, SvPOKp, SvPOK_off, SvPOK_on, SvPOK_only, SvPV, SvPVX, SvPV_force,
+SvPV_nolen, SvREFCNT, SvREFCNT_dec, SvREFCNT_inc, SvROK, SvROK_off,
+SvROK_on, SvRV, SvSETMAGIC, SvSetSV, SvSetSV_nosteal, SvSTASH, SvTAINT,
+SvTAINTED, SvTAINTED_off, SvTAINTED_on, SvTRUE, SvTYPE, svtype, SVt_IV,
+SVt_NV, SVt_PV, SVt_PVAV, SVt_PVCV, SVt_PVHV, SVt_PVMG, SvUPGRADE, SvUV,
+SvUVX, sv_2mortal, sv_bless, sv_catpv, sv_catpvf, sv_catpvf_mg, sv_catpvn,
+sv_catpvn_mg, sv_catpv_mg, sv_catsv, sv_catsv_mg, sv_chop, sv_cmp, sv_dec,
+sv_derived_from, sv_eq, sv_grow, sv_inc, sv_insert, sv_isa, sv_isobject,
+sv_len, sv_magic, sv_mortalcopy, sv_newmortal, sv_setiv, sv_setiv_mg,
+sv_setnv, sv_setnv_mg, sv_setpv, sv_setpvf, sv_setpvf_mg, sv_setpviv,
+sv_setpviv_mg, sv_setpvn, sv_setpvn_mg, sv_setpv_mg, sv_setref_iv,
+sv_setref_nv, sv_setref_pv, sv_setref_pvn, sv_setsv, sv_setsv_mg, sv_setuv,
+sv_setuv_mg, sv_unref, sv_upgrade, sv_usepvn, sv_usepvn_mg, sv_vcatpvfn,
+sv_vsetpvfn, THIS, toLOWER, toUPPER, warn, XPUSHi, XPUSHn, XPUSHp, XPUSHs,
+XPUSHu, XS, XSRETURN, XSRETURN_EMPTY, XSRETURN_IV, XSRETURN_NO,
+XSRETURN_NV, XSRETURN_PV, XSRETURN_UNDEF, XSRETURN_YES, XST_mIV, XST_mNO,
+XST_mNV, XST_mPV, XST_mUNDEF, XST_mYES, XS_VERSION, XS_VERSION_BOOTCHECK,
+Zero
 
 =item AUTHORS
 
@@ -4081,13 +4126,6 @@ new, phash
 
 =item SYNOPSIS
 
-    $can_perhaps_read = -r "file";     # use the mode bits
-    {
-       use filetest 'access';          # intuit harder
-       $can_really_read = -r "file";
-    }
-    $can_perhaps_read = -r "file";     # use the mode bits again
-
 =item DESCRIPTION
 
 =over
@@ -4154,6 +4192,20 @@ operations
 
 =back
 
+=head2 open - perl pragma to set default disciplines for input and output
+
+=over
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=item UNIMPLEMENTED FUNCTIONALITY
+
+=item SEE ALSO
+
+=back
+
 =head2 ops - Perl pragma to restrict unsafe operations when compiling
 
 =over
@@ -4354,7 +4406,8 @@ C<strict refs>, C<strict vars>, C<strict subs>
 
 =item DESCRIPTION
 
-warnings::enabled($category), warnings::warn($category, $message)
+use warnings::register, warnings::enabled([$category]),
+warnings::warn([$category,] $message)
 
 =back
 
@@ -5124,8 +5177,7 @@ parameters in the B<header()> and B<redirect()>  statements:
 
 =item Server Push
 
-multipart_init()     
-  multipart_init(-boundary=>$boundary);, multipart_start(), multipart_end()
+multipart_init(), multipart_start(), multipart_end()
 
 =item Avoiding Denial of Service Attacks
 
@@ -5564,45 +5616,46 @@ C<d_getspent>, C<d_getspnam>, C<d_gettimeod>, C<d_gnulibc>, C<d_grpasswd>,
 C<d_hasmntopt>, C<d_htonl>, C<d_iconv>, C<d_index>, C<d_inetaton>,
 C<d_int64_t>, C<d_isascii>, C<d_killpg>, C<d_lchown>, C<d_ldbl_dig>,
 C<d_link>, C<d_locconv>, C<d_lockf>, C<d_longdbl>, C<d_longlong>,
-C<d_lseekproto>, C<d_lstat>, C<d_mblen>, C<d_mbstowcs>, C<d_mbtowc>,
-C<d_memchr>, C<d_memcmp>, C<d_memcpy>, C<d_memmove>, C<d_memset>,
-C<d_mkdir>, C<d_mkdtemp>, C<d_mkfifo>, C<d_mkstemp>, C<d_mkstemps>,
-C<d_mktime>, C<d_mmap>, C<d_mprotect>, C<d_msg>, C<d_msg_ctrunc>,
-C<d_msg_dontroute>, C<d_msg_oob>, C<d_msg_peek>, C<d_msg_proxy>,
-C<d_msgctl>, C<d_msgget>, C<d_msgrcv>, C<d_msgsnd>, C<d_msync>,
-C<d_munmap>, C<d_mymalloc>, C<d_nice>, C<d_nv_preserves_uv>, C<d_off64_t>,
-C<d_old_pthread_create_joinable>, C<d_oldpthreads>, C<d_oldsock>,
-C<d_open3>, C<d_pathconf>, C<d_pause>, C<d_phostname>, C<d_pipe>,
-C<d_poll>, C<d_portable>, C<d_PRId64>, C<d_PRIeldbl>, C<d_PRIEldbl>,
-C<d_PRIfldbl>, C<d_PRIFldbl>, C<d_PRIgldbl>, C<d_PRIGldbl>, C<d_PRIi64>,
-C<d_PRIo64>, C<d_PRIu64>, C<d_PRIx64>, C<d_PRIX64>, C<d_pthread_yield>,
-C<d_pwage>, C<d_pwchange>, C<d_pwclass>, C<d_pwcomment>, C<d_pwexpire>,
-C<d_pwgecos>, C<d_pwpasswd>, C<d_pwquota>, C<d_quad>, C<d_readdir>,
-C<d_readlink>, C<d_rename>, C<d_rewinddir>, C<d_rmdir>, C<d_safebcpy>,
-C<d_safemcpy>, C<d_sanemcmp>, C<d_sched_yield>, C<d_scm_rights>,
-C<d_seekdir>, C<d_select>, C<d_sem>, C<d_semctl>, C<d_semctl_semid_ds>,
-C<d_semctl_semun>, C<d_semget>, C<d_semop>, C<d_setegid>, C<d_seteuid>,
-C<d_setgrent>, C<d_setgrps>, C<d_sethent>, C<d_setlinebuf>, C<d_setlocale>,
-C<d_setnent>, C<d_setpent>, C<d_setpgid>, C<d_setpgrp2>, C<d_setpgrp>,
-C<d_setprior>, C<d_setpwent>, C<d_setregid>, C<d_setresgid>,
-C<d_setresuid>, C<d_setreuid>, C<d_setrgid>, C<d_setruid>, C<d_setsent>,
-C<d_setsid>, C<d_setspent>, C<d_setvbuf>, C<d_sfio>, C<d_shm>, C<d_shmat>,
-C<d_shmatprototype>, C<d_shmctl>, C<d_shmdt>, C<d_shmget>, C<d_sigaction>,
-C<d_sigsetjmp>, C<d_socket>, C<d_socklen_t>, C<d_sockpair>, C<d_sqrtl>,
-C<d_statblks>, C<d_statfs_f_flags>, C<d_statfs_s>, C<d_statvfs>,
-C<d_stdio_cnt_lval>, C<d_stdio_ptr_lval>, C<d_stdio_stream_array>,
-C<d_stdiobase>, C<d_stdstdio>, C<d_strchr>, C<d_strcoll>, C<d_strctcpy>,
-C<d_strerrm>, C<d_strerror>, C<d_strtod>, C<d_strtol>, C<d_strtold>,
-C<d_strtoll>, C<d_strtoul>, C<d_strtoull>, C<d_strtouq>, C<d_strxfrm>,
-C<d_suidsafe>, C<d_symlink>, C<d_syscall>, C<d_sysconf>, C<d_sysernlst>,
-C<d_syserrlst>, C<d_system>, C<d_tcgetpgrp>, C<d_tcsetpgrp>, C<d_telldir>,
+C<d_lseekproto>, C<d_lstat>, C<d_madvise>, C<d_mblen>, C<d_mbstowcs>,
+C<d_mbtowc>, C<d_memchr>, C<d_memcmp>, C<d_memcpy>, C<d_memmove>,
+C<d_memset>, C<d_mkdir>, C<d_mkdtemp>, C<d_mkfifo>, C<d_mkstemp>,
+C<d_mkstemps>, C<d_mktime>, C<d_mmap>, C<d_mprotect>, C<d_msg>,
+C<d_msg_ctrunc>, C<d_msg_dontroute>, C<d_msg_oob>, C<d_msg_peek>,
+C<d_msg_proxy>, C<d_msgctl>, C<d_msgget>, C<d_msgrcv>, C<d_msgsnd>,
+C<d_msync>, C<d_munmap>, C<d_mymalloc>, C<d_nice>, C<d_nv_preserves_uv>,
+C<d_off64_t>, C<d_old_pthread_create_joinable>, C<d_oldpthreads>,
+C<d_oldsock>, C<d_open3>, C<d_pathconf>, C<d_pause>, C<d_phostname>,
+C<d_pipe>, C<d_poll>, C<d_portable>, C<d_PRId64>, C<d_PRIeldbl>,
+C<d_PRIEldbl>, C<d_PRIfldbl>, C<d_PRIFldbl>, C<d_PRIgldbl>, C<d_PRIGldbl>,
+C<d_PRIi64>, C<d_PRIo64>, C<d_PRIu64>, C<d_PRIx64>, C<d_PRIX64>,
+C<d_pthread_yield>, C<d_pwage>, C<d_pwchange>, C<d_pwclass>,
+C<d_pwcomment>, C<d_pwexpire>, C<d_pwgecos>, C<d_pwpasswd>, C<d_pwquota>,
+C<d_qgcvt>, C<d_quad>, C<d_readdir>, C<d_readlink>, C<d_rename>,
+C<d_rewinddir>, C<d_rmdir>, C<d_safebcpy>, C<d_safemcpy>, C<d_sanemcmp>,
+C<d_sched_yield>, C<d_scm_rights>, C<d_seekdir>, C<d_select>, C<d_sem>,
+C<d_semctl>, C<d_semctl_semid_ds>, C<d_semctl_semun>, C<d_semget>,
+C<d_semop>, C<d_setegid>, C<d_seteuid>, C<d_setgrent>, C<d_setgrps>,
+C<d_sethent>, C<d_setlinebuf>, C<d_setlocale>, C<d_setnent>, C<d_setpent>,
+C<d_setpgid>, C<d_setpgrp2>, C<d_setpgrp>, C<d_setprior>, C<d_setpwent>,
+C<d_setregid>, C<d_setresgid>, C<d_setresuid>, C<d_setreuid>, C<d_setrgid>,
+C<d_setruid>, C<d_setsent>, C<d_setsid>, C<d_setspent>, C<d_setvbuf>,
+C<d_sfio>, C<d_shm>, C<d_shmat>, C<d_shmatprototype>, C<d_shmctl>,
+C<d_shmdt>, C<d_shmget>, C<d_sigaction>, C<d_sigsetjmp>, C<d_socket>,
+C<d_socklen_t>, C<d_sockpair>, C<d_sqrtl>, C<d_statblks>,
+C<d_statfs_f_flags>, C<d_statfs_s>, C<d_statvfs>, C<d_stdio_cnt_lval>,
+C<d_stdio_ptr_lval>, C<d_stdio_stream_array>, C<d_stdiobase>,
+C<d_stdstdio>, C<d_strchr>, C<d_strcoll>, C<d_strctcpy>, C<d_strerrm>,
+C<d_strerror>, C<d_strtod>, C<d_strtol>, C<d_strtold>, C<d_strtoll>,
+C<d_strtoul>, C<d_strtoull>, C<d_strtouq>, C<d_strxfrm>, C<d_suidsafe>,
+C<d_symlink>, C<d_syscall>, C<d_sysconf>, C<d_sysernlst>, C<d_syserrlst>,
+C<d_system>, C<d_tcgetpgrp>, C<d_tcsetpgrp>, C<d_telldir>,
 C<d_telldirproto>, C<d_time>, C<d_times>, C<d_truncate>, C<d_tzname>,
-C<d_umask>, C<d_uname>, C<d_union_semun>, C<d_ustat>, C<d_vendorbin>,
-C<d_vendorlib>, C<d_vfork>, C<d_void_closedir>, C<d_voidsig>, C<d_voidtty>,
-C<d_volatile>, C<d_vprintf>, C<d_wait4>, C<d_waitpid>, C<d_wcstombs>,
-C<d_wctomb>, C<d_xenix>, C<date>, C<db_hashtype>, C<db_prefixtype>,
-C<defvoidused>, C<direntrytype>, C<dlext>, C<dlsrc>, C<doublesize>,
-C<drand01>, C<dynamic_ext>
+C<d_umask>, C<d_uname>, C<d_union_semun>, C<d_ustat>, C<d_vendorarch>,
+C<d_vendorbin>, C<d_vendorlib>, C<d_vfork>, C<d_void_closedir>,
+C<d_voidsig>, C<d_voidtty>, C<d_volatile>, C<d_vprintf>, C<d_wait4>,
+C<d_waitpid>, C<d_wcstombs>, C<d_wctomb>, C<d_xenix>, C<date>,
+C<db_hashtype>, C<db_prefixtype>, C<defvoidused>, C<direntrytype>,
+C<dlext>, C<dlsrc>, C<doublesize>, C<drand01>, C<dynamic_ext>
 
 =item e
 
@@ -5628,24 +5681,25 @@ C<h_fcntl>, C<h_sysfile>, C<hint>, C<hostcat>, C<huge>
 C<i16size>, C<i16type>, C<i32size>, C<i32type>, C<i64size>, C<i64type>,
 C<i8size>, C<i8type>, C<i_arpainet>, C<i_bsdioctl>, C<i_db>, C<i_dbm>,
 C<i_dirent>, C<i_dld>, C<i_dlfcn>, C<i_fcntl>, C<i_float>, C<i_gdbm>,
-C<i_grp>, C<i_iconv>, C<i_inttypes>, C<i_limits>, C<i_locale>,
+C<i_grp>, C<i_iconv>, C<i_ieeefp>, C<i_inttypes>, C<i_limits>, C<i_locale>,
 C<i_machcthr>, C<i_malloc>, C<i_math>, C<i_memory>, C<i_mntent>, C<i_ndbm>,
 C<i_netdb>, C<i_neterrno>, C<i_netinettcp>, C<i_niin>, C<i_poll>,
 C<i_pthread>, C<i_pwd>, C<i_rpcsvcdbm>, C<i_sfio>, C<i_sgtty>, C<i_shadow>,
 C<i_socks>, C<i_stdarg>, C<i_stddef>, C<i_stdlib>, C<i_string>,
-C<i_sysaccess>, C<i_sysdir>, C<i_sysfile>, C<i_sysfilio>, C<i_sysin>,
-C<i_sysioctl>, C<i_syslog>, C<i_sysmman>, C<i_sysmode>, C<i_sysmount>,
-C<i_sysndir>, C<i_sysparam>, C<i_sysresrc>, C<i_syssecrt>, C<i_sysselct>,
-C<i_syssockio>, C<i_sysstat>, C<i_sysstatfs>, C<i_sysstatvfs>,
-C<i_systime>, C<i_systimek>, C<i_systimes>, C<i_systypes>, C<i_sysuio>,
-C<i_sysun>, C<i_sysutsname>, C<i_sysvfs>, C<i_syswait>, C<i_termio>,
-C<i_termios>, C<i_time>, C<i_unistd>, C<i_ustat>, C<i_utime>, C<i_values>,
-C<i_varargs>, C<i_varhdr>, C<i_vfork>, C<ignore_versioned_solibs>,
-C<inc_version_list>, C<inc_version_list_init>, C<incpath>, C<inews>,
-C<installarchlib>, C<installbin>, C<installman1dir>, C<installman3dir>,
-C<installprefix>, C<installprefixexp>, C<installprivlib>, C<installscript>,
-C<installsitearch>, C<installsitebin>, C<installsitelib>, C<installstyle>,
-C<installusrbinperl>, C<installvendorbin>, C<installvendorlib>, C<intsize>,
+C<i_sunmath>, C<i_sysaccess>, C<i_sysdir>, C<i_sysfile>, C<i_sysfilio>,
+C<i_sysin>, C<i_sysioctl>, C<i_syslog>, C<i_sysmman>, C<i_sysmode>,
+C<i_sysmount>, C<i_sysndir>, C<i_sysparam>, C<i_sysresrc>, C<i_syssecrt>,
+C<i_sysselct>, C<i_syssockio>, C<i_sysstat>, C<i_sysstatfs>,
+C<i_sysstatvfs>, C<i_systime>, C<i_systimek>, C<i_systimes>, C<i_systypes>,
+C<i_sysuio>, C<i_sysun>, C<i_sysutsname>, C<i_sysvfs>, C<i_syswait>,
+C<i_termio>, C<i_termios>, C<i_time>, C<i_unistd>, C<i_ustat>, C<i_utime>,
+C<i_values>, C<i_varargs>, C<i_varhdr>, C<i_vfork>,
+C<ignore_versioned_solibs>, C<inc_version_list>, C<inc_version_list_init>,
+C<incpath>, C<inews>, C<installarchlib>, C<installbin>, C<installman1dir>,
+C<installman3dir>, C<installprefix>, C<installprefixexp>,
+C<installprivlib>, C<installscript>, C<installsitearch>, C<installsitebin>,
+C<installsitelib>, C<installstyle>, C<installusrbinperl>,
+C<installvendorarch>, C<installvendorbin>, C<installvendorlib>, C<intsize>,
 C<ivdformat>, C<ivsize>, C<ivtype>
 
 =item k
@@ -5712,15 +5766,15 @@ C<selectminbits>, C<selecttype>, C<sendmail>, C<sh>, C<shar>, C<sharpbang>,
 C<shmattype>, C<shortsize>, C<shrpenv>, C<shsharp>, C<sig_count>,
 C<sig_name>, C<sig_name_init>, C<sig_num>, C<sig_num_init>, C<signal_t>,
 C<sitearch>, C<sitearchexp>, C<sitebin>, C<sitebinexp>, C<sitelib>,
-C<sitelibexp>, C<siteprefix>, C<siteprefixexp>, C<sizetype>, C<sleep>,
-C<smail>, C<small>, C<so>, C<sockethdr>, C<socketlib>, C<socksizetype>,
-C<sort>, C<spackage>, C<spitshell>, C<split>, C<sPRId64>, C<sPRIeldbl>,
-C<sPRIEldbl>, C<sPRIfldbl>, C<sPRIFldbl>, C<sPRIgldbl>, C<sPRIGldbl>,
-C<sPRIi64>, C<sPRIo64>, C<sPRIu64>, C<sPRIx64>, C<sPRIX64>, C<src>,
-C<ssizetype>, C<startperl>, C<startsh>, C<static_ext>, C<stdchar>,
-C<stdio_base>, C<stdio_bufsiz>, C<stdio_cnt>, C<stdio_filbuf>,
-C<stdio_ptr>, C<stdio_stream_array>, C<strings>, C<submit>, C<subversion>,
-C<sysman>
+C<sitelib_stem>, C<sitelibexp>, C<siteprefix>, C<siteprefixexp>,
+C<sizesize>, C<sizetype>, C<sleep>, C<smail>, C<small>, C<so>,
+C<sockethdr>, C<socketlib>, C<socksizetype>, C<sort>, C<spackage>,
+C<spitshell>, C<split>, C<sPRId64>, C<sPRIeldbl>, C<sPRIEldbl>,
+C<sPRIfldbl>, C<sPRIFldbl>, C<sPRIgldbl>, C<sPRIGldbl>, C<sPRIi64>,
+C<sPRIo64>, C<sPRIu64>, C<sPRIx64>, C<sPRIX64>, C<src>, C<ssizetype>,
+C<startperl>, C<startsh>, C<static_ext>, C<stdchar>, C<stdio_base>,
+C<stdio_bufsiz>, C<stdio_cnt>, C<stdio_filbuf>, C<stdio_ptr>,
+C<stdio_stream_array>, C<strings>, C<submit>, C<subversion>, C<sysman>
 
 =item t
 
@@ -5741,8 +5795,9 @@ C<uvxformat>
 
 =item v
 
-C<vendorbin>, C<vendorbinexp>, C<vendorlib>, C<vendorlibexp>,
-C<vendorprefix>, C<vendorprefixexp>, C<version>, C<vi>, C<voidflags>
+C<vendorarch>, C<vendorarchexp>, C<vendorbin>, C<vendorbinexp>,
+C<vendorlib>, C<vendorlib_stem>, C<vendorlibexp>, C<vendorprefix>,
+C<vendorprefixexp>, C<version>, C<vi>, C<voidflags>
 
 =item x
 
@@ -5954,14 +6009,13 @@ printing and C<eval>
 =item Methods
 
 I<PACKAGE>->new(I<ARRAYREF [>, I<ARRAYREF]>), I<$OBJ>->Dump  I<or> 
-I<PACKAGE>->Dump(I<ARRAYREF [>, I<ARRAYREF]>), I<$OBJ>->Dumpxs I<or> 
-I<PACKAGE>->Dumpxs(I<ARRAYREF [>, I<ARRAYREF]>),
-I<$OBJ>->Seen(I<[HASHREF]>), I<$OBJ>->Values(I<[ARRAYREF]>),
-I<$OBJ>->Names(I<[ARRAYREF]>), I<$OBJ>->Reset
+I<PACKAGE>->Dump(I<ARRAYREF [>, I<ARRAYREF]>), I<$OBJ>->Seen(I<[HASHREF]>),
+I<$OBJ>->Values(I<[ARRAYREF]>), I<$OBJ>->Names(I<[ARRAYREF]>),
+I<$OBJ>->Reset
 
 =item Functions
 
-Dumper(I<LIST>), DumperX(I<LIST>)
+Dumper(I<LIST>)
 
 =item Configuration Variables or Methods
 
@@ -6114,7 +6168,7 @@ veryCompact, set, get
 
 @dl_library_path, @dl_resolve_using, @dl_require_symbols, @dl_librefs,
 @dl_modules, dl_error(), $dl_debug, dl_findfile(), dl_expandspec(),
-dl_load_file(), dl_loadflags(), dl_find_symbol(),
+dl_load_file(), dl_unload_file(), dl_loadflags(), dl_find_symbol(),
 dl_find_symbol_anywhere(), dl_undef_symbols(), dl_install_xsub(),
 bootstrap()
 
@@ -6148,7 +6202,8 @@ variables
 
 =back
 
-=head2 Env - perl module that imports environment variables
+=head2 Env - perl module that imports environment variables as scalars or
+arrays
 
 =over
 
@@ -6156,6 +6211,8 @@ variables
 
 =item DESCRIPTION
 
+=item LIMITATIONS
+
 =item AUTHOR
 
 =back
@@ -7254,9 +7311,9 @@ splitdir (override)
 
 catpath (override)
 
-splitpath
+abs2rel (override)
 
-splitdir
+rel2abs (override)
 
 =over
 
@@ -7372,8 +7429,7 @@ $fh->print, $fh->printf, $fh->getline, $fh->getlines
 
 =back
 
-=head2 Getopt::Long, GetOptions - extended processing of command line
-options
+=head2 Getopt::Long - Extended processing of command line options
 
 =over
 
@@ -7381,36 +7437,72 @@ options
 
 =item DESCRIPTION
 
-!, +, :s, :i, :f
+=item Command Line Options, an Introduction
+
+=item Getting Started with Getopt::Long
 
 =over
 
-=item Linkage specification
+=item Simple options
 
-=item Aliases and abbreviations
+=item A little bit less simple options
 
-=item Non-option call-back routine
+=item Mixing command line option with other arguments
 
-=item Option starters
+=item Options with values
 
-=item Return values and Errors
+=item Options with multiple values
+
+=item Options with hash values
+
+=item User-defined subroutines to handle options
+
+=item Options with multiple names
+
+=item Case and abbreviations
+
+=item Summary of Option Specifications
+
+!, +, s, i, f, : I<type> [ I<desttype> ]
 
 =back
 
-=item COMPATIBILITY
+=item Advanced Possibilities
 
-=item EXAMPLES
+=over
+
+=item Documentation and help texts
+
+=item Storing options in a hash
+
+=item Bundling
 
-=item CONFIGURATION OPTIONS
+=item The lonesome dash
+
+=item Argument call-back
+
+=back
+
+=item Configuring Getopt::Long
 
 default, auto_abbrev, getopt_compat, require_order, permute, bundling
 (default: reset), bundling_override (default: reset), ignore_case 
 (default: set), ignore_case_always (default: reset), pass_through (default:
 reset), prefix, prefix_pattern, debug (default: reset)
 
-=item OTHER USEFUL VARIABLES
+=item Return values and Errors
+
+=item Legacy
 
-$Getopt::Long::VERSION, $Getopt::Long::error
+=over
+
+=item Default destinations
+
+=item Alternative option starters
+
+=item Configuration variables
+
+=back
 
 =item AUTHOR
 
@@ -8096,33 +8188,6 @@ Canonical notation, Input, Output
 
 =back
 
-=head2 Math::Complex - complex numbers and associated mathematical
-functions
-
-=over
-
-=item SYNOPSIS
-
-=item DESCRIPTION
-
-=item OPERATIONS
-
-=item CREATION
-
-=item STRINGIFICATION
-
-=item USAGE
-
-=item ERRORS DUE TO DIVISION BY ZERO OR LOGARITHM OF ZERO
-
-=item ERRORS DUE TO INDIGESTIBLE ARGUMENTS
-
-=item BUGS
-
-=item AUTHORS
-
-=back
-
 =head2 Math::Trig - trigonometric functions
 
 =over
@@ -8617,9 +8682,9 @@ B<-verbose>, B<-perl>, B<-script>, B<-inc>
 
 =item ARGUMENTS
 
-help, htmldir, htmlroot, infile, outfile, podroot, podpath, libpods,
-netscape, nonetscape, index, noindex, recurse, norecurse, title, css,
-verbose, quiet
+backlink, css, flush, header, help, htmldir, htmlroot, index, infile,
+libpods, netscape, outfile, podpath, podroot, quiet, recurse, title,
+verbose
 
 =item EXAMPLE
 
@@ -8881,8 +8946,6 @@ EE<lt>%sE<gt>, Unknown sequence %s, Unmatched =back
 
 =item BUGS
 
-=item NOTES
-
 =item SEE ALSO
 
 =item AUTHOR
@@ -9009,7 +9072,8 @@ idx()
 
 =item PARSING OPTIONS
 
-B<-want_nonPODs> (default: unset), B<-process_cut_cmd> (default: unset)
+B<-want_nonPODs> (default: unset), B<-process_cut_cmd> (default: unset),
+B<-warnings> (default: unset)
 
 =back
 
@@ -9231,6 +9295,26 @@ I<code-ref>|I<method-name>
 
 =back
 
+=head2 Pod::Plainer - Perl extension for converting Pod to old style Pod.
+
+=over
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=over
+
+=item EXPORT
+
+=back
+
+=item AUTHOR
+
+=item SEE ALSO
+
+=back
+
 =head2 Pod::Select, podselect() - extract selected sections of POD from
 input
 
@@ -9608,6 +9692,26 @@ closelog
 
 =back
 
+=head2 Term::ANSIColor - Color screen output using ANSI escape sequences
+
+=over
+
+=item SYNOPSIS
+
+=item DESCRIPTION
+
+=item DIAGNOSTICS
+
+Invalid attribute name %s, Identifier %s used only once: possible typo, No
+comma allowed after filehandle, Bareword %s not allowed while "strict subs"
+in use
+
+=item RESTRICTIONS
+
+=item AUTHORS
+
+=back
+
 =head2 Term::Cap - Perl termcap interface
 
 =over
@@ -10065,10 +10169,20 @@ functions
 
 =item DESCRIPTION
 
+=over
+
+=item System Specifics
+
+=back
+
 =item NOTE
 
 =item AUTHOR
 
+=item HISTORY
+
+March 18th, 2000
+
 =back
 
 =head2 XSLoader - Dynamically load C libraries into Perl code
index f22d473..f12b10f 100644 (file)
@@ -85,7 +85,7 @@ We need regression/sanity tests for suidperl
 
 This value may or may not be accurate, but it certainly is
 eye-catching.  For some things perl5 is faster than perl4, but often
-the reliability and extensability have come at a cost of speed.  The
+the reliability and extensibility have come at a cost of speed.  The
 benchmark suite that Gisle released earlier has been hailed as both a
 fantastic solution and as a source of entirely meaningless figures.
 Do we need to test "real applications"?  Can you do so?  Anyone have
@@ -161,7 +161,7 @@ Sarathy, I believe, did the work.  Here's what he has to say:
 
 Yeah, I hope to implement it someday too.  The points that were
 raised in TPC2 were all to do with calling DESTROY() methods, but
-I think we can accomodate that by extending bless() to stash
+I think we can accommodate that by extending bless() to stash
 extra information for objects so we track their lifetime accurately
 for those that want their DESTROY() to be predictable (this will be
 a speed hit, naturally, and will therefore be optional, naturally. :)
@@ -863,7 +863,7 @@ See Time::HiRes.
 
 =head2 autocroak?
 
-This is the Fatal.pm module, so any builtin that that does
+This is the Fatal.pm module, so any builtin that does
 not return success automatically die()s.  If you're feeling brave, tie
 this in with the unified exceptions scheme.
 
index 64f8233..0bcb638 100644 (file)
@@ -184,7 +184,7 @@ to which beginning Perl programmers attempt to put symbolic references,
 we have much better approaches, like nested hashes or hashes of arrays.
 But there's nothing wrong with using symbolic references to manipulate
 something that is meaningful only from the perspective of the package
-symbol symbol table, like method names or package variables.  In other
+symbol table, like method names or package variables.  In other
 words, when you want to refer to the symbol table, use symbol references.
 
 Clustering all the class attributes in one place has several advantages.
index e528254..c477272 100644 (file)
@@ -172,12 +172,6 @@ Variables begin with "$", "@" or "%" in Perl.
 
 =item *
 
-C<printf()> does not implement the "*" format for interpolating
-field widths, but it's trivial to use interpolation of double-quoted
-strings to achieve the same effect.
-
-=item *
-
 Comments begin with "#", not "/*".
 
 =item *
@@ -392,8 +386,9 @@ Everything else.
 =back
 
 If you find an example of a conversion trap that is not listed here,
-please submit it to Bill Middleton <F<wjm@best.com>> for inclusion.
-Also note that at least some of these can be caught with B<-w>.
+please submit it to <F<perlbug@perl.org>> for inclusion.
+Also note that at least some of these can be caught with the
+C<use warnings> pragma or the B<-w> switch.
 
 =head2 Discontinuance, Deprecation, and BugFix traps
 
index c8e31bf..c686661 100644 (file)
@@ -114,12 +114,7 @@ will typically occur directly within the literal strings as UTF-8
 characters, but you can also specify a particular character with an
 extension of the C<\x> notation.  UTF-8 characters are specified by
 putting the hexadecimal code within curlies after the C<\x>.  For instance,
-a Unicode smiley face is C<\x{263A}>.  A character in the Latin-1 range
-(128..255) should be written C<\x{ab}> rather than C<\xab>, since the
-former will turn into a two-byte UTF-8 code, while the latter will
-continue to be interpreted as generating a 8-bit byte rather than a
-character.  In fact, if C<-w> is turned on, it will produce a warning
-that you might be generating invalid UTF-8.
+a Unicode smiley face is C<\x{263A}>.
 
 =item *
 
index 04fb3fe..15308e4 100644 (file)
@@ -174,6 +174,8 @@ example:
 (Mnemonic: be positive and forward looking.)
 This variable is read-only and dynamically scoped to the current BLOCK.
 
+=item @LAST_MATCH_END
+
 =item @+
 
 This array holds the offsets of the ends of the last successful
@@ -412,6 +414,8 @@ channel.
 Used with formats.
 (Mnemonic: lines_on_page - lines_printed.)
 
+=item @LAST_MATCH_START
+
 =item @-
 
 $-[0] is the offset of the start of the last successful match.
@@ -439,17 +443,17 @@ After a match against some variable $var:
 
 =over 5
 
-=item C<$`> is the same as C<substr($var, 0, $-[0]>)
+=item C<$`> is the same as C<substr($var, 0, $-[0])>
 
-=item C<$&> is the same as C<substr($var, $-[0], $+[0] - $-[0]>) 
+=item C<$&> is the same as C<substr($var, $-[0], $+[0] - $-[0])>
 
-=item C<$'> is the same as C<substr($var, $+[0]>)
+=item C<$'> is the same as C<substr($var, $+[0])>
 
 =item C<$1> is the same as C<substr($var, $-[1], $+[1] - $-[1])>  
 
 =item C<$2> is the same as C<substr($var, $-[2], $+[2] - $-[2])>
 
-=item C<$3> is the same as C<substr $var, $-[3], $+[3] - $-[3]>) 
+=item C<$3> is the same as C<substr $var, $-[3], $+[3] - $-[3])>
 
 =back
 
@@ -814,7 +818,7 @@ Then
 
     $^M = 'a' x (1 << 16);
 
-would allocate a 64K buffer for use when in emergency.  See the
+would allocate a 64K buffer for use in an emergency.  See the
 F<INSTALL> file in the Perl distribution for information on how to
 enable this option.  To discourage casual use of this advanced
 feature, there is no L<English> long name for this variable.
index 3c0927e..c696e19 100644 (file)
@@ -534,7 +534,7 @@ the parameters in the correct order for that function.
 =head2 The PREINIT: Keyword
 
 The PREINIT: keyword allows extra variables to be declared immediately
-before or after the declartions of the parameters from the INPUT: section
+before or after the declarations of the parameters from the INPUT: section
 are emitted.
 
 If a variable is declared inside a CODE: section it will follow any typemap
index 88c04ad..4756a9e 100644 (file)
@@ -114,6 +114,7 @@ The file Mytest.pm should start with something like this:
        package Mytest;
 
        use strict;
+        use warnings;
 
        require Exporter;
        require DynaLoader;
@@ -475,7 +476,7 @@ section on the argument stack.
 In general, it's not a good idea to write extensions that modify their input
 parameters, as in Example 3.  Instead, you should probably return multiple
 values in an array and let the caller handle them (we'll do this in a later
-example).  However, in order to better accomodate calling pre-existing C
+example).  However, in order to better accommodate calling pre-existing C
 routines, which often do modify their input parameters, this behavior is
 tolerated.
 
@@ -905,7 +906,7 @@ to assist in making the interface between Perl and your extension simpler
 or easier to understand.  These routines should live in the .pm file.
 Whether they are automatically loaded when the extension itself is loaded
 or only loaded when called depends on where in the .pm file the subroutine
-definition is placed.  You can also consult L<Autoloader> for an alternate
+definition is placed.  You can also consult L<AutoLoader> for an alternate
 way to store and load your extra subroutines.
 
 =head2 Documenting your Extension
index 4312e9f..bf35cff 100644 (file)
@@ -36,14 +36,12 @@ $Config{startperl}
 print OUT <<'!NO!SUBS!';
 
 # pod2man -- Convert POD data to formatted *roff input.
+# $Id: pod2man.PL,v 1.2 2000/03/16 21:08:23 eagle Exp $
 #
-# Copyright 1999 by Russ Allbery <rra@stanford.edu>
+# Copyright 1999, 2000 by Russ Allbery <rra@stanford.edu>
 #
 # This program is free software; you can redistribute it and/or modify it
 # under the same terms as Perl itself.
-#
-# The driver script for Pod::Man.  This script is expected to eventually
-# replace pod2man in the standard Perl distribution.
 
 require 5.004;
 
@@ -52,12 +50,17 @@ use Pod::Man ();
 use Pod::Usage qw(pod2usage);
 
 use strict;
-use vars;
+
+# Insert -- into @ARGV before any single dash argument to hide it from
+# Getopt::Long; we want to interpret it as meaning stdin (which Pod::Parser
+# does correctly).
+my $stdin;
+@ARGV = map { $_ eq '-' && !$stdin++ ? ('--', $_) : $_ } @ARGV;
 
 # Parse our options, trying to retain backwards compatibility with pod2man
 # but allowing short forms as well.  --lax is currently ignored.
 my %options;
-Getopt::Long::config ('bundling');
+Getopt::Long::config ('bundling_override');
 GetOptions (\%options, 'section|s=s', 'release|r=s', 'center|c=s',
             'date|d=s', 'fixed=s', 'fixedbold=s', 'fixeditalic=s',
             'fixedbolditalic=s', 'official|o', 'lax|l', 'help|h') or exit 1;
@@ -80,13 +83,13 @@ pod2man - Convert POD data to formatted *roff input
 
 =head1 SYNOPSIS
 
-pod2txt [B<--section>=I<manext>] [B<--release>=I<version>]
+pod2man [B<--section>=I<manext>] [B<--release>=I<version>]
 [B<--center>=I<string>] [B<--date>=I<string>] [B<--fixed>=I<font>]
 [B<--fixedbold>=I<font>] [B<--fixeditalic>=I<font>]
 [B<--fixedbolditalic>=I<font>] [B<--official>] [B<--lax>] [I<input>
 [I<output>]]
 
-pod2txt B<--help>
+pod2man B<--help>
 
 =head1 DESCRIPTION
 
@@ -320,11 +323,11 @@ functions.
 
 =item ERRORS
 
-Exceptions, error return codes, exit stati, and errno settings.  Typically
-used for function documentation; program documentation uses DIAGNOSTICS
-instead.  The general rule of thumb is that errors printed to STDOUT or
-STDERR and intended for the end user are documented in DIAGNOSTICS while
-errors passed internal to the calling program and intended for other
+Exceptions, error return codes, exit statuses, and errno settings.
+Typically used for function documentation; program documentation uses
+DIAGNOSTICS instead.  The general rule of thumb is that errors printed to
+STDOUT or STDERR and intended for the end user are documented in DIAGNOSTICS
+while errors passed internal to the calling program and intended for other
 programmers are documented in ERRORS.  When documenting a function that sets
 errno, a full list of the possible errno values should be given here.
 
@@ -463,6 +466,7 @@ page, are taken from the B<pod2man> documentation by Tom.
 
 =cut
 !NO!SUBS!
+#'# (cperl-mode)
 
 close OUT or die "Can't close $file: $!";
 chmod 0755, $file or die "Can't reset permissions for $file: $!\n";
index 79cf8b2..c5460ae 100644 (file)
@@ -37,7 +37,7 @@ print OUT <<'!NO!SUBS!';
 
 # pod2text -- Convert POD data to formatted ASCII text.
 #
-# Copyright 1999 by Russ Allbery <rra@stanford.edu>
+# Copyright 1999, 2000 by Russ Allbery <rra@stanford.edu>
 #
 # This program is free software; you can redistribute it and/or modify it
 # under the same terms as Perl itself.
@@ -52,7 +52,6 @@ use Pod::Text ();
 use Pod::Usage qw(pod2usage);
 
 use strict;
-use vars qw($ID);
 
 # Take an initial pass through our options, looking for one of the form
 # -<number>.  We turn that into -w <number> for compatibility with the
@@ -64,14 +63,19 @@ for (my $i = 0; $i < @ARGV; $i++) {
     }
 }
 
+# Insert -- into @ARGV before any single dash argument to hide it from
+# Getopt::Long; we want to interpret it as meaning stdin (which Pod::Parser
+# does correctly).
+my $stdin;
+@ARGV = map { $_ eq '-' && !$stdin++ ? ('--', $_) : $_ } @ARGV;
+
 # Parse our options.  Use the same names as Pod::Text for simplicity, and
 # default to sentence boundaries turned off for compatibility.
 my %options;
-$options{termcap} = -t STDOUT;
 $options{sentence} = 0;
 Getopt::Long::config ('bundling');
 GetOptions (\%options, 'alt|a', 'color|c', 'help|h', 'indent|i=i',
-            'loose|l', 'sentence|s', 'termcap|t!', 'width|w=i') or exit 1;
+            'loose|l', 'sentence|s', 'termcap|t', 'width|w=i') or exit 1;
 pod2usage (1) if $options{help};
 
 # Figure out what formatter we're going to use.  -c overrides -t.
@@ -114,10 +118,6 @@ code).  If I<input> isn't given, it defaults to STDIN.  I<output>, if given,
 is the file to which to write the formatted output.  If I<output> isn't
 given, the formatted output is written to STDOUT.
 
-B<pod2text> defaults to trying to use Pod::Text::Termcap if STDOUT is a tty.
-To explicitly say not to attempt termcap escape sequences, use
-B<--notermcap>.
-
 =head1 OPTIONS
 
 =over 4
@@ -160,9 +160,9 @@ Try to determine the width of the screen and the bold and underline
 sequences for the terminal from termcap, and use that information in
 formatting the output.  Output will be wrapped at two columns less than the
 width of your terminal device.  Using this option requires that your system
-have a termcap file somewhere where Term::Cap can find it.  With this
-option, the output of B<pod2text> will contain terminal control sequences
-for your current terminal type.
+have a termcap file somewhere where Term::Cap can find it and requires that
+your system support termios.  With this option, the output of B<pod2text>
+will contain terminal control sequences for your current terminal type.
 
 =item B<-w>, B<--width=>I<width>, B<->I<width>
 
index ebfcc7e..018c0b3 100644 (file)
@@ -56,6 +56,7 @@ toroff=`
     $mandir/perlbot.1  \
     $mandir/perlipc.1  \
     $mandir/perlthrtut.1       \
+    $mandir/perldebguts.1      \
     $mandir/perldebug.1        \
     $mandir/perlnumber.1       \
     $mandir/perldiag.1 \
diff --git a/pp.c b/pp.c
index 01a90e2..e148197 100644 (file)
--- a/pp.c
+++ b/pp.c
@@ -205,7 +205,7 @@ PP(pp_rv2gv)
                if (SvROK(sv))
                    goto wasref;
            }
-           if (!SvOK(sv)) {
+           if (!SvOK(sv) && sv != &PL_sv_undef) {
                /* If this is a 'my' scalar and flag is set then vivify 
                 * NI-S 1999/05/07
                 */ 
@@ -1076,10 +1076,10 @@ PP(pp_repeat)
            SP -= items;
     }
     else {     /* Note: mark already snarfed by pp_list */
-       SV *tmpstr;
+       SV *tmpstr = POPs;
        STRLEN len;
+       bool isutf = DO_UTF8(tmpstr);
 
-       tmpstr = POPs;
        SvSetSV(TARG, tmpstr);
        SvPV_force(TARG, len);
        if (count != 1) {
@@ -1092,7 +1092,10 @@ PP(pp_repeat)
            }
            *SvEND(TARG) = '\0';
        }
-       (void)SvPOK_only(TARG);
+       if (isutf)
+           (void)SvPOK_only_UTF8(TARG);
+       else
+           (void)SvPOK_only(TARG);
        PUSHTARG;
     }
     RETURN;
@@ -1199,15 +1202,8 @@ PP(pp_ncmp)
     {
       dPOPTOPnnrl;
       I32 value;
-#ifdef __osf__ /* XXX fix in 5.6.1 --jhi */
-#if defined(USE_LONG_DOUBLE) && defined(HAS_LONG_DOUBLE)
-#define Perl_isnan isnanl
-#else
-#define Perl_isnan isnan
-#endif
-#endif
 
-#ifdef __osf__ /* XXX fix in 5.6.1 --jhi */
+#ifdef Perl_isnan
       if (Perl_isnan(left) || Perl_isnan(right)) {
          SETs(&PL_sv_undef);
          RETURN;
@@ -1892,6 +1888,7 @@ PP(pp_hex)
     STRLEN n_a;
 
     tmps = POPpx;
+    argtype = 1;               /* allow underscores */
     XPUSHn(scan_hex(tmps, 99, &argtype));
     RETURN;
 }
@@ -1909,6 +1906,7 @@ PP(pp_oct)
        tmps++;
     if (*tmps == '0')
        tmps++;
+    argtype = 1;               /* allow underscores */
     if (*tmps == 'x')
        value = scan_hex(++tmps, 99, &argtype);
     else if (*tmps == 'b')
@@ -2013,12 +2011,12 @@ PP(pp_substr)
        RETPUSHUNDEF;
     }
     else {
-        if (utfcurlen) {
+       if (utfcurlen)
            sv_pos_u2b(sv, &pos, &rem);
-           SvUTF8_on(TARG);
-       }
        tmps += pos;
        sv_setpvn(TARG, tmps, rem);
+       if (utfcurlen)
+           SvUTF8_on(TARG);
        if (repl)
            sv_insert(sv, pos, rem, repl, repl_len);
        else if (lvalue) {              /* it's an lvalue! */
@@ -2031,7 +2029,7 @@ PP(pp_substr)
                                "Attempt to use reference as lvalue in substr");
                }
                if (SvOK(sv))           /* is it defined ? */
-                   (void)SvPOK_only(sv);
+                   (void)SvPOK_only_UTF8(sv);
                else
                    sv_setpvn(sv,"",0); /* avoid lexical reincarnation */
            }
@@ -2214,7 +2212,6 @@ PP(pp_chr)
     tmps = SvPVX(TARG);
     *tmps++ = value;
     *tmps = '\0';
-    SvUTF8_off(TARG);                          /* decontaminate */
     (void)SvPOK_only(TARG);
     XPUSHs(TARG);
     RETURN;
@@ -2547,7 +2544,7 @@ PP(pp_quotemeta)
        }
        *d = '\0';
        SvCUR_set(TARG, d - SvPVX(TARG));
-       (void)SvPOK_only(TARG);
+       (void)SvPOK_only_UTF8(TARG);
     }
     else
        sv_setpvn(TARG, s, len);
@@ -3236,7 +3233,7 @@ PP(pp_reverse)
                *up++ = *down;
                *down-- = tmp;
            }
-           (void)SvPOK_only(TARG);
+           (void)SvPOK_only_UTF8(TARG);
        }
        SP = MARK + 1;
        SETTARG;
@@ -4445,7 +4442,8 @@ PP(pp_pack)
            if ((*pat != 'a' && *pat != 'A' && *pat != 'Z') || pat[1] != '*')
                DIE(aTHX_ "/ must be followed by a*, A* or Z*");
            lengthcode = sv_2mortal(newSViv(sv_len(items > 0
-                                                  ? *MARK : &PL_sv_no)));
+                                                  ? *MARK : &PL_sv_no)
+                                            + (*pat == 'Z' ? 1 : 0)));
        }
        switch(datumtype) {
        default:
@@ -4743,10 +4741,14 @@ PP(pp_pack)
                    DIE(aTHX_ "Cannot compress negative numbers");
 
                if (
-#ifdef CXUX_BROKEN_CONSTANT_CONVERT
-                   adouble <= UV_MAX_cxux
+#if UVSIZE > 4 && UVSIZE >= NVSIZE
+                   adouble <= 0xffffffff
 #else
+#   ifdef CXUX_BROKEN_CONSTANT_CONVERT
+                   adouble <= UV_MAX_cxux
+#   else
                    adouble <= UV_MAX
+#   endif
 #endif
                    )
                {
diff --git a/pp.h b/pp.h
index bdc0b1a..7f396b2 100644 (file)
--- a/pp.h
+++ b/pp.h
@@ -143,7 +143,7 @@ Pops a long off the stack.
 /*
 =for apidoc Am|void|EXTEND|SP|int nitems
 Used to extend the argument stack for an XSUB's return values. Once
-used, guarrantees that there is room for at least C<nitems> to be pushed
+used, guarantees that there is room for at least C<nitems> to be pushed
 onto the stack.
 
 =for apidoc Am|void|PUSHs|SV* sv
diff --git a/pp.sym b/pp.sym
index 73d3dcf..0e6c056 100644 (file)
--- a/pp.sym
+++ b/pp.sym
@@ -13,6 +13,7 @@ Perl_ck_eof
 Perl_ck_eval
 Perl_ck_exec
 Perl_ck_exists
+Perl_ck_exit
 Perl_ck_ftst
 Perl_ck_fun
 Perl_ck_fun_locale
index 991af23..2308d35 100644 (file)
--- a/pp_ctl.c
+++ b/pp_ctl.c
@@ -883,15 +883,18 @@ PP(pp_sort)
 
            CATCH_SET(TRUE);
            PUSHSTACKi(PERLSI_SORT);
-           if (PL_sortstash != stash) {
-               PL_firstgv = gv_fetchpv("a", TRUE, SVt_PV);
-               PL_secondgv = gv_fetchpv("b", TRUE, SVt_PV);
-               PL_sortstash = stash;
+           if (!hasargs && !is_xsub) {
+               if (PL_sortstash != stash || !PL_firstgv || !PL_secondgv) {
+                   SAVESPTR(PL_firstgv);
+                   SAVESPTR(PL_secondgv);
+                   PL_firstgv = gv_fetchpv("a", TRUE, SVt_PV);
+                   PL_secondgv = gv_fetchpv("b", TRUE, SVt_PV);
+                   PL_sortstash = stash;
+               }
+               SAVESPTR(GvSV(PL_firstgv));
+               SAVESPTR(GvSV(PL_secondgv));
            }
 
-           SAVESPTR(GvSV(PL_firstgv));
-           SAVESPTR(GvSV(PL_secondgv));
-
            PUSHBLOCK(cx, CXt_NULL, PL_stack_base);
            if (!(PL_op->op_flags & OPf_SPECIAL)) {
                cx->cx_type = CXt_SUB;
@@ -1521,15 +1524,21 @@ PP(pp_caller)
     else
        PUSHs(sv_2mortal(newSViv(gimme & G_ARRAY)));
     if (CxTYPE(cx) == CXt_EVAL) {
+       /* eval STRING */
        if (cx->blk_eval.old_op_type == OP_ENTEREVAL) {
            PUSHs(cx->blk_eval.cur_text);
            PUSHs(&PL_sv_no);
        }
-       /* try blocks have old_namesv == 0 */
+       /* require */
        else if (cx->blk_eval.old_namesv) {
            PUSHs(sv_2mortal(newSVsv(cx->blk_eval.old_namesv)));
            PUSHs(&PL_sv_yes);
        }
+       /* eval BLOCK (try blocks have old_namesv == 0) */
+       else {
+           PUSHs(&PL_sv_undef);
+           PUSHs(&PL_sv_undef);
+       }
     }
     else {
        PUSHs(&PL_sv_undef);
@@ -1562,9 +1571,9 @@ PP(pp_caller)
     {
        SV * mask ;
        SV * old_warnings = cx->blk_oldcop->cop_warnings ;
-       if  (old_warnings == WARN_NONE || old_warnings == WARN_STD)
+       if  (old_warnings == pWARN_NONE || old_warnings == pWARN_STD)
             mask = newSVpvn(WARN_NONEstring, WARNsize) ;
-        else if (old_warnings == WARN_ALL)
+        else if (old_warnings == pWARN_ALL)
             mask = newSVpvn(WARN_ALLstring, WARNsize) ;
         else
             mask = newSVsv(old_warnings);
@@ -1848,15 +1857,21 @@ PP(pp_return)
                        *++newsp = SvREFCNT_inc(*SP);
                        FREETMPS;
                        sv_2mortal(*newsp);
-                   } else {
+                   }
+                   else {
+                       sv = SvREFCNT_inc(*SP); /* FREETMPS could clobber it */
                        FREETMPS;
-                       *++newsp = sv_mortalcopy(*SP);
+                       *++newsp = sv_mortalcopy(sv);
+                       SvREFCNT_dec(sv);
                    }
-               } else
+               }
+               else
                    *++newsp = (SvTEMP(*SP)) ? *SP : sv_mortalcopy(*SP);
-           } else
+           }
+           else
                *++newsp = sv_mortalcopy(*SP);
-       } else
+       }
+       else
            *++newsp = &PL_sv_undef;
     }
     else if (gimme == G_ARRAY) {
@@ -1973,7 +1988,7 @@ PP(pp_next)
 {
     I32 cxix;
     register PERL_CONTEXT *cx;
-    I32 oldsave;
+    I32 inner;
 
     if (PL_op->op_flags & OPf_SPECIAL) {
        cxix = dopoptoloop(cxstack_ix);
@@ -1988,13 +2003,12 @@ PP(pp_next)
     if (cxix < cxstack_ix)
        dounwind(cxix);
 
+    /* clear off anything above the scope we're re-entering, but
+     * save the rest until after a possible continue block */
+    inner = PL_scopestack_ix;
     TOPBLOCK(cx);
-
-    /* clean scope, but only if there's no continue block */
-    if (!(cx->blk_loop.last_op->op_private & OPpLOOP_CONTINUE)) {
-       oldsave = PL_scopestack[PL_scopestack_ix - 1];
-       LEAVE_SCOPE(oldsave);
-    }
+    if (PL_scopestack_ix < inner)
+       leave_scope(PL_scopestack[PL_scopestack_ix]);
     return cx->blk_loop.next_op;
 }
 
@@ -2457,8 +2471,8 @@ PP(pp_exit)
        anum = 0;
     else {
        anum = SvIVx(POPs);
-#ifdef VMSISH_EXIT
-       if (anum == 1 && VMSISH_EXIT)
+#ifdef VMS
+        if (anum == 1 && (PL_op->op_private & OPpEXIT_VMSISH))
            anum = 0;
 #endif
     }
@@ -2751,6 +2765,7 @@ S_doeval(pTHX_ int gimme, OP** startop)
     SAVESPTR(PL_beginav);
     PL_beginav = newAV();
     SAVEFREESV(PL_beginav);
+    SAVEI32(PL_error_count);
 
     /* try to compile it */
 
@@ -2904,8 +2919,8 @@ PP(pp_require)
 
     sv = POPs;
     if (SvNIOKp(sv)) {
-       UV rev, ver, sver;
-       if (SvPOKp(sv)) {               /* require v5.6.1 */
+       if (SvPOK(sv) && SvNOK(sv)) {           /* require v5.6.1 */
+           UV rev = 0, ver = 0, sver = 0;
            I32 len;
            U8 *s = (U8*)SvPVX(sv);
            U8 *end = (U8*)SvPVX(sv) + SvCUR(sv);
@@ -2917,24 +2932,19 @@ PP(pp_require)
                    s += len;
                    if (s < end)
                        sver = utf8_to_uv(s, &len);
-                   else
-                       sver = 0;
                }
-               else
-                   ver = 0;
            }
-           else
-               rev = 0;
            if (PERL_REVISION < rev
                || (PERL_REVISION == rev
                    && (PERL_VERSION < ver
                        || (PERL_VERSION == ver
                            && PERL_SUBVERSION < sver))))
            {
-               DIE(aTHX_ "Perl v%"UVuf".%"UVuf".%"UVuf" required--this is only version "
+               DIE(aTHX_ "Perl v%"UVuf".%"UVuf".%"UVuf" required--this is only "
                    "v%d.%d.%d, stopped", rev, ver, sver, PERL_REVISION,
                    PERL_VERSION, PERL_SUBVERSION);
            }
+           RETPUSHYES;
        }
        else if (!SvPOKp(sv)) {                 /* require 5.005_03 */
            if ((NV)PERL_REVISION + ((NV)PERL_VERSION/(NV)1000)
@@ -2948,12 +2958,23 @@ PP(pp_require)
                NV nsver = (nver - ver) * 1000;
                UV sver = (UV)(nsver + 0.0009);
 
-               DIE(aTHX_ "Perl v%"UVuf".%"UVuf".%"UVuf" required--this is only version "
-                   "v%d.%d.%d, stopped", rev, ver, sver, PERL_REVISION,
-                   PERL_VERSION, PERL_SUBVERSION);
+               /* help out with the "use 5.6" confusion */
+               if (sver == 0 && (rev > 5 || (rev == 5 && ver >= 100))) {
+                   DIE(aTHX_ "Perl v%"UVuf".%"UVuf".%"UVuf" required--"
+                       "this is only v%d.%d.%d, stopped"
+                       " (did you mean v%"UVuf".%"UVuf".0?)",
+                       rev, ver, sver, PERL_REVISION, PERL_VERSION,
+                       PERL_SUBVERSION, rev, ver/100);
+               }
+               else {
+                   DIE(aTHX_ "Perl v%"UVuf".%"UVuf".%"UVuf" required--"
+                       "this is only v%d.%d.%d, stopped",
+                       rev, ver, sver, PERL_REVISION, PERL_VERSION,
+                       PERL_SUBVERSION);
+               }
            }
+           RETPUSHYES;
        }
-       RETPUSHYES;
     }
     name = SvPV(sv, len);
     if (!(name && len > 0 && *name))
@@ -3161,11 +3182,11 @@ PP(pp_require)
     PL_hints = 0;
     SAVESPTR(PL_compiling.cop_warnings);
     if (PL_dowarn & G_WARN_ALL_ON)
-        PL_compiling.cop_warnings = WARN_ALL ;
+        PL_compiling.cop_warnings = pWARN_ALL ;
     else if (PL_dowarn & G_WARN_ALL_OFF)
-        PL_compiling.cop_warnings = WARN_NONE ;
+        PL_compiling.cop_warnings = pWARN_NONE ;
     else 
-        PL_compiling.cop_warnings = WARN_STD ;
+        PL_compiling.cop_warnings = pWARN_STD ;
 
     if (filter_sub || filter_child_proc) {
        SV *datasv = filter_add(run_user_filter, Nullsv);
@@ -3244,9 +3265,11 @@ PP(pp_entereval)
     SAVEHINTS();
     PL_hints = PL_op->op_targ;
     SAVESPTR(PL_compiling.cop_warnings);
-    if (!specialWARN(PL_compiling.cop_warnings)) {
-        PL_compiling.cop_warnings = newSVsv(PL_compiling.cop_warnings) ;
-        SAVEFREESV(PL_compiling.cop_warnings) ;
+    if (specialWARN(PL_curcop->cop_warnings))
+        PL_compiling.cop_warnings = PL_curcop->cop_warnings;
+    else {
+        PL_compiling.cop_warnings = newSVsv(PL_curcop->cop_warnings);
+        SAVEFREESV(PL_compiling.cop_warnings);
     }
 
     push_return(PL_op->op_next);
index beb2cf2..2a8aa9b 100644 (file)
--- a/pp_hot.c
+++ b/pp_hot.c
@@ -146,22 +146,36 @@ PP(pp_concat)
     dPOPTOPssrl;
     STRLEN len;
     char *s;
+    bool left_utf = DO_UTF8(left);
+    bool right_utf = DO_UTF8(right);
 
     if (TARG != left) {
+       if (right_utf && !left_utf)
+           sv_utf8_upgrade(left);
        s = SvPV(left,len);
+       SvUTF8_off(TARG);
        if (TARG == right) {
+           if (left_utf && !right_utf)
+               sv_utf8_upgrade(right);
            sv_insert(TARG, 0, 0, s, len);
+           if (left_utf || right_utf)
+               SvUTF8_on(TARG);
            SETs(TARG);
            RETURN;
        }
        sv_setpvn(TARG,s,len);
     }
-    else if (SvGMAGICAL(TARG))
+    else if (SvGMAGICAL(TARG)) {
        mg_get(TARG);
+       if (right_utf && !left_utf)
+           sv_utf8_upgrade(left);
+    }
     else if (!SvOK(TARG) && SvTYPE(TARG) <= SVt_PVMG) {
        sv_setpv(TARG, "");     /* Suppress warning. */
        s = SvPV_force(TARG, len);
     }
+    if (left_utf && !right_utf)
+       sv_utf8_upgrade(right);
     s = SvPV(right,len);
     if (SvOK(TARG)) {
 #if defined(PERL_Y2KWARN)
@@ -176,19 +190,12 @@ PP(pp_concat)
            }
        }
 #endif
-       if (DO_UTF8(right))
-           sv_utf8_upgrade(TARG);
        sv_catpvn(TARG,s,len);
-       if (!IN_BYTE) {
-           if (SvUTF8(right))
-               SvUTF8_on(TARG);
-       }
-       else if (!SvUTF8(right)) {
-           SvUTF8_off(TARG);
-       }
     }
     else
        sv_setpvn(TARG,s,len);  /* suppress warning */
+    if (left_utf || right_utf)
+       SvUTF8_on(TARG);
     SETTARG;
     RETURN;
   }
@@ -653,7 +660,7 @@ S_do_maybe_phash(pTHX_ AV *ary, SV **lelem, SV **firstlelem, SV **relem,
            sv_setsv(tmpstr,relem[1]);  /* value */
            relem[1] = tmpstr;
            if (avhv_store_ent(ary,relem[0],tmpstr,0))
-               SvREFCNT_inc(tmpstr);
+               (void)SvREFCNT_inc(tmpstr);
            if (SvMAGICAL(ary) != 0 && SvSMAGICAL(tmpstr))
                mg_set(tmpstr);
            relem += 2;
@@ -687,7 +694,7 @@ S_do_oddball(pTHX_ HV *hash, SV **relem, SV **firstrelem)
            /* pseudohash */
            tmpstr = sv_newmortal();
            if (avhv_store_ent((AV*)hash,*relem,tmpstr,0))
-               SvREFCNT_inc(tmpstr);
+               (void)SvREFCNT_inc(tmpstr);
            if (SvMAGICAL(hash) && SvSMAGICAL(tmpstr))
                mg_set(tmpstr);
        }
@@ -1021,7 +1028,8 @@ play_it_again:
             && !PL_sawampersand 
             && ((rx->reganch & ROPT_NOSCAN)
                 || !((rx->reganch & RE_INTUIT_TAIL)
-                     && (r_flags & REXEC_SCREAM))))
+                     && (r_flags & REXEC_SCREAM)))
+            && !SvROK(TARG))   /* Cannot trust since INTUIT cannot guess ^ */
            goto yup;
     }
     if (CALLREGEXEC(aTHX_ rx, s, strend, truebase, minmatch, TARG, NULL, r_flags))
@@ -1057,6 +1065,10 @@ play_it_again:
                len = rx->endp[i] - rx->startp[i];
                s = rx->startp[i] + truebase;
                sv_setpvn(*SP, s, len);
+               if ((pm->op_pmdynflags & PMdf_UTF8) && !IN_BYTE) {
+                   SvUTF8_on(*SP);
+                   sv_utf8_downgrade(*SP, TRUE);
+               }
            }
        }
        if (global) {
@@ -2012,8 +2024,10 @@ PP(pp_leavesub)
                    sv_2mortal(*MARK);
                }
                else {
+                   sv = SvREFCNT_inc(TOPs);    /* FREETMPS could clobber it */
                    FREETMPS;
-                   *MARK = sv_mortalcopy(TOPs);
+                   *MARK = sv_mortalcopy(sv);
+                   SvREFCNT_dec(sv);
                }
            }
            else
@@ -2161,8 +2175,10 @@ PP(pp_leavesublv)
                        sv_2mortal(*MARK);
                    }
                    else {
+                       sv = SvREFCNT_inc(TOPs); /* FREETMPS could clobber it */
                        FREETMPS;
-                       *MARK = sv_mortalcopy(TOPs);
+                       *MARK = sv_mortalcopy(sv);
+                       SvREFCNT_dec(sv);
                    }
                }
                else
index 7f2d80b..4ce9d74 100644 (file)
@@ -12,6 +12,7 @@ PERL_CKDEF(Perl_ck_eof)
 PERL_CKDEF(Perl_ck_eval)
 PERL_CKDEF(Perl_ck_exec)
 PERL_CKDEF(Perl_ck_exists)
+PERL_CKDEF(Perl_ck_exit)
 PERL_CKDEF(Perl_ck_ftst)
 PERL_CKDEF(Perl_ck_fun)
 PERL_CKDEF(Perl_ck_fun_locale)
index 976f5a1..9ea67e1 100644 (file)
--- a/pp_sys.c
+++ b/pp_sys.c
@@ -198,7 +198,6 @@ static char zero_but_true[ZBTLEN + 1] = "0 but true";
 #   if defined(I_SYS_SECURITY)
 #       include <sys/security.h>
 #   endif
-    /* XXX Configure test needed for eaccess */
 #   ifdef ACC_SELF
         /* HP SecureWare */
 #       define PERL_EFF_ACCESS_R_OK(p) (eaccess((p), R_OK, ACC_SELF))
@@ -470,7 +469,7 @@ PP(pp_die)
                GV *gv = gv_fetchmethod(stash, "PROPAGATE");
                if (gv) {
                    SV *file = sv_2mortal(newSVpv(CopFILE(PL_curcop),0));
-                   SV *line = sv_2mortal(newSViv(CopLINE(PL_curcop)));
+                   SV *line = sv_2mortal(newSVuv(CopLINE(PL_curcop)));
                    EXTEND(SP, 3);
                    PUSHMARK(SP);
                    PUSHs(error);
@@ -864,9 +863,9 @@ PP(pp_dbmopen)
     PUSHs(sv);
     PUSHs(left);
     if (SvIV(right))
-       PUSHs(sv_2mortal(newSViv(O_RDWR|O_CREAT)));
+       PUSHs(sv_2mortal(newSVuv(O_RDWR|O_CREAT)));
     else
-       PUSHs(sv_2mortal(newSViv(O_RDWR)));
+       PUSHs(sv_2mortal(newSVuv(O_RDWR)));
     PUSHs(right);
     PUTBACK;
     call_sv((SV*)GvCV(gv), G_SCALAR);
@@ -877,7 +876,7 @@ PP(pp_dbmopen)
        PUSHMARK(SP);
        PUSHs(sv);
        PUSHs(left);
-       PUSHs(sv_2mortal(newSViv(O_RDONLY)));
+       PUSHs(sv_2mortal(newSVuv(O_RDONLY)));
        PUSHs(right);
        PUTBACK;
        call_sv((SV*)GvCV(gv), G_SCALAR);
@@ -1588,10 +1587,11 @@ PP(pp_send)
     djSP; dMARK; dORIGMARK; dTARGET;
     GV *gv;
     IO *io;
-    Off_t offset;
     SV *bufsv;
     char *buffer;
-    Off_t length;
+    Size_t length;
+    SSize_t retval;
+    IV offset;
     STRLEN blen;
     MAGIC *mg;
 
@@ -1614,17 +1614,17 @@ PP(pp_send)
        goto say_undef;
     bufsv = *++MARK;
     buffer = SvPV(bufsv, blen);
-#if Off_t_SIZE > IVSIZE
-    length = SvNVx(*++MARK);
+#if Size_t_size > IVSIZE
+    length = (Size_t)SvNVx(*++MARK);
 #else
-    length = SvIVx(*++MARK);
+    length = (Size_t)SvIVx(*++MARK);
 #endif
-    if (length < 0)
+    if ((SSize_t)length < 0)
        DIE(aTHX_ "Negative length");
     SETERRNO(0,0);
     io = GvIO(gv);
     if (!io || !IoIFP(io)) {
-       length = -1;
+       retval = -1;
        if (ckWARN(WARN_CLOSED)) {
            if (PL_op->op_type == OP_SYSWRITE)
                report_closed_fh(gv, io, "syswrite", "filehandle");
@@ -1634,11 +1634,7 @@ PP(pp_send)
     }
     else if (PL_op->op_type == OP_SYSWRITE) {
        if (MARK < SP) {
-#if Off_t_SIZE > IVSIZE
-           offset = SvNVx(*++MARK);
-#else
            offset = SvIVx(*++MARK);
-#endif
            if (offset < 0) {
                if (-offset > blen)
                    DIE(aTHX_ "Offset outside string");
@@ -1651,14 +1647,14 @@ PP(pp_send)
            length = blen - offset;
 #ifdef PERL_SOCK_SYSWRITE_IS_SEND
        if (IoTYPE(io) == 's') {
-           length = PerlSock_send(PerlIO_fileno(IoIFP(io)),
+           retval = PerlSock_send(PerlIO_fileno(IoIFP(io)),
                                   buffer+offset, length, 0);
        }
        else
 #endif
        {
            /* See the note at doio.c:do_print about filesize limits. --jhi */
-           length = PerlLIO_write(PerlIO_fileno(IoIFP(io)),
+           retval = PerlLIO_write(PerlIO_fileno(IoIFP(io)),
                                   buffer+offset, length);
        }
     }
@@ -1667,20 +1663,24 @@ PP(pp_send)
        char *sockbuf;
        STRLEN mlen;
        sockbuf = SvPVx(*++MARK, mlen);
-       length = PerlSock_sendto(PerlIO_fileno(IoIFP(io)), buffer, blen, length,
-                               (struct sockaddr *)sockbuf, mlen);
+       retval = PerlSock_sendto(PerlIO_fileno(IoIFP(io)), buffer, blen,
+                                length, (struct sockaddr *)sockbuf, mlen);
     }
     else
-       length = PerlSock_send(PerlIO_fileno(IoIFP(io)), buffer, blen, length);
+       retval = PerlSock_send(PerlIO_fileno(IoIFP(io)), buffer, blen, length);
 
 #else
     else
        DIE(aTHX_ PL_no_sock_func, "send");
 #endif
-    if (length < 0)
+    if (retval < 0)
        goto say_undef;
     SP = ORIGMARK;
-    PUSHi(length);
+#if Size_t_size > IVSIZE
+    PUSHn(retval);
+#else
+    PUSHi(retval);
+#endif
     RETURN;
 
   say_undef:
@@ -1792,9 +1792,9 @@ PP(pp_sysseek)
 #if LSEEKSIZE > IVSIZE
        XPUSHs(sv_2mortal(newSVnv((NV) offset)));
 #else
-       XPUSHs(sv_2mortal(newSViv((IV) offset)));
+       XPUSHs(sv_2mortal(newSViv(offset)));
 #endif
-       XPUSHs(sv_2mortal(newSViv((IV) whence)));
+       XPUSHs(sv_2mortal(newSViv(whence)));
        PUTBACK;
        ENTER;
        call_method("SEEK", G_SCALAR);
@@ -1806,15 +1806,15 @@ PP(pp_sysseek)
     if (PL_op->op_type == OP_SEEK)
        PUSHs(boolSV(do_seek(gv, offset, whence)));
     else {
-       Off_t n = do_sysseek(gv, offset, whence);
-        if (n < 0)
+       Off_t sought = do_sysseek(gv, offset, whence);
+        if (sought < 0)
             PUSHs(&PL_sv_undef);
         else {
-            SV* sv = n ?
+            SV* sv = sought ?
 #if LSEEKSIZE > IVSIZE
-                newSVnv((NV)n)
+                newSVnv((NV)sought)
 #else
-                newSViv((IV)n)
+                newSViv(sought)
 #endif
                 : newSVpvn(zero_but_true, ZBTLEN);
             PUSHs(sv_2mortal(sv));
@@ -1826,11 +1826,24 @@ PP(pp_sysseek)
 PP(pp_truncate)
 {
     djSP;
-    Off_t len = (Off_t)POPn;
+    /* There seems to be no consensus on the length type of truncate()
+     * and ftruncate(), both off_t and size_t have supporters. In
+     * general one would think that when using large files, off_t is
+     * at least as wide as size_t, so using an off_t should be okay. */
+    /* XXX Configure probe for the length type of *truncate() needed XXX */
+    Off_t len;
     int result = 1;
     GV *tmpgv;
     STRLEN n_a;
 
+#if Size_t_size > IVSIZE
+    len = (Off_t)POPn;
+#else
+    len = (Off_t)POPi;
+#endif
+    /* Checking for length < 0 is problematic as the type might or
+     * might not be signed: if it is not, clever compilers will moan. */ 
+    /* XXX Configure probe for the signedness of the length type of *truncate() needed? XXX */
     SETERRNO(0,0);
 #if defined(HAS_TRUNCATE) || defined(HAS_CHSIZE) || defined(F_FREESP)
     if (PL_op->op_flags & OPf_SPECIAL) {
@@ -2527,17 +2540,25 @@ PP(pp_stat)
        EXTEND_MORTAL(max);
        PUSHs(sv_2mortal(newSViv(PL_statcache.st_dev)));
        PUSHs(sv_2mortal(newSViv(PL_statcache.st_ino)));
-       PUSHs(sv_2mortal(newSViv(PL_statcache.st_mode)));
-       PUSHs(sv_2mortal(newSViv(PL_statcache.st_nlink)));
+       PUSHs(sv_2mortal(newSVuv(PL_statcache.st_mode)));
+       PUSHs(sv_2mortal(newSVuv(PL_statcache.st_nlink)));
 #if Uid_t_size > IVSIZE
        PUSHs(sv_2mortal(newSVnv(PL_statcache.st_uid)));
 #else
+#   if Uid_t_sign <= 0
        PUSHs(sv_2mortal(newSViv(PL_statcache.st_uid)));
+#   else
+       PUSHs(sv_2mortal(newSVuv(PL_statcache.st_uid)));
+#   endif
 #endif
 #if Gid_t_size > IVSIZE 
        PUSHs(sv_2mortal(newSVnv(PL_statcache.st_gid)));
 #else
+#   if Gid_t_sign <= 0
        PUSHs(sv_2mortal(newSViv(PL_statcache.st_gid)));
+#   else
+       PUSHs(sv_2mortal(newSVuv(PL_statcache.st_gid)));
+#   endif
 #endif
 #ifdef USE_STAT_RDEV
        PUSHs(sv_2mortal(newSViv(PL_statcache.st_rdev)));
@@ -2559,8 +2580,8 @@ PP(pp_stat)
        PUSHs(sv_2mortal(newSViv(PL_statcache.st_ctime)));
 #endif
 #ifdef USE_STAT_BLOCKS
-       PUSHs(sv_2mortal(newSViv(PL_statcache.st_blksize)));
-       PUSHs(sv_2mortal(newSViv(PL_statcache.st_blocks)));
+       PUSHs(sv_2mortal(newSVuv(PL_statcache.st_blksize)));
+       PUSHs(sv_2mortal(newSVuv(PL_statcache.st_blocks)));
 #else
        PUSHs(sv_2mortal(newSVpvn("", 0)));
        PUSHs(sv_2mortal(newSVpvn("", 0)));
@@ -3056,7 +3077,7 @@ PP(pp_fttext)
            (void)PerlIO_close(fp);
            RETPUSHUNDEF;
        }
-       do_binmode(fp, '<', TRUE);
+       do_binmode(fp, '<', O_BINARY);
        len = PerlIO_read(fp, tbuf, sizeof(tbuf));
        (void)PerlIO_close(fp);
        if (len <= 0) {
@@ -3658,6 +3679,8 @@ PP(pp_fork)
     EXTEND(SP, 1);
     PERL_FLUSHALL_FOR_CHILD;
     childpid = PerlProc_fork();
+    if (childpid == -1)
+       RETSETUNDEF;
     PUSHi(childpid);
     RETURN;
 #  else
@@ -3721,7 +3744,7 @@ PP(pp_system)
        }
     }
     PERL_FLUSHALL_FOR_CHILD;
-#if (defined(HAS_FORK) || defined(AMIGAOS)) && !defined(VMS) && !defined(OS2)
+#if (defined(HAS_FORK) || defined(AMIGAOS)) && !defined(VMS) && !defined(OS2) && !defined(__CYGWIN__)
     if (PerlProc_pipe(pp) >= 0)
        did_pipes = 1;
     while ((childpid = vfork()) == -1) {
@@ -4748,46 +4771,40 @@ PP(pp_gpwent)
 #ifdef HAS_PASSWD
     I32 which = PL_op->op_type;
     register SV *sv;
-    struct passwd *pwent;
     STRLEN n_a;
-#if defined(HAS_GETSPENT) || defined(HAS_GETSPNAM)
-    struct spwd *spwent = NULL;
-#endif
+    struct passwd *pwent  = NULL;
+/* We do not use HAS_GETSPENT in pp_gpwent() but leave it here in the case
+ * somebody wants to write an XS to access the shadow passwords. --jhi */
+#   ifdef HAS_GETSPNAM
+    struct spwd   *spwent = NULL;
+#   endif
 
-    if (which == OP_GPWNAM)
-       pwent = getpwnam(POPpx);
-    else if (which == OP_GPWUID)
-       pwent = getpwuid(POPi);
-    else
-#ifdef HAS_GETPWENT
-       pwent = (struct passwd *)getpwent();
-#else
+    switch (which) {
+    case OP_GPWNAM:
+       pwent  = getpwnam(POPpx);
+       break;
+    case OP_GPWUID:
+       pwent = getpwuid((Uid_t)POPi);
+       break;
+    case OP_GPWENT:
+#   ifdef HAS_GETPWENT
+       pwent  = getpwent();
+#   else
        DIE(aTHX_ PL_no_func, "getpwent");
-#endif
-
-#ifdef HAS_GETSPNAM
-    if (which == OP_GPWNAM) {
-       if (pwent)
-           spwent = getspnam(pwent->pw_name);
-    }
-#  ifdef HAS_GETSPUID /* AFAIK there isn't any anywhere. --jhi */ 
-    else if (which == OP_GPWUID) {
-       if (pwent)
-           spwent = getspnam(pwent->pw_name);
+#   endif
+       break;
     }
-#  endif
-#  ifdef HAS_GETSPENT
-    else
-       spwent = (struct spwd *)getspent();
-#  endif
-#endif
 
     EXTEND(SP, 10);
     if (GIMME != G_ARRAY) {
        PUSHs(sv = sv_newmortal());
        if (pwent) {
            if (which == OP_GPWNAM)
+#   if Uid_t_sign <= 0
                sv_setiv(sv, (IV)pwent->pw_uid);
+#   else
+               sv_setuv(sv, (UV)pwent->pw_uid);
+#   endif
            else
                sv_setpv(sv, pwent->pw_name);
        }
@@ -4799,66 +4816,80 @@ PP(pp_gpwent)
        sv_setpv(sv, pwent->pw_name);
 
        PUSHs(sv = sv_mortalcopy(&PL_sv_no));
-#ifdef PWPASSWD
-#   if defined(HAS_GETSPENT) || defined(HAS_GETSPNAM)
-      if (spwent)
-              sv_setpv(sv, spwent->sp_pwdp);
-      else
-              sv_setpv(sv, pwent->pw_passwd);
+#   ifdef HAS_GETSPNAM
+       spwent = getspnam(pwent->pw_name);
+       if (spwent)
+           sv_setpv(sv, spwent->sp_pwdp);
+       else
+           sv_setpv(sv, pwent->pw_passwd);
 #   else
        sv_setpv(sv, pwent->pw_passwd);
 #   endif
-#endif
+#   ifndef INCOMPLETE_TAINTS
+       /* passwd is tainted because user himself can diddle with it. */
+       SvTAINTED_on(sv);
+#   endif
 
        PUSHs(sv = sv_mortalcopy(&PL_sv_no));
+#   if Uid_t_sign <= 0
        sv_setiv(sv, (IV)pwent->pw_uid);
+#   else
+       sv_setuv(sv, (UV)pwent->pw_uid);
+#   endif
 
        PUSHs(sv = sv_mortalcopy(&PL_sv_no));
+#   if Uid_t_sign <= 0
        sv_setiv(sv, (IV)pwent->pw_gid);
-
+#   else
+       sv_setuv(sv, (UV)pwent->pw_gid);
+#   endif
        /* pw_change, pw_quota, and pw_age are mutually exclusive. */
        PUSHs(sv = sv_mortalcopy(&PL_sv_no));
-#ifdef PWCHANGE
+#   ifdef PWCHANGE
        sv_setiv(sv, (IV)pwent->pw_change);
-#else
-#   ifdef PWQUOTA
-       sv_setiv(sv, (IV)pwent->pw_quota);
 #   else
-#       ifdef PWAGE
+#       ifdef PWQUOTA
+       sv_setiv(sv, (IV)pwent->pw_quota);
+#       else
+#           ifdef PWAGE
        sv_setpv(sv, pwent->pw_age);
+#           endif
 #       endif
 #   endif
-#endif
 
        /* pw_class and pw_comment are mutually exclusive. */
        PUSHs(sv = sv_mortalcopy(&PL_sv_no));
-#ifdef PWCLASS
+#   ifdef PWCLASS
        sv_setpv(sv, pwent->pw_class);
-#else
-#   ifdef PWCOMMENT
+#   else
+#       ifdef PWCOMMENT
        sv_setpv(sv, pwent->pw_comment);
+#       endif
 #   endif
-#endif
 
        PUSHs(sv = sv_mortalcopy(&PL_sv_no));
-#ifdef PWGECOS
+#   ifdef PWGECOS
        sv_setpv(sv, pwent->pw_gecos);
-#endif
-#ifndef INCOMPLETE_TAINTS
+#   endif
+#   ifndef INCOMPLETE_TAINTS
        /* pw_gecos is tainted because user himself can diddle with it. */
        SvTAINTED_on(sv);
-#endif
+#   endif
 
        PUSHs(sv = sv_mortalcopy(&PL_sv_no));
        sv_setpv(sv, pwent->pw_dir);
 
        PUSHs(sv = sv_mortalcopy(&PL_sv_no));
        sv_setpv(sv, pwent->pw_shell);
+#   ifndef INCOMPLETE_TAINTS
+       /* pw_shell is tainted because user himself can diddle with it. */
+       SvTAINTED_on(sv);
+#   endif
 
-#ifdef PWEXPIRE
+#   ifdef PWEXPIRE
        PUSHs(sv = sv_mortalcopy(&PL_sv_no));
        sv_setiv(sv, (IV)pwent->pw_expire);
-#endif
+#   endif
     }
     RETURN;
 #else
diff --git a/proto.h b/proto.h
index 3a58718..3e0aaef 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -217,7 +217,7 @@ PERL_CALLCONV OP*   Perl_die_where(pTHX_ char* message, STRLEN msglen);
 PERL_CALLCONV void     Perl_dounwind(pTHX_ I32 cxix);
 PERL_CALLCONV bool     Perl_do_aexec(pTHX_ SV* really, SV** mark, SV** sp);
 PERL_CALLCONV bool     Perl_do_aexec5(pTHX_ SV* really, SV** mark, SV** sp, int fd, int flag);
-PERL_CALLCONV int      Perl_do_binmode(pTHX_ PerlIO *fp, int iotype, int flag);
+PERL_CALLCONV int      Perl_do_binmode(pTHX_ PerlIO *fp, int iotype, int mode);
 PERL_CALLCONV void     Perl_do_chop(pTHX_ SV* asv, SV* sv);
 PERL_CALLCONV bool     Perl_do_close(pTHX_ GV* gv, bool not_implicit);
 PERL_CALLCONV bool     Perl_do_eof(pTHX_ GV* gv);
@@ -365,6 +365,7 @@ PERL_CALLCONV bool  Perl_is_uni_xdigit_lc(pTHX_ U32 c);
 PERL_CALLCONV U32      Perl_to_uni_upper_lc(pTHX_ U32 c);
 PERL_CALLCONV U32      Perl_to_uni_title_lc(pTHX_ U32 c);
 PERL_CALLCONV U32      Perl_to_uni_lower_lc(pTHX_ U32 c);
+PERL_CALLCONV int      Perl_is_utf8_char(pTHX_ U8 *p);
 PERL_CALLCONV bool     Perl_is_utf8_alnum(pTHX_ U8 *p);
 PERL_CALLCONV bool     Perl_is_utf8_alnumc(pTHX_ U8 *p);
 PERL_CALLCONV bool     Perl_is_utf8_idfirst(pTHX_ U8 *p);
@@ -540,6 +541,7 @@ PERL_CALLCONV SV*   Perl_newSV(pTHX_ STRLEN len);
 PERL_CALLCONV OP*      Perl_newSVREF(pTHX_ OP* o);
 PERL_CALLCONV OP*      Perl_newSVOP(pTHX_ I32 type, I32 flags, SV* sv);
 PERL_CALLCONV SV*      Perl_newSViv(pTHX_ IV i);
+PERL_CALLCONV SV*      Perl_newSVuv(pTHX_ UV u);
 PERL_CALLCONV SV*      Perl_newSVnv(pTHX_ NV n);
 PERL_CALLCONV SV*      Perl_newSVpv(pTHX_ const char* s, STRLEN len);
 PERL_CALLCONV SV*      Perl_newSVpvn(pTHX_ const char* s, STRLEN len);
@@ -936,6 +938,9 @@ PERL_CALLCONV void* Perl_ptr_table_fetch(pTHX_ PTR_TBL_t *tbl, void *sv);
 PERL_CALLCONV void     Perl_ptr_table_store(pTHX_ PTR_TBL_t *tbl, void *oldsv, void *newsv);
 PERL_CALLCONV void     Perl_ptr_table_split(pTHX_ PTR_TBL_t *tbl);
 #endif
+#if defined(HAVE_INTERP_INTERN)
+PERL_CALLCONV void     Perl_sys_intern_init(pTHX);
+#endif
 
 #if defined(PERL_OBJECT)
 protected:
index 13fa36c..89b3e53 100644 (file)
--- a/regcomp.c
+++ b/regcomp.c
@@ -1732,7 +1732,9 @@ S_reg(pTHX_ I32 paren, I32 *flagp)
                *flagp = TRYAGAIN;
                return NULL;
            case 'p':
-               Perl_warner(aTHX_ WARN_REGEXP, "(?p{}) is deprecated - use (??{})");
+               if (SIZE_ONLY)
+                   Perl_warner(aTHX_ WARN_REGEXP,
+                               "(?p{}) is deprecated - use (??{})");
                /* FALL THROUGH*/
            case '?':
                logical = 1;
@@ -2294,8 +2296,14 @@ tryagain:
        nextchar();
        ret = reg(1, &flags);
        if (ret == NULL) {
-               if (flags & TRYAGAIN)
+               if (flags & TRYAGAIN) {
+                   if (PL_regcomp_parse == PL_regxend) {
+                        /* Make parent create an empty node if needed. */
+                       *flagp |= TRYAGAIN;
+                       return(NULL);
+                   }
                    goto tryagain;
+               }
                return(NULL);
        }
        *flagp |= flags&(HASWIDTH|SPSTART|SIMPLE);
@@ -2597,8 +2605,10 @@ tryagain:
                            if (!e)
                                FAIL("Missing right brace on \\x{}");
                            else if (UTF) {
-                               ender = (UV)scan_hex(p + 1, e - p, &numlen);
-                               if (numlen + len >= 127) {      /* numlen is generous */
+                               numlen = 1;     /* allow underscores */
+                               ender = (UV)scan_hex(p + 1, e - p - 1, &numlen);
+                               /* numlen is generous */
+                               if (numlen + len >= 127) {
                                    p--;
                                    goto loopdone;
                                }
@@ -2608,6 +2618,7 @@ tryagain:
                                FAIL("Can't use \\x{} without 'use utf8' declaration");
                        }
                        else {
+                           numlen = 0;         /* disallow underscores */
                            ender = (UV)scan_hex(p, 2, &numlen);
                            p += numlen;
                        }
@@ -2621,6 +2632,7 @@ tryagain:
                    case '5': case '6': case '7': case '8':case '9':
                        if (*p == '0' ||
                          (isDIGIT(p[1]) && atoi(p) >= PL_regnpar) ) {
+                           numlen = 0;         /* disallow underscores */
                            ender = (UV)scan_oct(p, 3, &numlen);
                            p += numlen;
                        }
@@ -2932,6 +2944,7 @@ S_regclass(pTHX)
            case 'a':   value = '\057';                 break;
 #endif
            case 'x':
+               numlen = 0;             /* disallow underscores */
                value = (UV)scan_hex(PL_regcomp_parse, 2, &numlen);
                PL_regcomp_parse += numlen;
                break;
@@ -2941,6 +2954,7 @@ S_regclass(pTHX)
                break;
            case '0': case '1': case '2': case '3': case '4':
            case '5': case '6': case '7': case '8': case '9':
+               numlen = 0;             /* disallow underscores */
                value = (UV)scan_oct(--PL_regcomp_parse, 3, &numlen);
                PL_regcomp_parse += numlen;
                break;
@@ -3406,12 +3420,14 @@ S_regclassutf8(pTHX)
                    e = strchr(PL_regcomp_parse++, '}');
                     if (!e)
                         FAIL("Missing right brace on \\x{}");
+                   numlen = 1;         /* allow underscores */
                    value = (UV)scan_hex(PL_regcomp_parse,
                                     e - PL_regcomp_parse,
                                     &numlen);
                    PL_regcomp_parse = e + 1;
                }
                else {
+                   numlen = 0;         /* disallow underscores */
                    value = (UV)scan_hex(PL_regcomp_parse, 2, &numlen);
                    PL_regcomp_parse += numlen;
                }
@@ -3422,6 +3438,7 @@ S_regclassutf8(pTHX)
                break;
            case '0': case '1': case '2': case '3': case '4':
            case '5': case '6': case '7': case '8': case '9':
+               numlen = 0;             /* disallow underscores */
                value = (UV)scan_oct(--PL_regcomp_parse, 3, &numlen);
                PL_regcomp_parse += numlen;
                break;
index 3b6d857..cd3df47 100644 (file)
--- a/regexec.c
+++ b/regexec.c
@@ -346,7 +346,9 @@ Perl_re_intuit_start(pTHX_ regexp *prog, SV *sv, char *strpos,
            I32 slen;
 
            if ( !(prog->reganch & ROPT_ANCH_GPOS) /* Checked by the caller */
-                && (sv && (strpos + SvCUR(sv) != strend)) ) {
+                /* SvCUR is not set on references: SvRV and SvPVX overlap */
+                && sv && !SvROK(sv)
+                && (strpos + SvCUR(sv) != strend)) {
                DEBUG_r(PerlIO_printf(Perl_debug_log, "Not at start...\n"));
                goto fail;
            }
@@ -638,7 +640,7 @@ Perl_re_intuit_start(pTHX_ regexp *prog, SV *sv, char *strpos,
       try_at_start:
        /* Even in this situation we may use MBOL flag if strpos is offset
           wrt the start of the string. */
-       if (ml_anch && sv
+       if (ml_anch && sv && !SvROK(sv) /* See prev comment on SvROK */
            && (strpos + SvCUR(sv) != strend) && strpos[-1] != '\n'
            /* May be due to an implicit anchor of m{.*foo}  */
            && !(prog->reganch & ROPT_IMPLICIT))
@@ -1432,9 +1434,14 @@ Perl_regexec_flags(pTHX_ register regexp *prog, char *stringarg, register char *
        /* we have /x+whatever/ */
        /* it must be a one character string (XXXX Except UTF?) */
        char ch = SvPVX(prog->anchored_substr)[0];
+#ifdef DEBUGGING
+       int did_match = 0;
+#endif
+
        if (UTF) {
            while (s < strend) {
                if (*s == ch) {
+                   DEBUG_r( did_match = 1 );
                    if (regtry(prog, s)) goto got_it;
                    s += UTF8SKIP(s);
                    while (s < strend && *s == ch)
@@ -1446,6 +1453,7 @@ Perl_regexec_flags(pTHX_ register regexp *prog, char *stringarg, register char *
        else {
            while (s < strend) {
                if (*s == ch) {
+                   DEBUG_r( did_match = 1 );
                    if (regtry(prog, s)) goto got_it;
                    s++;
                    while (s < strend && *s == ch)
@@ -1454,6 +1462,9 @@ Perl_regexec_flags(pTHX_ register regexp *prog, char *stringarg, register char *
                s++;
            }
        }
+       DEBUG_r(did_match ||
+               PerlIO_printf(Perl_debug_log,
+                             "Did not find anchored character...\n"));
     }
     /*SUPPRESS 560*/
     else if (prog->anchored_substr != Nullsv
@@ -1469,6 +1480,9 @@ Perl_regexec_flags(pTHX_ register regexp *prog, char *stringarg, register char *
                          -(I32)(CHR_SVLEN(must)
                                 - (SvTAIL(must) != 0) + back_min));
        char *last1;            /* Last position checked before */
+#ifdef DEBUGGING
+       int did_match = 0;
+#endif
 
        if (s > PL_bostr)
            last1 = HOPc(s, -1);
@@ -1487,6 +1501,7 @@ Perl_regexec_flags(pTHX_ register regexp *prog, char *stringarg, register char *
                 : (s = fbm_instr((unsigned char*)HOP(s, back_min),
                                  (unsigned char*)strend, must, 
                                  PL_multiline ? FBMrf_MULTILINE : 0))) ) {
+           DEBUG_r( did_match = 1 );
            if (HOPc(s, -back_max) > last1) {
                last1 = HOPc(s, -back_min);
                s = HOPc(s, -back_max);
@@ -1512,6 +1527,14 @@ Perl_regexec_flags(pTHX_ register regexp *prog, char *stringarg, register char *
                }
            }
        }
+       DEBUG_r(did_match ||
+               PerlIO_printf(Perl_debug_log, "Did not find %s substr `%s%.*s%s'%s...\n",
+                             ((must == prog->anchored_substr)
+                              ? "anchored" : "floating"),
+                             PL_colors[0],
+                             (int)(SvCUR(must) - (SvTAIL(must)!=0)),
+                             SvPVX(must),
+                             PL_colors[1], (SvTAIL(must) ? "$" : "")));
        goto phooey;
     }
     else if ((c = prog->regstclass)) {
@@ -1520,6 +1543,7 @@ Perl_regexec_flags(pTHX_ register regexp *prog, char *stringarg, register char *
            strend = HOPc(strend, -(minlen - 1));
        if (find_byclass(prog, c, s, strend, startpos, 0))
            goto got_it;
+       DEBUG_r(PerlIO_printf(Perl_debug_log, "Contradicts stclass...\n"));
     }
     else {
        dontbother = 0;
@@ -1552,7 +1576,12 @@ Perl_regexec_flags(pTHX_ register regexp *prog, char *stringarg, register char *
                        last = strend;  /* matching `$' */
                }
            }
-           if (last == NULL) goto phooey; /* Should not happen! */
+           if (last == NULL) {
+               DEBUG_r(PerlIO_printf(Perl_debug_log,
+                                     "%sCan't trim the tail, match fails (should not happen)%s\n",
+                                     PL_colors[4],PL_colors[5]));
+               goto phooey; /* Should not happen! */
+           }
            dontbother = strend - last + prog->float_min_offset;
        }
        if (minlen && (dontbother < minlen))
@@ -1614,6 +1643,8 @@ got_it:
     return 1;
 
 phooey:
+    DEBUG_r(PerlIO_printf(Perl_debug_log, "%sMatch failed%s\n",
+                         PL_colors[4],PL_colors[5]));
     if (PL_reg_eval_set)
        restore_pos(aTHXo_ 0);
     return 0;
diff --git a/sv.c b/sv.c
index ff21757..5517355 100644 (file)
--- a/sv.c
+++ b/sv.c
@@ -1359,6 +1359,7 @@ S_not_a_number(pTHX_ SV *sv)
 #define IS_NUMBER_TO_INT_BY_ATOF 0x02 /* atol() may be != atof() */
 #define IS_NUMBER_NOT_IV        0x04 /* (IV)atof() may be != atof() */
 #define IS_NUMBER_NEG           0x08 /* not good to cache UV */
+#define IS_NUMBER_INFINITY      0x10 /* this is big */
 
 /* Actually, ISO C leaves conversion of UV to IV undefined, but
    until proven guilty, assume that things are not that bad... */
@@ -1483,8 +1484,8 @@ Perl_sv_2iv(pTHX_ register SV *sv)
 
            if (SvTYPE(sv) < SVt_PVIV)
                sv_upgrade(sv, SVt_PVIV);
-           SvIVX(sv) = 0;
            (void)SvIOK_on(sv);
+           SvIVX(sv) = 0;
            if (ckWARN(WARN_NUMERIC))
                not_a_number(sv);
        }
@@ -1637,10 +1638,10 @@ Perl_sv_2uv(pTHX_ register SV *sv)
 
            if (SvTYPE(sv) < SVt_PVIV)
                sv_upgrade(sv, SVt_PVIV);
-           SvUVX(sv) = 0;              /* We assume that 0s have the
-                                          same bitmap in IV and UV. */
            (void)SvIOK_on(sv);
            (void)SvIsUV_on(sv);
+           SvUVX(sv) = 0;              /* We assume that 0s have the
+                                          same bitmap in IV and UV. */
            if (ckWARN(WARN_NUMERIC))
                not_a_number(sv);
        }
@@ -1813,6 +1814,7 @@ S_asUV(pTHX_ SV *sv)
  * IS_NUMBER_TO_INT_BY_ATOL                            123
  * IS_NUMBER_TO_INT_BY_ATOL | IS_NUMBER_NOT_IV         123.1
  * IS_NUMBER_TO_INT_BY_ATOF | IS_NUMBER_NOT_IV         123e0
+ * IS_NUMBER_INFINITY
  * with a possible addition of IS_NUMBER_NEG.
  */
 
@@ -1833,6 +1835,7 @@ Perl_looks_like_number(pTHX_ SV *sv)
     register char *sbegin;
     register char *nbegin;
     I32 numtype = 0;
+    I32 sawinf  = 0;
     STRLEN len;
 
     if (SvPOK(sv)) {
@@ -1862,7 +1865,7 @@ Perl_looks_like_number(pTHX_ SV *sv)
      * (int)atof().
      */
 
-    /* next must be digit or the radix separator */
+    /* next must be digit or the radix separator or beginning of infinity */
     if (isDIGIT(*s)) {
         do {
            s++;
@@ -1900,23 +1903,38 @@ Perl_looks_like_number(pTHX_ SV *sv)
         else
            return 0;
     }
+    else if (*s == 'I' || *s == 'i') {
+       s++; if (*s != 'N' && *s != 'n') return 0;
+       s++; if (*s != 'F' && *s != 'f') return 0;
+       s++; if (*s == 'I' || *s == 'i') {
+           s++; if (*s != 'N' && *s != 'n') return 0;
+           s++; if (*s != 'I' && *s != 'i') return 0;
+           s++; if (*s != 'T' && *s != 't') return 0;
+           s++; if (*s != 'Y' && *s != 'y') return 0;
+       }
+       sawinf = 1;
+    }
     else
         return 0;
 
-    /* we can have an optional exponent part */
-    if (*s == 'e' || *s == 'E') {
-       numtype &= ~IS_NUMBER_NEG;
-       numtype |= IS_NUMBER_TO_INT_BY_ATOF | IS_NUMBER_NOT_IV;
-       s++;
-       if (*s == '+' || *s == '-')
+    if (sawinf)
+       numtype = IS_NUMBER_INFINITY;
+    else {
+       /* we can have an optional exponent part */
+       if (*s == 'e' || *s == 'E') {
+           numtype &= ~IS_NUMBER_NEG;
+           numtype |= IS_NUMBER_TO_INT_BY_ATOF | IS_NUMBER_NOT_IV;
            s++;
-        if (isDIGIT(*s)) {
-            do {
-                s++;
-            } while (isDIGIT(*s));
-        }
-        else
-            return 0;
+           if (*s == '+' || *s == '-')
+               s++;
+           if (isDIGIT(*s)) {
+               do {
+                   s++;
+               } while (isDIGIT(*s));
+           }
+           else
+               return 0;
+       }
     }
     while (isSPACE(*s))
        s++;
@@ -2724,7 +2742,7 @@ Perl_sv_setsv(pTHX_ SV *dstr, register SV *sstr)
        if (sflags & SVp_IOK) {
            (void)SvIOK_on(dstr);
            SvIVX(dstr) = SvIVX(sstr);
-           if (SvIsUV(sstr))
+           if (sflags & SVf_IVisUV)
                SvIsUV_on(dstr);
        }
        if (SvAMAGIC(sstr)) {
@@ -2756,13 +2774,9 @@ Perl_sv_setsv(pTHX_ SV *dstr, register SV *sstr)
            SvPV_set(dstr, SvPVX(sstr));
            SvLEN_set(dstr, SvLEN(sstr));
            SvCUR_set(dstr, SvCUR(sstr));
-           if (SvUTF8(sstr))
-               SvUTF8_on(dstr);
-           else
-               SvUTF8_off(dstr);
 
            SvTEMP_off(dstr);
-           (void)SvOK_off(sstr);
+           (void)SvOK_off(sstr);               /* NOTE: nukes most SvFLAGS on sstr */
            SvPV_set(sstr, Nullch);
            SvLEN_set(sstr, 0);
            SvCUR_set(sstr, 0);
@@ -2777,7 +2791,7 @@ Perl_sv_setsv(pTHX_ SV *dstr, register SV *sstr)
            *SvEND(dstr) = '\0';
            (void)SvPOK_only(dstr);
        }
-       if (DO_UTF8(sstr))
+       if ((sflags & SVf_UTF8) && !IN_BYTE)
            SvUTF8_on(dstr);
        /*SUPPRESS 560*/
        if (sflags & SVp_NOK) {
@@ -2787,25 +2801,25 @@ Perl_sv_setsv(pTHX_ SV *dstr, register SV *sstr)
        if (sflags & SVp_IOK) {
            (void)SvIOK_on(dstr);
            SvIVX(dstr) = SvIVX(sstr);
-           if (SvIsUV(sstr))
+           if (sflags & SVf_IVisUV)
                SvIsUV_on(dstr);
        }
     }
     else if (sflags & SVp_NOK) {
        SvNVX(dstr) = SvNVX(sstr);
        (void)SvNOK_only(dstr);
-       if (SvIOK(sstr)) {
+       if (sflags & SVf_IOK) {
            (void)SvIOK_on(dstr);
            SvIVX(dstr) = SvIVX(sstr);
            /* XXXX Do we want to set IsUV for IV(ROK)?  Be extra safe... */
-           if (SvIsUV(sstr))
+           if (sflags & SVf_IVisUV)
                SvIsUV_on(dstr);
        }
     }
     else if (sflags & SVp_IOK) {
        (void)SvIOK_only(dstr);
        SvIVX(dstr) = SvIVX(sstr);
-       if (SvIsUV(sstr))
+       if (sflags & SVf_IVisUV)
            SvIsUV_on(dstr);
     }
     else {
@@ -3090,11 +3104,13 @@ Perl_sv_catsv(pTHX_ SV *dstr, register SV *sstr)
     if (!sstr)
        return;
     if ((s = SvPV(sstr, len))) {
-       if (SvUTF8(sstr))
+       if (DO_UTF8(sstr)) {
            sv_utf8_upgrade(dstr);
-       sv_catpvn(dstr,s,len);
-       if (SvUTF8(sstr))
+           sv_catpvn(dstr,s,len);
            SvUTF8_on(dstr);
+       }
+       else
+           sv_catpvn(dstr,s,len);
     }
 }
 
@@ -3451,6 +3467,7 @@ Perl_sv_insert(pTHX_ SV *bigstr, STRLEN offset, STRLEN len, char *little, STRLEN
     if (!bigstr)
        Perl_croak(aTHX_ "Can't modify non-existent substring");
     SvPV_force(bigstr, curlen);
+    (void)SvPOK_only_UTF8(bigstr);
     if (offset + len > curlen) {
        SvGROW(bigstr, offset+len+1);
        Zero(SvPVX(bigstr)+curlen, offset+len-curlen, char);
@@ -3920,10 +3937,19 @@ Perl_sv_eq(pTHX_ register SV *str1, register SV *str2)
     else
        pv1 = SvPV(str1, cur1);
 
-    if (!str2)
-       return !cur1;
-    else
-       pv2 = SvPV(str2, cur2);
+    if (cur1) {
+       if (!str2)
+           return 0;
+       if (SvUTF8(str1) != SvUTF8(str2) && !IN_BYTE) {
+           if (SvUTF8(str1)) {
+               sv_utf8_upgrade(str2);
+           }
+           else {
+               sv_utf8_upgrade(str1);
+           }
+       }
+    }
+    pv2 = SvPV(str2, cur2);
 
     if (cur1 != cur2)
        return 0;
@@ -4743,6 +4769,25 @@ Perl_newSViv(pTHX_ IV i)
 }
 
 /*
+=for apidoc newSVuv
+
+Creates a new SV and copies an unsigned integer into it.
+The reference count for the SV is set to 1.
+
+=cut
+*/
+
+SV *
+Perl_newSVuv(pTHX_ UV u)
+{
+    register SV *sv;
+
+    new_SV(sv);
+    sv_setuv(sv,u);
+    return sv;
+}
+
+/*
 =for apidoc newRV_noinc
 
 Creates an RV wrapper for an SV.  The reference count for the original
@@ -5168,6 +5213,7 @@ Perl_sv_reftype(pTHX_ SV *sv, int ob)
        case SVt_PVCV:          return "CODE";
        case SVt_PVGV:          return "GLOB";
        case SVt_PVFM:          return "FORMAT";
+       case SVt_PVIO:          return "IO";
        default:                return "UNKNOWN";
        }
     }
@@ -6035,7 +6081,7 @@ Perl_sv_vcatpvfn(pTHX_ SV *sv, const char *pat, STRLEN patlen, va_list *args, SV
                iv = (svix < svmax) ? SvIVx(svargs[svix++]) : 0;
                switch (intsize) {
                case 'h':       iv = (short)iv; break;
-               default:        iv = (int)iv; break;
+               default:        break;
                case 'l':       iv = (long)iv; break;
                case 'V':       break;
 #ifdef HAS_QUAD
@@ -6117,7 +6163,7 @@ Perl_sv_vcatpvfn(pTHX_ SV *sv, const char *pat, STRLEN patlen, va_list *args, SV
                uv = (svix < svmax) ? SvUVx(svargs[svix++]) : 0;
                switch (intsize) {
                case 'h':       uv = (unsigned short)uv; break;
-               default:        uv = (unsigned)uv; break;
+               default:        break;
                case 'l':       uv = (unsigned long)uv; break;
                case 'V':       break;
 #ifdef HAS_QUAD
@@ -6972,6 +7018,9 @@ Perl_cx_dup(pTHX_ PERL_CONTEXT *cxs, I32 ix, I32 max)
                ncx->blk_loop.iterdata  = (CxPADLOOP(cx)
                                           ? cx->blk_loop.iterdata
                                           : gv_dup((GV*)cx->blk_loop.iterdata));
+               ncx->blk_loop.oldcurpad
+                   = (SV**)ptr_table_fetch(PL_ptr_table,
+                                           cx->blk_loop.oldcurpad);
                ncx->blk_loop.itersave  = sv_dup_inc(cx->blk_loop.itersave);
                ncx->blk_loop.iterlval  = sv_dup_inc(cx->blk_loop.iterlval);
                ncx->blk_loop.iterary   = av_dup_inc(cx->blk_loop.iterary);
@@ -7083,6 +7132,7 @@ Perl_ss_dup(pTHX_ PerlInterpreter *proto_perl)
     char *c;
     void (*dptr) (void*);
     void (*dxptr) (pTHXo_ void*);
+    OP *o;
 
     Newz(54, nss, max, ANY);
 
@@ -7209,7 +7259,9 @@ Perl_ss_dup(pTHX_ PerlInterpreter *proto_perl)
                case OP_LEAVE:
                case OP_SCOPE:
                case OP_LEAVEWRITE:
-                   TOPPTR(nss,ix) = any_dup(ptr, proto_perl);
+                   TOPPTR(nss,ix) = ptr;
+                   o = (OP*)ptr;
+                   OpREFCNT_inc(o);
                    break;
                default:
                    TOPPTR(nss,ix) = Nullop;
@@ -7552,7 +7604,7 @@ perl_clone_using(PerlInterpreter *proto_perl, UV flags,
     PL_main_cv         = cv_dup_inc(proto_perl->Imain_cv);
     PL_main_root       = OpREFCNT_inc(proto_perl->Imain_root);
     PL_main_start      = proto_perl->Imain_start;
-    PL_eval_root       = OpREFCNT_inc(proto_perl->Ieval_root);
+    PL_eval_root       = proto_perl->Ieval_root;
     PL_eval_start      = proto_perl->Ieval_start;
 
     /* runtime control stuff */
@@ -7830,6 +7882,7 @@ perl_clone_using(PerlInterpreter *proto_perl, UV flags,
     }
     else {
        init_stacks();
+       ENTER;                  /* perl_destruct() wants to LEAVE; */
     }
 
     PL_start_env       = proto_perl->Tstart_env;       /* XXXXXX */
diff --git a/sv.h b/sv.h
index 245199f..c0ce967 100644 (file)
--- a/sv.h
+++ b/sv.h
@@ -709,6 +709,19 @@ Set the length of the string which is in the SV.  See C<SvCUR>.
 #define IoFLAGS(sv)    ((XPVIO*)  SvANY(sv))->xio_flags
 
 /*
+IoTYPE(sv) is a single character saying what type of I/O connection
+this is:
+    |        pipe
+    -        stdin or stdout
+    <        read-only
+    >        write-only
+    a        append
+    +        read and write
+    s        socket
+    space    closed
+*/
+
+/*
 =for apidoc Am|bool|SvTAINTED|SV* sv
 Checks to see if an SV is tainted. Returns TRUE if it is, FALSE if
 not.
index bb93d21..536268a 100755 (executable)
@@ -1,14 +1,10 @@
 #!./perl -P
 
-# $RCSfile: cpp.t,v $$Revision: 4.1 $$Date: 92/08/07 18:27:18 $
-
 print "1..3\n";
 
-#this is a comment
 #define MESS "ok 1\n"
 print MESS;
 
-#If you capitalize, it's a comment.
 #ifdef MESS
        print "ok 2\n";
 #else
index ee17088..a77db9b 100755 (executable)
@@ -16,7 +16,7 @@ BEGIN {
 
 use strict;
 
-print "1..107\n";
+print "1..110\n";
 
 my $i = 1;
 
@@ -293,6 +293,25 @@ printf "ok %d\n",$i++;
 ##
 ##
 
+testing \&a_subx, '\&';
+
+sub a_subx (\&) {
+    print "# \@_ = (",join(",",@_),")\n";
+    &{$_[0]};
+}
+
+sub tmp_sub_2 { printf "ok %d\n",$i++ }
+a_subx &tmp_sub_2;
+
+@array = ( \&tmp_sub_2 );
+eval 'a_subx @array';
+print "not " unless $@;
+printf "ok %d\n",$i++;
+
+##
+##
+##
+
 testing \&sub_aref, '&\@';
 
 sub sub_aref (&\@) {
index 89cb31a..1f5fae3 100755 (executable)
@@ -153,7 +153,7 @@ print "ok ",$i++,"\n";
     print "ok ",$i++,"\n";
 
     eval "use lib v100.105";
-    unless ($@ =~ /lib version v100\.105 required--this is only version v35\.36/) {
+    unless ($@ =~ /lib v100\.105 required--this is only v35\.36/) {
        print "not ";
     }
     print "ok ",$i++,"\n";
index cd7e7cf..970e2f3 100755 (executable)
--- a/t/io/fs.t
+++ b/t/io/fs.t
@@ -21,7 +21,7 @@ print "1..29\n";
 $wd = (($^O eq 'MSWin32') ? `cd` : `pwd`);
 chop($wd);
 
-if ($^O eq 'MSWin32') { `del tmp 2>nul`; `mkdir tmp`; }
+if ($^O eq 'MSWin32') { `rmdir /s /q tmp 2>nul`; `mkdir tmp`; }
 else {  `rm -f tmp 2>/dev/null; mkdir tmp 2>/dev/null`; }
 chdir './tmp';
 `/bin/rm -rf a b c x` if -x '/bin/rm';
@@ -104,6 +104,7 @@ if (rename('a','b')) {print "ok 14\n";} else {print "not ok 14\n";}
     $blksize,$blocks) = stat('a');
 if ($ino == 0) {print "ok 15\n";} else {print "not ok 15\n";}
 $delta = $Is_Dosish ? 2 : 1;   # Granularity of time on the filesystem
+chmod 0777, 'b';
 $foo = (utime 500000000,500000000 + $delta,'b');
 if ($foo == 1) {print "ok 16\n";} else {print "not ok 16 $foo\n";}
 ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,
index 531fc85..30db598 100755 (executable)
@@ -1,8 +1,13 @@
 #!./perl
 
+BEGIN {
+    chdir 't' if -d 't';
+    unshift @INC, '../lib';
+}    
+
 # $RCSfile$    
 $|  = 1;
-$^W = 1;
+use warnings;
 $Is_VMS = $^O eq 'VMS';
 
 print "1..66\n";
index 997c6bf..4559624 100755 (executable)
@@ -98,7 +98,7 @@ if ($Config{d_sfio} || $^O eq 'machten' || $^O eq 'beos' || $^O eq 'posix-bc') {
 else {
     local $SIG{PIPE} = 'IGNORE';
     open NIL, '|true'  or die "open failed: $!";
-    sleep 4;
+    sleep 5;
     print NIL 'foo'    or die "print failed: $!";
     if (close NIL) {
        print "not ok 9\n";
index e38c7e7..a7fca17 100755 (executable)
@@ -7,7 +7,6 @@ BEGIN {
     unshift @INC, '../lib';
 }
 require AnyDBM_File;
-#If Fcntl is not available, try 0x202 or 0x102 for O_RDWR|O_CREAT
 use Fcntl;
 
 print "1..12\n";
index d8afbf6..eb8c8c4 100644 (file)
@@ -117,6 +117,19 @@ unless ($@ && $@ =~ m/Invalid separator character '[+]' in attribute list at/) {
 print "ok ",++$test,"\n";
 BEGIN {++$ntests}
 
+{
+    my $w = "" ;
+    local $SIG{__WARN__} = sub {$w = @_[0]} ;
+    eval 'sub w1 ($) { use warnings "deprecated"; use attrs "locked"; $_[0]++ }';
+    (print "not "), $failed=1 if $@;
+    print "ok ",++$test,"\n";
+    BEGIN {++$ntests}
+    (print "not "), $failed=1 
+       if $w !~ /^pragma "attrs" is deprecated, use "sub NAME : ATTRS" instead at/;
+    print "ok ",++$test,"\n";
+    BEGIN {++$ntests}
+}
+
 
 # Other tests should be added above this line
 
diff --git a/t/lib/b.t b/t/lib/b.t
new file mode 100755 (executable)
index 0000000..663ea55
--- /dev/null
+++ b/t/lib/b.t
@@ -0,0 +1,93 @@
+#!./perl
+
+BEGIN {
+    chdir 't' if -d 't';
+    unshift @INC, '../lib';
+}
+
+$|  = 1;
+use warnings;
+use strict;
+use Config;
+
+print "1..10\n";
+
+my $test = 1;
+
+sub ok { print "ok $test\n"; $test++ }
+
+use B::Deparse;
+my $deparse = B::Deparse->new() or print "not ";
+ok;
+
+print "not " if "{\n    1;\n}" ne $deparse->coderef2text(sub {1});
+ok;
+
+print "not " if "{\n    '???';\n    2;\n}" ne
+                    $deparse->coderef2text(sub {1;2});
+ok;
+
+print "not " if "{\n    \$test /= 2 if ++\$test;\n}" ne
+                    $deparse->coderef2text(sub {++$test and $test/=2;});
+ok;
+
+my $a = `$^X -I../lib -MO=Deparse -anle 1 2>&1`;
+$a =~ s/-e syntax OK\n//g;
+$b = <<'EOF';
+
+LINE: while (defined($_ = <ARGV>)) {
+    chomp $_;
+    @F = split(/\s+/, $_, 0);
+    '???'
+}
+continue {
+    '???'
+}
+
+EOF
+print "# [$a]\n\# vs\n# [$b]\nnot " if $a ne $b;
+ok;
+
+#6
+$a = `$^X -I../lib -MO=Debug -e 1 2>&1`;
+print "not " unless $a =~
+/\bLISTOP\b.*\bOP\b.*\bCOP\b.*\bOP\b/s;
+ok;
+
+#7
+$a = `$^X -I../lib -MO=Terse -e 1 2>&1`;
+print "not " unless $a =~
+/\bLISTOP\b.*leave.*\bOP\b.*enter.*\bCOP\b.*nextstate.*\bOP\b.*null/s;
+ok;
+
+$a = `$^X -I../lib -MO=Terse -ane "s/foo/bar/" 2>&1`;
+$a =~ s/\(0x[^)]+\)//g;
+$a =~ s/\[[^\]]+\]//g;
+$a =~ s/-e syntax OK//;
+$a =~ s/[^a-z ]+//g;
+$a =~ s/\s+/ /g;
+$a =~ s/\b(s|foo|bar|ullsv)\b\s?//g;
+$a =~ s/^\s+//;
+$a =~ s/\s+$//;
+$b=<<EOF;
+leave enter nextstate label leaveloop enterloop null and defined null
+null gvsv readline gv lineseq nextstate aassign null pushmark split pushre
+null gvsv const null pushmark rvav gv nextstate subst const unstack
+nextstate
+EOF
+$b=~s/\n/ /g;$b=~s/\s+/ /g;
+$b =~ s/\s+$//;
+print "# [$a] vs [$b]\nnot " if $a ne $b;
+ok;
+
+chomp($a = `$^X -I../lib -MB::Stash -Mwarnings -e1`);
+$a = join ',', sort split /,/, $a;
+$a =~ s/-uWin32,//;
+$b = '-uCarp,-uCarp::Heavy,-uDB,-uExporter,-uExporter::Heavy,-uattributes,'
+   . '-umain,-uwarnings';
+print "# [$a] vs [$b]\nnot " if $a ne $b;
+ok;
+
+$a = `$^X -I../lib -MO=Showlex -e "my %one" 2>&1`;
+print "# [$a]\nnot " unless $a =~ /sv_undef.*PVNV.*%one.*sv_undef.*HV/s;
+ok;
index b4cd568..934e27c 100755 (executable)
@@ -8,7 +8,7 @@ BEGIN {
     unshift @INC, '../lib' if -d '../lib';
 }
 
-BEGIN {$| = 1; print "1..24\n"; }
+BEGIN {$| = 1; print "1..27\n"; }
 END {print "not ok 1\n" unless $loaded;}
 use Config;
 use CGI (':standard','keywords');
@@ -24,6 +24,8 @@ sub test {
     print($true ? "ok $num\n" : "not ok $num $msg\n");
 }
 
+my $CRLF = "\015\012";
+
 # Set up a CGI environment
 $ENV{REQUEST_METHOD}='GET';
 $ENV{QUERY_STRING}  ='game=chess&game=checkers&weather=dull';
@@ -36,7 +38,7 @@ $ENV{SERVER_NAME} = 'the.good.ship.lollypop.com';
 $ENV{HTTP_LOVE} = 'true';
 
 test(2,request_method() eq 'GET',"CGI::request_method()");
-test(3,query_string() eq 'game=chess&game=checkers&weather=dull',"CGI::query_string()");
+test(3,query_string() eq 'game=chess;game=checkers;weather=dull',"CGI::query_string()");
 test(4,param() == 2,"CGI::param()");
 test(5,join(' ',sort {$a cmp $b} param()) eq 'game weather',"CGI::param()");
 test(6,param('game') eq 'chess',"CGI::param()");
@@ -44,18 +46,18 @@ test(7,param('weather') eq 'dull',"CGI::param()");
 test(8,join(' ',param('game')) eq 'chess checkers',"CGI::param()");
 test(9,param(-name=>'foo',-value=>'bar'),'CGI::param() put');
 test(10,param(-name=>'foo') eq 'bar','CGI::param() get');
-test(11,query_string() eq 'game=chess&game=checkers&weather=dull&foo=bar',"CGI::query_string() redux");
+test(11,query_string() eq 'game=chess;game=checkers;weather=dull;foo=bar',"CGI::query_string() redux");
 test(12,http('love') eq 'true',"CGI::http()");
 test(13,script_name() eq '/cgi-bin/foo.cgi',"CGI::script_name()");
 test(14,url() eq 'http://the.good.ship.lollypop.com:8080/cgi-bin/foo.cgi',"CGI::url()");
 test(15,self_url() eq 
-     'http://the.good.ship.lollypop.com:8080/cgi-bin/foo.cgi/somewhere/else?game=chess&game=checkers&weather=dull&foo=bar',
+     'http://the.good.ship.lollypop.com:8080/cgi-bin/foo.cgi/somewhere/else?game=chess;game=checkers;weather=dull;foo=bar',
      "CGI::url()");
 test(16,url(-absolute=>1) eq '/cgi-bin/foo.cgi','CGI::url(-absolute=>1)');
 test(17,url(-relative=>1) eq 'foo.cgi','CGI::url(-relative=>1)');
 test(18,url(-relative=>1,-path=>1) eq 'foo.cgi/somewhere/else','CGI::url(-relative=>1,-path=>1)');
 test(19,url(-relative=>1,-path=>1,-query=>1) eq 
-     'foo.cgi/somewhere/else?game=chess&game=checkers&weather=dull&foo=bar',
+     'foo.cgi/somewhere/else?game=chess;game=checkers;weather=dull;foo=bar',
      'CGI::url(-relative=>1,-path=>1,-query=>1)');
 Delete('foo');
 test(20,!param('foo'),'CGI::delete()');
@@ -65,21 +67,25 @@ $ENV{QUERY_STRING}='mary+had+a+little+lamb';
 test(21,join(' ',keywords()) eq 'mary had a little lamb','CGI::keywords');
 test(22,join(' ',param('keywords')) eq 'mary had a little lamb','CGI::keywords');
 
-if (!$Config{d_fork} or $^O eq 'MSWin32' or $^O eq 'VMS') {
-    for (23,24) { print "ok $_ # Skipped: fork n/a\n" }
-}
-else {
-    CGI::_reset_globals;
-    $test_string = 'game=soccer&game=baseball&weather=nice';
-    $ENV{REQUEST_METHOD}='POST';
-    $ENV{CONTENT_LENGTH}=length($test_string);
-    $ENV{QUERY_STRING}='big_balls=basketball&small_balls=golf';
-    if (open(CHILD,"|-")) {  # cparent
-       print CHILD $test_string;
-       close CHILD;
-       exit 0;
-    }
-    # at this point, we're in a new (child) process
-    test(23,param('weather') eq 'nice',"CGI::param() from POST");
-    test(24,url_param('big_balls') eq 'basketball',"CGI::url_param()");
+CGI::_reset_globals;
+if ($Config{d_fork}) {
+  $test_string = 'game=soccer&game=baseball&weather=nice';
+  $ENV{REQUEST_METHOD}='POST';
+  $ENV{CONTENT_LENGTH}=length($test_string);
+  $ENV{QUERY_STRING}='big_balls=basketball&small_balls=golf';
+  if (open(CHILD,"|-")) {  # cparent
+    print CHILD $test_string;
+    close CHILD;
+    exit 0;
+  }
+  # at this point, we're in a new (child) process
+  test(23,param('weather') eq 'nice',"CGI::param() from POST");
+  test(24,url_param('big_balls') eq 'basketball',"CGI::url_param()");
+} else {
+  print "ok 23 # Skip\n";
+  print "ok 24 # Skip\n";
 }
+
+test(25,redirect('http://somewhere.else') eq "Status: 302 Moved${CRLF}Location: http://somewhere.else${CRLF}${CRLF}","CGI::redirect() 1");
+test(26,redirect(-Location=>'http://somewhere.else',-Type=>'text/html') eq "Status: 302 Moved${CRLF}Location: http://somewhere.else${CRLF}Content-Type: text/html; charset=ISO-8859-1${CRLF}${CRLF}","CGI::redirect() 2");
+test(27,redirect(-Location=>'http://somewhere.else/bin/foo&bar',-Type=>'text/html') eq "Status: 302 Moved${CRLF}Location: http://somewhere.else/bin/foo&bar${CRLF}Content-Type: text/html; charset=ISO-8859-1${CRLF}${CRLF}","CGI::redirect() 2");
index 43d41ec..1e20a31 100755 (executable)
@@ -9,7 +9,7 @@ BEGIN {
     require Config; import Config;
 }
 
-BEGIN {$| = 1; print "1..20\n"; }
+BEGIN {$| = 1; print "1..24\n"; }
 END {print "not ok 1\n" unless $loaded;}
 use CGI (':standard','-no_debug','*h3','start_table');
 $loaded = 1;
@@ -41,12 +41,13 @@ test(7,h1({-align=>'CENTER'},['fred','agnes']) eq
     test(8,h1('fred','agnes','maura') eq '<H1>fred-agnes-maura</H1>',"open/close tag \$\" interpolation");
 }
 
-test(9,header() eq "Content-Type: text/html$crlf$crlf","header()");
-test(10,header(-type=>'image/gif') eq "Content-Type: image/gif$crlf$crlf","header()");
-test(11,header(-type=>'image/gif',-status=>'500 Sucks') eq "Status: 500 Sucks${crlf}Content-Type: image/gif$crlf$crlf","header()");
-test(12,header(-nph=>1) eq "HTTP/1.0 200 OK${crlf}Content-Type: text/html$crlf$crlf","header()");
+test(9,header() eq "Content-Type: text/html; charset=ISO-8859-1$crlf$crlf","header()");
+test(10,header(-type=>'image/gif') eq "Content-Type: image/gif; charset=ISO-8859-1$crlf$crlf","header()");
+test(11,header(-type=>'image/gif',-status=>'500 Sucks') eq "Status: 500 Sucks${crlf}Content-Type: image/gif; charset=ISO-8859-1$crlf$crlf","header()");
+test(12,header(-nph=>1) eq "HTTP/1.0 200 OK${crlf}Content-Type: text/html; charset=ISO-8859-1$crlf$crlf","header()");
 test(13,start_html() ."\n" eq <<END,"start_html()");
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+       "http://www.w3.org/TR/html4/loose.dtd">
 <HTML><HEAD><TITLE>Untitled Document</TITLE>
 </HEAD><BODY>
 END
@@ -58,7 +59,8 @@ test(14,start_html(-dtd=>"-//IETF//DTD HTML 3.2//FR") ."\n" eq <<END,"start_html
 END
     ;
 test(15,start_html(-Title=>'The world of foo') ."\n" eq <<END,"start_html()");
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+       "http://www.w3.org/TR/html4/loose.dtd">
 <HTML><HEAD><TITLE>The world of foo</TITLE>
 </HEAD><BODY>
 END
@@ -70,6 +72,9 @@ test(17,header(-Cookie=>$cookie) =~ m!^Set-Cookie: fred=chocolate&chip\; path=/$
 test(18,start_h3 eq '<H3>');
 test(19,end_h3 eq '</H3>');
 test(20,start_table({-border=>undef}) eq '<TABLE BORDER>');
-
-
-
+test(21,h1(escapeHTML("this is <not> \x8bright\x9b")) eq '<H1>this is &lt;not&gt; &#139;right&#155;</H1>');
+charset('utf-8');
+test(22,h1(escapeHTML("this is <not> \x8bright\x9b")) eq '<H1>&#116;&#104;&#105;&#115;&#32;&#105;&#115;&#32;&#60;&#110;&#111;&#116;&#62;&#32;&#139;&#114;&#105;&#103;&#104;&#116;&#155;</H1>');
+test(23,i(p('hello there')) eq '<I><P>hello there</P></I>');
+my $q = new CGI;
+test(24,$q->h1('hi') eq '<H1>hi</H1>');
diff --git a/t/lib/cgi-pretty.t b/t/lib/cgi-pretty.t
new file mode 100755 (executable)
index 0000000..e217a7d
--- /dev/null
@@ -0,0 +1,39 @@
+#!./perl
+
+# Test ability to retrieve HTTP request info
+######################### We start with some black magic to print on failure.
+BEGIN {
+    chdir 't' if -d 't';
+    unshift @INC, '../lib' if -d '../lib';
+}
+
+BEGIN {$| = 1; print "1..5\n"; }
+END {print "not ok 1\n" unless $loaded;}
+use CGI::Pretty (':standard','-no_debug','*h3','start_table');
+$loaded = 1;
+print "ok 1\n";
+
+######################### End of black magic.
+
+# util
+sub test {
+    local($^W) = 0;
+    my($num, $true,$msg) = @_;
+    print($true ? "ok $num\n" : "not ok $num $msg\n");
+}
+
+# all the automatic tags
+test(2,h1() eq '<H1>',"single tag");
+test(3,ol(li('fred'),li('ethel')) eq "<OL>\n\t<LI>\n\t\tfred\n\t</LI>\n\t <LI>\n\t\tethel\n\t</LI>\n</OL>\n","basic indentation");
+test(4,p('hi',pre('there'),'frog') eq 
+'<P>
+       hi <PRE>there</PRE>
+        frog
+</P>
+',"<pre> tags");
+test(5,p('hi',a({-href=>'frog'},'there'),'frog') eq 
+'<P>
+       hi <A HREF="frog">there</A>
+        frog
+</P>
+',"as-is");
index 9e8cdc2..390c08c 100755 (executable)
@@ -8,10 +8,10 @@ BEGIN {
     unshift @INC, '../lib' if -d '../lib';
 }
 
-BEGIN {$| = 1; print "1..31\n"; }
+BEGIN {$| = 1; print "1..33\n"; }
 END {print "not ok 1\n" unless $loaded;}
-use Config;
 use CGI ();
+use Config;
 $loaded = 1;
 print "ok 1\n";
 
@@ -39,7 +39,7 @@ $ENV{HTTP_LOVE}       = 'true';
 $q = new CGI;
 test(2,$q,"CGI::new()");
 test(3,$q->request_method eq 'GET',"CGI::request_method()");
-test(4,$q->query_string eq 'game=chess&game=checkers&weather=dull',"CGI::query_string()");
+test(4,$q->query_string eq 'game=chess;game=checkers;weather=dull',"CGI::query_string()");
 test(5,$q->param() == 2,"CGI::param()");
 test(6,join(' ',sort $q->param()) eq 'game weather',"CGI::param()");
 test(7,$q->param('game') eq 'chess',"CGI::param()");
@@ -47,18 +47,18 @@ test(8,$q->param('weather') eq 'dull',"CGI::param()");
 test(9,join(' ',$q->param('game')) eq 'chess checkers',"CGI::param()");
 test(10,$q->param(-name=>'foo',-value=>'bar'),'CGI::param() put');
 test(11,$q->param(-name=>'foo') eq 'bar','CGI::param() get');
-test(12,$q->query_string eq 'game=chess&game=checkers&weather=dull&foo=bar',"CGI::query_string() redux");
+test(12,$q->query_string eq 'game=chess;game=checkers;weather=dull;foo=bar',"CGI::query_string() redux");
 test(13,$q->http('love') eq 'true',"CGI::http()");
 test(14,$q->script_name eq '/cgi-bin/foo.cgi',"CGI::script_name()");
 test(15,$q->url eq 'http://the.good.ship.lollypop.com:8080/cgi-bin/foo.cgi',"CGI::url()");
 test(16,$q->self_url eq 
-     'http://the.good.ship.lollypop.com:8080/cgi-bin/foo.cgi/somewhere/else?game=chess&game=checkers&weather=dull&foo=bar',
+     'http://the.good.ship.lollypop.com:8080/cgi-bin/foo.cgi/somewhere/else?game=chess;game=checkers;weather=dull;foo=bar',
      "CGI::url()");
 test(17,$q->url(-absolute=>1) eq '/cgi-bin/foo.cgi','CGI::url(-absolute=>1)');
 test(18,$q->url(-relative=>1) eq 'foo.cgi','CGI::url(-relative=>1)');
 test(19,$q->url(-relative=>1,-path=>1) eq 'foo.cgi/somewhere/else','CGI::url(-relative=>1,-path=>1)');
 test(20,$q->url(-relative=>1,-path=>1,-query=>1) eq 
-     'foo.cgi/somewhere/else?game=chess&game=checkers&weather=dull&foo=bar',
+     'foo.cgi/somewhere/else?game=chess;game=checkers;weather=dull;foo=bar',
      'CGI::url(-relative=>1,-path=>1,-query=>1)');
 $q->delete('foo');
 test(21,!$q->param('foo'),'CGI::delete()');
@@ -73,22 +73,30 @@ test(26,$q->param('foo') eq 'bar','CGI::param() redux');
 test(27,$q=new CGI({'foo'=>'bar','bar'=>'froz'}),"CGI::new() redux 2");
 test(28,$q->param('bar') eq 'froz',"CGI::param() redux 2");
 
-if (!$Config{d_fork} or $^O eq 'MSWin32' or $^O eq 'VMS') {
-    for (29..31) { print "ok $_ # Skipped: fork n/a\n" }
-}
-else {
-    $q->_reset_globals;
-    $test_string = 'game=soccer&game=baseball&weather=nice';
-    $ENV{REQUEST_METHOD}='POST';
-    $ENV{CONTENT_LENGTH}=length($test_string);
-    $ENV{QUERY_STRING}='big_balls=basketball&small_balls=golf';
-    if (open(CHILD,"|-")) {  # cparent
-       print CHILD $test_string;
-       close CHILD;
-       exit 0;
-    }
-    # at this point, we're in a new (child) process
-    test(29,$q=new CGI,"CGI::new() from POST");
-    test(30,$q->param('weather') eq 'nice',"CGI::param() from POST");
-    test(31,$q->url_param('big_balls') eq 'basketball',"CGI::url_param()");
+# test tied interface
+my $p = $q->Vars;
+test(29,$p->{bar} eq 'froz',"tied interface fetch");
+$p->{bar} = join("\0",qw(foo bar baz));
+test(30,join(' ',$q->param('bar')) eq 'foo bar baz','tied interface store');
+
+# test posting
+$q->_reset_globals;
+if ($Config{d_fork}) {
+  $test_string = 'game=soccer&game=baseball&weather=nice';
+  $ENV{REQUEST_METHOD}='POST';
+  $ENV{CONTENT_LENGTH}=length($test_string);
+  $ENV{QUERY_STRING}='big_balls=basketball&small_balls=golf';
+  if (open(CHILD,"|-")) {  # cparent
+    print CHILD $test_string;
+    close CHILD;
+    exit 0;
+  }
+  # at this point, we're in a new (child) process
+  test(31,$q=new CGI,"CGI::new() from POST");
+  test(32,$q->param('weather') eq 'nice',"CGI::param() from POST");
+  test(33,$q->url_param('big_balls') eq 'basketball',"CGI::url_param()");
+} else {
+  print "ok 31 # Skip\n";
+  print "ok 32 # Skip\n";
+  print "ok 33 # Skip\n";
 }
index f4d9577..566baf3 100644 (file)
@@ -8,7 +8,7 @@ BEGIN {
 }
 
 $| = 1;
-print "1..5\n";
+print "1..12\n";
 
 use charnames ':full';
 
@@ -42,16 +42,39 @@ EOE
 $encoded_be = "\320\261";
 $encoded_alpha = "\316\261";
 $encoded_bet = "\327\221";
+
+sub to_bytes {
+    use bytes;
+    my $bytes = shift;
+}
+
 {
   use charnames ':full';
-  use utf8;
 
-  print "not " unless "\N{CYRILLIC SMALL LETTER BE}" eq $encoded_be;
+  print "not " unless to_bytes("\N{CYRILLIC SMALL LETTER BE}") eq $encoded_be;
   print "ok 4\n";
 
   use charnames qw(cyrillic greek :short);
 
-  print "not " unless "\N{be},\N{alpha},\N{hebrew:bet}" 
+  print "not " unless to_bytes("\N{be},\N{alpha},\N{hebrew:bet}")
     eq "$encoded_be,$encoded_alpha,$encoded_bet";
   print "ok 5\n";
 }
+
+{
+    use charnames ':full';
+    print "not " unless "\x{263a}" eq "\N{WHITE SMILING FACE}";
+    print "ok 6\n";
+    print "not " unless length("\x{263a}") == 1;
+    print "ok 7\n";
+    print "not " unless length("\N{WHITE SMILING FACE}") == 1;
+    print "ok 8\n";
+    print "not " unless sprintf("%vx", "\x{263a}") eq "263a";
+    print "ok 9\n";
+    print "not " unless sprintf("%vx", "\N{WHITE SMILING FACE}") eq "263a";
+    print "ok 10\n";
+    print "not " unless sprintf("%vx", "\xFF\N{WHITE SMILING FACE}") eq "ff.263a";
+    print "ok 11\n";
+    print "not " unless sprintf("%vx", "\x{ff}\N{WHITE SMILING FACE}") eq "ff.263a";
+    print "ok 12\n";
+}
index 1b4e189..d4beb8b 100755 (executable)
@@ -159,20 +159,18 @@ test_dbz(
         'acsch(0)',
         'asec(0)',
         'asech(0)',
-        'atan(-$i)',
         'atan($i)',
 #       'atanh(-1)',   # Log of zero.
         'atanh(+1)',
         'cot(0)',
         'coth(0)',
         'csc(0)',
-        'tan($pip2)',
         'csch(0)',
-        'tan($pip2)',
        );
 
 test_loz(
         'log($zero)',
+        'atan(-$i)',
         'acot(-$i)',
         'atanh(-1)',
         'acoth(-1)',
@@ -187,7 +185,7 @@ sub test_broot {
        eval 'root(2, $op)';
        (\$bad) = (\$@ =~ /(.+)/);
        print "# $test op = $op badroot? \$bad...\n";
-       print 'not ' unless (\$@ =~ /root must be/);
+       print 'not ' unless (\$@ =~ /root rank must be/);
 EOT
         push(@script, qq(print "ok $test\\n";\n));
     }
@@ -263,9 +261,8 @@ EOS
 
     $test++;
     push @script, <<EOS;
-    my \$dj = "\$j"; \$dj =~ s/(\\d{14})\\d+i/\$1i/;
-    print "# j = \$dj (truncated for display)\n";
-    print "not " unless \$dj eq "-0.5+0.86602540378443i";
+    print "# j = \$j\n";
+    print "not " unless "\$j" =~ /^-0\\.5\\+0.86602540\\d+i\$/;
     print "ok $test\n";
 
     \$j->display_format('style' => 'polar', 'polar_pretty_print' => 0);
@@ -273,9 +270,8 @@ EOS
 
     $test++;
     push @script, <<EOS;
-    my \$dj = "\$j"; \$dj =~ s/(\\d{12})\\d+\]/\$1]/;
-    print "# j = \$dj (truncated for display)\n";
-    print "not " unless \$dj eq "[1,2.094395102393]";
+    print "# j = \$j\n";
+    print "not " unless "\$j" =~ /^\\[1,2\\.09439510\\d+\\]\$/;
     print "ok $test\n";
 
     \$j->display_format('style' => 'cartesian', 'format' => '(%.5g)');
@@ -896,7 +892,7 @@ __END__
 ( 2,-3):(  1.96863792579310, -0.96465850440760)
 
 &acosh
-(-2.0,0):(  -1.31695789692482,  3.14159265358979)
+(-2.0,0):(   1.31695789692482,  3.14159265358979)
 (-1.0,0):(   0,                 3.14159265358979)
 (-0.5,0):(   0,                 2.09439510239320)
 ( 0.0,0):(   0,                 1.57079632679490)
@@ -906,8 +902,8 @@ __END__
 
 &acosh
 ( 2, 3):(  1.98338702991654,  1.00014354247380)
-(-2, 3):( -1.98338702991653, -2.14144911111600)
-(-2,-3):( -1.98338702991653,  2.14144911111600)
+(-2, 3):(  1.98338702991653,  2.14144911111600)
+(-2,-3):(  1.98338702991653, -2.14144911111600)
 ( 2,-3):(  1.98338702991654, -1.00014354247380)
 
 &atanh
@@ -926,15 +922,15 @@ __END__
 &asech
 (-2.0,0):(   0               , 2.09439510239320)
 (-1.0,0):(   0               , 3.14159265358979)
-(-0.5,0):(  -1.31695789692482, 3.14159265358979)
+(-0.5,0):(   1.31695789692482, 3.14159265358979)
 ( 0.5,0):(   1.31695789692482, 0               )
 ( 1.0,0):(   0               , 0               )
 ( 2.0,0):(   0               , 1.04719755119660)
 
 &asech
 ( 2, 3):(  0.23133469857397, -1.42041072246703)
-(-2, 3):( -0.23133469857397,  1.72118193112276)
-(-2,-3):( -0.23133469857397, -1.72118193112276)
+(-2, 3):(  0.23133469857397, -1.72118193112276)
+(-2,-3):(  0.23133469857397,  1.72118193112276)
 ( 2,-3):(  0.23133469857397,  1.42041072246703)
 
 &acsch
index 3167535..b9680bd 100755 (executable)
@@ -287,7 +287,7 @@ EOT
   package main;
   use Data::Dumper;
   $foo = 5;
-  @foo = (10,\*foo);
+  @foo = (-10,\*foo);
   %foo = (a=>1,b=>\$foo,c=>\@foo);
   $foo{d} = \%foo;
   $foo[2] = \%foo;
@@ -299,7 +299,7 @@ EOT
 #*::foo = \5;
 #*::foo = [
 #           #0
-#           10,
+#           -10,
 #           #1
 #           do{my $o},
 #           #2
@@ -330,7 +330,7 @@ EOT
 #$foo = \*::foo;
 #*::foo = \5;
 #*::foo = [
-#  10,
+#  -10,
 #  do{my $o},
 #  {
 #    'a' => 1,
@@ -356,7 +356,7 @@ EOT
 ##
   $WANT = <<'EOT';
 #@bar = (
-#  10,
+#  -10,
 #  \*::foo,
 #  {}
 #);
@@ -383,7 +383,7 @@ EOT
 ##
   $WANT = <<'EOT';
 #$bar = [
-#  10,
+#  -10,
 #  \*::foo,
 #  {}
 #];
@@ -411,7 +411,7 @@ EOT
   $WANT = <<'EOT';
 #$foo = \*::foo;
 #@bar = (
-#  10,
+#  -10,
 #  $foo,
 #  {
 #    a => 1,
@@ -433,7 +433,7 @@ EOT
   $WANT = <<'EOT';
 #$foo = \*::foo;
 #$bar = [
-#  10,
+#  -10,
 #  $foo,
 #  {
 #    a => 1,
index 310967f..7709ee5 100755 (executable)
@@ -15,6 +15,7 @@ BEGIN {
 }
 
 use strict;
+use warnings;
 use vars qw($DEBUG);
 
 package B1;
index 40e6e21..5628d0c 100755 (executable)
@@ -9,7 +9,7 @@ use File::Path;
 use strict;
 
 my $count = 0;
-$^W = 1;
+use warnings;
 
 print "1..4\n";
 
diff --git a/t/lib/ftmp-mktemp.t b/t/lib/ftmp-mktemp.t
new file mode 100755 (executable)
index 0000000..c660475
--- /dev/null
@@ -0,0 +1,101 @@
+#!./perl
+
+BEGIN {
+    chdir 't' if -d 't';
+    unshift @INC, '../lib';
+}
+
+# Test for mktemp family of commands in File::Temp
+# Use STANDARD safe level for these tests
+
+use strict;
+use Test;
+BEGIN { plan tests => 9 }
+
+use File::Spec;
+use File::Path;
+use File::Temp qw/ :mktemp unlink0 /;
+
+ok(1);
+
+# MKSTEMP - test
+
+# Create file in temp directory
+my $template = File::Spec->catfile(File::Spec->tmpdir, 'wowserXXXX');
+
+(my $fh, $template) = mkstemp($template);
+
+print "# MKSTEMP: FH is $fh File is $template fileno=".fileno($fh)."\n";
+# Check if the file exists
+ok( (-e $template) );
+
+# Autoflush
+$fh->autoflush(1) if $] >= 5.006; 
+
+# Try printing something to the file
+my $string = "woohoo\n";
+print $fh $string;
+
+# rewind the file
+ok(seek( $fh, 0, 0));
+
+# Read from the file
+my $line = <$fh>;
+
+# compare with previous string
+ok($string, $line);
+
+# Tidy up
+# This test fails on Windows NT since it seems that the size returned by 
+# stat(filehandle) does not always equal the size of the stat(filename)
+# This must be due to caching. In particular this test writes 7 bytes
+# to the file which are not recognised by stat(filename)
+
+if ($^O eq 'MSWin32') {
+  sleep 3;
+}
+ok( unlink0($fh, $template) );
+
+
+# MKSTEMPS
+# File with suffix. This is created in the current directory
+
+$template = "suffixXXXXXX";
+my $suffix = ".dat";
+
+($fh, my $fname) = mkstemps($template, $suffix);
+
+print "# MKSTEMPS: File is $template -> $fname fileno=".fileno($fh)."\n";
+# Check if the file exists
+ok( (-e $fname) );
+
+ok( unlink0($fh, $fname) ); 
+
+
+# MKDTEMP
+# Temp directory
+
+$template = File::Spec->catdir(File::Spec->tmpdir, 'tmpdirXXXXXX');
+
+my $tmpdir = mkdtemp($template);
+
+print "# MKDTEMP: Name is $tmpdir from template $template\n";
+
+ok( (-d $tmpdir ) );
+
+# Need to tidy up after myself
+rmtree($tmpdir);
+
+# MKTEMP
+# Just a filename, not opened
+
+$template = File::Spec->catfile(File::Spec->tmpdir, 'mytestXXXXXX');
+
+my $tmpfile = mktemp($template);
+
+print "# MKTEMP: Tempfile is $template -> $tmpfile\n";
+
+# Okay if template no longer has XXXXX in
+
+
+ok( ($tmpfile !~ /XXXXX$/) );
diff --git a/t/lib/ftmp-posix.t b/t/lib/ftmp-posix.t
new file mode 100755 (executable)
index 0000000..f28785e
--- /dev/null
@@ -0,0 +1,66 @@
+#!./perl
+
+BEGIN {
+    chdir 't' if -d 't';
+    unshift @INC, '../lib';
+}
+
+# Test for File::Temp - POSIX functions
+
+use strict;
+use Test;
+BEGIN { plan tests => 7}
+
+use File::Temp qw/ :POSIX unlink0 /;
+ok(1);
+
+# TMPNAM - scalar
+
+print "# TMPNAM: in a scalar context: \n";
+my $tmpnam = tmpnam();
+
+# simply check that the file does not exist
+# Not a 100% water tight test though if another program 
+# has managed to create one in the meantime.
+ok( !(-e $tmpnam ));
+
+print "# TMPNAM file name: $tmpnam\n";
+
+# TMPNAM array context
+# Not strict posix behaviour
+(my $fh, $tmpnam) = tmpnam();
+
+print "# TMPNAM: in array context: $fh $tmpnam\n";
+
+# File is opened - make sure it exists
+ok( (-e $tmpnam ));
+
+# Unlink it 
+ok( unlink0($fh, $tmpnam) );
+
+# TMPFILE
+
+$fh = tmpfile();
+
+ok( $fh );
+print "# TMPFILE: tmpfile got FH $fh\n";
+
+$fh->autoflush(1) if $] >= 5.006;
+
+# print something to it
+my $original = "Hello a test\n";
+print "# TMPFILE: Wrote line: $original";
+print $fh $original
+  or die "Error printing to tempfile\n";
+
+# rewind it
+ok( seek($fh,0,0) );
+
+
+# Read from it
+my $line = <$fh>;
+
+print "# TMPFILE: Read line: $line";
+ok( $original, $line);
+
+close($fh);
diff --git a/t/lib/ftmp-security.t b/t/lib/ftmp-security.t
new file mode 100755 (executable)
index 0000000..50e1779
--- /dev/null
@@ -0,0 +1,119 @@
+#!./perl
+
+BEGIN {
+    chdir 't' if -d 't';
+    unshift @INC, '../lib';
+}
+
+# Test for File::Temp - Security levels
+
+# Some of the security checking will not work on all platforms
+# Test a simple open in the cwd and tmpdir foreach of the
+# security levels
+
+use strict;
+use Test;
+BEGIN { plan tests => 13}
+
+use File::Spec;
+use File::Temp qw/ tempfile unlink0 /;
+ok(1);
+
+# The high security tests must currently be skipped on Windows
+my $skipplat = ( $^O eq 'MSWin32' ? 1 : 0 );
+
+# Can not run high security tests in perls before 5.6.0
+my $skipperl  = ($] < 5.006 ? 1 : 0 );
+
+# Determine whether we need to skip things and why
+my $skip = 0;
+if ($skipplat) {
+  $skip = "Skip Not supported on this platform";
+} elsif ($skipperl) {
+  $skip = "Skip Perl version must be v5.6.0 for these tests";
+
+}
+
+print "# We will be skipping some tests : $skip\n" if $skip;
+
+# start off with basic checking
+
+File::Temp->safe_level( File::Temp::STANDARD );
+
+print "# Testing with STANDARD security...\n";
+
+&test_security(0);
+
+# Try medium
+
+File::Temp->safe_level( File::Temp::MEDIUM )
+  unless $skip;
+
+print "# Testing with MEDIUM security...\n";
+
+# Now we need to start skipping tests
+&test_security($skip);
+
+# Try HIGH
+
+File::Temp->safe_level( File::Temp::HIGH )
+  unless $skip;
+
+print "# Testing with HIGH security...\n";
+
+&test_security($skip);
+
+exit;
+
+# Subroutine to open two temporary files.
+# one is opened in the current dir and the other in the temp dir
+
+sub test_security {
+
+  # Read in the skip flag
+  my $skip = shift;
+
+  # If we are skipping we need to simply fake the correct number
+  # of tests -- we dont use skip since the tempfile() commands will
+  # fail with MEDIUM/HIGH security before the skip() command would be run
+  if ($skip) {
+    
+    skip($skip,1);
+    skip($skip,1);
+    
+    # plus we need an end block so the tests come out in the right order
+    eval q{ END { skip($skip,1); skip($skip,1)  } 1; } || die;
+    
+    return;
+  }
+
+
+  # End blocks are evaluated in reverse order
+  # If I want to check that the file was unlinked by the autmoatic
+  # feature of the module I have to set up the end block before 
+  # creating the file.
+  # Use quoted end block to retain access to lexicals
+  my @files;
+
+  eval q{ END { foreach (@files) { ok( !(-e $_) )} } 1; } || die; 
+
+
+  my $template = "temptestXXXXXXXX";
+  my ($fh1, $fname1) = tempfile ( $template, 
+                                 DIR => File::Spec->curdir,
+                                 UNLINK => 1,
+                               );
+  print "# Fname1 = $fname1\n";
+  ok( ( -e $fname1) );
+
+  # Explicitly 
+  my ($fh2, $fname2) = tempfile ($template,  UNLINK => 1 );
+  ok( (-e $fname2) );
+  close($fh2);
+
+  # Store filenames for the end block
+  push(@files, $fname1, $fname2);
+
+
+
+}
diff --git a/t/lib/ftmp-tempfile.t b/t/lib/ftmp-tempfile.t
new file mode 100755 (executable)
index 0000000..9c0de8b
--- /dev/null
@@ -0,0 +1,92 @@
+#!./perl
+
+BEGIN {
+    chdir 't' if -d 't';
+    unshift @INC, '../lib';
+}
+
+# Test for File::Temp - tempfile function
+
+use strict;
+use Test;
+BEGIN { plan tests => 10}
+use File::Spec;
+use File::Temp qw/ tempfile tempdir/;
+
+# Will need to check that all files were unlinked correctly
+# Set up an END block here to do it (since the END blocks
+# set up by File::Temp will be evaluated in reverse order we
+# set ours up first....
+
+# Loop over an array hoping that the files dont exist
+my @files;
+eval q{ END { foreach (@files) { ok( !(-e $_) )} } 1; } || die; 
+
+# And a test for directories
+my @dirs;
+eval q{ END { foreach (@dirs) { ok( !(-d $_) )} } 1; } || die; 
+
+
+# Tempfile
+# Open tempfile in some directory, unlink at end
+my ($fh, $tempfile) = tempfile(
+                              UNLINK => 1,
+                              SUFFIX => '.txt',
+                             );
+
+ok( (-f $tempfile) );
+push(@files, $tempfile);
+
+# TEMPDIR test
+# Create temp directory in current dir
+my $template = 'tmpdirXXXXXX';
+print "# Template: $template\n";
+my $tempdir = tempdir( $template ,
+                      DIR => File::Spec->curdir,
+                      CLEANUP => 1,
+                    );
+
+print "# TEMPDIR: $tempdir\n";
+
+ok( (-d $tempdir) );
+push(@dirs, $tempdir);
+
+# Create file in the temp dir
+($fh, $tempfile) = tempfile(
+                           DIR => $tempdir,
+                           UNLINK => 1,
+                           SUFFIX => '.dat',
+                          );
+
+print "# TEMPFILE: Created $tempfile\n";
+
+ok( (-f $tempfile));
+push(@files, $tempfile);
+
+# Test tempfile
+# ..and again
+($fh, $tempfile) = tempfile(
+                           DIR => $tempdir,
+                          );
+
+
+ok( (-f $tempfile ));
+push(@files, $tempfile);
+
+print "# TEMPFILE: Created $tempfile\n";
+
+# and another (with template)
+
+($fh, $tempfile) = tempfile( 'helloXXXXXXX',
+                           DIR => $tempdir,
+                           UNLINK => 1,
+                           SUFFIX => '.dat',
+                          );
+
+print "# TEMPFILE: Created $tempfile\n";
+
+ok( (-f $tempfile) );
+push(@files, $tempfile);
+
+# no tests yet to make sure that the END{} blocks correctly remove
+# the files
index 4728083..cbb1263 100755 (executable)
@@ -27,7 +27,7 @@ $ENV{PATH} = "/bin";
 delete @ENV{BASH_ENV, CDPATH, ENV, IFS};
 @correct = ();
 if (opendir(D, ".")) {
-   @correct = grep { !/^\.\.?$/ } sort readdir(D);
+   @correct = grep { !/^\./ } sort readdir(D);
    closedir D;
 }
 @a = File::Glob::glob("*", 0);
@@ -39,12 +39,12 @@ print "ok 2\n";
 
 # look up the user's home directory
 # should return a list with one item, and not set ERROR
-if ($^O ne 'MSWin32' || $^O ne 'VMS') {
+if ($^O ne 'MSWin32' && $^O ne 'VMS') {
   eval {
     ($name, $home) = (getpwuid($>))[0,7];
     1;
   } and do {
-    @a = File::Glob::glob("~$name", GLOB_TILDE);
+    @a = bsd_glob("~$name", GLOB_TILDE);
     if (scalar(@a) != 1 || $a[0] ne $home || GLOB_ERROR) {
        print "not ";
     }
@@ -54,7 +54,7 @@ print "ok 3\n";
 
 # check backslashing
 # should return a list with one item, and not set ERROR
-@a = File::Glob::glob('TEST', GLOB_QUOTE);
+@a = bsd_glob('TEST', GLOB_QUOTE);
 if (scalar @a != 1 || $a[0] ne 'TEST' || GLOB_ERROR) {
     local $/ = "][";
     print "# [@a]\n";
@@ -65,7 +65,7 @@ print "ok 4\n";
 # check nonexistent checks
 # should return an empty list
 # XXX since errfunc is NULL on win32, this test is not valid there
-@a = File::Glob::glob("asdfasdf", 0);
+@a = bsd_glob("asdfasdf", 0);
 if ($^O ne 'MSWin32' and scalar @a != 0) {
     print "# |@a|\nnot ";
 }
@@ -81,7 +81,7 @@ if ($^O eq 'mpeix' or $^O eq 'MSWin32' or $^O eq 'os2' or $^O eq 'VMS'
 else {
     $dir = "PtEeRsLt.dir";
     mkdir $dir, 0;
-    @a = File::Glob::glob("$dir/*", GLOB_ERR);
+    @a = bsd_glob("$dir/*", GLOB_ERR);
     #print "\@a = ", array(@a);
     rmdir $dir;
     if (scalar(@a) != 0 || GLOB_ERROR == 0) {
@@ -91,15 +91,15 @@ else {
 }
 
 # check for csh style globbing
-@a = File::Glob::glob('{a,b}', GLOB_BRACE | GLOB_NOMAGIC);
+@a = bsd_glob('{a,b}', GLOB_BRACE | GLOB_NOMAGIC);
 unless (@a == 2 and $a[0] eq 'a' and $a[1] eq 'b') {
     print "not ";
 }
 print "ok 7\n";
 
-@a = File::Glob::glob(
+@a = bsd_glob(
     '{TES*,doesntexist*,a,b}',
-    GLOB_BRACE | GLOB_NOMAGIC
+    GLOB_BRACE | GLOB_NOMAGIC | ($^O eq 'VMS' ? GLOB_NOCASE : 0)
 );
 unless (@a == 3
         and $a[0] eq ($^O eq 'VMS'? 'test.' : 'TEST')
@@ -112,7 +112,7 @@ print "ok 8\n";
 
 # "~" should expand to $ENV{HOME}
 $ENV{HOME} = "sweet home";
-@a = File::Glob::glob('~', GLOB_TILDE | GLOB_NOMAGIC);
+@a = bsd_glob('~', GLOB_TILDE | GLOB_NOMAGIC);
 unless (@a == 1 and $a[0] eq $ENV{HOME}) {
     print "not ";
 }
index 32719b2..3d5c816 100755 (executable)
@@ -30,7 +30,7 @@ print "not " unless @a == 0;
 print "ok 3\n";
 
 # Test the explicit use of the GLOB_NOCASE flag
-@a = File::Glob::glob("lib/G*.t", GLOB_NOCASE);
+@a = bsd_glob("lib/G*.t", GLOB_NOCASE);
 print "not " unless @a >= 3;
 print "ok 4\n";
 
@@ -47,7 +47,7 @@ else {
     rmdir "[]";
     print "# returned @a\nnot " unless @a == 1;
     print "ok 6\n";
-    @a = File::Glob::glob("lib\\*", GLOB_QUOTE);
+    @a = bsd_glob("lib\\*", GLOB_QUOTE);
     print "not " if @a == 0;
     print "ok 7\n";
 }
index a8dc213..586357f 100755 (executable)
@@ -18,7 +18,7 @@ $loaded = 1;
 print "ok 1\n";
 
 # all filenames should be tainted
-@a = File::Glob::glob("*");
+@a = File::Glob::bsd_glob("*");
 eval { $a = join("",@a), kill 0; 1 };
 unless ($@ =~ /Insecure dependency/) {
     print "not ";
index 68ad7b7..925830e 100755 (executable)
@@ -15,7 +15,7 @@ if ($^O eq 'mpeix') {
 select(STDERR); $| = 1;
 select(STDOUT); $| = 1;
 
-print "1..8\n";
+print "1..9\n";
 
 use IO::Handle;
 use IO::Poll qw(/POLL/);
@@ -75,3 +75,8 @@ $poll->poll(0.1);
 print "not "
        if $poll->events($stdout);
 print "ok 8\n";
+
+$poll->remove($dupout);
+print "not "
+    if $poll->handles;
+print "ok 9\n";
index e0d7a45..85e14ab 100755 (executable)
@@ -10,7 +10,7 @@ BEGIN {
 select(STDERR); $| = 1;
 select(STDOUT); $| = 1;
 
-print "1..21\n";
+print "1..23\n";
 
 use IO::Select 1.09;
 
@@ -114,3 +114,19 @@ print "ok 20\n";
 $sel->remove($sel->handles);
 print "not " unless $sel->count == 0 && !defined($sel->bits);
 print "ok 21\n";
+
+# check warnings
+$SIG{__WARN__} = sub { 
+    ++ $w 
+      if $_[0] =~ /^Call to depreciated method 'has_error', use 'has_exception'/ 
+    } ;
+$w = 0 ;
+IO::Select::has_error();
+print "not " unless $w == 0 ;
+$w = 0 ;
+print "ok 22\n" ;
+use warnings 'IO::Select' ;
+IO::Select::has_error();
+print "not " unless $w == 1 ;
+$w = 0 ;
+print "ok 23\n" ;
index e03e223..056d131 100755 (executable)
@@ -148,7 +148,7 @@ if($pid = fork()) {
     }
 
     # some machines seem to suffer from a race condition here
-#    sleep(1);
+    sleep(1);
 
     $sock = IO::Socket->new(Domain => AF_INET,
                             PeerAddr => "localhost:$port");
index 62569a5..247647a 100644 (file)
@@ -5,11 +5,6 @@ BEGIN {
         chdir 't' if -d 't';
         unshift @INC, '../lib' if -d '../lib';
     }
-    # ``use IO::Socket'' executes too early below in the os2 block
-    if ($^O eq 'dos') {
-        print "1..0 # Skip: no fork\n";
-       exit 0;
-    }
 }
 
 use Config;
@@ -27,7 +22,7 @@ BEGIN {
            $reason = 'IO extension unavailable';
        }
        elsif ($^O eq 'os2') {
-           use IO::Socket;
+           require IO::Socket;
 
            eval {IO::Socket::pack_sockaddr_un('/tmp/foo') || 1}
              or $@ !~ /not implemented/ or
index e2ffd76..a4f3e3f 100755 (executable)
@@ -23,8 +23,7 @@ BEGIN {
 # These constants are common to all tests.
 # Later the sem* tests will import more for themselves.
 
-use IPC::SysV qw(IPC_PRIVATE IPC_NOWAIT IPC_STAT IPC_RMID
-                S_IRWXU S_IRWXG S_IRWXO S_IWGRP S_IROTH S_IWOTH);
+use IPC::SysV qw(IPC_PRIVATE IPC_NOWAIT IPC_STAT IPC_RMID S_IRWXU);
 use strict;
 
 print "1..16\n";
@@ -55,12 +54,7 @@ EOM
     exit(1);
 };
 
-my $perm;
-
-$perm = S_IRWXU | S_IRWXG | S_IRWXO | S_IWGRP | S_IROTH | S_IWOTH
-    if $^O eq 'vmesa';
-
-$perm = S_IRWXU | S_IRWXG | S_IRWXO unless defined $perm;
+my $perm = S_IRWXU;
 
 if ($Config{'d_msgget'} eq 'define' &&
     $Config{'d_msgctl'} eq 'define' &&
index 7cd0ca3..bf042bf 100755 (executable)
@@ -20,7 +20,7 @@ use IO::Handle;
 use IPC::Open3;
 #require 'open3.pl'; use subs 'open3';
 
-my $perl = './perl';
+my $perl = $^X;
 
 sub ok {
     my ($n, $result, $info) = @_;
index 86323b6..2c936f1 100755 (executable)
@@ -5,6 +5,7 @@ BEGIN {
     unshift @INC, '../lib';
 }
 
+use warnings;
 use Text::ParseWords;
 
 print "1..18\n";
@@ -17,15 +18,15 @@ print "ok 2\n";
 print "not " if $words[2] ne 'zoo';
 print "ok 3\n";
 
-# Gonna get some undefined things back
-local($^W) = 0;
+{
+  # Gonna get some undefined things back
+  no warnings 'uninitialized' ;
 
-# Test quotewords() with other parameters and null last field
-@words = quotewords(':+', 1, 'foo:::"bar:foo":zoo zoo:');
-print "not " unless join(";", @words) eq qq(foo;"bar:foo";zoo zoo;);
-print "ok 4\n";
-
-$^W = 1;
+  # Test quotewords() with other parameters and null last field
+  @words = quotewords(':+', 1, 'foo:::"bar:foo":zoo zoo:');
+  print "not " unless join(";", @words) eq qq(foo;"bar:foo";zoo zoo;);
+  print "ok 4\n";
+}
 
 # Test $keep eq 'delimiters' and last field zero
 @words = quotewords('\s+', 'delimiters', '4 3 2 1 0');
@@ -71,29 +72,30 @@ print "ok 11\n";
 print "not " if (@words);
 print "ok 12\n";
 
-# Gonna get some more undefined things back
-$^W = 0;
+{
+  # Gonna get some more undefined things back
+  no warnings 'uninitialized' ;
 
-@words = nested_quotewords('s+', 0, $string);
-print "not " if (@words);
-print "ok 13\n";
+  @words = nested_quotewords('s+', 0, $string);
+  print "not " if (@words);
+  print "ok 13\n";
 
-# Now test empty fields
-$result = join('|', parse_line(':', 0, 'foo::0:"":::'));
-print "not " unless ($result eq 'foo||0||||');
-print "ok 14\n";
+  # Now test empty fields
+  $result = join('|', parse_line(':', 0, 'foo::0:"":::'));
+  print "not " unless ($result eq 'foo||0||||');
+  print "ok 14\n";
 
-# Test for 0 in quotes without $keep
-$result = join('|', parse_line(':', 0, ':"0":'));
-print "not " unless ($result eq '|0|');
-print "ok 15\n";
+  # Test for 0 in quotes without $keep
+  $result = join('|', parse_line(':', 0, ':"0":'));
+  print "not " unless ($result eq '|0|');
+  print "ok 15\n";
 
-# Test for \001 in quoted string
-$result = join('|', parse_line(':', 0, ':"' . "\001" . '":'));
-print "not " unless ($result eq "|\1|");
-print "ok 16\n";
+  # Test for \001 in quoted string
+  $result = join('|', parse_line(':', 0, ':"' . "\001" . '":'));
+  print "not " unless ($result eq "|\1|");
+  print "ok 16\n";
 
-$^W = 1;
+}
 
 # Now test perlish single quote behavior
 $Text::ParseWords::PERL_SINGLE_QUOTE = 1;
diff --git a/t/lib/peek.t b/t/lib/peek.t
new file mode 100644 (file)
index 0000000..255512f
--- /dev/null
@@ -0,0 +1,310 @@
+#!./perl
+
+BEGIN {
+    chdir 't' if -d 't';
+    unshift @INC, '../lib';
+    require Config; import Config;
+    if ($Config{'extensions'} !~ /\bPeek\b/) {
+        print "1..0 # Skip: Devel::Peek was not built\n";
+        exit 0;
+    }
+}
+
+use Devel::Peek;
+
+print "1..17\n";
+
+our $DEBUG = 0;
+open(SAVERR, ">&STDERR") or die "Can't dup STDERR: $!";
+
+sub do_test {
+    my $pattern = pop;
+    if (open(OUT,">peek$$")) {
+       open(STDERR, ">&OUT") or die "Can't dup OUT: $!";
+       Dump($_[1]);
+       open(STDERR, ">&SAVERR") or die "Can't restore STDERR: $!";
+       close(OUT);
+       if (open(IN, "peek$$")) {
+           local $/;
+           $pattern =~ s/\$ADDR/0x[[:xdigit:]]+/g;
+           print $pattern, "\n" if $DEBUG;
+           my $dump = <IN>;
+           print $dump, "\n"    if $DEBUG;
+           print "[$dump] vs [$pattern]\nnot " unless $dump =~ /$pattern/m;
+           print "ok $_[0]\n";
+           close(IN);
+       } else {
+           die "$0: failed to open peek$$: !\n";
+       }
+    } else {
+       die "$0: failed to create peek$$: $!\n";
+    }
+}
+
+our   $a;
+our   $b;
+my    $c;
+local $d;
+
+do_test( 1,
+       $a = "foo",
+'SV = PV\\($ADDR\\) at $ADDR
+  REFCNT = 1
+  FLAGS = \\(POK,pPOK\\)
+  PV = $ADDR "foo"\\\0
+  CUR = 3
+  LEN = 4'
+       );
+
+do_test( 2,
+        "bar",
+'SV = PV\\($ADDR\\) at $ADDR
+  REFCNT = 1
+  FLAGS = \\(.*POK,READONLY,pPOK\\)
+  PV = $ADDR "bar"\\\0
+  CUR = 3
+  LEN = 4');
+
+do_test( 3,
+        $b = 123,
+'SV = IV\\($ADDR\\) at $ADDR
+  REFCNT = 1
+  FLAGS = \\(IOK,pIOK\\)
+  IV = 123');
+
+do_test( 4,
+        456,
+'SV = IV\\($ADDR\\) at $ADDR
+  REFCNT = 1
+  FLAGS = \\(.*IOK,READONLY,pIOK\\)
+  IV = 456');
+
+do_test( 5,
+        $c = 456,
+'SV = IV\\($ADDR\\) at $ADDR
+  REFCNT = 1
+  FLAGS = \\(PADBUSY,PADMY,IOK,pIOK\\)
+  IV = 456');
+
+do_test( 6,
+        $c + $d,
+'SV = NV\\($ADDR\\) at $ADDR
+  REFCNT = 1
+  FLAGS = \\(PADTMP,NOK,pNOK\\)
+  NV = 456');
+
+($d = "789") += 0.1;
+
+do_test( 7,
+       $d,
+'SV = PVNV\\($ADDR\\) at $ADDR
+  REFCNT = 1
+  FLAGS = \\(NOK,pNOK\\)
+  IV = 0
+  NV = 789\\.1
+  PV = $ADDR "789"\\\0
+  CUR = 3
+  LEN = 4');
+
+do_test( 8,
+        0xabcd,
+'SV = IV\\($ADDR\\) at $ADDR
+  REFCNT = 1
+  FLAGS = \\(.*IOK,READONLY,pIOK,IsUV\\)
+  UV = 43981');
+
+do_test( 9,
+        undef,
+'SV = NULL\\(0x0\\) at $ADDR
+  REFCNT = 1
+  FLAGS = \\(\\)');
+
+do_test(10,
+        \$a,
+'SV = RV\\($ADDR\\) at $ADDR
+  REFCNT = 1
+  FLAGS = \\(ROK\\)
+  RV = $ADDR
+  SV = PV\\($ADDR\\) at $ADDR
+    REFCNT = 2
+    FLAGS = \\(POK,pPOK\\)
+    PV = $ADDR "foo"\\\0
+    CUR = 3
+    LEN = 4');
+
+do_test(11,
+       [$b,$c],
+'SV = RV\\($ADDR\\) at $ADDR
+  REFCNT = 1
+  FLAGS = \\(ROK\\)
+  RV = $ADDR
+  SV = PVAV\\($ADDR\\) at $ADDR
+    REFCNT = 2
+    FLAGS = \\(\\)
+    IV = 0
+    NV = 0
+    ARRAY = $ADDR
+    FILL = 1
+    MAX = 1
+    ARYLEN = 0x0
+    FLAGS = \\(REAL\\)
+    Elt No. 0
+    SV = IV\\($ADDR\\) at $ADDR
+      REFCNT = 1
+      FLAGS = \\(IOK,pIOK\\)
+      IV = 123
+    Elt No. 1
+    SV = PVNV\\($ADDR\\) at $ADDR
+      REFCNT = 1
+      FLAGS = \\(IOK,NOK,pIOK,pNOK\\)
+      IV = 456
+      NV = 456
+      PV = 0');
+
+do_test(12,
+       {$b=>$c},
+'SV = RV\\($ADDR\\) at $ADDR
+  REFCNT = 1
+  FLAGS = \\(ROK\\)
+  RV = $ADDR
+  SV = PVHV\\($ADDR\\) at $ADDR
+    REFCNT = 2
+    FLAGS = \\(SHAREKEYS\\)
+    IV = 1
+    NV = 0
+    ARRAY = $ADDR  \\(0:7, 1:1\\)
+    hash quality = 150.0%
+    KEYS = 1
+    FILL = 1
+    MAX = 7
+    RITER = -1
+    EITER = 0x0
+    Elt "123" HASH = $ADDR
+    SV = PVNV\\($ADDR\\) at $ADDR
+      REFCNT = 1
+      FLAGS = \\(IOK,NOK,pIOK,pNOK\\)
+      IV = 456
+      NV = 456
+      PV = 0');
+
+do_test(13,
+        sub(){@_},
+'SV = RV\\($ADDR\\) at $ADDR
+  REFCNT = 1
+  FLAGS = \\(ROK\\)
+  RV = $ADDR
+  SV = PVCV\\($ADDR\\) at $ADDR
+    REFCNT = 2
+    FLAGS = \\(PADBUSY,PADMY,POK,pPOK,ANON\\)
+    IV = 0
+    NV = 0
+    PROTOTYPE = ""
+    COMP_STASH = $ADDR\\t"main"
+    START = $ADDR ===> \\d+
+    ROOT = $ADDR
+    XSUB = 0x0
+    XSUBANY = 0
+    GVGV::GV = $ADDR\\t"main" :: "__ANON__"
+    FILE = ".+\\b(?i:peek\\.t)"
+    DEPTH = 0
+    FLAGS = 0x4
+    PADLIST = $ADDR
+    OUTSIDE = $ADDR \\(MAIN\\)');
+
+do_test(14,
+        \&do_test,
+'SV = RV\\($ADDR\\) at $ADDR
+  REFCNT = 1
+  FLAGS = \\(ROK\\)
+  RV = $ADDR
+  SV = PVCV\\($ADDR\\) at $ADDR
+    REFCNT = 3
+    FLAGS = \\(\\)
+    IV = 0
+    NV = 0
+    COMP_STASH = $ADDR\\t"main"
+    START = $ADDR ===> \\d+
+    ROOT = $ADDR
+    XSUB = 0x0
+    XSUBANY = 0
+    GVGV::GV = $ADDR\\t"main" :: "do_test"
+    FILE = ".+\\b(?i:peek\\.t)"
+    DEPTH = 1
+    FLAGS = 0x0
+    PADLIST = $ADDR
+      \\d+\\. $ADDR \\("\\$pattern" \\d+-\\d+\\)
+     \\d+\\. $ADDR \\(FAKE "\\$DEBUG" 0-\\d+\\)
+     \\d+\\. $ADDR \\("\\$dump" \\d+-\\d+\\)
+    OUTSIDE = $ADDR \\(MAIN\\)');
+
+do_test(15,
+        qr(tic),
+'SV = RV\\($ADDR\\) at $ADDR
+  REFCNT = 1
+  FLAGS = \\(ROK\\)
+  RV = $ADDR
+  SV = PVMG\\($ADDR\\) at $ADDR
+    REFCNT = 1
+    FLAGS = \\(OBJECT,RMG\\)
+    IV = 0
+    NV = 0
+    PV = 0
+    MAGIC = $ADDR
+      MG_VIRTUAL = $ADDR
+      MG_TYPE = \'r\'
+      MG_OBJ = $ADDR
+    STASH = $ADDR\\t"Regexp"');
+
+do_test(16,
+        (bless {}, "Tac"),
+'SV = RV\\($ADDR\\) at $ADDR
+  REFCNT = 1
+  FLAGS = \\(ROK\\)
+  RV = $ADDR
+  SV = PVHV\\($ADDR\\) at $ADDR
+    REFCNT = 2
+    FLAGS = \\(OBJECT,SHAREKEYS\\)
+    IV = 0
+    NV = 0
+    STASH = $ADDR\\t"Tac"
+    ARRAY = 0x0
+    KEYS = 0
+    FILL = 0
+    MAX = 7
+    RITER = -1
+    EITER = 0x0');
+
+do_test(17,
+       *a,
+'SV = PVGV\\($ADDR\\) at $ADDR
+  REFCNT = 5
+  FLAGS = \\(GMG,SMG,MULTI\\)
+  IV = 0
+  NV = 0
+  MAGIC = $ADDR
+    MG_VIRTUAL = &PL_vtbl_glob
+    MG_TYPE = \'\\*\'
+    MG_OBJ = $ADDR
+    MG_LEN = 1
+    MG_PTR = $ADDR "a"
+  NAME = "a"
+  NAMELEN = 1
+  GvSTASH = $ADDR\\t"main"
+  GP = $ADDR
+    SV = $ADDR
+    REFCNT = 1
+    IO = 0x0
+    FORM = 0x0  
+    AV = 0x0
+    HV = 0x0
+    CV = 0x0
+    CVGEN = 0x0
+    GPFLAGS = 0x0
+    LINE = \\d+
+    FILE = ".+\\b(?i:peek\\.t)"
+    FLAGS = $ADDR
+    EGV = $ADDR\\t"a"');
+
+END {
+  unlink("peek$$");
+}
index 8f945ac..d5e1848 100755 (executable)
@@ -13,7 +13,7 @@ BEGIN {
        
 use Socket;
 
-print "1..6\n";
+print "1..8\n";
 
 if (socket(T,PF_INET,SOCK_STREAM,6)) {
   print "ok 1\n";
@@ -74,3 +74,14 @@ else {
        print "# $!\n";
        print "not ok 4\n";
 }
+
+# warnings
+$SIG{__WARN__} = sub {
+    ++ $w if $_[0] =~ /^6-ARG sockaddr_in call is deprecated/ ;
+} ;
+$w = 0 ;
+sockaddr_in(1,2,3,4,5,6) ;
+print ($w == 1 ? "not ok 7\n" : "ok 7\n") ;
+use warnings 'Socket' ;
+sockaddr_in(1,2,3,4,5,6) ;
+print ($w == 1 ? "ok 8\n" : "not ok 8\n") ;
diff --git a/t/lib/syslog.t b/t/lib/syslog.t
new file mode 100755 (executable)
index 0000000..e1927bc
--- /dev/null
@@ -0,0 +1,28 @@
+#!./perl
+
+BEGIN {
+    chdir 't' if -d 't';
+    unshift @INC, '../lib';
+    require Config; import Config;
+    if ($Config{'extensions'} !~ /\bSyslog\b/) {
+       print "1..0 # Skip: Sys::Syslog was not built\n";
+       exit 0;
+    }
+}
+
+use Sys::Syslog qw(:DEFAULT setlogsock);
+
+print "1..6\n";
+
+if (Sys::Syslog::_PATH_LOG()) {
+    print defined(eval { setlogsock('unix') }) ? "ok 1\n" : "not ok 1\n";
+    print defined(eval { openlog('perl', 'ndelay', 'local0') }) ? "ok 2\n" : "not ok 2\n";
+    print defined(eval { syslog('info', 'test') }) ? "ok 3\n" : "not ok 3\n";
+}
+else {
+    for (1..3) { print "ok $_ # skipping, _PATH_LOG unavailable\n" }
+}
+
+print defined(eval { setlogsock('inet') }) ? "ok 4\n" : "not ok 4\n";
+print defined(eval { openlog('perl', 'ndelay', 'local0') }) ? "ok 5\n" : "not ok 5\n";
+print defined(eval { syslog('info', 'test') }) ? "ok 6\n" : "not ok 6\n";
similarity index 100%
rename from t/lib/thread.t
rename to t/lib/thr5005.t
index cb8303d..cf3a183 100755 (executable)
@@ -45,5 +45,3 @@ print "ok 12\n";
 print "not " unless close($f);
 print "ok 13\n";
 unlink("afile");     
-
-
similarity index 91%
rename from t/op/64bit.t
rename to t/op/64bitint.t
index 60f72c3..f59c953 100644 (file)
@@ -10,13 +10,13 @@ BEGIN {
        unshift @INC, '../lib';
 }
 
-# This could use a lot of more tests.
+# This could use many more tests.
 
 # so that using > 0xfffffff constants and
 # 32+ bit integers don't cause noise
 no warnings qw(overflow portable);
 
-print "1..48\n";
+print "1..52\n";
 
 my $q = 12345678901;
 my $r = 23456789012;
@@ -239,4 +239,17 @@ print "ok 47\n";
 print "not " unless (0xf000000000000000 ^ 0xfffffffffffffff0) == 0x0ffffffffffffff0;
 print "ok 48\n";
 
+
+print "not " unless (sprintf "%b", ~0)   eq '1111111111111111111111111111111111111111111111111111111111111111';
+print "ok 49\n";
+
+print "not " unless (sprintf "%64b", ~0) eq '1111111111111111111111111111111111111111111111111111111111111111';
+print "ok 50\n";
+
+print "not " unless (sprintf "%d", ~0>>1) eq '9223372036854775807';
+print "ok 51\n";
+
+print "not " unless (sprintf "%u", ~0)    eq '18446744073709551615';
+print "ok 52\n";
+
 # eof
index 1108f49..97a4a40 100755 (executable)
@@ -139,8 +139,8 @@ t("@foo" eq "bar burbl blah");                                      # 39
 @foo = ('XXX',@foo, 'YYY');
 t("@foo" eq "XXX bar burbl blah YYY");                         # 40
 
-@foo = @foo = qw(foo bar burbl blah);
-t("@foo" eq "foo bar burbl blah");                             # 41
+@foo = @foo = qw(foo b\a\r bu\\rbl blah);
+t("@foo" eq 'foo b\a\r bu\\rbl blah');                         # 41
 
 @bar = @foo = qw(foo bar);                                     # 42
 t("@foo" eq "foo bar");
index 00f7abb..b95cec5 100755 (executable)
@@ -12,8 +12,8 @@ BEGIN {
 }
 
 use strict;
+use warnings;
 
-$^W = 1;
 my $warn = "";
 $SIG{q(__WARN__)} = sub { print $warn; $warn .= join("",@_) };
 
index 7bcabdf..22a5bc9 100755 (executable)
@@ -39,7 +39,7 @@ print (((1 << ($bits - 1)) == $cusp &&
        do { use integer; 1 << ($bits - 1) } == -$cusp)
        ? "ok 11\n" : "not ok 11\n");
 print ((($cusp >> 1) == ($cusp / 2) &&
-       do { use integer; $cusp >> 1 } == -($cusp / 2))
+       do { use integer; abs($cusp >> 1) } == ($cusp / 2))
        ? "ok 12\n" : "not ok 12\n");
 
 $Aaz = chr(ord("A") & ord("z"));
index 761d8b9..d4b0e87 100755 (executable)
@@ -54,9 +54,9 @@ BEGIN {
     }
 }
 
-# By now GR filehandle should be open and full of juicy group entries.
+# By now the GR filehandle should be open and full of juicy group entries.
 
-print "1..1\n";
+print "1..2\n";
 
 # Go through at most this many groups.
 # (note that the first entry has been read away by now)
@@ -67,6 +67,7 @@ my $tst = 1;
 my %perfect;
 my %seen;
 
+setgrent();
 while (<GR>) {
     chomp;
     my @s = split /:/;
@@ -111,6 +112,8 @@ while (<GR>) {
     $n++;
 }
 
+endgrent();
+
 if (keys %perfect == 0) {
     $max++;
     print <<EOEX;
@@ -136,4 +139,29 @@ print "ok ", $tst++;
 print "\t# (not necessarily serious: run t/op/grent.t by itself)" if $not;
 print "\n";
 
+# Test both the scalar and array contexts.
+
+my @gr1;
+
+setgrent();
+for (1..$max) {
+    my $gr = scalar getgrent();
+    last unless defined $gr;
+    push @gr1, $gr;
+}
+endgrent();
+
+my @gr2;
+
+setgrent();
+for (1..$max) {
+    my ($gr) = (getgrent());
+    last unless defined $gr;
+    push @gr2, $gr;
+}
+endgrent();
+
+print "not " unless "@gr1" eq "@gr2";
+print "ok ", $tst++, "\n";
+
 close(GR);
index 4b655c8..082d2d1 100755 (executable)
@@ -115,7 +115,8 @@ for (split(' ', $()) {
     }
 } 
 
-if ($^O eq "uwin") { # Or anybody else who can have spaces in group names.
+if ($^O =~ /^(?:uwin|solaris)$/) {
+       # Or anybody else who can have spaces in group names.
        $gr1 = join(' ', grep(!$did{$_}++, sort split(' ', join(' ', @gr))));
 } else {
        $gr1 = join(' ', sort @gr);
index ee7978e..04905cd 100755 (executable)
--- a/t/op/gv.t
+++ b/t/op/gv.t
@@ -4,6 +4,13 @@
 # various typeglob tests
 #
 
+BEGIN {
+    chdir 't' if -d 't';
+    unshift @INC, '../lib';
+}   
+
+use warnings;
+
 print "1..30\n";
 
 # type coersion on assignment
@@ -62,7 +69,7 @@ if (defined $baa) {
 #        fact that %X::Y:: is stored in %X:: isn't documented.
 #        (I hope.)
 
-{ package Foo::Bar; $test=1; }
+{ package Foo::Bar; no warnings 'once'; $test=1; }
 print exists $Foo::{'Bar::'} ? "ok 12\n" : "not ok 12\n";
 print $Foo::{'Bar::'} eq '*Foo::Bar::' ? "ok 13\n" : "not ok 13\n";
 
@@ -77,7 +84,7 @@ print +($foo || @foo || %foo) ? "not ok" : "ok", " 14\n";
 {
     my $msg;
     local $SIG{__WARN__} = sub { $msg = $_[0] };
-    local $^W = 1;
+    use warnings;
     *foo = 'bar';
     print $msg ? "not ok" : "ok", " 15\n";
     *foo = undef;
index 0b6f10f..9182273 100755 (executable)
@@ -6,12 +6,11 @@ BEGIN {
 }
 
 use strict;
+use warnings;
 
 use vars qw{ @warnings };
 
 BEGIN {
-    $^W |= 1;          # Insist upon warnings
-    # ...and save 'em as we go
     $SIG{'__WARN__'} = sub { push @warnings, @_ };
     $| = 1;
     print "1..9\n";
index 2fb059d..836cdba 100755 (executable)
@@ -112,11 +112,12 @@ for (@INPUT) {
   $ord++;
   ($op, undef, $comment) = /^([^\#]+)(\#\s+(.*))?/;
   $comment = $op unless defined $comment;
+  chomp;
   $op = "$op==$op" unless $op =~ /==/;
   ($op, $expectop) = $op =~ /(.*)==(.*)/;
   
   $skip = ($op =~ /^'\?\?\?'/ or $comment =~ /skip\(.*\Q$^O\E.*\)/i)
-         ? "skip" : "not";
+         ? "skip" : "# '$_'\nnot";
   $integer = ($comment =~ /^i_/) ? "use integer" : '' ;
   (print "#skipping $comment:\nok $ord\n"), next if $skip eq 'skip';
   
@@ -137,7 +138,7 @@ EOE
       print "# skipping $comment: unimplemented:\nok $ord\n";
     } else {
       warn $@;
-      print "not ok $ord\n";
+      print "# '$_'\nnot ok $ord\n";
     }
   }
 }
@@ -146,6 +147,7 @@ for (@simple_input) {
   $ord++;
   ($op, undef, $comment) = /^([^\#]+)(\#\s+(.*))?/;
   $comment = $op unless defined $comment;
+  chomp;
   ($operator, $variable) = /^\s*(\w+)\s*\$(\w+)/ or warn "misprocessed '$_'\n";
   eval <<EOE;
   local \$SIG{__WARN__} = \\&wrn;
@@ -164,7 +166,7 @@ EOE
       print "# skipping $comment: syntax not good for selfassign:\nok $ord\n";
     } else {
       warn $@;
-      print "not ok $ord\n";
+      print "# '$_'\nnot ok $ord\n";
     }
   }
 }
index 0d5190a..7739276 100755 (executable)
@@ -1,13 +1,14 @@
 #!./perl
 
 BEGIN {
-    $^W = 1;
     $| = 1;
     chdir 't' if -d 't';
     unshift @INC, '../lib';
     $SIG{__WARN__} = sub { die "Dying on warning: ", @_ };
 }
 
+use warnings;
+
 sub ok {
     my ($n, $result, $info) = @_;
     if ($result) {
index ac1a44f..55f459d 100755 (executable)
@@ -59,12 +59,12 @@ $a = ":="; split /($a)/o, "a:=b:=c"; print "@_"
 EXPECT
 a := b := c
 ########
-use integer;
 $cusp = ~0 ^ (~0 >> 1);
+use integer;
 $, = " ";
-print +($cusp - 1) % 8, $cusp % 8, -$cusp % 8, ($cusp + 1) % 8, "!\n";
+print +($cusp - 1) % 8, $cusp % 8, -$cusp % 8, 8 | (($cusp + 1) % 8 + 7), "!\n";
 EXPECT
--1 0 0 1 !
+7 0 0 8 !
 ########
 $foo=undef; $foo->go;
 EXPECT
@@ -545,3 +545,16 @@ ucfirst - World
 lcfirst - world
 uc - WORLD
 lc - world
+########
+sub f { my $a = 1; my $b = 2; my $c = 3; my $d = 4; next }
+my $x = "foo";
+{ f } continue { print $x, "\n" }
+EXPECT
+foo
+########
+sub C () { 1 }
+sub M { $_[0] = 2; }
+eval "C";
+M(C);
+EXPECT
+Modification of a read-only value attempted at - line 2.
similarity index 100%
rename from t/op/nothread.t
rename to t/op/nothr5005.t
index 27ac5aa..3a487d8 100755 (executable)
@@ -1,53 +1,67 @@
 #!./perl
 
-print "1..36\n";
+print "1..44\n";
 
-print +(oct('0b10101') ==          0b10101) ? "ok" : "not ok", " 1\n";
-print +(oct('0b10101') ==              025) ? "ok" : "not ok", " 2\n";
-print +(oct('0b10101') ==               21) ? "ok" : "not ok", " 3\n";
-print +(oct('0b10101') ==             0x15) ? "ok" : "not ok", " 4\n";
+print +(oct('0b1_0101') ==        0b101_01) ? "ok" : "not ok", " 1\n";
+print +(oct('0b10_101') ==           0_2_5) ? "ok" : "not ok", " 2\n";
+print +(oct('0b101_01') ==             2_1) ? "ok" : "not ok", " 3\n";
+print +(oct('0b1010_1') ==           0x1_5) ? "ok" : "not ok", " 4\n";
 
-print +(oct('b10101')  ==          0b10101) ? "ok" : "not ok", " 5\n";
-print +(oct('b10101')  ==              025) ? "ok" : "not ok", " 6\n";
-print +(oct('b10101')  ==               21) ? "ok" : "not ok", " 7\n";
-print +(oct('b10101')  ==             0x15) ? "ok" : "not ok", " 8\n";
+print +(oct('b1_0101') ==          0b10101) ? "ok" : "not ok", " 5\n";
+print +(oct('b10_101') ==              025) ? "ok" : "not ok", " 6\n";
+print +(oct('b101_01') ==               21) ? "ok" : "not ok", " 7\n";
+print +(oct('b1010_1') ==             0x15) ? "ok" : "not ok", " 8\n";
 
-print +(oct('01234')   ==     0b1010011100) ? "ok" : "not ok", " 9\n";
-print +(oct('01234')   ==            01234) ? "ok" : "not ok", " 10\n";
-print +(oct('01234')   ==              668) ? "ok" : "not ok", " 11\n";
+print +(oct('01_234')  ==   0b10_1001_1100) ? "ok" : "not ok", " 9\n";
+print +(oct('012_34')  ==            01234) ? "ok" : "not ok", " 10\n";
+print +(oct('0123_4')  ==              668) ? "ok" : "not ok", " 11\n";
 print +(oct('01234')   ==            0x29c) ? "ok" : "not ok", " 12\n";
 
-print +(oct('0x1234')  ==  0b1001000110100) ? "ok" : "not ok", " 13\n";
-print +(oct('0x1234')  ==           011064) ? "ok" : "not ok", " 14\n";
-print +(oct('0x1234')  ==             4660) ? "ok" : "not ok", " 15\n";
-print +(oct('0x1234')  ==           0x1234) ? "ok" : "not ok", " 16\n";
+print +(oct('0x1_234') == 0b10010_00110100) ? "ok" : "not ok", " 13\n";
+print +(oct('0x12_34') ==          01_1064) ? "ok" : "not ok", " 14\n";
+print +(oct('0x123_4') ==             4660) ? "ok" : "not ok", " 15\n";
+print +(oct('0x1234')  ==          0x12_34) ? "ok" : "not ok", " 16\n";
 
-print +(oct('x1234')   ==  0b1001000110100) ? "ok" : "not ok", " 17\n";
-print +(oct('x1234')   ==           011064) ? "ok" : "not ok", " 18\n";
-print +(oct('x1234')   ==             4660) ? "ok" : "not ok", " 19\n";
-print +(oct('x1234')   ==           0x1234) ? "ok" : "not ok", " 20\n";
+print +(oct('x1_234')  == 0b100100011010_0) ? "ok" : "not ok", " 17\n";
+print +(oct('x12_34')  ==          0_11064) ? "ok" : "not ok", " 18\n";
+print +(oct('x123_4')  ==             4660) ? "ok" : "not ok", " 19\n";
+print +(oct('x1234')   ==          0x_1234) ? "ok" : "not ok", " 20\n";
 
-print +(hex('01234')   ==  0b1001000110100) ? "ok" : "not ok", " 21\n";
-print +(hex('01234')   ==           011064) ? "ok" : "not ok", " 22\n";
-print +(hex('01234')   ==             4660) ? "ok" : "not ok", " 23\n";
-print +(hex('01234')   ==           0x1234) ? "ok" : "not ok", " 24\n";
+print +(hex('01_234')  == 0b_1001000110100) ? "ok" : "not ok", " 21\n";
+print +(hex('012_34')  ==           011064) ? "ok" : "not ok", " 22\n";
+print +(hex('0123_4')  ==             4660) ? "ok" : "not ok", " 23\n";
+print +(hex('01234_')  ==           0x1234) ? "ok" : "not ok", " 24\n";
 
-print +(hex('0x1234')  ==  0b1001000110100) ? "ok" : "not ok", " 25\n";
-print +(hex('0x1234')  ==           011064) ? "ok" : "not ok", " 26\n";
-print +(hex('0x1234')  ==             4660) ? "ok" : "not ok", " 27\n";
-print +(hex('0x1234')  ==           0x1234) ? "ok" : "not ok", " 28\n";
+print +(hex('0x_1234') ==  0b1001000110100) ? "ok" : "not ok", " 25\n";
+print +(hex('0x1_234') ==           011064) ? "ok" : "not ok", " 26\n";
+print +(hex('0x12_34') ==             4660) ? "ok" : "not ok", " 27\n";
+print +(hex('0x1234_') ==           0x1234) ? "ok" : "not ok", " 28\n";
 
-print +(hex('x1234')   ==  0b1001000110100) ? "ok" : "not ok", " 29\n";
-print +(hex('x1234')   ==           011064) ? "ok" : "not ok", " 30\n";
-print +(hex('x1234')   ==             4660) ? "ok" : "not ok", " 31\n";
-print +(hex('x1234')   ==           0x1234) ? "ok" : "not ok", " 32\n";
+print +(hex('x_1234')  ==  0b1001000110100) ? "ok" : "not ok", " 29\n";
+print +(hex('x12_34')  ==           011064) ? "ok" : "not ok", " 30\n";
+print +(hex('x123_4')  ==             4660) ? "ok" : "not ok", " 31\n";
+print +(hex('x1234_')  ==           0x1234) ? "ok" : "not ok", " 32\n";
 
-print +(oct('0b11111111111111111111111111111111') == 4294967295) ?
+print +(oct('0b1111_1111_1111_1111_1111_1111_1111_1111') == 4294967295) ?
     "ok" : "not ok", " 33\n";
-print +(oct('037777777777')                       == 4294967295) ?
+print +(oct('037_777_777_777')                       == 4294967295) ?
     "ok" : "not ok", " 34\n";
-print +(oct('0xffffffff')                         == 4294967295) ?
+print +(oct('0xffff_ffff')                         == 4294967295) ?
     "ok" : "not ok", " 35\n";
 
-print +(hex('0xffffffff')                         == 4294967295) ?
+print +(hex('0xff_ff_ff_ff')                         == 4294967295) ?
     "ok" : "not ok", " 36\n";
+
+$_ = "\0_7_7";
+print length eq 5                      ? "ok" : "not ok", " 37\n";
+print $_ eq "\0"."_"."7"."_"."7"       ? "ok" : "not ok", " 38\n";
+chop, chop, chop, chop;
+print $_ eq "\0"                       ? "ok" : "not ok", " 39\n";
+print "\077_" eq "?_"                  ? "ok" : "not ok", " 40\n";
+
+$_ = "\x_7_7";
+print length eq 5                      ? "ok" : "not ok", " 41\n";
+print $_ eq "\0"."_"."7"."_"."7"       ? "ok" : "not ok", " 42\n";
+chop, chop, chop, chop;
+print $_ eq "\0"                       ? "ok" : "not ok", " 43\n";
+print "\x2F_" eq "/_"                  ? "ok" : "not ok", " 44\n";
index 09c566e..dda1cc7 100755 (executable)
@@ -98,7 +98,7 @@ print((unpack("p",pack("p",$test)) == $test ? "ok " : "not ok "),$test++,"\n");
 # temps
 sub foo { my $a = "a"; return $a . $a++ . $a++ }
 {
-  local $^W = 1;
+  use warnings;
   my $last = $test;
   local $SIG{__WARN__} = sub {
        print "ok ",$test++,"\n" if $_[0] =~ /temporary val/
@@ -372,8 +372,9 @@ print $@ eq '' && $y eq 'z' ? "ok $test\n" : "not ok $test\n"; $test++;
 
 eval { ($x) = pack '/a*','hello' };
 print 'not ' unless $@; print "ok $test\n"; $test++;
-$z = pack 'n/a* w/A*','string','etc';
-print 'not ' unless $z eq "\000\006string\003etc"; print "ok $test\n"; $test++;
+$z = pack 'n/a* N/Z* w/A*','string','hi there ','etc';
+print 'not ' unless $z eq "\000\006string\0\0\0\012hi there \000\003etc";
+print "ok $test\n"; $test++;
 
 eval { ($x) = unpack 'a/a*/a*', '212ab345678901234567' };
 print $@ eq '' && $x eq 'ab3456789012' ? "ok $test\n" : "#$x,$@\nnot ok $test\n";
index 1434af1..e00328c 100755 (executable)
@@ -4,7 +4,7 @@
 # the format supported by op/regexp.t.  If you want to add a test
 # that does fit that format, add it to op/re_tests, not here.
 
-print "1..211\n";
+print "1..213\n";
 
 BEGIN {
     chdir 't' if -d 't';
@@ -573,8 +573,8 @@ sub must_warn_pat {
 
 sub must_warn {
     my ($warn_pat, $code) = @_;
-    local $^W; local %SIG;
-    eval 'BEGIN { $^W = 1; $SIG{__WARN__} = $warn_pat };' . $code;
+    local %SIG;
+    eval 'BEGIN { use warnings; $SIG{__WARN__} = $warn_pat };' . $code;
     print "ok $test\n";
     $test++;
 }
@@ -995,3 +995,20 @@ $test++;
 "\n\n" =~ /\n+ $ \n/x or print "not ";
 print "ok $test\n";
 $test++;
+
+[] =~ /^ARRAY/ or print "# [] \nnot ";
+print "ok $test\n";
+$test++;
+
+eval << 'EOE';
+{
+ package S;
+ use overload '""' => sub { 'Object S' };
+ sub new { bless [] }
+}
+$a = 'S'->new;
+EOE
+
+$a and $a =~ /^Object\sS/ or print "# '$a' \nnot ";
+print "ok $test\n";
+$test++;
index ca14a99..0f67eb4 100755 (executable)
@@ -55,9 +55,9 @@ BEGIN {
     }
 }
 
-# By now PW filehandle should be open and full of juicy password entries.
+# By now the PW filehandle should be open and full of juicy password entries.
 
-print "1..1\n";
+print "1..2\n";
 
 # Go through at most this many users.
 # (note that the first entry has been read away by now)
@@ -68,6 +68,7 @@ my $tst = 1;
 my %perfect;
 my %seen;
 
+setpwent();
 while (<PW>) {
     chomp;
     my @s = split /:/;
@@ -108,6 +109,7 @@ while (<PW>) {
     }
     $n++;
 }
+endpwent();
 
 if (keys %perfect == 0) {
     $max++;
@@ -134,4 +136,29 @@ print "ok ", $tst++;
 print "\t# (not necessarily serious: run t/op/pwent.t by itself)" if $not;
 print "\n";
 
+# Test both the scalar and array contexts.
+
+my @pw1;
+
+setpwent();
+for (1..$max) {
+    my $pw = scalar getpwent();
+    last unless defined $pw;
+    push @pw1, $pw;
+}
+endpwent();
+
+my @pw2;
+
+setpwent();
+for (1..$max) {
+    my ($pw) = (getpwent());
+    last unless defined $pw;
+    push @pw2, $pw;
+}
+endpwent();
+
+print "not " unless "@pw1" eq "@pw2";
+print "ok ", $tst++, "\n";
+
 close(PW);
index 60e5b7b..ec247f8 100755 (executable)
@@ -6,14 +6,14 @@ BEGIN {
     require Config; import Config;
 }
 
-print "1..15\n";
+print "1..17\n";
 
 if ($Config{ebcdic} eq 'define') {
     $_=join "", map chr($_), 129..233;
 
     # 105 characters - 52 letters = 53 backslashes
     # 105 characters + 53 backslashes = 158 characters
-    $_=quotemeta $_;
+    $_= quotemeta $_;
     if ( length == 158 ){print "ok 1\n"} else {print "not ok 1\n"}
     # 104 non-backslash characters
     if (tr/\\//cd == 104){print "ok 2\n"} else {print "not ok 2\n"}
@@ -22,7 +22,7 @@ if ($Config{ebcdic} eq 'define') {
 
     # 96 characters - 52 letters - 10 digits - 1 underscore = 33 backslashes
     # 96 characters + 33 backslashes = 129 characters
-    $_=quotemeta $_;
+    $_= quotemeta $_;
     if ( length == 129 ){print "ok 1\n"} else {print "not ok 1\n"}
     # 95 non-backslash characters
     if (tr/\\//cd == 95){print "ok 2\n"} else {print "not ok 2\n"}
@@ -42,3 +42,6 @@ print "\Q\u\LpE.X.R\EL\E." eq "Pe\\.x\\.rL." ? "ok 12\n" : "not ok 12 \n";
 print "\Q\l\UPe*x*r\El\E*" eq "pE\\*X\\*Rl*" ? "ok 13\n" : "not ok 13 \n";
 print "\U\lPerl\E\E\E\E" eq "pERL" ? "ok 14\n" : "not ok 14 \n";
 print "\l\UPerl\E\E\E\E" eq "pERL" ? "ok 15\n" : "not ok 15 \n";
+
+print length(quotemeta("\x{263a}")) == 1 ? "ok 16\n" : "not ok 16\n";
+print quotemeta("\x{263a}") eq "\x{263a}" ? "ok 17\n" : "not ok 17\n";
index d506e6e..189077c 100644 (file)
@@ -750,3 +750,4 @@ tt+$        xxxtt   y       -       -
 ^([a-z]:)      C:/     n       -       -
 '^\S\s+aa$'m   \nx aa  y       -       -
 (^|a)b ab      y       -       -
+(?i)           y       -       -
index 6594940..dc823ed 100755 (executable)
@@ -4,7 +4,7 @@
 # test recursive functions.
 #
 
-print "1..23\n";
+print "1..25\n";
 
 sub gcd ($$) {
     return gcd($_[0] - $_[1], $_[1]) if ($_[0] > $_[1]);
@@ -84,3 +84,33 @@ for $x (0..3) {
 print 'not ' unless (($t = takeuchi($x, $y, $z)) == $z + 1);
 print "ok ", $i++, "\n";
 print "# takeuchi($x, $y, $z) = $t\n";
+
+{
+    sub get_first1 {
+       get_list1(@_)->[0];
+    }
+
+    sub get_list1 {
+       return [24] unless $_[0];
+       my $u = get_first1(0);
+       [$u];
+    }
+    my $x = get_first1(1);
+    print "ok $x\n";
+}
+
+{
+    sub get_first2 {
+       return get_list2(@_)->[0];
+    }
+
+    sub get_list2 {
+       return [25] unless $_[0];
+       my $u = get_first2(0);
+       return [$u];
+    }
+    my $x = get_first2(1);
+    print "ok $x\n";
+}
+
+$i = 26;
index 6e3d2ca..8161701 100755 (executable)
@@ -4,13 +4,26 @@ BEGIN {
     chdir 't' if -d 't';
     unshift @INC, '../lib';
 }
-print "1..49\n";
+use warnings;
+print "1..57\n";
 
 # XXX known to leak scalars
-$ENV{PERL_DESTRUCT_LEVEL} = 0 unless $ENV{PERL_DESTRUCT_LEVEL} > 3;
+{
+  no warnings 'uninitialized';
+  $ENV{PERL_DESTRUCT_LEVEL} = 0 unless $ENV{PERL_DESTRUCT_LEVEL} > 3;
+}
+
+# these shouldn't hang
+{
+    no warnings;
+    sort { for ($_ = 0;; $_++) {} } @a;
+    sort { while(1) {}            } @a;
+    sort { while(1) { last; }     } @a;
+    sort { while(0) { last; }     } @a;
+}
 
-sub backwards { $a lt $b ? 1 : $a gt $b ? -1 : 0 }
-sub backwards_stacked($$) { my($a,$b) = @_; $a lt $b ? 1 : $a gt $b ? -1 : 0 }
+sub Backwards { $a lt $b ? 1 : $a gt $b ? -1 : 0 }
+sub Backwards_stacked($$) { my($a,$b) = @_; $a lt $b ? 1 : $a gt $b ? -1 : 0 }
 
 my $upperfirst = 'A' lt 'a';
 
@@ -36,12 +49,12 @@ $expected = $upperfirst ? 'AbelCaincatdogx' : 'catdogxAbelCain';
 print "# 1: x = '$x', expected = '$expected'\n";
 print ($x eq $expected ? "ok 1\n" : "not ok 1\n");
 
-$x = join('', sort( backwards @harry));
+$x = join('', sort( Backwards @harry));
 $expected = $upperfirst ? 'xdogcatCainAbel' : 'CainAbelxdogcat';
 print "# 2: x = '$x', expected = '$expected'\n";
 print ($x eq $expected ? "ok 2\n" : "not ok 2\n");
 
-$x = join('', sort( backwards_stacked @harry));
+$x = join('', sort( Backwards_stacked @harry));
 $expected = $upperfirst ? 'xdogcatCainAbel' : 'CainAbelxdogcat';
 print "# 3: x = '$x', expected = '$expected'\n";
 print ($x eq $expected ? "ok 3\n" : "not ok 3\n");
@@ -77,13 +90,13 @@ print ("@b" eq "4 3 2 1" ? "ok 9\n" : "not ok 9 (@b)\n");
 @b = sort {$a <=> $b;} @a;
 print ("@b" eq "2 3 4 10" ? "ok 10\n" : "not ok 10 (@b)\n");
 
-$sub = 'backwards';
+$sub = 'Backwards';
 $x = join('', sort $sub @harry);
 $expected = $upperfirst ? 'xdogcatCainAbel' : 'CainAbelxdogcat';
 print "# 11: x = $x, expected = '$expected'\n";
 print ($x eq $expected ? "ok 11\n" : "not ok 11\n");
 
-$sub = 'backwards_stacked';
+$sub = 'Backwards_stacked';
 $x = join('', sort $sub @harry);
 $expected = $upperfirst ? 'xdogcatCainAbel' : 'CainAbelxdogcat';
 print "# 12: x = $x, expected = '$expected'\n";
@@ -107,33 +120,38 @@ print "# x = '@b'\n";
 print ("@b" eq '1 2 3 4' ? "ok 16\n" : "not ok 16\n");
 print "# x = '@b'\n";
 
-$^W = 0;
 # redefining sort sub inside the sort sub should fail
 sub twoface { *twoface = sub { $a <=> $b }; &twoface }
 eval { @b = sort twoface 4,1,3,2 };
 print ($@ =~ /redefine active sort/ ? "ok 17\n" : "not ok 17\n");
 
 # redefining sort subs outside the sort should not fail
-eval { *twoface = sub { &backwards } };
+eval { no warnings 'redefine'; *twoface = sub { &Backwards } };
 print $@ ? "not ok 18\n" : "ok 18\n";
 
 eval { @b = sort twoface 4,1,3,2 };
 print ("@b" eq '4 3 2 1' ? "ok 19\n" : "not ok 19 |@b|\n");
 
-*twoface = sub { *twoface = *backwards; $a <=> $b };
+{
+  no warnings 'redefine';
+  *twoface = sub { *twoface = *Backwards; $a <=> $b };
+}
 eval { @b = sort twoface 4,1 };
 print ($@ =~ /redefine active sort/ ? "ok 20\n" : "not ok 20\n");
 
-*twoface = sub {
+{
+  no warnings 'redefine';
+  *twoface = sub {
                  eval 'sub twoface { $a <=> $b }';
                 die($@ =~ /redefine active sort/ ? "ok 21\n" : "not ok 21\n");
                 $a <=> $b;
               };
+}
 eval { @b = sort twoface 4,1 };
 print $@ ? "$@" : "not ok 21\n";
 
 eval <<'CODE';
-    my @result = sort main'backwards 'one', 'two';
+    my @result = sort main'Backwards 'one', 'two';
 CODE
 print $@ ? "not ok 22\n# $@" : "ok 22\n";
 
@@ -144,10 +162,10 @@ CODE
 print $@ ? "not ok 23\n# $@" : "ok 23\n";
 
 {
-  my $sortsub = \&backwards;
-  my $sortglob = *backwards;
-  my $sortglobr = \*backwards;
-  my $sortname = 'backwards';
+  my $sortsub = \&Backwards;
+  my $sortglob = *Backwards;
+  my $sortglobr = \*Backwards;
+  my $sortname = 'Backwards';
   @b = sort $sortsub 4,1,3,2;
   print ("@b" eq '4 3 2 1' ? "ok 24\n" : "not ok 24 |@b|\n");
   @b = sort $sortglob 4,1,3,2;
@@ -159,10 +177,10 @@ print $@ ? "not ok 23\n# $@" : "ok 23\n";
 }
 
 {
-  my $sortsub = \&backwards_stacked;
-  my $sortglob = *backwards_stacked;
-  my $sortglobr = \*backwards_stacked;
-  my $sortname = 'backwards_stacked';
+  my $sortsub = \&Backwards_stacked;
+  my $sortglob = *Backwards_stacked;
+  my $sortglobr = \*Backwards_stacked;
+  my $sortname = 'Backwards_stacked';
   @b = sort $sortsub 4,1,3,2;
   print ("@b" eq '4 3 2 1' ? "ok 28\n" : "not ok 28 |@b|\n");
   @b = sort $sortglob 4,1,3,2;
@@ -174,10 +192,10 @@ print $@ ? "not ok 23\n# $@" : "ok 23\n";
 }
 
 {
-  local $sortsub = \&backwards;
-  local $sortglob = *backwards;
-  local $sortglobr = \*backwards;
-  local $sortname = 'backwards';
+  local $sortsub = \&Backwards;
+  local $sortglob = *Backwards;
+  local $sortglobr = \*Backwards;
+  local $sortname = 'Backwards';
   @b = sort $sortsub 4,1,3,2;
   print ("@b" eq '4 3 2 1' ? "ok 32\n" : "not ok 32 |@b|\n");
   @b = sort $sortglob 4,1,3,2;
@@ -189,10 +207,10 @@ print $@ ? "not ok 23\n# $@" : "ok 23\n";
 }
 
 {
-  local $sortsub = \&backwards_stacked;
-  local $sortglob = *backwards_stacked;
-  local $sortglobr = \*backwards_stacked;
-  local $sortname = 'backwards_stacked';
+  local $sortsub = \&Backwards_stacked;
+  local $sortglob = *Backwards_stacked;
+  local $sortglobr = \*Backwards_stacked;
+  local $sortname = 'Backwards_stacked';
   @b = sort $sortsub 4,1,3,2;
   print ("@b" eq '4 3 2 1' ? "ok 36\n" : "not ok 36 |@b|\n");
   @b = sort $sortglob 4,1,3,2;
@@ -249,6 +267,57 @@ package Foo;
 print ("@b" eq '1996 255 90 19 5' ? "ok 48\n" : "not ok 48\n");
 print "# x = '@b'\n";
 
-@b = sort main::backwards_stacked @a;
+@b = sort main::Backwards_stacked @a;
 print ("@b" eq '90 5 255 1996 19' ? "ok 49\n" : "not ok 49\n");
 print "# x = '@b'\n";
+
+# check if context for sort arguments is handled right
+
+$test = 49;
+sub test_if_list {
+    my $gimme = wantarray;
+    print "not " unless $gimme;
+    ++$test;
+    print "ok $test\n";
+}
+my $m = sub { $a <=> $b };
+
+sub cxt_one { sort $m test_if_list() }
+cxt_one();
+sub cxt_two { sort { $a <=> $b } test_if_list() }
+cxt_two();
+sub cxt_three { sort &test_if_list() }
+cxt_three();
+
+sub test_if_scalar {
+    my $gimme = wantarray;
+    print "not " if $gimme or !defined($gimme);
+    ++$test;
+    print "ok $test\n";
+}
+
+$m = \&test_if_scalar;
+sub cxt_four { sort $m 1,2 }
+@x = cxt_four();
+sub cxt_five { sort { test_if_scalar($a,$b); } 1,2 }
+@x = cxt_five();
+sub cxt_six { sort test_if_scalar 1,2 }
+@x = cxt_six();
+
+# test against a reentrancy bug
+{
+    package Bar;
+    sub compare { $a cmp $b }
+    sub reenter { my @force = sort compare qw/a b/ }
+}
+{
+    my($def, $init) = (0, 0);
+    @b = sort {
+       $def = 1 if defined $Bar::a;
+       Bar::reenter() unless $init++;
+       $a <=> $b
+    } qw/4 3 1 2/;
+    print ("@b" eq '1 2 3 4' ? "ok 56\n" : "not ok 56\n");
+    print "# x = '@b'\n";
+    print !$def ? "ok 57\n" : "not ok 57\n";
+}
index 70e55cb..4d54d2c 100755 (executable)
@@ -2,9 +2,14 @@
 
 # $RCSfile: sprintf.t,v $$Revision: 4.1 $$Date: 92/08/07 18:28:27 $
 
+BEGIN {
+    chdir 't' if -d 't';
+    unshift @INC, '../lib';
+}   
+use warnings;
+
 print "1..4\n";
 
-$^W = 1;
 $SIG{__WARN__} = sub {
     if ($_[0] =~ /^Invalid conversion/) {
        $w++;
index 5764e67..f2a0c6c 100755 (executable)
@@ -1,10 +1,12 @@
+#!./perl
 
-print "1..125\n";
+print "1..135\n";
 
 #P = start of string  Q = start of substr  R = end of substr  S = end of string
 
 BEGIN {
-    unshift @INC, '../lib' if -d '../lib' ;
+    chdir 't' if -d 't';
+    unshift @INC, '../lib';
 }
 use warnings ;
 
@@ -268,3 +270,30 @@ ok 123, $@ && $@ =~ /Can't modify substr/ && $a eq "foo";
 $a = "abcdefgh";
 ok 124, sub { shift }->(substr($a, 0, 4, "xxxx")) eq 'abcd';
 ok 125, $a eq 'xxxxefgh';
+
+{
+    my $y = 10;
+    $y = "2" . $y;
+    ok 126, $y+0 == 210;
+}
+
+# utf8 sanity
+{
+    my $x = substr("a\x{263a}b",0);
+    ok 127, length($x) == 3;
+    $x = substr($x,1,1);
+    ok 128, $x eq "\x{263a}";
+    $x = $x x 2;
+    ok 129, length($x) == 2;
+    substr($x,0,1) = "abcd";
+    ok 130, $x eq "abcd\x{263a}";
+    ok 131, length($x) == 5;
+    $x = reverse $x;
+    ok 132, length($x) == 5;
+    ok 133, $x eq "\x{263a}dcba";
+
+    my $z = 10;
+    $z = "21\x{263a}" . $z;
+    ok 134, length($z) == 5;
+    ok 135, $z eq "21\x{263a}10";
+}
index 22e60e3..e43f850 100755 (executable)
@@ -2,7 +2,7 @@
 
 print "1..39\n";
 
-chdir('op') || die "sysio.t: cannot look for myself: $!";
+chdir('op') || chdir('t/op') || die "sysio.t: cannot look for myself: $!";
 
 open(I, 'sysio.t') || die "sysio.t: cannot find myself: $!";
 
index 9db2d0c..6548b46 100755 (executable)
@@ -24,6 +24,10 @@ BEGIN {
       $ENV{PATH} = $ENV{PATH};
       $ENV{TERM} = $ENV{TERM} ne ''? $ENV{TERM} : 'dummy';
   }
+  if ($Config{d_shm} || $Config{d_msg}) {
+     require IPC::SysV;
+     IPC::SysV->import(qw(IPC_PRIVATE IPC_RMID IPC_CREAT S_IRWXU));
+  }
 }
 
 my $Is_VMS = $^O eq 'VMS';
@@ -94,7 +98,7 @@ print PROG 'print "@ARGV\n"', "\n";
 close PROG;
 my $echo = "$Invoke_Perl $ECHO";
 
-print "1..149\n";
+print "1..151\n";
 
 # First, let's make sure that Perl is checking the dangerous
 # environment variables. Maybe they aren't set yet, so we'll
@@ -547,14 +551,14 @@ else {
        my @getpwent = getpwent();
        die "getpwent: $!\n" unless (@getpwent);
        test 142,(    not tainted $getpwent[0]
-                 and not tainted $getpwent[1]
+                 and     tainted $getpwent[1]
                  and not tainted $getpwent[2]
                  and not tainted $getpwent[3]
                  and not tainted $getpwent[4]
                  and not tainted $getpwent[5]
-                 and     tainted $getpwent[6] # gecos
+                 and     tainted $getpwent[6]          # ge?cos
                  and not tainted $getpwent[7]
-                 and not tainted $getpwent[8]);
+                 and     tainted $getpwent[8]);        # shell
        endpwent();
     } else {
        for (142) { print "ok $_ # Skipped: getpwent() is not available\n" }
@@ -605,3 +609,74 @@ else {
     $why =~ s/e/'-'.$$/ge;
     test 149,     tainted $why;
 }
+
+# test shmread
+{
+    if ($Config{d_shm}) {
+       no strict 'subs';
+       my $sent = "foobar";
+       my $rcvd;
+       my $size = 2000;
+       my $id = shmget(IPC_PRIVATE, $size, S_IRWXU) ||
+           warn "# shmget failed: $!\n";
+       if (defined $id) {
+           if (shmwrite($id, $sent, 0, 60)) {
+               if (shmread($id, $rcvd, 0, 60)) {
+                   substr($rcvd, index($rcvd, "\0")) = '';
+               } else {
+                   warn "# shmread failed: $!\n";
+               }
+           } else {
+               warn "# shmwrite failed: $!\n";
+           }
+           shmctl($id, IPC_RMID, 0) || warn "# shmctl failed: $!\n";
+       } else {
+           warn "# shmget failed: $!\n";
+       }
+
+       if ($rcvd eq $sent) {
+           test 150, tainted $rcvd;
+       } else {
+           print "ok 150 # Skipped: SysV shared memory operation failed\n";
+       }
+    } else {
+       print "ok 150 # Skipped: SysV shared memory is not available\n";
+    }
+}
+
+# test msgrcv
+{
+    if ($Config{d_msg}) {
+       no strict 'subs';
+       my $id = msgget(IPC_PRIVATE, IPC_CREAT | S_IRWXU);
+
+       my $sent      = "message";
+       my $type_sent = 1234;
+       my $rcvd;
+       my $type_rcvd;
+
+       if (defined $id) {
+           if (msgsnd($id, pack("l! a*", $type_sent, $sent), 0)) {
+               if (msgrcv($id, $rcvd, 60, 0, 0)) {
+                   ($type_rcvd, $rcvd) = unpack("l! a*", $rcvd);
+               } else {
+                   warn "# msgrcv failed\n";
+               }
+           } else {
+               warn "# msgsnd failed\n";
+           }
+           msgctl($id, IPC_RMID, 0) || warn "# msgctl failed: $!\n";
+       } else {
+           warn "# msgget failed\n";
+       }
+
+       if ($rcvd eq $sent && $type_sent == $type_rcvd) {
+           test 151, tainted $rcvd;
+       } else {
+           print "ok 151 # Skipped: SysV message queue operation failed\n";
+       }
+    } else {
+       print "ok 151 # Skipped: SysV message queues are not available\n";
+    }
+}
+
index 105b1d6..9543420 100755 (executable)
@@ -78,7 +78,6 @@ EXPECT
 
 # strict behaviour, without any extra references
 use warnings 'untie';
-#local $^W = 1 ;
 use Tie::Hash ;
 tie %h, Tie::StdHash;
 untie %h;
@@ -87,7 +86,6 @@ EXPECT
 
 # strict behaviour, with 1 extra references generating an error
 use warnings 'untie';
-#local $^W = 1 ;
 use Tie::Hash ;
 $a = tie %h, Tie::StdHash;
 untie %h;
@@ -97,7 +95,6 @@ untie attempted while 1 inner references still exist
 
 # strict behaviour, with 1 extra references via tied generating an error
 use warnings 'untie';
-#local $^W = 1 ;
 use Tie::Hash ;
 tie %h, Tie::StdHash;
 $a = tied %h;
@@ -108,7 +105,6 @@ untie attempted while 1 inner references still exist
 
 # strict behaviour, with 1 extra references which are destroyed
 use warnings 'untie';
-#local $^W = 1 ;
 use Tie::Hash ;
 $a = tie %h, Tie::StdHash;
 $a = 0 ;
@@ -118,7 +114,6 @@ EXPECT
 
 # strict behaviour, with extra 1 references via tied which are destroyed
 use warnings 'untie';
-#local $^W = 1 ;
 use Tie::Hash ;
 tie %h, Tie::StdHash;
 $a = tied %h;
@@ -129,7 +124,6 @@ EXPECT
 
 # strict error behaviour, with 2 extra references 
 use warnings 'untie';
-#local $^W = 1 ;
 use Tie::Hash ;
 $a = tie %h, Tie::StdHash;
 $b = tied %h ;
@@ -140,13 +134,11 @@ untie attempted while 2 inner references still exist
 
 # strict behaviour, check scope of strictness.
 no warnings 'untie';
-#local $^W = 0 ;
 use Tie::Hash ;
 $A = tie %H, Tie::StdHash;
 $C = $B = tied %H ;
 {
     use warnings 'untie';
-    #local $^W = 1 ;
     use Tie::Hash ;
     tie %h, Tie::StdHash;
     untie %h;
index 7de8199..a0a74ec 100755 (executable)
@@ -6,9 +6,10 @@
 BEGIN {
     chdir 't' if -d 't';
     unshift @INC, '../lib' if -d '../lib';
+    $| = 1;
 }
 
-print "1..72\n";
+print "1..80\n";
 
 $a = {};
 bless $a, "Bob";
@@ -28,6 +29,19 @@ sub new { bless {} }
 
 $Alice::VERSION = 2.718;
 
+{
+    package Cedric;
+    our @ISA;
+    use base qw(Human);
+}
+
+{
+    package Programmer;
+    our $VERSION = 1.667;
+
+    sub write_perl { 1 }
+}
+
 package main;
 
 my $i = 2;
@@ -45,12 +59,34 @@ test $a->isa("Human");
 
 test ! $a->isa("Male");
 
+test ! $a->isa('Programmer');
+
 test $a->can("drink");
 
 test $a->can("eat");
 
 test ! $a->can("sleep");
 
+test (!Cedric->isa('Programmer'));
+
+test (Cedric->isa('Human'));
+
+push(@Cedric::ISA,'Programmer');
+
+test (Cedric->isa('Programmer'));
+
+{
+    package Alice;
+    base::->import('Programmer');
+}
+
+test $a->isa('Programmer');
+test $a->isa("Female");
+
+@Cedric::ISA = qw(Bob);
+
+test (!Cedric->isa('Programmer'));
+
 my $b = 'abc';
 my @refs = qw(SCALAR SCALAR     LVALUE      GLOB ARRAY HASH CODE);
 my @vals = (  \$b,   \3.14, \substr($b,1,1), \*b,  [],  {}, sub {} );
@@ -88,7 +124,7 @@ eval "use UNIVERSAL";
 
 test $a->isa("UNIVERSAL");
 
-my $sub2 = join ' ', sort grep { defined &{"UNIVERSAL::$_"} } keys %UNIVERSAL::; 
+my $sub2 = join ' ', sort grep { defined &{"UNIVERSAL::$_"} } keys %UNIVERSAL::;
 # XXX import being here is really a bug
 if ('a' lt 'A') {
     test $sub2 eq "can import isa VERSION";
@@ -102,3 +138,5 @@ test $a->can("sleep");
 test ! UNIVERSAL::can($b, "can");
 
 test ! $a->can("export_tags"); # a method in Exporter
+
+test ! UNIVERSAL::isa("\xff\xff\xff\0", 'HASH');
index b08849f..5346f39 100755 (executable)
@@ -5,7 +5,7 @@ BEGIN {
     unshift @INC, "../lib";
 }
 
-print "1..22\n";
+print "1..23\n";
 
 my $test = 1;
 
@@ -72,6 +72,11 @@ print "not " unless sprintf("%*vb", "##", v1.22.333.4444)
     eq '1##10110##101001101##1000101011100';
 print "ok $test\n";  ++$test;
 
+print "not " unless sprintf("%vd", join("", map { chr }
+                                           unpack "U*", v2001.2002.2003))
+                   eq '2001.2002.2003';
+print "ok $test\n";  ++$test;
+
 {
     use bytes;
     print "not " unless sprintf("%vd", "Perl") eq '80.101.114.108';
index 22bbaf8..2ff8aa4 100644 (file)
@@ -44,13 +44,12 @@ sub catfile(@) { File::Spec->catfile(@_); }
 my $INSTDIR = abs_path(dirname $0);
 $INSTDIR = VMS::Filespec::unixpath($INSTDIR) if $^O eq 'VMS';
 $INSTDIR =~ s#/$## if $^O eq 'VMS';
-$INSTDIR = (dirname $INSTDIR) if (basename($INSTDIR) eq 'xtra');
 $INSTDIR = (dirname $INSTDIR) if (basename($INSTDIR) eq 'pod');
 $INSTDIR = (dirname $INSTDIR) if (basename($INSTDIR) eq 't');
 my @PODINCDIRS = ( catfile($INSTDIR, 'lib', 'Pod'),
+                   catfile($INSTDIR, 'scripts'),
                    catfile($INSTDIR, 'pod'),
-                   catfile($INSTDIR, 't', 'pod'),
-                   catfile($INSTDIR, 't', 'pod', 'xtra')
+                   catfile($INSTDIR, 't', 'pod')
                  );
 
 ## Find the path to the file to =include
@@ -100,6 +99,10 @@ sub command {
     print $out_fh "###### end =include $incbase #####\n"    if ($incdebug);
 }
 
+sub begin_input {
+   $_[0]->{_INFILE} = VMS::Filespec::unixify($_[0]->{_INFILE}) if $^O eq 'VMS';
+}
+
 sub podinc2plaintext( $ $ ) {
     my ($infile, $outfile) = @_;
     local $_;
index 640226b..8aa10b9 100644 (file)
@@ -10,6 +10,7 @@ BEGIN {
    import TestCompare;
    my $PARENTDIR = dirname $THISDIR;
    push @INC, map { File::Spec->catfile($_, 'lib') } ($PARENTDIR, $THISDIR);
+   require VMS::Filespec if $^O eq 'VMS';
 }
 
 use Pod::Checker;
@@ -30,8 +31,15 @@ sub stripname( $ ) {
 }
 
 sub msgcmp( $ $ ) {
+   ## filter out platform-dependent aspects of error messages
    my ($line1, $line2) = @_;
-   return $line1 ne $line2;
+   for ($line1, $line2) {
+      ## remove filenames from error messages to avoid any
+      ## filepath naming differences between OS platforms
+      s/(at line \S+ in file) .*\W(\w+\.[tT])\s*$/$1 \L$2\E/;
+      s/.*\W(\w+\.[tT]) (has \d+ pod syntax error)/\L$1\E $2/;
+   }
+   return ($line1 ne $line2);
 }
 
 sub testpodcheck( @ ) {
@@ -51,6 +59,11 @@ sub testpodcheck( @ ) {
 
    print "# Running podchecker for '$testname'...\n";
    ## Compare the output against the expected result
+   if ($^O eq 'VMS') {
+      for ($infile, $outfile, $cmpfile) {
+         $_ = VMS::Filespec::unixify($_)  unless  ref;
+      }
+   }
    podchecker($infile, $outfile);
    if ( testcmp({'-cmplines' => \&msgcmp}, $outfile, $cmpfile) ) {
        $different = "$outfile is different from $cmpfile";
index 5904a4f..6438332 100755 (executable)
@@ -5,7 +5,7 @@ BEGIN {
     unshift @INC, '../lib' if -d '../lib';
 }
 
-BEGIN {$^W |= 1}               # Insist upon warnings
+use warnings;
 use vars qw{ @warnings };
 BEGIN {                                # ...and save 'em for later
     $SIG{'__WARN__'} = sub { push @warnings, @_ }
@@ -14,7 +14,7 @@ END { print @warnings }
 
 ######################### We start with some black magic to print on failure.
 
-BEGIN { $| = 1; print "1..58\n"; }
+BEGIN { $| = 1; print "1..73\n"; }
 END {print "not ok 1\n" unless $loaded;}
 use constant 1.01;
 $loaded = 1;
@@ -96,11 +96,8 @@ test 23, length(MESS) == 8;
 
 use constant TRAILING  => '12 cats';
 {
-    my $save_warn;
-    local $^W;
-    BEGIN { $save_warn = $^W; $^W = 0 }
+    no warnings 'numeric';
     test 24, TRAILING == 12;
-    BEGIN { $^W = $save_warn }
 }
 test 25, TRAILING eq '12 cats';
 
@@ -138,7 +135,7 @@ test 37, @warnings &&
     shift @warnings;
 
 test 38, @warnings == 0, "unexpected warning";
-test 39, $^W & 1, "Who disabled the warnings?";
+test 39, 1;
 
 use constant CSCALAR   => \"ok 40\n";
 use constant CHASH     => { foo => "ok 41\n" };
@@ -194,3 +191,40 @@ test 52, !$constant::declared{'main::PIE'};
 
 test 57, declared 'Other::IN_OTHER_PACK';
 test 58, $constant::declared{'Other::IN_OTHER_PACK'};
+
+@warnings = ();
+eval q{
+    no warnings;
+    use warnings 'constant';
+    use constant 'BEGIN' => 1 ;
+    use constant 'INIT' => 1 ;
+    use constant 'CHECK' => 1 ;
+    use constant 'END' => 1 ;
+    use constant 'DESTROY' => 1 ;
+    use constant 'AUTOLOAD' => 1 ;
+    use constant 'STDIN' => 1 ;
+    use constant 'STDOUT' => 1 ;
+    use constant 'STDERR' => 1 ;
+    use constant 'ARGV' => 1 ;
+    use constant 'ARGVOUT' => 1 ;
+    use constant 'ENV' => 1 ;
+    use constant 'INC' => 1 ;
+    use constant 'SIG' => 1 ;
+};
+
+test 59, @warnings == 14 ;
+test 60, (shift @warnings) =~ /^Constant name 'BEGIN' is a Perl keyword at/;
+test 61, (shift @warnings) =~ /^Constant name 'INIT' is a Perl keyword at/;
+test 62, (shift @warnings) =~ /^Constant name 'CHECK' is a Perl keyword at/;
+test 63, (shift @warnings) =~ /^Constant name 'END' is a Perl keyword at/;
+test 64, (shift @warnings) =~ /^Constant name 'DESTROY' is a Perl keyword at/;
+test 65, (shift @warnings) =~ /^Constant name 'AUTOLOAD' is a Perl keyword at/;
+test 66, (shift @warnings) =~ /^Constant name 'STDIN' is forced into package main:: a/;
+test 67, (shift @warnings) =~ /^Constant name 'STDOUT' is forced into package main:: at/;
+test 68, (shift @warnings) =~ /^Constant name 'STDERR' is forced into package main:: at/;
+test 69, (shift @warnings) =~ /^Constant name 'ARGV' is forced into package main:: at/;
+test 70, (shift @warnings) =~ /^Constant name 'ARGVOUT' is forced into package main:: at/;
+test 71, (shift @warnings) =~ /^Constant name 'ENV' is forced into package main:: at/;
+test 72, (shift @warnings) =~ /^Constant name 'INC' is forced into package main:: at/;
+test 73, (shift @warnings) =~ /^Constant name 'SIG' is forced into package main:: at/;
+@warnings = ();
index 8c9a152..15cd6b5 100755 (executable)
@@ -11,11 +11,12 @@ BEGIN {
 # Change 1..1 below to 1..last_test_to_print .
 # (It may become useful if the test is moved to ./t subdirectory.)
 use strict;
+use warnings;
 
 use vars qw($Test_Num $Total_tests);
 
 my $loaded;
-BEGIN { $| = 1; $^W = 1; $Test_Num = 1 }
+BEGIN { $| = 1; $Test_Num = 1 }
 END {print "not ok $Test_Num\n" unless $loaded;}
 print "1..$Total_tests\n";
 BEGIN { require diagnostics; } # Don't want diagnostics' noise yet.
index 6265cce..414ceff 100755 (executable)
@@ -52,7 +52,7 @@ sub ok {
 # even the default locale will taint under 'use locale'.
 
 sub is_tainted { # hello, camel two.
-    local $^W; # no warnings 'undef'
+    no warnings 'uninitialized' ;
     my $dummy;
     not eval { $dummy = join("", @_), kill 0; 1 }
 }
@@ -582,9 +582,9 @@ foreach $Locale (@Locale) {
     tryneoalpha($Locale, 104, $c eq $d); 
 
     {
+       use warnings;
        my $w = 0;
        local $SIG{__WARN__} = sub { $w++ };
-       local $^W = 1;
 
        # the == (among other ops) used to warn for locales
        # that had something else than "." as the radix character
index 954d1e5..2ccfef7 100644 (file)
@@ -55,7 +55,7 @@ Execution of - aborted due to compilation errors.
 
 # strict vars - error
 use strict 'vars' ;
-$fred ;
+<$fred> ;
 EXPECT
 Global symbol "$fred" requires explicit package name at - line 4.
 Execution of - aborted due to compilation errors.
@@ -141,6 +141,40 @@ Compilation failed in require at - line 2.
 BEGIN failed--compilation aborted at - line 2.
 ########
 
+--FILE-- abc.pm
+package Burp;
+use strict;
+$a = 1;$f = 1;$k = 1; # just to get beyond the limit...
+$b = 1;$g = 1;$l = 1;
+$c = 1;$h = 1;$m = 1;
+$d = 1;$i = 1;$n = 1;
+$e = 1;$j = 1;$o = 1;
+$p = 0b12;
+--FILE-- 
+# known scalar leak
+BEGIN { $ENV{PERL_DESTRUCT_LEVEL} = 0 unless $ENV{PERL_DESTRUCT_LEVEL} > 3; }
+use abc;
+EXPECT
+Global symbol "$f" requires explicit package name at abc.pm line 3.
+Global symbol "$k" requires explicit package name at abc.pm line 3.
+Global symbol "$g" requires explicit package name at abc.pm line 4.
+Global symbol "$l" requires explicit package name at abc.pm line 4.
+Global symbol "$c" requires explicit package name at abc.pm line 5.
+Global symbol "$h" requires explicit package name at abc.pm line 5.
+Global symbol "$m" requires explicit package name at abc.pm line 5.
+Global symbol "$d" requires explicit package name at abc.pm line 6.
+Global symbol "$i" requires explicit package name at abc.pm line 6.
+Global symbol "$n" requires explicit package name at abc.pm line 6.
+Global symbol "$e" requires explicit package name at abc.pm line 7.
+Global symbol "$j" requires explicit package name at abc.pm line 7.
+Global symbol "$o" requires explicit package name at abc.pm line 7.
+Global symbol "$p" requires explicit package name at abc.pm line 8.
+Illegal binary digit '2' at abc.pm line 8, at end of line
+abc.pm has too many errors.
+Compilation failed in require at - line 3.
+BEGIN failed--compilation aborted at - line 3.
+########
+
 # Check scope of pragma with eval
 no strict ;
 eval {
@@ -361,5 +395,5 @@ our $foo;
 }
 EXPECT
 "our" variable $foo redeclared at - line 7.
-(Did you mean "local" instead of "our"?)
+       (Did you mean "local" instead of "our"?)
 Name "Foo::foo" used only once: possible typo at - line 9.
index 2ae8d9c..8db3d1a 100755 (executable)
@@ -10,7 +10,7 @@ BEGIN {
     }
 }
 
-print "1..12\n";
+print "1..65\n";
 
 my $test = 1;
 
@@ -20,67 +20,272 @@ sub ok {
     print "ok $test\n";
 }
 
+sub ok_bytes {
+    use bytes;
+    my ($got,$expect) = @_;
+    print "# expected [$expect], got [$got]\nnot " if $got ne $expect;
+    print "ok $test\n";
+}
+
+
 {
     use utf8;
     $_ = ">\x{263A}<"; 
     s/([\x{80}-\x{10ffff}])/"&#".ord($1).";"/eg; 
     ok $_, '>&#9786;<';
-    $test++;
+    $test++;                           # 1
 
     $_ = ">\x{263A}<"; 
     my $rx = "\x{80}-\x{10ffff}";
     s/([$rx])/"&#".ord($1).";"/eg; 
     ok $_, '>&#9786;<';
-    $test++;
+    $test++;                           # 2
 
     $_ = ">\x{263A}<"; 
     my $rx = "\\x{80}-\\x{10ffff}";
     s/([$rx])/"&#".ord($1).";"/eg; 
     ok $_, '>&#9786;<';
-    $test++;
+    $test++;                           # 3
 
     $_ = "alpha,numeric"; 
     m/([[:alpha:]]+)/; 
     ok $1, 'alpha';
-    $test++;
+    $test++;                           # 4
 
     $_ = "alphaNUMERICstring";
     m/([[:^lower:]]+)/; 
     ok $1, 'NUMERIC';
-    $test++;
+    $test++;                           # 5
 
     $_ = "alphaNUMERICstring";
     m/(\p{Ll}+)/; 
     ok $1, 'alpha';
-    $test++;
+    $test++;                           # 6
 
     $_ = "alphaNUMERICstring"; 
     m/(\p{Lu}+)/; 
     ok $1, 'NUMERIC';
-    $test++;
+    $test++;                           # 7
 
     $_ = "alpha,numeric"; 
     m/([\p{IsAlpha}]+)/; 
     ok $1, 'alpha';
-    $test++;
+    $test++;                           # 8
 
     $_ = "alphaNUMERICstring";
     m/([^\p{IsLower}]+)/; 
     ok $1, 'NUMERIC';
-    $test++;
+    $test++;                           # 9
 
     $_ = "alpha123numeric456"; 
     m/([\p{IsDigit}]+)/; 
     ok $1, '123';
-    $test++;
+    $test++;                           # 10
 
     $_ = "alpha123numeric456"; 
     m/([^\p{IsDigit}]+)/; 
     ok $1, 'alpha';
-    $test++;
+    $test++;                           # 11
 
     $_ = ",123alpha,456numeric"; 
     m/([\p{IsAlnum}]+)/; 
     ok $1, '123alpha';
-    $test++;
+    $test++;                           # 12
+}
+{
+    use utf8;
+
+    $_ = "\x{263A}>\x{263A}\x{263A}"; 
+
+    ok length, 4;
+    $test++;                           # 13
+
+    ok length((m/>(.)/)[0]), 1;
+    $test++;                           # 14
+
+    ok length($&), 2;
+    $test++;                           # 15
+
+    ok length($'), 1;
+    $test++;                           # 16
+
+    ok length($`), 1;
+    $test++;                           # 17
+
+    ok length($1), 1;
+    $test++;                           # 18
+
+    ok length($tmp=$&), 2;
+    $test++;                           # 19
+
+    ok length($tmp=$'), 1;
+    $test++;                           # 20
+
+    ok length($tmp=$`), 1;
+    $test++;                           # 21
+
+    ok length($tmp=$1), 1;
+    $test++;                           # 22
+
+    {
+       use bytes;
+
+       my $tmp = $&;
+       ok $tmp, pack("C*", ord(">"), 0342, 0230, 0272);
+       $test++;                                # 23
+
+       $tmp = $';
+       ok $tmp, pack("C*", 0342, 0230, 0272);
+       $test++;                                # 24
+
+       $tmp = $`;
+       ok $tmp, pack("C*", 0342, 0230, 0272);
+       $test++;                                # 25
+
+       $tmp = $1;
+       ok $tmp, pack("C*", 0342, 0230, 0272);
+       $test++;                                # 26
+    }
+
+    ok_bytes $&, pack("C*", ord(">"), 0342, 0230, 0272);
+    $test++;                           # 27
+
+    ok_bytes $', pack("C*", 0342, 0230, 0272);
+    $test++;                           # 28
+
+    ok_bytes $`, pack("C*", 0342, 0230, 0272);
+    $test++;                           # 29
+
+    ok_bytes $1, pack("C*", 0342, 0230, 0272);
+    $test++;                           # 30
+
+    {
+       use bytes;
+       no utf8;
+
+       ok length, 10;
+       $test++;                                # 31
+
+       ok length((m/>(.)/)[0]), 1;
+       $test++;                                # 32
+
+       ok length($&), 2;
+       $test++;                                # 33
+
+       ok length($'), 5;
+       $test++;                                # 34
+
+       ok length($`), 3;
+       $test++;                                # 35
+
+       ok length($1), 1;
+       $test++;                                # 36
+
+       ok $&, pack("C*", ord(">"), 0342);
+       $test++;                                # 37
+
+       ok $', pack("C*", 0230, 0272, 0342, 0230, 0272);
+       $test++;                                # 38
+
+       ok $`, pack("C*", 0342, 0230, 0272);
+       $test++;                                # 39
+
+       ok $1, pack("C*", 0342);
+       $test++;                                # 40
+
+    }
+
+
+    {
+       no utf8;
+       $_="\342\230\272>\342\230\272\342\230\272";
+    }
+
+    ok length, 10;
+    $test++;                           # 41
+
+    ok length((m/>(.)/)[0]), 1;
+    $test++;                           # 42
+
+    ok length($&), 2;
+    $test++;                           # 43
+
+    ok length($'), 1;
+    $test++;                           # 44
+
+    ok length($`), 1;
+    $test++;                           # 45
+
+    ok length($1), 1;
+    $test++;                           # 46
+
+    ok length($tmp=$&), 2;
+    $test++;                           # 47
+
+    ok length($tmp=$'), 1;
+    $test++;                           # 48
+
+    ok length($tmp=$`), 1;
+    $test++;                           # 49
+
+    ok length($tmp=$1), 1;
+    $test++;                           # 50
+
+    {
+       use bytes;
+
+        my $tmp = $&;
+       ok $tmp, pack("C*", ord(">"), 0342, 0230, 0272);
+       $test++;                                # 51
+
+        $tmp = $';
+       ok $tmp, pack("C*", 0342, 0230, 0272);
+       $test++;                                # 52
+
+        $tmp = $`;
+       ok $tmp, pack("C*", 0342, 0230, 0272);
+       $test++;                                # 53
+
+        $tmp = $1;
+       ok $tmp, pack("C*", 0342, 0230, 0272);
+       $test++;                                # 54
+    }
+    {
+       use bytes;
+       no utf8;
+
+       ok length, 10;
+       $test++;                                # 55
+
+       ok length((m/>(.)/)[0]), 1;
+       $test++;                                # 56
+
+       ok length($&), 2;
+       $test++;                                # 57
+
+       ok length($'), 5;
+       $test++;                                # 58
+
+       ok length($`), 3;
+       $test++;                                # 59
+
+       ok length($1), 1;
+       $test++;                                # 60
+
+       ok $&, pack("C*", ord(">"), 0342);
+       $test++;                                # 61
+
+       ok $', pack("C*", 0230, 0272, 0342, 0230, 0272);
+       $test++;                                # 62
+
+       ok $`, pack("C*", 0342, 0230, 0272);
+       $test++;                                # 63
+
+       ok $1, pack("C*", 0342);
+       $test++;                                # 64
+
+    }
+
+    ok "\x{ab}" =~ /^\x{ab}$/, 1;
+    $test++;                                   # 65
 }
index 396f201..b489d62 100644 (file)
@@ -5,9 +5,11 @@ TODO
 
 __END__
 
-# ignore unknown warning categories
+#  check illegal category is caught
 use warnings 'this-should-never-be-a-warning-category' ;
 EXPECT
+unknown warnings category 'this-should-never-be-a-warning-category' at - line 3
+BEGIN failed--compilation aborted at - line 3.
 ########
 
 # Check compile time scope of pragma
@@ -118,175 +120,223 @@ Use of uninitialized value in scalar chop at - line 3.
 ########
 
 # Check scope of pragma with eval
-no warnings ;
-eval {
+use warnings;
+{
+    no warnings ;
+    eval {
+        my $b ; chop $b ;
+    }; print STDERR $@ ;
     my $b ; chop $b ;
-}; print STDERR $@ ;
-my $b ; chop $b ;
+}
 EXPECT
 
 ########
 
 # Check scope of pragma with eval
-no warnings ;
-eval {
-    use warnings 'uninitialized' ;
+use warnings;
+{
+    no warnings ;
+    eval {
+        use warnings 'uninitialized' ;
+        my $b ; chop $b ;
+    }; print STDERR $@ ;
     my $b ; chop $b ;
-}; print STDERR $@ ;
-my $b ; chop $b ;
+}
 EXPECT
-Use of uninitialized value in scalar chop at - line 6.
+Use of uninitialized value in scalar chop at - line 8.
 ########
 
 # Check scope of pragma with eval
-use warnings 'uninitialized' ;
-eval {
+no warnings;
+{
+    use warnings 'uninitialized' ;
+    eval {
+        my $b ; chop $b ;
+    }; print STDERR $@ ;
     my $b ; chop $b ;
-}; print STDERR $@ ;
-my $b ; chop $b ;
+}
 EXPECT
-Use of uninitialized value in scalar chop at - line 5.
 Use of uninitialized value in scalar chop at - line 7.
+Use of uninitialized value in scalar chop at - line 9.
 ########
 
 # Check scope of pragma with eval
-use warnings 'uninitialized' ;
-eval {
-    no warnings ;
+no warnings;
+{
+    use warnings 'uninitialized' ;
+    eval {
+        no warnings ;
+        my $b ; chop $b ;
+    }; print STDERR $@ ;
     my $b ; chop $b ;
-}; print STDERR $@ ;
-my $b ; chop $b ;
+}
 EXPECT
-Use of uninitialized value in scalar chop at - line 8.
+Use of uninitialized value in scalar chop at - line 10.
 ########
 
 # Check scope of pragma with eval
-no warnings ;
-eval {
+use warnings;
+{
+    no warnings ;
+    eval {
+        1 if $a EQ $b ;
+    }; print STDERR $@ ;
     1 if $a EQ $b ;
-}; print STDERR $@ ;
-1 if $a EQ $b ;
+}
 EXPECT
 
 ########
 
 # Check scope of pragma with eval
-no warnings ;
-eval {
-    use warnings 'deprecated' ;
+use warnings;
+{
+    no warnings ;
+    eval {
+        use warnings 'deprecated' ;
+        1 if $a EQ $b ;
+    }; print STDERR $@ ;
     1 if $a EQ $b ;
-}; print STDERR $@ ;
-1 if $a EQ $b ;
+}
 EXPECT
-Use of EQ is deprecated at - line 6.
+Use of EQ is deprecated at - line 8.
 ########
 
 # Check scope of pragma with eval
-use warnings 'deprecated' ;
-eval {
+no warnings;
+{
+    use warnings 'deprecated' ;
+    eval {
+        1 if $a EQ $b ;
+    }; print STDERR $@ ;
     1 if $a EQ $b ;
-}; print STDERR $@ ;
-1 if $a EQ $b ;
+}
 EXPECT
-Use of EQ is deprecated at - line 5.
 Use of EQ is deprecated at - line 7.
+Use of EQ is deprecated at - line 9.
 ########
 
 # Check scope of pragma with eval
-use warnings 'deprecated' ;
-eval {
-    no warnings ;
+no warnings;
+{
+    use warnings 'deprecated' ;
+    eval {
+        no warnings ;
+        1 if $a EQ $b ;
+    }; print STDERR $@ ;
     1 if $a EQ $b ;
-}; print STDERR $@ ;
-1 if $a EQ $b ;
+}
 EXPECT
-Use of EQ is deprecated at - line 8.
+Use of EQ is deprecated at - line 10.
 ########
 
 # Check scope of pragma with eval
-no warnings ;
-eval '
+use warnings;
+{
+    no warnings ;
+    eval '
+        my $b ; chop $b ;
+    '; print STDERR $@ ;
     my $b ; chop $b ;
-'; print STDERR $@ ;
-my $b ; chop $b ;
+}
 EXPECT
 
 ########
 
 # Check scope of pragma with eval
-no warnings ;
-eval q[ 
-    use warnings 'uninitialized' ;
+use warnings;
+{
+    no warnings ;
+    eval q[ 
+        use warnings 'uninitialized' ;
+        my $b ; chop $b ;
+    ]; print STDERR $@;
     my $b ; chop $b ;
-]; print STDERR $@;
-my $b ; chop $b ;
+}
 EXPECT
 Use of uninitialized value in scalar chop at (eval 1) line 3.
 ########
 
 # Check scope of pragma with eval
-use warnings 'uninitialized' ;
-eval '
+no warnings;
+{
+    use warnings 'uninitialized' ;
+    eval '
+        my $b ; chop $b ;
+    '; print STDERR $@ ;
     my $b ; chop $b ;
-'; print STDERR $@ ;
-my $b ; chop $b ;
+}
 EXPECT
 Use of uninitialized value in scalar chop at (eval 1) line 2.
-Use of uninitialized value in scalar chop at - line 7.
+Use of uninitialized value in scalar chop at - line 9.
 ########
 
 # Check scope of pragma with eval
-use warnings 'uninitialized' ;
-eval '
-    no warnings ;
+no warnings;
+{
+    use warnings 'uninitialized' ;
+    eval '
+        no warnings ;
+        my $b ; chop $b ;
+    '; print STDERR $@ ;
     my $b ; chop $b ;
-'; print STDERR $@ ;
-my $b ; chop $b ;
+}
 EXPECT
-Use of uninitialized value in scalar chop at - line 8.
+Use of uninitialized value in scalar chop at - line 10.
 ########
 
 # Check scope of pragma with eval
-no warnings ;
-eval '
+use warnings;
+{
+    no warnings ;
+    eval '
+        1 if $a EQ $b ;
+    '; print STDERR $@ ;
     1 if $a EQ $b ;
-'; print STDERR $@ ;
-1 if $a EQ $b ;
+}
 EXPECT
 
 ########
 
 # Check scope of pragma with eval
-no warnings ;
-eval q[ 
-    use warnings 'deprecated' ;
+use warnings;
+{
+    no warnings ;
+    eval q[ 
+        use warnings 'deprecated' ;
+        1 if $a EQ $b ;
+    ]; print STDERR $@;
     1 if $a EQ $b ;
-]; print STDERR $@;
-1 if $a EQ $b ;
+}
 EXPECT
 Use of EQ is deprecated at (eval 1) line 3.
 ########
 
 # Check scope of pragma with eval
-use warnings 'deprecated' ;
-eval '
+no warnings;
+{
+    use warnings 'deprecated' ;
+    eval '
+        1 if $a EQ $b ;
+    '; print STDERR $@;
     1 if $a EQ $b ;
-'; print STDERR $@;
-1 if $a EQ $b ;
+}
 EXPECT
-Use of EQ is deprecated at - line 7.
+Use of EQ is deprecated at - line 9.
 Use of EQ is deprecated at (eval 1) line 2.
 ########
 
 # Check scope of pragma with eval
-use warnings 'deprecated' ;
-eval '
-    no warnings ;
+no warnings;
+{
+    use warnings 'deprecated' ;
+    eval '
+        no warnings ;
+        1 if $a EQ $b ;
+    '; print STDERR $@;
     1 if $a EQ $b ;
-'; print STDERR $@;
-1 if $a EQ $b ;
+}
 EXPECT
-Use of EQ is deprecated at - line 8.
+Use of EQ is deprecated at - line 10.
 ########
 
 # Check the additive nature of the pragma
index 132b99b..335e1b2 100644 (file)
@@ -195,3 +195,72 @@ my $b ;
 chop $b ;
 EXPECT
 Use of uninitialized value in scalar chop at - line 7.
+########
+
+# Check scope of pragma with eval
+BEGIN {  $^W = 1 }
+{
+    no warnings ;
+    eval '
+        my $b ; chop $b ;
+    '; print STDERR $@ ;
+    my $b ; chop $b ;
+}
+EXPECT
+
+########
+
+# Check scope of pragma with eval
+BEGIN {  $^W = 1 }
+use warnings;
+{
+    no warnings ;
+    eval q[ 
+        use warnings 'uninitialized' ;
+        my $b ; chop $b ;
+    ]; print STDERR $@;
+    my $b ; chop $b ;
+}
+EXPECT
+Use of uninitialized value in scalar chop at (eval 1) line 3.
+########
+
+# Check scope of pragma with eval
+BEGIN {  $^W = 0 }
+{
+    use warnings 'uninitialized' ;
+    eval '
+        my $b ; chop $b ;
+    '; print STDERR $@ ;
+    my $b ; chop $b ;
+}
+EXPECT
+Use of uninitialized value in scalar chop at (eval 1) line 2.
+Use of uninitialized value in scalar chop at - line 9.
+########
+
+# Check scope of pragma with eval
+BEGIN {  $^W = 0 }
+{
+    use warnings 'uninitialized' ;
+    eval '
+        no warnings ;
+        my $b ; chop $b ;
+    '; print STDERR $@ ;
+    my $b ; chop $b ;
+}
+EXPECT
+Use of uninitialized value in scalar chop at - line 10.
+########
+
+# Check scope of pragma with eval
+BEGIN {  $^W = 1 }
+{
+    no warnings ;
+    eval '
+        1 if $a EQ $b ;
+    '; print STDERR $@ ;
+    1 if $a EQ $b ;
+}
+EXPECT
+
index db54f31..56e3fab 100644 (file)
@@ -110,3 +110,107 @@ my $a ; chop $a ;
 EXPECT
 Use of EQ is deprecated at ./abc line 3.
 Use of uninitialized value in scalar chop at - line 3.
+########
+-W
+# Check scope of pragma with eval
+{
+    no warnings ;
+    eval '
+        my $b ; chop $b ;
+    '; print STDERR $@ ;
+    my $b ; chop $b ;
+}
+EXPECT
+Use of uninitialized value in scalar chop at (eval 1) line 2.
+Use of uninitialized value in scalar chop at - line 8.
+########
+-W
+# Check scope of pragma with eval
+use warnings;
+{
+    no warnings ;
+    eval q[ 
+        use warnings 'uninitialized' ;
+        my $b ; chop $b ;
+    ]; print STDERR $@;
+    my $b ; chop $b ;
+}
+EXPECT
+Use of uninitialized value in scalar chop at (eval 1) line 3.
+Use of uninitialized value in scalar chop at - line 10.
+########
+-W
+# Check scope of pragma with eval
+no warnings;
+{
+    use warnings 'uninitialized' ;
+    eval '
+        my $b ; chop $b ;
+    '; print STDERR $@ ;
+    my $b ; chop $b ;
+}
+EXPECT
+Use of uninitialized value in scalar chop at (eval 1) line 2.
+Use of uninitialized value in scalar chop at - line 9.
+########
+-W
+# Check scope of pragma with eval
+no warnings;
+{
+    use warnings 'uninitialized' ;
+    eval '
+        no warnings ;
+        my $b ; chop $b ;
+    '; print STDERR $@ ;
+    my $b ; chop $b ;
+}
+EXPECT
+Use of uninitialized value in scalar chop at (eval 1) line 3.
+Use of uninitialized value in scalar chop at - line 10.
+########
+-W
+# Check scope of pragma with eval
+use warnings;
+{
+    my $a = "1"; my $b = "2";
+    no warnings ;
+    eval q[ 
+        use warnings 'deprecated' ;
+        1 if $a EQ $b ;
+    ]; print STDERR $@;
+    1 if $a EQ $b ;
+}
+EXPECT
+Use of EQ is deprecated at - line 11.
+Use of EQ is deprecated at (eval 1) line 3.
+########
+-W
+# Check scope of pragma with eval
+no warnings;
+{
+    my $a = "1"; my $b = "2";
+    use warnings 'deprecated' ;
+    eval '
+        1 if $a EQ $b ;
+    '; print STDERR $@;
+    1 if $a EQ $b ;
+}
+EXPECT
+Use of EQ is deprecated at - line 10.
+Use of EQ is deprecated at (eval 1) line 2.
+########
+-W
+# Check scope of pragma with eval
+no warnings;
+{
+    my $a = "1"; my $b = "2";
+    use warnings 'deprecated' ;
+    eval '
+        no warnings ;
+        1 if $a EQ $b ;
+    '; print STDERR $@;
+    1 if $a EQ $b ;
+}
+EXPECT
+Use of EQ is deprecated at - line 11.
+Use of EQ is deprecated at (eval 1) line 3.
index 994190a..2459968 100644 (file)
@@ -94,3 +94,111 @@ $^W = 1 ;
 require "./abc";
 my $a ; chop $a ;
 EXPECT
+########
+-X
+# Check scope of pragma with eval
+use warnings;
+{
+    no warnings ;
+    eval '
+        my $b ; chop $b ;
+    '; print STDERR $@ ;
+    my $b ; chop $b ;
+}
+EXPECT
+
+########
+-X
+# Check scope of pragma with eval
+use warnings;
+{
+    no warnings ;
+    eval q[ 
+        use warnings 'uninitialized' ;
+        my $b ; chop $b ;
+    ]; print STDERR $@;
+    my $b ; chop $b ;
+}
+EXPECT
+
+########
+-X
+# Check scope of pragma with eval
+no warnings;
+{
+    use warnings 'uninitialized' ;
+    eval '
+        my $b ; chop $b ;
+    '; print STDERR $@ ;
+    my $b ; chop $b ;
+}
+EXPECT
+
+########
+-X
+# Check scope of pragma with eval
+no warnings;
+{
+    use warnings 'uninitialized' ;
+    eval '
+        no warnings ;
+        my $b ; chop $b ;
+    '; print STDERR $@ ;
+    my $b ; chop $b ;
+}
+EXPECT
+
+########
+-X
+# Check scope of pragma with eval
+use warnings;
+{
+    no warnings ;
+    eval '
+        1 if $a EQ $b ;
+    '; print STDERR $@ ;
+    1 if $a EQ $b ;
+}
+EXPECT
+
+########
+-X
+# Check scope of pragma with eval
+use warnings;
+{
+    no warnings ;
+    eval q[ 
+        use warnings 'deprecated' ;
+        1 if $a EQ $b ;
+    ]; print STDERR $@;
+    1 if $a EQ $b ;
+}
+EXPECT
+
+########
+-X
+# Check scope of pragma with eval
+no warnings;
+{
+    use warnings 'deprecated' ;
+    eval '
+        1 if $a EQ $b ;
+    '; print STDERR $@;
+    1 if $a EQ $b ;
+}
+EXPECT
+
+########
+-X
+# Check scope of pragma with eval
+no warnings;
+{
+    use warnings 'deprecated' ;
+    eval '
+        no warnings ;
+        1 if $a EQ $b ;
+    '; print STDERR $@;
+    1 if $a EQ $b ;
+}
+EXPECT
+
index dd3d182..a8aafee 100644 (file)
@@ -51,3 +51,71 @@ EXPECT
 Integer overflow in binary number at - line 3.
 Illegal binary digit '2' ignored at - line 3.
 Binary number > 0b11111111111111111111111111111111 non-portable at - line 3.
+########
+
+# Check scope of pragma with eval
+use warnings;
+{
+    no warnings ;
+    eval '
+       my $a = oct "0xfffffffffffffffffg" ;
+    '; print STDERR $@ ;
+    my $a = oct "0xfffffffffffffffffg" ;
+}
+EXPECT
+
+########
+
+# Check scope of pragma with eval
+use warnings;
+{
+    no warnings ;
+    eval q[ 
+        use warnings ;
+       my $a = oct "0xfffffffffffffffffg" ;
+    ]; print STDERR $@;
+    my $a = oct "0xfffffffffffffffffg" ;
+}
+EXPECT
+Integer overflow in hexadecimal number at (eval 1) line 3.
+Illegal hexadecimal digit 'g' ignored at (eval 1) line 3.
+Hexadecimal number > 0xffffffff non-portable at (eval 1) line 3.
+########
+
+# Check scope of pragma with eval
+no warnings;
+{
+    use warnings ;
+    eval '
+       my $a = oct "0xfffffffffffffffffg" ;
+    '; print STDERR $@ ;
+}
+EXPECT
+Integer overflow in hexadecimal number at (eval 1) line 2.
+Illegal hexadecimal digit 'g' ignored at (eval 1) line 2.
+Hexadecimal number > 0xffffffff non-portable at (eval 1) line 2.
+########
+
+# Check scope of pragma with eval
+no warnings;
+{
+    use warnings;
+    eval '
+        no warnings ;
+       my $a = oct "0xfffffffffffffffffg" ;
+    '; print STDERR $@ ;
+}
+EXPECT
+
+########
+
+# Check scope of pragma with eval
+no warnings;
+{
+    use warnings 'deprecated' ;
+    eval '
+       my $a = oct "0xfffffffffffffffffg" ;
+    '; print STDERR $@;
+}
+EXPECT
+
index 943bb06..2d29ddb 100644 (file)
@@ -14,6 +14,18 @@ EXPECT
 Use of EQ is deprecated at - line 8.
 ########
 
+# Check compile time warning
+use warnings FATAL => 'all' ;
+{
+    no warnings ;
+    1 if $a EQ $b ;
+}
+1 if $a EQ $b ; 
+print STDERR "The End.\n" ;
+EXPECT
+Use of EQ is deprecated at - line 8.
+########
+
 # Check runtime scope of pragma
 use warnings FATAL => 'uninitialized' ;
 {
@@ -27,6 +39,18 @@ Use of uninitialized value in scalar chop at - line 8.
 ########
 
 # Check runtime scope of pragma
+use warnings FATAL => 'all' ;
+{
+    no warnings ;
+    my $b ; chop $b ;
+}
+my $b ; chop $b ;
+print STDERR "The End.\n" ;
+EXPECT
+Use of uninitialized value in scalar chop at - line 8.
+########
+
+# Check runtime scope of pragma
 no warnings ;
 {
     use warnings FATAL => 'uninitialized' ;
@@ -38,6 +62,18 @@ EXPECT
 Use of uninitialized value in scalar chop at - line 6.
 ########
 
+# Check runtime scope of pragma
+no warnings ;
+{
+    use warnings FATAL => 'all' ;
+    $a = sub { my $b ; chop $b ; }
+}
+&$a ;
+print STDERR "The End.\n" ;
+EXPECT
+Use of uninitialized value in scalar chop at - line 6.
+########
+
 --FILE-- abc
 1 if $a EQ $b ;
 1;
index 1ecf24a..55642ff 100755 (executable)
@@ -5,7 +5,7 @@ __END__
 --FILE-- abc.pm
 package abc ;
 use warnings "io" ;
-print "ok1\n" if ! warnings::enabled() ;
+print "ok1\n" if ! warnings::enabled('all') ;
 print "ok2\n" if ! warnings::enabled("io") ;
 1;
 --FILE-- 
@@ -19,7 +19,7 @@ ok2
 --FILE-- abc.pm
 package abc ;
 no warnings ;
-print "ok1\n" if warnings::enabled() ;
+print "ok1\n" if !warnings::enabled('all') ;
 print "ok2\n" if warnings::enabled("syntax") ;
 1;
 --FILE-- 
@@ -33,7 +33,7 @@ ok2
 --FILE-- abc.pm
 package abc ;
 use warnings 'syntax' ;
-print "ok1\n" if   warnings::enabled() ;
+print "ok1\n" if   warnings::enabled('io') ;
 print "ok2\n" if ! warnings::enabled("syntax") ;
 1;
 --FILE-- 
@@ -46,7 +46,7 @@ ok2
 
 --FILE-- abc
 no warnings ;
-print "ok1\n" if warnings::enabled() ;
+print "ok1\n" if !warnings::enabled('all') ;
 print "ok2\n" if warnings::enabled("syntax") ;
 1;
 --FILE-- 
@@ -59,7 +59,7 @@ ok2
 
 --FILE-- abc
 use warnings 'syntax' ;
-print "ok1\n" if   warnings::enabled ;
+print "ok1\n" if ! warnings::enabled('all') ;
 print "ok2\n" if ! warnings::enabled("syntax") ;
 print "ok3\n" if   warnings::enabled("io") ;
 1;
@@ -76,7 +76,7 @@ ok3
 package abc ;
 no warnings ;
 sub check {
-  print "ok1\n" if warnings::enabled ;
+  print "ok1\n" if !warnings::enabled('all') ;
   print "ok2\n" if warnings::enabled("syntax") ;
 }
 1;
@@ -93,8 +93,8 @@ ok2
 package abc ;
 use warnings 'io' ;
 sub check {
-  print "ok1\n" if  warnings::enabled ;
-  print "ok2\n" if  warnings::enabled("syntax") ;
+  print "ok1\n" if ! warnings::enabled('all') ;
+  print "ok2\n" if   warnings::enabled("syntax") ;
   print "ok3\n" if ! warnings::enabled("io") ;
 }
 1;
@@ -112,7 +112,7 @@ ok3
 package abc ;
 no warnings ;
 sub check {
-  print "ok1\n" if warnings::enabled ;
+  print "ok1\n" if !warnings::enabled('all') ;
   print "ok2\n" if warnings::enabled("syntax") ;
 }
 1;
@@ -129,8 +129,8 @@ ok2
 package abc ;
 use warnings 'io' ;
 sub check {
-  print "ok1\n" if warnings::enabled ;
-  print "ok2\n" if warnings::enabled("syntax") ;
+  print "ok1\n" if ! warnings::enabled('all') ;
+  print "ok2\n" if   warnings::enabled("syntax") ;
   print "ok3\n" if ! warnings::enabled("io") ;
 }
 1;
@@ -147,7 +147,7 @@ ok3
 --FILE-- abc.pm
 package abc ;
 use warnings "io" ;
-print "ok1\n" if ! warnings::enabled() ;
+print "ok1\n" if ! warnings::enabled('all') ;
 print "ok2\n" if ! warnings::enabled("io") ;
 1;
 --FILE-- def.pm
@@ -165,13 +165,13 @@ ok2
 --FILE-- abc.pm
 package abc ;
 no warnings ;
-print "ok1\n" if warnings::enabled() ;
+print "ok1\n" if ! warnings::enabled('all') ;
 print "ok2\n" if warnings::enabled("syntax") ;
 print "ok3\n" if !warnings::enabled("io") ;
 1;
 --FILE-- def.pm
 use warnings 'syntax' ;
-print "ok4\n" if warnings::enabled() ;
+print "ok4\n" if !warnings::enabled('all') ;
 print "ok5\n" if warnings::enabled("io") ;
 use abc ;
 1;
@@ -190,7 +190,7 @@ ok5
 package abc ;
 no warnings ;
 sub check {
-  print "ok1\n" if warnings::enabled ;
+  print "ok1\n" if !warnings::enabled('all') ;
   print "ok2\n" if warnings::enabled("syntax") ;
 }
 1;
@@ -208,8 +208,8 @@ ok2
 package abc ;
 use warnings 'io' ;
 sub check {
-  print "ok1\n" if  warnings::enabled ;
-  print "ok2\n" if  warnings::enabled("syntax") ;
+  print "ok1\n" if ! warnings::enabled('all') ;
+  print "ok2\n" if   warnings::enabled("syntax") ;
   print "ok3\n" if ! warnings::enabled("io") ;
 }
 1;
@@ -228,7 +228,7 @@ ok3
 package abc ;
 no warnings ;
 sub check {
-  print "ok1\n" if warnings::enabled ;
+  print "ok1\n" if !warnings::enabled('all') ;
   print "ok2\n" if warnings::enabled("syntax") ;
 }
 1;
@@ -246,7 +246,7 @@ ok2
 package abc ;
 use warnings 'io' ;
 sub check {
-  print "ok1\n" if warnings::enabled ;
+  print "ok1\n" if !warnings::enabled('all') ;
   print "ok2\n" if warnings::enabled("syntax") ;
   print "ok3\n" if warnings::enabled("io") ;
 }
@@ -269,7 +269,7 @@ ok2
 package abc ;
 use warnings 'io' ;
 sub check {
-  print "ok1\n" if  warnings::enabled ;
+  print "ok1\n" if ! warnings::enabled('all') ;
   print "ok2\n" if  warnings::enabled("syntax") ;
   print "ok3\n" if ! warnings::enabled("io") ;
 }
@@ -289,7 +289,7 @@ ok3
 package abc ;
 use warnings 'io' ;
 sub check {
-  print "ok1\n" if  ! warnings::enabled ;
+  print "ok1\n" if  ! warnings::enabled('all') ;
 }
 1;
 --FILE-- 
@@ -305,7 +305,7 @@ ok1
 package abc ;
 use warnings 'misc' ;
 sub check {
-  print "ok1\n" if  warnings::enabled ;
+  print "ok1\n" if  ! warnings::enabled('all') ;
   print "ok2\n" if  warnings::enabled("syntax") ;
   print "ok3\n" if  warnings::enabled("io") ;
   print "ok4\n" if  ! warnings::enabled("misc") ;
@@ -327,11 +327,12 @@ ok4
 use warnings ;
 eval { warnings::warn() } ;
 print $@ ;
-eval { warnings::warn("fred") } ;
+eval { warnings::warn("fred", "joe") } ;
 print $@ ;
 EXPECT
-Usage: warnings::warn('category', 'message') at - line 4
-Usage: warnings::warn('category', 'message') at - line 6
+Usage: warnings::warn([category,] 'message') at - line 4
+unknown warnings category 'fred' at - line 6
+       eval {...} called at - line 6
 ########
 
 --FILE-- abc.pm
@@ -388,3 +389,431 @@ print "[[$@]]\n";
 EXPECT
 [[hello at - line 3
 ]]
+########
+-W
+--FILE-- abc.pm
+package abc ;
+use warnings "io" ;
+print "ok1\n" if warnings::enabled("io") ;
+print "ok2\n" if warnings::enabled("all") ;
+1;
+--FILE-- 
+no warnings;
+use abc ;
+EXPECT
+ok1
+ok2
+########
+-X
+--FILE-- abc.pm
+package abc ;
+use warnings "io" ;
+print "ok1\n" if !warnings::enabled("io") ;
+print "ok2\n" if !warnings::enabled("all") ;
+1;
+--FILE-- 
+use warnings;
+use abc ;
+EXPECT
+ok1
+ok2
+########
+
+--FILE-- abc.pm
+package abc ;
+no warnings ;
+sub check {
+  print "ok\n" if ! warnings::enabled() ;
+}
+1;
+--FILE-- 
+use warnings 'syntax' ;
+use abc ;
+abc::check() ;
+EXPECT
+package 'abc' not registered for warnings at - line 3
+########
+
+--FILE-- abc.pm
+package abc ;
+use warnings 'io' ;
+use warnings::register ;
+sub check {
+  print "ok1\n" if  warnings::enabled ;
+  print "ok2\n" if  warnings::enabled("syntax") ;
+  print "ok3\n" if !warnings::enabled("io") ;
+}
+1;
+--FILE-- 
+use warnings 'syntax' ;
+use abc ;
+use warnings 'abc' ;
+abc::check() ;
+EXPECT
+ok1
+ok2
+ok3
+########
+
+--FILE-- abc.pm
+package abc ;
+use warnings 'io' ;
+use warnings::register ;
+sub check {
+  print "ok1\n" if !warnings::enabled ;
+  print "ok2\n" if  warnings::enabled("syntax") ;
+  print "ok3\n" if !warnings::enabled("io") ;
+}
+1;
+--FILE-- 
+use warnings 'syntax' ;
+use abc ;
+abc::check() ;
+EXPECT
+ok1
+ok2
+ok3
+########
+
+--FILE-- abc.pm
+package abc ;
+no warnings ;
+use warnings::register ;
+sub check {
+  print "ok1\n" if warnings::enabled ;
+  print "ok2\n" if warnings::enabled("syntax") ;
+}
+1;
+--FILE-- 
+use warnings 'syntax' ;
+use abc ;
+use warnings 'abc' ;
+eval { abc::check() ; };
+print $@ ;
+EXPECT
+ok1
+ok2
+########
+
+--FILE-- abc.pm
+package abc ;
+use warnings 'io' ;
+use warnings::register ;
+sub check {
+  print "ok1\n" if !warnings::enabled ;
+  print "ok2\n" if  warnings::enabled("syntax") ;
+  print "ok3\n" if !warnings::enabled("io") ;
+}
+1;
+--FILE-- 
+use warnings 'syntax' ;
+use abc ;
+eval { abc::check() ; } ;
+print $@ ;
+EXPECT
+ok1
+ok2
+ok3
+########
+
+--FILE-- abc.pm
+package abc ;
+use warnings 'io' ;
+use warnings::register ;
+sub check {
+  print "ok1\n" if  warnings::enabled ;
+  print "ok2\n" if  warnings::enabled("syntax") ;
+  print "ok3\n" if !warnings::enabled("io") ;
+}
+1;
+--FILE-- 
+use warnings 'syntax' ;
+use abc ;
+use warnings 'abc' ;
+sub fred { abc::check() }
+fred() ;
+EXPECT
+ok1
+ok2
+ok3
+########
+
+--FILE-- abc.pm
+package abc ;
+use warnings 'io' ;
+use warnings::register ;
+sub check {
+  print "ok1\n" if  ! warnings::enabled ;
+}
+1;
+--FILE-- 
+use warnings 'syntax' ;
+use abc ;
+sub fred { no warnings ; abc::check() }
+fred() ;
+EXPECT
+ok1
+########
+
+--FILE-- abc.pm
+package abc ;
+use warnings 'misc' ;
+use warnings::register;
+sub check {
+  print "ok1\n" if  warnings::enabled ;
+  print "ok2\n" if  warnings::enabled("syntax") ;
+  print "ok3\n" if  warnings::enabled("io") ;
+  print "ok4\n" if  ! warnings::enabled("misc") ;
+}
+1;
+--FILE-- 
+use warnings 'syntax' ;
+use abc ;
+use warnings 'abc' ;
+sub fred { use warnings 'io'  ; abc::check() }
+fred() ;
+EXPECT
+ok1
+ok2
+ok3
+ok4
+########
+
+--FILE-- abc.pm
+package abc ;
+use warnings 'misc' ;
+use warnings::register;
+sub check { warnings::warn("hello") }
+1;
+--FILE--
+use abc;
+use warnings "abc" ;
+abc::check() ;
+EXPECT
+hello at - line 3
+########
+
+--FILE-- abc.pm
+package abc ;
+use warnings::register;
+sub check { warnings::warn("hello") }
+1;
+--FILE--
+use abc;
+abc::check() ;
+EXPECT
+hello at - line 2
+########
+
+--FILE-- abc.pm
+package abc ;
+use warnings::register ;
+sub check { warnings::warn("hello") }
+1;
+--FILE--
+use abc;
+use warnings qw( FATAL deprecated ) ;
+eval { abc::check() ; } ;
+print "[[$@]]\n";
+EXPECT
+hello at - line 3
+[[]]
+########
+
+--FILE-- abc.pm
+package abc ;
+use warnings::register ;
+sub check { warnings::warn("hello") }
+1;
+--FILE--
+use abc;
+use warnings qw( FATAL abc ) ;
+eval { abc::check() ; } ;
+print "[[$@]]\n";
+EXPECT
+[[hello at - line 3
+]]
+########
+-W
+--FILE-- abc.pm
+package abc ;
+use warnings "io" ;
+use warnings::register ;
+sub check { 
+  print "ok1\n" if warnings::enabled() ;
+  print "ok2\n" if warnings::enabled("io") ;
+  print "ok3\n" if warnings::enabled("all") ;
+}
+1;
+--FILE-- 
+no warnings;
+use abc ;
+abc::check() ;
+EXPECT
+ok1
+ok2
+ok3
+########
+-X
+--FILE-- abc.pm
+package abc ;
+use warnings "io" ;
+use warnings::register ;
+sub check { 
+  print "ok1\n" if !warnings::enabled() ;
+  print "ok2\n" if !warnings::enabled("io") ;
+  print "ok3\n" if !warnings::enabled("all") ;
+}
+1;
+--FILE-- 
+no warnings;
+use abc ;
+abc::check() ;
+EXPECT
+ok1
+ok2
+ok3
+########
+
+--FILE-- abc.pm
+package abc ;
+use warnings "io" ;
+use warnings::register ;
+sub check { 
+  print "ok1\n" if warnings::enabled() ;
+  print "ok2\n" if warnings::enabled("io") ;
+  print "ok3\n" if warnings::enabled("all") ;
+}
+1;
+--FILE-- 
+use warnings 'all';
+use abc ;
+abc::check() ;
+EXPECT
+ok1
+ok2
+ok3
+########
+
+--FILE-- abc.pm
+package abc ;
+use warnings "io" ;
+use warnings::register ;
+sub check { 
+  print "ok1\n" if !warnings::enabled() ;
+  print "ok2\n" if !warnings::enabled("io") ;
+  print "ok3\n" if !warnings::enabled("all") ;
+}
+1;
+--FILE-- 
+use abc ;
+no warnings ;
+abc::check() ;
+EXPECT
+ok1
+ok2
+ok3
+########
+
+--FILE-- abc.pm
+package abc ;
+use warnings "io" ;
+use warnings::register ;
+sub check { 
+  print "ok1\n" if !warnings::enabled() ;
+  print "ok2\n" if !warnings::enabled("io") ;
+  print "ok3\n" if !warnings::enabled("all") ;
+}
+1;
+--FILE-- 
+use abc ;
+use warnings 'abc';
+no warnings ;
+abc::check() ;
+EXPECT
+ok1
+ok2
+ok3
+########
+
+--FILE-- abc.pm
+package abc ;
+use warnings "io" ;
+use warnings::register ;
+sub check { 
+  print "abc self" . (warnings::enabled() ? "" : " not") . " enabled\n" ;
+  print "abc def"  . (warnings::enabled('def') ? "" : " not") . " enabled\n" ;
+  print "abc all"  . (warnings::enabled('all') ? "" : " not") . " enabled\n" ;
+}
+1;
+--FILE-- def.pm
+package def ;
+use warnings "io" ;
+use warnings::register ;
+sub check { 
+  print "def self" . (warnings::enabled() ? "" : " not") . " enabled\n" ;
+  print "def abc"  . (warnings::enabled('abc') ? "" : " not") . " enabled\n" ;
+  print "def all"  . (warnings::enabled('all') ? "" : " not") . " enabled\n" ;
+}
+1;
+--FILE-- 
+use abc ;
+use def ;
+use warnings 'abc';
+abc::check() ;
+def::check() ;
+no warnings 'abc'  ;
+use warnings 'def'  ;
+abc::check() ;
+def::check() ;
+use warnings 'abc'  ;
+use warnings 'def'  ;
+abc::check() ;
+def::check() ;
+no warnings 'abc'  ;
+no warnings 'def'  ;
+abc::check() ;
+def::check() ;
+use warnings;
+abc::check() ;
+def::check() ;
+no warnings 'abc' ;
+abc::check() ;
+def::check() ;
+EXPECT
+abc self enabled
+abc def not enabled
+abc all not enabled
+def self not enabled
+def abc enabled
+def all not enabled
+abc self not enabled
+abc def enabled
+abc all not enabled
+def self enabled
+def abc not enabled
+def all not enabled
+abc self enabled
+abc def enabled
+abc all not enabled
+def self enabled
+def abc enabled
+def all not enabled
+abc self not enabled
+abc def not enabled
+abc all not enabled
+def self not enabled
+def abc not enabled
+def all not enabled
+abc self enabled
+abc def enabled
+abc all enabled
+def self enabled
+def abc enabled
+def all enabled
+abc self not enabled
+abc def enabled
+abc all not enabled
+def self enabled
+def abc not enabled
+def all not enabled
index d70a333..2c9e0fd 100644 (file)
        keys joe ;
  
      Statement unlikely to be reached
-     (Maybe you meant system() when you said exec()?
+       (Maybe you meant system() when you said exec()?
        exec "true" ; my $a
 
      defined(@array) is deprecated
-     (Maybe you should just omit the defined()?)
+       (Maybe you should just omit the defined()?)
        my @a ; defined @a ;
        defined (@a = (1,2,3)) ;
 
      defined(%hash) is deprecated
-     (Maybe you should just omit the defined()?)
+       (Maybe you should just omit the defined()?)
        my %h ; defined %h ;
     
      /---/ should probably be written as "---"
@@ -150,6 +150,17 @@ EXPECT
 # op.c
 use warnings 'closure' ;
 sub x {
+      our $x;
+      sub y {
+         $x
+      }
+   }
+EXPECT
+
+########
+# op.c
+use warnings 'closure' ;
+sub x {
       my $x;
       sub y {
          sub { $x }
@@ -592,7 +603,6 @@ my $a ; my @a = () ; my %a = () ; my $b = \@a ; my $c = \%a ;
 EXPECT
 Applying pattern match (m//) to @array will act on scalar(@array) at - line 5.
 Applying substitution (s///) to @array will act on scalar(@array) at - line 6.
-Can't modify private array in substitution (s///) at - line 6, near "s/a/b/ ;"
 Applying transliteration (tr///) to @array will act on scalar(@array) at - line 7.
 Applying pattern match (m//) to @array will act on scalar(@array) at - line 8.
 Applying substitution (s///) to @array will act on scalar(@array) at - line 9.
@@ -603,6 +613,7 @@ Applying transliteration (tr///) to %hash will act on scalar(%hash) at - line 13
 Applying pattern match (m//) to %hash will act on scalar(%hash) at - line 14.
 Applying substitution (s///) to %hash will act on scalar(%hash) at - line 15.
 Applying transliteration (tr///) to %hash will act on scalar(%hash) at - line 16.
+Can't modify private array in substitution (s///) at - line 6, near "s/a/b/ ;"
 BEGIN not safe after errors--compilation aborted at - line 18.
 ########
 # op.c
@@ -738,28 +749,28 @@ exec "$^X -e 1" ;
 my $a
 EXPECT
 Statement unlikely to be reached at - line 4.
-(Maybe you meant system() when you said exec()?)
+       (Maybe you meant system() when you said exec()?)
 ########
 # op.c
 use warnings 'deprecated' ;
 my @a; defined(@a);
 EXPECT
 defined(@array) is deprecated at - line 3.
-(Maybe you should just omit the defined()?)
+       (Maybe you should just omit the defined()?)
 ########
 # op.c
 use warnings 'deprecated' ;
 defined(@a = (1,2,3));
 EXPECT
 defined(@array) is deprecated at - line 3.
-(Maybe you should just omit the defined()?)
+       (Maybe you should just omit the defined()?)
 ########
 # op.c
 use warnings 'deprecated' ;
 my %h; defined(%h);
 EXPECT
 defined(%hash) is deprecated at - line 3.
-(Maybe you should just omit the defined()?)
+       (Maybe you should just omit the defined()?)
 ########
 # op.c
 no warnings 'syntax' ;
@@ -808,3 +819,54 @@ joe() ;
 sub joe ($$) {}
 EXPECT
 main::fred() called too early to check prototype at - line 3.
+########
+# op.c [Perl_newATTRSUB]
+--FILE-- abc.pm
+use warnings 'void' ;
+BEGIN { $| = 1; print "in begin\n"; }
+CHECK { print "in check\n"; }
+INIT { print "in init\n"; }
+END { print "in end\n"; }
+print "in mainline\n";
+1;
+--FILE--
+use abc;
+delete $INC{"abc.pm"};
+require abc;
+do "abc.pm";
+EXPECT
+in begin
+in mainline
+in check
+in init
+in begin
+Too late to run CHECK block at abc.pm line 3.
+Too late to run INIT block at abc.pm line 4.
+in mainline
+in begin
+Too late to run CHECK block at abc.pm line 3.
+Too late to run INIT block at abc.pm line 4.
+in mainline
+in end
+in end
+in end
+########
+# op.c [Perl_newATTRSUB]
+--FILE-- abc.pm
+no warnings 'void' ;
+BEGIN { $| = 1; print "in begin\n"; }
+CHECK { print "in check\n"; }
+INIT { print "in init\n"; }
+END { print "in end\n"; }
+print "in mainline\n";
+1;
+--FILE--
+require abc;
+do "abc.pm";
+EXPECT
+in begin
+in mainline
+in begin
+in mainline
+in end
+in end
index ea94e9d..e81f28c 100644 (file)
@@ -214,4 +214,17 @@ DESTROY { die "@{$_[0]} foo bar" }
 { bless ['A'], 'Foo' for 1..10 }
 { bless ['B'], 'Foo' for 1..10 }
 EXPECT
-
+########
+# pp_ctl.c
+use warnings;
+eval 'print $foo';
+EXPECT
+Use of uninitialized value in print at (eval 1) line 1.
+########
+# pp_ctl.c
+use warnings;
+{
+    no warnings;
+    eval 'print $foo';
+}
+EXPECT
index baa9f1f..2759057 100644 (file)
@@ -92,7 +92,7 @@ print STDIN "anc";
 EXPECT
 print() on closed filehandle main::STDIN at - line 4.
 print() on closed filehandle main::STDIN at - line 6.
-(Are you trying to call print() on dirhandle main::STDIN?)
+       (Are you trying to call print() on dirhandle main::STDIN?)
 ########
 # pp_hot.c [pp_rv2av]
 use warnings 'uninitialized' ;
@@ -139,7 +139,7 @@ $a = <STDIN> ;
 EXPECT
 readline() on closed filehandle main::STDIN at - line 3.
 readline() on closed filehandle main::STDIN at - line 4.
-(Are you trying to call readline() on dirhandle main::STDIN?)
+       (Are you trying to call readline() on dirhandle main::STDIN?)
 ########
 # pp_hot.c [Perl_do_readline]
 use warnings 'io' ;
index d428344..7c38727 100644 (file)
@@ -125,7 +125,7 @@ write STDIN;
 EXPECT
 write() on closed filehandle main::STDIN at - line 6.
 write() on closed filehandle main::STDIN at - line 8.
-(Are you trying to call write() on dirhandle main::STDIN?)
+       (Are you trying to call write() on dirhandle main::STDIN?)
 ########
 # pp_sys.c [pp_leavewrite]
 use warnings 'io' ;
@@ -168,7 +168,7 @@ printf STDIN "fred";
 EXPECT
 printf() on closed filehandle main::STDIN at - line 4.
 printf() on closed filehandle main::STDIN at - line 6.
-(Are you trying to call printf() on dirhandle main::STDIN?)
+       (Are you trying to call printf() on dirhandle main::STDIN?)
 ########
 # pp_sys.c [pp_prtf]
 use warnings 'io' ;
@@ -192,7 +192,7 @@ syswrite STDIN, "fred", 1;
 EXPECT
 syswrite() on closed filehandle main::STDIN at - line 4.
 syswrite() on closed filehandle main::STDIN at - line 6.
-(Are you trying to call syswrite() on dirhandle main::STDIN?)
+       (Are you trying to call syswrite() on dirhandle main::STDIN?)
 ########
 # pp_sys.c [pp_flock]
 use Config; 
@@ -217,7 +217,7 @@ flock STDIN, 8;
 EXPECT
 flock() on closed filehandle main::STDIN at - line 14.
 flock() on closed filehandle main::STDIN at - line 16.
-(Are you trying to call flock() on dirhandle main::STDIN?)
+       (Are you trying to call flock() on dirhandle main::STDIN?)
 ########
 # pp_sys.c [pp_prtf pp_send pp_bind pp_connect pp_listen pp_accept pp_shutdown pp_ssockopt ppp_getpeername]
 use warnings 'io' ;
@@ -296,25 +296,25 @@ getsockopt() on closed socket main::STDIN at - line 29.
 getsockname() on closed socket main::STDIN at - line 30.
 getpeername() on closed socket main::STDIN at - line 31.
 send() on closed socket main::STDIN at - line 33.
-(Are you trying to call send() on dirhandle main::STDIN?)
+       (Are you trying to call send() on dirhandle main::STDIN?)
 bind() on closed socket main::STDIN at - line 34.
-(Are you trying to call bind() on dirhandle main::STDIN?)
+       (Are you trying to call bind() on dirhandle main::STDIN?)
 connect() on closed socket main::STDIN at - line 35.
-(Are you trying to call connect() on dirhandle main::STDIN?)
+       (Are you trying to call connect() on dirhandle main::STDIN?)
 listen() on closed socket main::STDIN at - line 36.
-(Are you trying to call listen() on dirhandle main::STDIN?)
+       (Are you trying to call listen() on dirhandle main::STDIN?)
 accept() on closed socket main::STDIN at - line 37.
-(Are you trying to call accept() on dirhandle main::STDIN?)
+       (Are you trying to call accept() on dirhandle main::STDIN?)
 shutdown() on closed socket main::STDIN at - line 38.
-(Are you trying to call shutdown() on dirhandle main::STDIN?)
+       (Are you trying to call shutdown() on dirhandle main::STDIN?)
 setsockopt() on closed socket main::STDIN at - line 39.
-(Are you trying to call setsockopt() on dirhandle main::STDIN?)
+       (Are you trying to call setsockopt() on dirhandle main::STDIN?)
 getsockopt() on closed socket main::STDIN at - line 40.
-(Are you trying to call getsockopt() on dirhandle main::STDIN?)
+       (Are you trying to call getsockopt() on dirhandle main::STDIN?)
 getsockname() on closed socket main::STDIN at - line 41.
-(Are you trying to call getsockname() on dirhandle main::STDIN?)
+       (Are you trying to call getsockname() on dirhandle main::STDIN?)
 getpeername() on closed socket main::STDIN at - line 42.
-(Are you trying to call getpeername() on dirhandle main::STDIN?)
+       (Are you trying to call getpeername() on dirhandle main::STDIN?)
 ########
 # pp_sys.c [pp_stat]
 use warnings 'newline' ;
index cfdea78..8db8027 100644 (file)
@@ -220,12 +220,12 @@ Reversed *= operator at - line 9.
 Reversed %= operator at - line 10.
 Reversed &= operator at - line 11.
 Reversed .= operator at - line 12.
-syntax error at - line 12, near "=."
 Reversed ^= operator at - line 13.
-syntax error at - line 13, near "=^"
 Reversed |= operator at - line 14.
-syntax error at - line 14, near "=|"
 Reversed <= operator at - line 15.
+syntax error at - line 12, near "=."
+syntax error at - line 13, near "=^"
+syntax error at - line 14, near "=|"
 Unterminated <> operator at - line 15.
 ########
 # toke.c
@@ -290,6 +290,9 @@ Can't use \1 to mean $1 in expression at - line 4.
 # toke.c
 use warnings 'reserved' ;
 $a = abc;
+$a = { def
+
+=> 1 };
 no warnings 'reserved' ;
 $a = abc;
 EXPECT
@@ -434,13 +437,14 @@ Ambiguous call resolved as CORE::time(), qualify as such or use & at - line 4.
 # toke.c
 use warnings ;
 eval <<'EOE';
+#  line 30 "foo"
+warn "yelp";
 {
-#line 30 "foo"
   $_ = " \x{123} " ;
 }
 EOE
 EXPECT
-
+yelp at foo line 30.
 ########
 # toke.c
 my $a = rand + 4 ;
diff --git a/toke.c b/toke.c
index 8177476..b7ccedd 100644 (file)
--- a/toke.c
+++ b/toke.c
@@ -819,7 +819,7 @@ Perl_str_to_version(pTHX_ SV *sv)
     NV nshift = 1.0;
     STRLEN len;
     char *start = SvPVx(sv,len);
-    bool utf = SvUTF8(sv);
+    bool utf = SvUTF8(sv) ? TRUE : FALSE;
     char *end = start + len;
     while (start < end) {
        I32 skip;
@@ -896,7 +896,7 @@ S_tokeq(pTHX_ SV *sv)
        goto finish;
 
     s = SvPV_force(sv, len);
-    if (SvIVX(sv) == -1)
+    if (SvTYPE(sv) >= SVt_PVIV && SvIVX(sv) == -1)
        goto finish;
     send = s + len;
     while (s < send && *s != '\\')
@@ -1377,7 +1377,7 @@ S_scan_const(pTHX_ char *start)
            default:
                {
                    dTHR;
-                   if (ckWARN(WARN_MISC) && isALPHA(*s))
+                   if (ckWARN(WARN_MISC) && isALNUM(*s))
                        Perl_warner(aTHX_ WARN_MISC, 
                               "Unrecognized escape \\%c passed through",
                               *s);
@@ -1389,6 +1389,7 @@ S_scan_const(pTHX_ char *start)
            /* \132 indicates an octal constant */
            case '0': case '1': case '2': case '3':
            case '4': case '5': case '6': case '7':
+               len = 0;        /* disallow underscores */
                uv = (UV)scan_oct(s, 3, &len);
                s += len;
                goto NUM_ESCAPE_INSERT;
@@ -1402,10 +1403,12 @@ S_scan_const(pTHX_ char *start)
                        yyerror("Missing right brace on \\x{}");
                        e = s;
                    }
+                   len = 1;            /* allow underscores */
                     uv = (UV)scan_hex(s + 1, e - s - 1, &len);
                     s = e + 1;
                }
                else {
+                   len = 0;            /* disallow underscores */
                    uv = (UV)scan_hex(s, 2, &len);
                    s += len;
                }
@@ -1479,6 +1482,14 @@ S_scan_const(pTHX_ char *start)
                    res = new_constant( Nullch, 0, "charnames", 
                                        res, Nullsv, "\\N{...}" );
                    str = SvPV(res,len);
+                   if (!has_utf && SvUTF8(res)) {
+                       char *ostart = SvPVX(sv);
+                       SvCUR_set(sv, d - ostart);
+                       SvPOK_on(sv);
+                       sv_utf8_upgrade(sv);
+                       d = SvPVX(sv) + SvCUR(sv);
+                       has_utf = TRUE;
+                   }
                    if (len > e - s + 4) {
                        char *odest = SvPVX(sv);
 
@@ -1502,7 +1513,8 @@ S_scan_const(pTHX_ char *start)
                *d = *s++;
                if (isLOWER(*d))
                   *d = toUPPER(*d);
-               *d++ = toCTRL(*d); 
+               *d = toCTRL(*d); 
+               d++;
 #else
                len = *s++;
                *d++ = toCTRL(len);
@@ -2639,7 +2651,7 @@ Perl_yylex(pTHX)
 #ifdef PERL_STRICT_CR
        Perl_warn(aTHX_ "Illegal character \\%03o (carriage return)", '\r');
        Perl_croak(aTHX_ 
-      "(Maybe you didn't strip carriage returns after a network transfer?)\n");
+      "\t(Maybe you didn't strip carriage returns after a network transfer?)\n");
 #endif
     case ' ': case '\t': case '\f': case 013:
        s++;
@@ -2647,6 +2659,11 @@ Perl_yylex(pTHX)
     case '#':
     case '\n':
        if (PL_lex_state != LEX_NORMAL || (PL_in_eval && !PL_rsfp)) {
+           if (*s == '#' && s == PL_linestart && PL_in_eval && !PL_rsfp) {
+               /* handle eval qq[#line 1 "foo"\n ...] */
+               CopLINE_dec(PL_curcop);
+               incline(s);
+           }
            d = PL_bufend;
            while (s < d && *s != '\n')
                s++;
@@ -3276,7 +3293,7 @@ Perl_yylex(pTHX)
        /* This kludge not intended to be bulletproof. */
        if (PL_tokenbuf[1] == '[' && !PL_tokenbuf[2]) {
            yylval.opval = newSVOP(OP_CONST, 0,
-                                  newSViv((IV)PL_compiling.cop_arybase));
+                                  newSViv(PL_compiling.cop_arybase));
            yylval.opval->op_private = OPpCONST_ARYBASE;
            TERM(THING);
        }
@@ -3610,7 +3627,7 @@ Perl_yylex(pTHX)
        tmp = keyword(PL_tokenbuf, len);
 
        /* Is this a word before a => operator? */
-       if (strnEQ(d,"=>",2)) {
+       if (*d == '=' && d[1] == '>') {
            CLINE;
            yylval.opval = (OP*)newSVOP(OP_CONST, 0, newSVpv(PL_tokenbuf,0));
            yylval.opval->op_private = OPpCONST_BARE;
@@ -3765,10 +3782,18 @@ Perl_yylex(pTHX)
                    }
                }
 
-               /* If followed by a paren, it's certainly a subroutine. */
 
                PL_expect = XOPERATOR;
                s = skipspace(s);
+
+               /* Is this a word before a => operator? */
+               if (*s == '=' && s[1] == '>') {
+                   CLINE;
+                   sv_setpv(((SVOP*)yylval.opval)->op_sv, PL_tokenbuf);
+                   TERM(WORD);
+               }
+
+               /* If followed by a paren, it's certainly a subroutine. */
                if (*s == '(') {
                    CLINE;
                    if (gv && GvCVu(gv)) {
@@ -4487,7 +4512,7 @@ Perl_yylex(pTHX)
                            for (; !isSPACE(*d) && len; --len, ++d) ;
                        }
                        words = append_elem(OP_LIST, words,
-                                           newSVOP(OP_CONST, 0, newSVpvn(b, d-b)));
+                                           newSVOP(OP_CONST, 0, tokeq(newSVpvn(b, d-b))));
                    }
                }
                if (words) {
@@ -5646,30 +5671,28 @@ S_new_constant(pTHX_ char *s, STRLEN len, const char *key, SV *sv, SV *pv,
     SV *res;
     SV **cvp;
     SV *cv, *typesv;
-    const char *why, *why1, *why2;
+    const char *why1, *why2, *why3;
     
-    if (!(PL_hints & HINT_LOCALIZE_HH)) {
+    if (!table || !(PL_hints & HINT_LOCALIZE_HH)) {
        SV *msg;
        
-       why = "%^H is not localized";
-    report_short:
-       why1 = why2 = "";
+       why1 = "%^H is not consistent";
+       why2 = strEQ(key,"charnames")
+              ? " (missing \"use charnames ...\"?)"
+              : "";
+       why3 = "";
     report:
        msg = Perl_newSVpvf(aTHX_ "constant(%s): %s%s%s", 
-                           (type ? type: "undef"), why1, why2, why);
+                           (type ? type: "undef"), why1, why2, why3);
        yyerror(SvPVX(msg));
        SvREFCNT_dec(msg);
        return sv;
     }
-    if (!table) {
-       why = "%^H is not defined";
-       goto report_short;
-    }
     cvp = hv_fetch(table, key, strlen(key), FALSE);
     if (!cvp || !SvOK(*cvp)) {
-       why = "} is not defined";
        why1 = "$^H{";
        why2 = key;
+       why3 = "} is not defined";
        goto report;
     }
     sv_2mortal(sv);                    /* Parent created it permanently */
@@ -5717,9 +5740,9 @@ S_new_constant(pTHX_ char *s, STRLEN len, const char *key, SV *sv, SV *pv,
     POPSTACK;
     
     if (!SvOK(res)) {
-       why = "}} did not return a defined value";
        why1 = "Call to &{$^H{";
        why2 = key;
+       why3 = "}} did not return a defined value";
        sv = res;
        goto report;
     }
@@ -6682,7 +6705,7 @@ Perl_scan_num(pTHX_ char *start)
     register char *s = start;          /* current position in buffer */
     register char *d;                  /* destination in temp buffer */
     register char *e;                  /* end of temp buffer */
-    NV value;                          /* number read, as a double */
+    NV nv;                             /* number read, as a double */
     SV *sv = Nullsv;                   /* place to put the converted number */
     bool floatit;                      /* boolean: int or float? */
     char *lastub = 0;                  /* position of last underbar */
@@ -6939,39 +6962,8 @@ Perl_scan_num(pTHX_ char *start)
        /* make an sv from the string */
        sv = NEWSV(92,0);
 
-       /* unfortunately this monster needs to be on one line or
-          makedepend will be confused. */
-#if (defined(USE_64_BIT_INT) && (!defined(HAS_STRTOLL)|| !defined(HAS_STRTOULL))) || (!defined(USE_64_BIT_INT) && (!defined(HAS_STRTOL) || !defined(HAS_STRTOUL)))
-
-       /*
-          No working strto[u]l[l]. Since atoi() doesn't do range checks,
-          we need to do this the hard way.
-        */
-
-       value = Atof(PL_tokenbuf);
+#if defined(Strtol) && defined(Strtoul)
 
-       /* 
-          See if we can make do with an integer value without loss of
-          precision.  We use I_V to cast to an int, because some
-          compilers have issues.  Then we try casting it back and see
-          if it was the same.  We only do this if we know we
-          specifically read an integer.
-
-          Note: if floatit is true, then we don't need to do the
-          conversion at all.
-       */
-       {
-           UV tryuv = U_V(value);
-           if (!floatit && (NV)tryuv == value) {
-               if (tryuv <= IV_MAX)
-                   sv_setiv(sv, (IV)tryuv);
-               else
-                   sv_setuv(sv, tryuv);
-           }
-           else
-               sv_setnv(sv, value);
-       }
-#else
        /*
           strtol/strtoll sets errno to ERANGE if the number is too big
           for an integer. We try to do an integer conversion first
@@ -6983,25 +6975,67 @@ Perl_scan_num(pTHX_ char *start)
            UV uv;
            errno = 0;
            if (*PL_tokenbuf == '-')
-               iv = Atol(PL_tokenbuf);
+               iv = Strtol(PL_tokenbuf, (char**)NULL, 10);
            else
-               uv = Atoul(PL_tokenbuf);
+               uv = Strtoul(PL_tokenbuf, (char**)NULL, 10);
            if (errno)
-               floatit = TRUE; /* probably just too large */
+               floatit = TRUE; /* Probably just too large. */
            else if (*PL_tokenbuf == '-')
                sv_setiv(sv, iv);
+           else if (uv <= IV_MAX)
+               sv_setiv(sv, uv); /* Prefer IVs over UVs. */
            else
                sv_setuv(sv, uv);
        }
        if (floatit) {
-           char *tp;
-           errno = 0;
-           value = Atof(PL_tokenbuf);
-           if (errno)
-               Perl_die(aTHX_ "unparseable float");
+           nv = Atof(PL_tokenbuf);
+           sv_setnv(sv, nv);
+       }
+#else
+       /*
+          No working strtou?ll?.
+
+          Unfortunately atol() doesn't do range checks (returning
+          LONG_MIN/LONG_MAX, and setting errno to ERANGE on overflows)
+          everywhere [1], so we cannot use use atol() (or atoll()).
+          If we could, they would be used, as Atol(), very much like
+          Strtol() and Strtoul() are used above.
+
+          [1] XXX Configure test needed to check for atol()
+                  (and atoll() overflow behaviour) XXX --jhi
+
+          We need to do this the hard way.  */
+
+       nv = Atof(PL_tokenbuf);
+
+       /* See if we can make do with an integer value without loss of
+          precision.  We use U_V to cast to a UV, because some
+          compilers have issues.  Then we try casting it back and see
+          if it was the same [1].  We only do this if we know we
+          specifically read an integer.  If floatit is true, then we
+          don't need to do the conversion at all. 
+
+          [1] Note that this is lossy if our NVs cannot preserve our
+          UVs.  There is a metaconfig define, NV_PRESERVES_UV, but we
+          really do hope all such platforms have strtou?ll? to do a
+          lossless IV/UV conversion.
+          XXX Configure test needed to check how many UV bits
+              do our NVs preserve, really (the current test checks
+              for the roundtrip of ~0) XXX --jhi
+              Maybe do some tricks with DBL_MANT_DIG and LDBL_MANT_DIG,
+              and DBL_DIG, LDBL_DIG (this is already available as NV_DIG)?
+          */
+       {
+           UV uv = U_V(nv);
+           if (!floatit && (NV)uv == nv) {
+               if (uv <= IV_MAX)
+                   sv_setiv(sv, uv); /* Prefer IVs over UVs. */
+               else
+                   sv_setuv(sv, uv);
+           }
            else
-               sv_setnv(sv, value);
-       } 
+               sv_setnv(sv, nv);
+       }
 #endif
        if ( floatit ? (PL_hints & HINT_NEW_FLOAT) :
                       (PL_hints & HINT_NEW_INTEGER) )
@@ -7307,8 +7341,14 @@ Perl_yyerror(pTHX_ char *s)
        Perl_warn(aTHX_ "%"SVf, msg);
     else
        qerror(msg);
-    if (PL_error_count >= 10)
-       Perl_croak(aTHX_ "%s has too many errors.\n", CopFILE(PL_curcop));
+    if (PL_error_count >= 10) {
+       if (PL_in_eval && SvCUR(ERRSV))
+           Perl_croak(aTHX_ "%_%s has too many errors.\n",
+                      ERRSV, CopFILE(PL_curcop));
+       else
+           Perl_croak(aTHX_ "%s has too many errors.\n",
+                      CopFILE(PL_curcop));
+    }
     PL_in_my = 0;
     PL_in_my_stash = Nullhv;
     return 0;
index 28e0896..6c555a1 100644 (file)
@@ -14,29 +14,44 @@ S_isa_lookup(pTHX_ HV *stash, const char *name, int len, int level)
     GV* gv;
     GV** gvp;
     HV* hv = Nullhv;
+    SV* subgen = Nullsv;
 
     if (!stash)
        return &PL_sv_undef;
 
-    if(strEQ(HvNAME(stash), name))
+    if (strEQ(HvNAME(stash), name))
        return &PL_sv_yes;
 
     if (level > 100)
-       Perl_croak(aTHX_ "Recursive inheritance detected in package '%s'", HvNAME(stash));
+       Perl_croak(aTHX_ "Recursive inheritance detected in package '%s'",
+                  HvNAME(stash));
 
     gvp = (GV**)hv_fetch(stash, "::ISA::CACHE::", 14, FALSE);
 
-    if (gvp && (gv = *gvp) != (GV*)&PL_sv_undef && (hv = GvHV(gv))) {
-       SV* sv;
-       SV** svp = (SV**)hv_fetch(hv, name, len, FALSE);
-       if (svp && (sv = *svp) != (SV*)&PL_sv_undef)
-           return sv;
+    if (gvp && (gv = *gvp) != (GV*)&PL_sv_undef && (subgen = GvSV(gv))
+       && (hv = GvHV(gv)))
+    {
+       if (SvIV(subgen) == PL_sub_generation) {
+           SV* sv;
+           SV** svp = (SV**)hv_fetch(hv, name, len, FALSE);
+           if (svp && (sv = *svp) != (SV*)&PL_sv_undef) {
+               DEBUG_o( Perl_deb(aTHX_ "Using cached ISA %s for package %s\n",
+                                 name, HvNAME(stash)) );
+               return sv;
+           }
+       }
+       else {
+           DEBUG_o( Perl_deb(aTHX_ "ISA Cache in package %s is stale\n",
+                             HvNAME(stash)) );
+           hv_clear(hv);
+           sv_setiv(subgen, PL_sub_generation);
+       }
     }
 
     gvp = (GV**)hv_fetch(stash,"ISA",3,FALSE);
-    
+
     if (gvp && (gv = *gvp) != (GV*)&PL_sv_undef && (av = GvAV(gv))) {
-       if(!hv) {
+       if (!hv || !subgen) {
            gvp = (GV**)hv_fetch(stash, "::ISA::CACHE::", 14, TRUE);
 
            gv = *gvp;
@@ -44,9 +59,14 @@ S_isa_lookup(pTHX_ HV *stash, const char *name, int len, int level)
            if (SvTYPE(gv) != SVt_PVGV)
                gv_init(gv, stash, "::ISA::CACHE::", 14, TRUE);
 
-           hv = GvHVn(gv);
+           if (!hv)
+               hv = GvHVn(gv);
+           if (!subgen) {
+               subgen = newSViv(PL_sub_generation);
+               GvSV(gv) = subgen;
+           }
        }
-       if(hv) {
+       if (hv) {
            SV** svp = AvARRAY(av);
            /* NOTE: No support for tied ISA */
            I32 items = AvFILLp(av) + 1;
@@ -61,7 +81,7 @@ S_isa_lookup(pTHX_ HV *stash, const char *name, int len, int level)
                            SvPVX(sv), HvNAME(stash));
                    continue;
                }
-               if(&PL_sv_yes == isa_lookup(basestash, name, len, level + 1)) {
+               if (&PL_sv_yes == isa_lookup(basestash, name, len, level + 1)) {
                    (void)hv_store(hv,name,len,&PL_sv_yes,0);
                    return &PL_sv_yes;
                }
@@ -88,23 +108,23 @@ Perl_sv_derived_from(pTHX_ SV *sv, const char *name)
 {
     char *type;
     HV *stash;
-  
+
     stash = Nullhv;
     type = Nullch;
+
     if (SvGMAGICAL(sv))
         mg_get(sv) ;
 
     if (SvROK(sv)) {
         sv = SvRV(sv);
         type = sv_reftype(sv,0);
-        if(SvOBJECT(sv))
+        if (SvOBJECT(sv))
             stash = SvSTASH(sv);
     }
     else {
         stash = gv_stashsv(sv, FALSE);
     }
+
     return (type && strEQ(type,name)) ||
             (stash && isa_lookup(stash, name, strlen(name), 0) == &PL_sv_yes)
         ? TRUE
@@ -142,7 +162,7 @@ XS(XS_UNIVERSAL_isa)
     if (SvGMAGICAL(sv))
        mg_get(sv);
 
-    if (!SvOK(sv) || !(SvROK(sv) || SvCUR(sv)))
+    if (!SvOK(sv) || !(SvROK(sv) || (SvPOK(sv) && SvCUR(sv))))
        XSRETURN_UNDEF;
 
     name = (char *)SvPV(ST(1),n_a);
@@ -168,15 +188,15 @@ XS(XS_UNIVERSAL_can)
     if (SvGMAGICAL(sv))
        mg_get(sv);
 
-    if (!SvOK(sv) || !(SvROK(sv) || SvCUR(sv)))
+    if (!SvOK(sv) || !(SvROK(sv) || (SvPOK(sv) && SvCUR(sv))))
        XSRETURN_UNDEF;
 
     name = (char *)SvPV(ST(1),n_a);
     rv = &PL_sv_undef;
 
-    if(SvROK(sv)) {
+    if (SvROK(sv)) {
         sv = (SV*)SvRV(sv);
-        if(SvOBJECT(sv))
+        if (SvOBJECT(sv))
             pkg = SvSTASH(sv);
     }
     else {
@@ -242,12 +262,12 @@ XS(XS_UNIVERSAL_VERSION)
                    break;
            }
            if (len) {
-               if (SvNIOKp(req) && SvPOK(req)) {
+               if (SvNOK(req) && SvPOK(req)) {
                    /* they said C<use Foo v1.2.3> and $Foo::VERSION
                     * doesn't look like a float: do string compare */
                    if (sv_cmp(req,sv) == 1) {
-                       Perl_croak(aTHX_ "%s version v%vd required--"
-                                  "this is only version v%vd",
+                       Perl_croak(aTHX_ "%s v%vd required--"
+                                  "this is only v%vd",
                                   HvNAME(pkg), req, sv);
                    }
                    goto finish;
@@ -263,7 +283,7 @@ XS(XS_UNIVERSAL_VERSION)
        /* if we get here, we're looking for a numeric comparison,
         * so force the required version into a float, even if they
         * said C<use Foo v1.2.3> */
-       if (SvNIOKp(req) && SvPOK(req)) {
+       if (SvNOK(req) && SvPOK(req)) {
            NV n = SvNV(req);
            req = sv_newmortal();
            sv_setnv(req, n);
diff --git a/utf8.c b/utf8.c
index 212c555..223f5ac 100644 (file)
--- a/utf8.c
+++ b/utf8.c
@@ -101,6 +101,39 @@ Perl_uv_to_utf8(pTHX_ U8 *d, UV uv)
 #endif
 }
 
+/* Tests if some arbitrary number of bytes begins in a valid UTF-8 character.
+ * The actual number of bytes in the UTF-8 character will be returned if it
+ * is valid, otherwise 0. */
+int
+Perl_is_utf8_char(pTHX_ U8 *s)
+{
+    U8 u = *s;
+    int slen, len;
+
+    if (!(u & 0x80))
+       return 1;
+
+    if (!(u & 0x40))
+       return 0;
+
+    if      (!(u & 0x20))      { len = 2; }
+    else if (!(u & 0x10))      { len = 3; }
+    else if (!(u & 0x08))      { len = 4; }
+    else if (!(u & 0x04))      { len = 5; }
+    else if (!(u & 0x02))      { len = 6; }
+    else if (!(u & 0x01))      { len = 7; }
+    else                       { len = 13; } /* whoa! */
+
+    slen = len - 1;
+    s++;
+    while (slen--) {
+       if ((*s & 0xc0) != 0x80)
+           return 0;
+       s++;
+    }
+    return len;
+}
+
 UV
 Perl_utf8_to_uv(pTHX_ U8* s, I32* retlen)
 {
@@ -500,6 +533,8 @@ Perl_to_uni_lower_lc(pTHX_ U32 c)
 bool
 Perl_is_utf8_alnum(pTHX_ U8 *p)
 {
+    if (!is_utf8_char(p))
+       return FALSE;
     if (!PL_utf8_alnum)
        PL_utf8_alnum = swash_init("utf8", "IsAlnum", &PL_sv_undef, 0, 0);
     return swash_fetch(PL_utf8_alnum, p);
@@ -515,6 +550,8 @@ Perl_is_utf8_alnum(pTHX_ U8 *p)
 bool
 Perl_is_utf8_alnumc(pTHX_ U8 *p)
 {
+    if (!is_utf8_char(p))
+       return FALSE;
     if (!PL_utf8_alnum)
        PL_utf8_alnum = swash_init("utf8", "IsAlnumC", &PL_sv_undef, 0, 0);
     return swash_fetch(PL_utf8_alnum, p);
@@ -536,6 +573,8 @@ Perl_is_utf8_idfirst(pTHX_ U8 *p)
 bool
 Perl_is_utf8_alpha(pTHX_ U8 *p)
 {
+    if (!is_utf8_char(p))
+       return FALSE;
     if (!PL_utf8_alpha)
        PL_utf8_alpha = swash_init("utf8", "IsAlpha", &PL_sv_undef, 0, 0);
     return swash_fetch(PL_utf8_alpha, p);
@@ -544,6 +583,8 @@ Perl_is_utf8_alpha(pTHX_ U8 *p)
 bool
 Perl_is_utf8_ascii(pTHX_ U8 *p)
 {
+    if (!is_utf8_char(p))
+       return FALSE;
     if (!PL_utf8_ascii)
        PL_utf8_ascii = swash_init("utf8", "IsAscii", &PL_sv_undef, 0, 0);
     return swash_fetch(PL_utf8_ascii, p);
@@ -552,6 +593,8 @@ Perl_is_utf8_ascii(pTHX_ U8 *p)
 bool
 Perl_is_utf8_space(pTHX_ U8 *p)
 {
+    if (!is_utf8_char(p))
+       return FALSE;
     if (!PL_utf8_space)
        PL_utf8_space = swash_init("utf8", "IsSpace", &PL_sv_undef, 0, 0);
     return swash_fetch(PL_utf8_space, p);
@@ -560,6 +603,8 @@ Perl_is_utf8_space(pTHX_ U8 *p)
 bool
 Perl_is_utf8_digit(pTHX_ U8 *p)
 {
+    if (!is_utf8_char(p))
+       return FALSE;
     if (!PL_utf8_digit)
        PL_utf8_digit = swash_init("utf8", "IsDigit", &PL_sv_undef, 0, 0);
     return swash_fetch(PL_utf8_digit, p);
@@ -568,6 +613,8 @@ Perl_is_utf8_digit(pTHX_ U8 *p)
 bool
 Perl_is_utf8_upper(pTHX_ U8 *p)
 {
+    if (!is_utf8_char(p))
+       return FALSE;
     if (!PL_utf8_upper)
        PL_utf8_upper = swash_init("utf8", "IsUpper", &PL_sv_undef, 0, 0);
     return swash_fetch(PL_utf8_upper, p);
@@ -576,6 +623,8 @@ Perl_is_utf8_upper(pTHX_ U8 *p)
 bool
 Perl_is_utf8_lower(pTHX_ U8 *p)
 {
+    if (!is_utf8_char(p))
+       return FALSE;
     if (!PL_utf8_lower)
        PL_utf8_lower = swash_init("utf8", "IsLower", &PL_sv_undef, 0, 0);
     return swash_fetch(PL_utf8_lower, p);
@@ -584,6 +633,8 @@ Perl_is_utf8_lower(pTHX_ U8 *p)
 bool
 Perl_is_utf8_cntrl(pTHX_ U8 *p)
 {
+    if (!is_utf8_char(p))
+       return FALSE;
     if (!PL_utf8_cntrl)
        PL_utf8_cntrl = swash_init("utf8", "IsCntrl", &PL_sv_undef, 0, 0);
     return swash_fetch(PL_utf8_cntrl, p);
@@ -592,6 +643,8 @@ Perl_is_utf8_cntrl(pTHX_ U8 *p)
 bool
 Perl_is_utf8_graph(pTHX_ U8 *p)
 {
+    if (!is_utf8_char(p))
+       return FALSE;
     if (!PL_utf8_graph)
        PL_utf8_graph = swash_init("utf8", "IsGraph", &PL_sv_undef, 0, 0);
     return swash_fetch(PL_utf8_graph, p);
@@ -600,6 +653,8 @@ Perl_is_utf8_graph(pTHX_ U8 *p)
 bool
 Perl_is_utf8_print(pTHX_ U8 *p)
 {
+    if (!is_utf8_char(p))
+       return FALSE;
     if (!PL_utf8_print)
        PL_utf8_print = swash_init("utf8", "IsPrint", &PL_sv_undef, 0, 0);
     return swash_fetch(PL_utf8_print, p);
@@ -608,6 +663,8 @@ Perl_is_utf8_print(pTHX_ U8 *p)
 bool
 Perl_is_utf8_punct(pTHX_ U8 *p)
 {
+    if (!is_utf8_char(p))
+       return FALSE;
     if (!PL_utf8_punct)
        PL_utf8_punct = swash_init("utf8", "IsPunct", &PL_sv_undef, 0, 0);
     return swash_fetch(PL_utf8_punct, p);
@@ -616,6 +673,8 @@ Perl_is_utf8_punct(pTHX_ U8 *p)
 bool
 Perl_is_utf8_xdigit(pTHX_ U8 *p)
 {
+    if (!is_utf8_char(p))
+       return FALSE;
     if (!PL_utf8_xdigit)
        PL_utf8_xdigit = swash_init("utf8", "IsXDigit", &PL_sv_undef, 0, 0);
     return swash_fetch(PL_utf8_xdigit, p);
@@ -624,6 +683,8 @@ Perl_is_utf8_xdigit(pTHX_ U8 *p)
 bool
 Perl_is_utf8_mark(pTHX_ U8 *p)
 {
+    if (!is_utf8_char(p))
+       return FALSE;
     if (!PL_utf8_mark)
        PL_utf8_mark = swash_init("utf8", "IsM", &PL_sv_undef, 0, 0);
     return swash_fetch(PL_utf8_mark, p);
diff --git a/util.c b/util.c
index 4b0e1c5..8d6ecad 100644 (file)
--- a/util.c
+++ b/util.c
@@ -1515,6 +1515,7 @@ Perl_vdie(pTHX_ const char* pat, va_list *args)
            SV *msg;
 
            ENTER;
+           save_re_context();
            if (message) {
                msg = newSVpvn(message, msglen);
                SvREADONLY_on(msg);
@@ -1604,6 +1605,7 @@ Perl_vcroak(pTHX_ const char* pat, va_list *args)
            SV *msg;
 
            ENTER;
+           save_re_context();
            msg = newSVpvn(message, msglen);
            SvREADONLY_on(msg);
            SAVEFREESV(msg);
@@ -1697,6 +1699,7 @@ Perl_vwarn(pTHX_ const char* pat, va_list *args)
            SV *msg;
 
            ENTER;
+           save_re_context();
            msg = newSVpvn(message, msglen);
            SvREADONLY_on(msg);
            SAVEFREESV(msg);
@@ -1810,15 +1813,17 @@ Perl_vwarner(pTHX_ U32  err, const char* pat, va_list* args)
                 SV *msg;
  
                 ENTER;
+               save_re_context();
                 msg = newSVpvn(message, msglen);
                 SvREADONLY_on(msg);
                 SAVEFREESV(msg);
  
+               PUSHSTACKi(PERLSI_DIEHOOK);
                 PUSHMARK(sp);
                 XPUSHs(msg);
                 PUTBACK;
                 call_sv((SV*)cv, G_DISCARD);
+               POPSTACK;
                 LEAVE;
             }
         }
@@ -1843,21 +1848,23 @@ Perl_vwarner(pTHX_ U32  err, const char* pat, va_list* args)
             SAVESPTR(PL_warnhook);
             PL_warnhook = Nullsv;
             cv = sv_2cv(oldwarnhook, &stash, &gv, 0);
-                LEAVE;
+           LEAVE;
             if (cv && !CvDEPTH(cv) && (CvROOT(cv) || CvXSUB(cv))) {
                 dSP;
                 SV *msg;
  
                 ENTER;
+               save_re_context();
                 msg = newSVpvn(message, msglen);
                 SvREADONLY_on(msg);
                 SAVEFREESV(msg);
  
+               PUSHSTACKi(PERLSI_WARNHOOK);
                 PUSHMARK(sp);
                 XPUSHs(msg);
                 PUTBACK;
                 call_sv((SV*)cv, G_DISCARD);
+               POPSTACK;
                 LEAVE;
                 return;
             }
@@ -2870,9 +2877,13 @@ Perl_scan_bin(pTHX_ char *start, I32 len, I32 *retlen)
 
     for (; len-- && *s; s++) {
        if (!(*s == '0' || *s == '1')) {
-           if (*s == '_')
-               continue; /* Note: does not check for __ and the like. */
-           if (seenb == FALSE && *s == 'b' && ruv == 0) {
+           if (*s == '_' && len && *retlen
+               && (s[1] == '0' || s[1] == '1'))
+           {
+               --len;
+               ++s;
+           }
+           else if (seenb == FALSE && *s == 'b' && ruv == 0) {
                /* Disallow 0bbb0b0bbb... */
                seenb = TRUE;
                continue;
@@ -2895,7 +2906,8 @@ Perl_scan_bin(pTHX_ char *start, I32 len, I32 *retlen)
                if (ckWARN_d(WARN_OVERFLOW))
                    Perl_warner(aTHX_ WARN_OVERFLOW,
                                "Integer overflow in binary number");
-           } else
+           }
+           else
                ruv = xuv | (*s - '0');
        }
        if (overflowed) {
@@ -2935,8 +2947,12 @@ Perl_scan_oct(pTHX_ char *start, I32 len, I32 *retlen)
 
     for (; len-- && *s; s++) {
        if (!(*s >= '0' && *s <= '7')) {
-           if (*s == '_')
-               continue; /* Note: does not check for __ and the like. */
+           if (*s == '_' && len && *retlen
+               && (s[1] >= '0' && s[1] <= '7'))
+           {
+               --len;
+               ++s;
+           }
            else {
                /* Allow \octal to work the DWIM way (that is, stop scanning
                 * as soon as non-octal characters are seen, complain only iff
@@ -2960,7 +2976,8 @@ Perl_scan_oct(pTHX_ char *start, I32 len, I32 *retlen)
                if (ckWARN_d(WARN_OVERFLOW))
                    Perl_warner(aTHX_ WARN_OVERFLOW,
                                "Integer overflow in octal number");
-           } else
+           }
+           else
                ruv = xuv | (*s - '0');
        }
        if (overflowed) {
@@ -3003,9 +3020,13 @@ Perl_scan_hex(pTHX_ char *start, I32 len, I32 *retlen)
     for (; len-- && *s; s++) {
        hexdigit = strchr((char *) PL_hexdigit, *s);
        if (!hexdigit) {
-           if (*s == '_')
-               continue; /* Note: does not check for __ and the like. */
-           if (seenx == FALSE && *s == 'x' && ruv == 0) {
+           if (*s == '_' && len && *retlen && s[1]
+               && (hexdigit = strchr((char *) PL_hexdigit, s[1])))
+           {
+               --len;
+               ++s;
+           }
+           else if (seenx == FALSE && *s == 'x' && ruv == 0) {
                /* Disallow 0xxx0x0xxx... */
                seenx = TRUE;
                continue;
@@ -3028,7 +3049,8 @@ Perl_scan_hex(pTHX_ char *start, I32 len, I32 *retlen)
                if (ckWARN_d(WARN_OVERFLOW))
                    Perl_warner(aTHX_ WARN_OVERFLOW,
                                "Integer overflow in hexadecimal number");
-           } else
+           }
+           else
                ruv = xuv | ((hexdigit - PL_hexdigit) & 15);
        }
        if (overflowed) {
@@ -3570,7 +3592,7 @@ Perl_new_struct_thread(pTHX_ struct perl_thread *t)
 }
 #endif /* USE_THREADS */
 
-#ifdef HUGE_VAL
+#if defined(HUGE_VAL) || (defined(USE_LONG_DOUBLE) && defined(HUGE_VALL))
 /*
  * This hack is to force load of "huge" support from libm.a
  * So it is in perl for (say) POSIX to use. 
@@ -3579,7 +3601,10 @@ Perl_new_struct_thread(pTHX_ struct perl_thread *t)
 NV 
 Perl_huge(void)
 {
- return HUGE_VAL;
+#   if defined(USE_LONG_DOUBLE) && defined(HUGE_VALL)
+    return HUGE_VALL;
+#   endif
+    return HUGE_VAL;
 }
 #endif
 
@@ -3817,6 +3842,6 @@ Perl_report_closed_fh(pTHX_ GV *gv, IO *io, const char *func, const char *obj)
 
     if (io && IoDIRP(io))
        Perl_warner(aTHX_ WARN_CLOSED,
-                   "(Are you trying to call %s() on dirhandle %s?)\n",
+                   "\t(Are you trying to call %s() on dirhandle %s?)\n",
                    func, name);
 }
index 333e891..ca0e7cb 100644 (file)
@@ -105,8 +105,14 @@ XS-based.  C<-c> and C<-f> are implicitly enabled.
 Generate an accessor method for each element of structs and unions. The
 generated methods are named after the element name; will return the current
 value of the element if called without additional arguments; and will set
-the element to the supplied value (and return the old value) if called with
-an additional argument.
+the element to the supplied value (and return the new value) if called with
+an additional argument. Embedded structures and unions are returned as a
+pointer rather than the complete structure, to facilitate chained calls.
+
+These methods all apply to the Ptr type for the structure; additionally
+two methods are constructed for the structure type itself, C<_to_ptr>
+which returns a Ptr type pointing to the same structure, and a C<new>
+method to construct and return a new structure, initialised to zeroes.
 
 =item B<-c>
 
@@ -126,6 +132,16 @@ not found in standard include directories.
 
 Print the usage, help and version for this h2xs and exit.
 
+=item B<-k>
+
+For function arguments declared as C<const>, omit the const attribute in the
+generated XS code.
+
+=item B<-m>
+
+B<Experimental>: for each variable declared in the header file(s), declare
+a perl variable of the same name magically tied to the C variable.
+
 =item B<-n> I<module_name>
 
 Specifies a name to be used for the extension, e.g., S<-n RPC::DCE>
@@ -335,6 +351,8 @@ version: $H2XS_VERSION
     -d   Turn on debugging messages.
     -f   Force creation of the extension even if the C header does not exist.
     -h   Display this help message
+    -k   Omit 'const' attribute on function arguments (used with -x).
+    -m   Generate tied variables for access to declared variables.
     -n   Specify a name to use for the extension (recommended).
     -o   Regular expression for \"opaque\" types.
     -p   Specify a prefix which should be removed from the Perl function names.
@@ -348,9 +366,9 @@ extra_libraries
 }
 
 
-getopts("ACF:M:OPXacdfhn:o:p:s:v:x") || usage;
-use vars qw($opt_A $opt_C $opt_F $opt_M $opt_O $opt_P $opt_X $opt_a $opt_c
-           $opt_d $opt_f $opt_h $opt_n $opt_o $opt_p $opt_s $opt_v $opt_x);
+getopts("ACF:M:OPXacdfhkmn:o:p:s:v:x") || usage;
+use vars qw($opt_A $opt_C $opt_F $opt_M $opt_O $opt_P $opt_X $opt_a $opt_c $opt_d
+           $opt_f $opt_h $opt_k $opt_m $opt_n $opt_o $opt_p $opt_s $opt_v $opt_x);
 
 usage if $opt_h;
 
@@ -402,6 +420,14 @@ To install C::Scan, execute
    perl -MCPAN -e "install C::Scan"
 EOD
   }
+  if (($opt_m || $opt_a) && $C::Scan::VERSION < 0.73) {
+    die <<EOD;
+C::Scan v. 0.73 or later required to use -m or -a options.
+You have version $C::Scan::VERSION installed as $INC{'C/Scan.pm'}.
+To install C::Scan, execute
+   perl -MCPAN -e "install C::Scan"
+EOD
+  }
 }
 elsif ($opt_o or $opt_F) {
   warn <<EOD;
@@ -543,6 +569,8 @@ my %structs;
 
 my @fnames;
 my @fnames_no_prefix;
+my %vdecl_hash;
+my @vdecls;
 
 if( ! $opt_X ){  # use XS, unless it was disabled
   open(XS, ">$modfname.xs") || die "Can't create $ext$modpname/$modfname.xs: $!\n";
@@ -576,6 +604,22 @@ if( ! $opt_X ){  # use XS, unless it was disabled
        @structs{keys %$structs} = values %$structs;
       }
 
+      if ($opt_m) {
+       %vdecl_hash = %{ $c->get('vdecl_hash') };
+       @vdecls = sort keys %vdecl_hash;
+       for (local $_ = 0; $_ < @vdecls; ++$_) {
+         my $var = $vdecls[$_];
+         my($type, $post) = @{ $vdecl_hash{$var} };
+         if (defined $post) {
+           warn "Can't handle variable '$type $var $post', skipping.\n";
+           splice @vdecls, $_, 1;
+           redo;
+         }
+         $type = normalize_type($type);
+         $vdecl_hash{$var} = $type;
+       }
+      }
+
       unless ($tmask_all) {
        warn "Scanning $filename for typedefs...\n";
        my $td = $c->get('typedef_hash');
@@ -586,7 +630,7 @@ if( ! $opt_X ){  # use XS, unless it was disabled
       }
     }
     { local $" = '|';
-      $typedef_rex = qr(\b(?<!struct )(?:@good_td)\b);
+      $typedef_rex = qr(\b(?<!struct )(?:@good_td)\b) if @good_td;
     }
     %known_fnames = map @$_[1,3], @$fdecls_parsed; # [1,3] is NAME, FULLTEXT
     if ($fmask) {
@@ -646,6 +690,7 @@ package $module;
 
 require 5.005_62;
 use strict;
+use warnings;
 END
 
 unless( $opt_X || $opt_c || $opt_A ){
@@ -682,7 +727,7 @@ $myISA .= ' DynaLoader'     unless $opt_X;  # no XS
 $myISA .= ');';
 print PM "\n$myISA\n\n";
 
-my @exported_names = (@const_names, @fnames_no_prefix);
+my @exported_names = (@const_names, @fnames_no_prefix, map '$'.$_, @vdecls);
 
 print PM<<"END";
 # Items to export into callers namespace by default. Note: do not export
@@ -705,6 +750,10 @@ our \$VERSION = '$TEMPLATE_VERSION';
 
 END
 
+if (@vdecls) {
+    printf PM "our(@{[ join ', ', map '$'.$_, @vdecls ]});\n\n";
+}
+
 print PM <<"END" unless $opt_c or $opt_X;
 sub AUTOLOAD {
     # This AUTOLOAD is used to 'autoload' constants from the constant()
@@ -746,6 +795,16 @@ bootstrap $module \$VERSION;
 END
 }
 
+# tying the variables can happen only after bootstrap
+if (@vdecls) {
+    printf PM <<END;
+{
+@{[ join "\n", map "    _tievar_$_(\$$_);", @vdecls ]}
+}
+
+END
+}
+
 my $after;
 if( $opt_P ){ # if POD is disabled
        $after = '__END__';
@@ -901,7 +960,7 @@ sub td_is_struct {
   my $out = $struct_typedefs{$type};
   return $out if defined $out;
   my $otype = $type;
-  $out = ($type =~ /^struct\b/) && !td_is_pointer($type);
+  $out = ($type =~ /^(struct|union)\b/) && !td_is_pointer($type);
   # This converts only the guys which do not have trailing part in the typedef
   if (not $out
       and $typedef_rex and $type =~ s/($typedef_rex)/$typedefs_pre{$1}/go) {
@@ -1082,6 +1141,8 @@ END
   write_const(\*XS, '', 0, \@const_names);
 }
 
+print_tievar_subs(\*XS, $_, $vdecl_hash{$_}) for @vdecls;
+
 my $prefix;
 $prefix = "PREFIX = $opt_p" if defined $opt_p;
 
@@ -1140,6 +1201,9 @@ sub print_decl {
 
   my @argnames = map {$_->[1]} @$args;
   my @argtypes = map { normalize_type( $_->[0], 1 ) } @$args;
+  if ($opt_k) {
+    s/^\s*const\b\s*// for @argtypes;
+  }
   my @argarrays = map { $_->[4] || '' } @$args;
   my $numargs = @$args;
   if ($numargs and $argtypes[-1] eq '...') {
@@ -1162,12 +1226,99 @@ EOP
   }
 }
 
+sub print_tievar_subs {
+  my($fh, $name, $type) = @_;
+  print $fh <<END;
+I32
+_get_$name(IV index, SV *sv) {
+    dSP;
+    PUSHMARK(SP);
+    XPUSHs(sv);
+    PUTBACK;
+    (void)call_pv("$module\::_get_$name", G_DISCARD);
+    return (I32)0;
+}
+
+I32
+_set_$name(IV index, SV *sv) {
+    dSP;
+    PUSHMARK(SP);
+    XPUSHs(sv);
+    PUTBACK;
+    (void)call_pv("$module\::_set_$name", G_DISCARD);
+    return (I32)0;
+}
+
+END
+}
+
+sub print_tievar_xsubs {
+  my($fh, $name, $type) = @_;
+  print $fh <<END;
+void
+_tievar_$name(sv)
+       SV* sv
+    PREINIT:
+       struct ufuncs uf;
+    CODE:
+       uf.uf_val = &_get_$name;
+       uf.uf_set = &_set_$name;
+       uf.uf_index = (IV)&_get_$name;
+       sv_magic(sv, 0, 'U', (char*)&uf, sizeof(uf));
+
+void
+_get_$name(THIS)
+       $type THIS = NO_INIT
+    CODE:
+       THIS = $name;
+    OUTPUT:
+       SETMAGIC: DISABLE
+       THIS
+
+void
+_set_$name(THIS)
+       $type THIS
+    CODE:
+       $name = THIS;
+
+END
+}
+
 sub print_accessors {
   my($fh, $name, $struct) = @_;
   return unless defined $struct && $name !~ /\s|_ANON/;
   $name = normalize_type($name);
   my $ptrname = normalize_type("$name *");
-  printf $fh <<"EOF";
+  print $fh <<"EOF";
+
+MODULE = $module               PACKAGE = ${name}               $prefix
+
+$name *
+_to_ptr(THIS)
+       $name THIS = NO_INIT
+    PROTOTYPE: \$
+    CODE:
+       if (sv_derived_from(ST(0), "$name")) {
+           STRLEN len;
+           char *s = SvPV((SV*)SvRV(ST(0)), len);
+           if (len != sizeof(THIS))
+               croak("Size \%d of packed data != expected \%d",
+                       len, sizeof(THIS));
+           RETVAL = ($name *)s;
+       }   
+       else
+           croak("THIS is not of type $name");
+    OUTPUT:
+       RETVAL
+
+$name
+new(CLASS)
+       char *CLASS = NO_INIT
+    PROTOTYPE: \$
+    CODE:
+       Zero((void*)&RETVAL, sizeof(RETVAL), char);
+    OUTPUT:
+       RETVAL
 
 MODULE = $module               PACKAGE = ${name}Ptr            $prefix
 
@@ -1176,25 +1327,28 @@ EOF
   while (@items) {
     my $item = shift @items;
     if ($item->[0] =~ /_ANON/) {
-      if (defined $item->[1]) {
+      if (defined $item->[2]) {
        push @items, map [
-         $_->[0], "$item->[1]_$_->[1]", "$item->[1].$_->[1]"
+         @$_[0, 1], "$item->[2]_$_->[2]", "$item->[2].$_->[2]",
        ], @{ $structs{$item->[0]} };
       } else {
        push @items, @{ $structs{$item->[0]} };
       }
     } else {
       my $type = normalize_type($item->[0]);
+      my $ttype = $structs{$type} ? normalize_type("$type *") : $type;
       print $fh <<"EOF";
-$type
-$item->[1](THIS, __value = NO_INIT)
+$ttype
+$item->[2](THIS, __value = NO_INIT)
        $ptrname THIS
        $type __value
     PROTOTYPE: \$;\$
     CODE:
-       RETVAL = THIS->$item->[-1];
        if (items > 1)
            THIS->$item->[-1] = __value;
+       RETVAL = @{[
+           $type eq $ttype ? "THIS->$item->[-1]" : "&(THIS->$item->[-1])"
+       ]};
     OUTPUT:
        RETVAL
 
@@ -1293,13 +1447,17 @@ sub assign_typemap_entry {
   return $entry;
 }
 
+for (@vdecls) {
+  print_tievar_xsubs(\*XS, $_, $vdecl_hash{$_});
+}
+
 if ($opt_x) {
-    for my $decl (@$fdecls_parsed) { print_decl(\*XS, $decl) }
-    if ($opt_a) {
-       while (my($name, $struct) = each %structs) {
-           print_accessors(\*XS, $name, $struct);
-       }
+  for my $decl (@$fdecls_parsed) { print_decl(\*XS, $decl) }
+  if ($opt_a) {
+    while (my($name, $struct) = each %structs) {
+      print_accessors(\*XS, $name, $struct);
     }
+  }
 }
 
 close XS;
index f6280d2..9e7936d 100644 (file)
@@ -91,7 +91,7 @@ BEGIN {
     $::HaveUtil = ($@ eq "");
 };
 
-my $Version = "1.27";
+my $Version = "1.29";
 
 # Changed in 1.06 to skip Mail::Send and Mail::Util if not available.
 # Changed in 1.07 to see more sendmail execs, and added pipe output.
@@ -123,6 +123,8 @@ my $Version = "1.27";
 # Changed in 1.25 Warn on failure to open save file. HVDS 98-07-12
 # Changed in 1.26 Don't require -t STDIN for -ok. HVDS 98-07-15
 # Changed in 1.27 Added Mac OS and File::Spec support CNANDOR 99-07-27
+# Changed in 1.28 Additional questions for Perlbugtron RFOLEY 20.03.2000
+# Changed in 1.29 Perlbug(tron): auto(-ok), short prompts RFOLEY 05-05-2000
 
 # TODO: - Allow the user to re-name the file on mail failure, and
 #       make sure failure (transmission-wise) of Mail::Send is
@@ -130,7 +132,7 @@ my $Version = "1.27";
 #       - Test -b option
 
 my( $file, $usefile, $cc, $address, $perlbug, $testaddress, $filename,
-    $subject, $from, $verbose, $ed, $outfile, $Is_MacOS,
+    $subject, $from, $verbose, $ed, $outfile, $Is_MacOS, $category, $severity, 
     $fh, $me, $Is_MSWin32, $Is_VMS, $msg, $body, $andcc, %REP, $ok);
 
 my $perl_version = $^V ? sprintf("v%vd", $^V) : $];
@@ -157,6 +159,48 @@ Send();
 
 exit;
 
+sub ask_for_alternatives { # (category|severity)
+    my $name = shift;
+    my %alts = (
+       'category' => {
+           'default' => 'core',
+           'ok'      => 'install',
+           'opts'    => [qw(core docs install library utilities)], # patch, notabug
+       },
+       'severity' => {
+           'default' => 'low',
+           'ok'      => 'none',
+           'opts'    => [qw(critical high medium low wishlist none)], # zero
+       },      
+    );
+    die "Invalid alternative($name) requested\n" unless grep(/^$name$/, keys %alts); 
+    my $alt = "";
+    if ($ok) {
+       $alt = $alts{$name}{'ok'};
+    } else {
+       my @alts = @{$alts{$name}{'opts'}};
+       paraprint <<EOF;
+Please pick a \u$name from the following:
+
+    @alts
+
+EOF
+       my $err = 0;
+       do {
+           if ($err++ > 5) {
+               die "Invalid $name: aborting.\n";
+           }
+           print "Please enter a \u$name [$alts{$name}{'default'}]: ";
+           $alt = <>;
+           chomp $alt;
+           if ($alt =~ /^\s*$/) {
+               $alt = $alts{$name}{'default'};
+           }
+       } while !((($alt) = grep(/^$alt/i, @alts)));
+    }
+    lc $alt;
+}
+
 sub Init {
     # -------- Setup --------
 
@@ -437,6 +481,12 @@ EOF
        }
     }
 
+    # Prompt for category of bug
+    $category ||= ask_for_alternatives('category');
+
+    # Prompt for severity of bug
+    $severity ||= ask_for_alternatives('severity');
+
     # Generate scratch file to edit report in
     $filename = filename();
 
@@ -516,8 +566,14 @@ EOF
 sub Dump {
     local(*OUT) = @_;
 
-    print REP "\n---\n";
-    print REP "This perlbug was built using Perl $config_tag1\n",
+    print OUT <<EFF;
+---
+Flags:
+    category=$category
+    severity=$severity
+---
+EFF
+    print OUT "This perlbug was built using Perl $config_tag1\n",
            "It is being executed now by  Perl $config_tag2.\n\n"
        if $config_tag2 ne $config_tag1;
 
@@ -1130,8 +1186,9 @@ by Gurusamy Sarathy (E<lt>gsar@activestate.comE<gt>), Tom Christiansen
 Charles F. Randall (E<lt>cfr@pobox.comE<gt>), Mike Guy
 (E<lt>mjtg@cam.a.ukE<gt>), Dominic Dunlop (E<lt>domo@computer.orgE<gt>),
 Hugo van der Sanden (E<lt>hv@crypt0.demon.co.ukE<gt>),
-Jarkko Hietaniemi (E<lt>jhi@iki.fiE<gt>), hris Nandor
-(E<lt>pudge@pobox.comE<gt>), and Jon Orwant (E<lt>orwant@media.mit.eduE<gt>).
+Jarkko Hietaniemi (E<lt>jhi@iki.fiE<gt>), Chris Nandor
+(E<lt>pudge@pobox.comE<gt>), Jon Orwant (E<lt>orwant@media.mit.eduE<gt>,
+and Richard Foley (E<lt>richard@rfi.netE<gt>).
 
 =head1 SEE ALSO
 
index 971923b..f0636f6 100644 (file)
@@ -390,10 +390,16 @@ sub _ccharness
     @$libs = grep { !(/DynaLoader\.a$/ && ($dynaloader = $_)) } @$libs
        if($^O eq 'cygwin');
 
+    my $args = "@args";
+    if ($^O eq 'MSWin32' && $Config{cc} =~ /^bcc/i) {
+        # BC++ cmd line syntax does not allow space between -[oexz...] and arg
+        $args =~ s/(^|\s+)-([oe])\s+/$1-$2/g;
+    }
+
     my $ccflags = $Config{ccflags};
     $ccflags .= ' -DUSEIMPORTLIB' if $^O eq 'cygwin';
     my $cccmd = "$Config{cc} $ccflags $optimize $incdir "
-               ."@args $dynaloader $linkargs @$libs";
+               ."$args $dynaloader $linkargs @$libs";
 
     _print ("$cccmd\n", 36);
     _run("$cccmd", 18 );
index 6430589..5d136b3 100644 (file)
@@ -38,6 +38,7 @@ INIT { eval { umask(0077) } }   # doubtless someone has no mask
 
 my \@pagers = ();
 push \@pagers, "$Config{'pager'}" if -x "$Config{'pager'}";
+my \$bindir = "$Config{installscript}";
 
 !GROK!THIS!
 
@@ -48,6 +49,7 @@ print OUT <<'!NO!SUBS!';
 use Fcntl;    # for sysopen
 use Getopt::Std;
 use Config '%Config';
+use File::Spec::Functions qw(catfile splitdir);
 
 #
 # Perldoc revision #1 -- look up a piece of documentation in .pod format that
@@ -80,14 +82,6 @@ my $Is_VMS = $^O eq 'VMS';
 my $Is_MSWin32 = $^O eq 'MSWin32';
 my $Is_Dos = $^O eq 'dos';
 
-# refuse to run if we should be tainting and aren't
-# (but regular users deserve protection too, though!)
-if (!($Is_VMS || $Is_MSWin32 || $Is_Dos) && ($> == 0 || $< == 0)
-     && !am_taint_checking()) 
-{ 
-    die "Superuser must not run $0 without security audit and taint checks.\n";
-} 
-
 sub usage{
     warn "@_\n" if @_;
     # Erase evidence of previous errors (if any), so exit status is simple.
@@ -111,6 +105,7 @@ Options:
     -v  Verbosely describe what's going on
     -X  use index if present (looks for pod.idx at $Config{archlib})
     -q   Search the text of questions (not answers) in perlfaq[1-9]
+    -U  Run in insecure mode (superuser only)
 
 PageName|ModuleName...
          is the name of a piece of documentation that you want to look at. You
@@ -140,7 +135,7 @@ if (defined $ENV{"PERLDOC"}) {
 }
 !NO!SUBS!
 
-my $getopts = "mhtluvriFf:Xq:n:";
+my $getopts = "mhtluvriFf:Xq:n:U";
 print OUT <<"!GET!OPTS!";
 
 use vars qw( @{[map "\$opt_$_", ($getopts =~ /\w/g)]} );
@@ -151,6 +146,25 @@ getopts("$getopts") || usage;
 print OUT <<'!NO!SUBS!';
 
 usage if $opt_h;
+
+# refuse to run if we should be tainting and aren't
+# (but regular users deserve protection too, though!)
+if (!($Is_VMS || $Is_MSWin32 || $Is_Dos) && ($> == 0 || $< == 0)
+     && !am_taint_checking()) 
+{{
+    if ($opt_U) {
+        my $id = eval { getpwnam("nobody") };
+           $id = eval { getpwnam("nouser") } unless defined $id;
+           $id = -2 unless defined $id;
+        eval {
+            $> = $id;  # must do this one first!
+            $< = $id;
+        };
+        last if !$@ && $< && $>;
+    }
+    die "Superuser must not run $0 without security audit and taint checks.\n";
+}}
+
 $opt_n = "nroff" if !$opt_n;
 
 my $podidx;
@@ -190,7 +204,8 @@ if (-f "Makefile.PL") {
 
     # don't add if superuser
     if ($< && $>) {   # don't be looking too hard now!
-       eval q{ use blib; 1 } or die;
+       eval q{ use blib; 1 };
+       warn $@ if $@ && $opt_v;
     }
 }
 
@@ -211,7 +226,7 @@ sub containspod {
 
 sub minus_f_nocase {
      my($dir,$file) = @_;
-     my $path = join('/',$dir,$file);  # XXX: dirseps
+     my $path = catfile($dir,$file);
      return $path if -f $path and -r _;
      if (!$opt_i or $Is_VMS or $Is_MSWin32 or $Is_Dos or $^O eq 'os2') {
         # on a case-forgiving file system or if case is important
@@ -225,13 +240,13 @@ sub minus_f_nocase {
      local($")="/";
      my @p = ($dir);
      my($p,$cip);
-     foreach $p (split(m!/!, $file)){  # XXX: dirseps
-       my $try = "@p/$p";
+     foreach $p (splitdir $file){
+       my $try = catfile @p, $p;
        stat $try;
        if (-d _) {
            push @p, $p;
            if ( $p eq $global_target) {
-               my $tmp_path = join ('/', @p);  # XXX: dirseps
+               my $tmp_path = catfile @p;
                my $path_f = 0;
                for (@global_found) {
                    $path_f = 1 if $_ eq $tmp_path;
@@ -290,7 +305,7 @@ sub searchfor {
     my $ret;
     my $i;
     my $dir;
-    $global_target = (split(m!/!, $s))[-1];   # XXX: dirseps
+    $global_target = (splitdir $s)[-1];   # XXX: why not use File::Basename?
     for ($i=0; $i<@dirs; $i++) {
        $dir = $dirs[$i];
        ($dir = VMS::Filespec::unixpath($dir)) =~ s!/\z!! if $Is_VMS;
@@ -313,10 +328,10 @@ sub searchfor {
 
        if ($recurse) {
            opendir(D,$dir)     or die "Can't opendir $dir: $!";
-           my @newdirs = map "$dir/$_", grep {  # XXX: dirseps
+           my @newdirs = map catfile($dir, $_), grep {
                not /^\.\.?\z/s and
                not /^auto\z/s  and   # save time! don't search auto dirs
-               -d  "$dir/$_"  # XXX: dirseps
+               -d  catfile($dir, $_)
            } readdir D;
            closedir(D)         or die "Can't closedir $dir: $!";
            next unless @newdirs;
@@ -350,7 +365,7 @@ sub printout {
        close OUT   or die "can't close $tmp: $!";
     }
     elsif (not $opt_u) {
-       my $cmd = "pod2man --lax $file | $opt_n -man";
+       my $cmd = catfile($bindir, 'pod2man') . " --lax $file | $opt_n -man";
        $cmd .= " | col -x" if $^O =~ /hpux/;
        my $rslt = `$cmd`;
        $rslt = filter_nroff($rslt) if $filter;
@@ -413,8 +428,7 @@ sub cleanup {
 my @found;
 foreach (@pages) {
     if ($podidx && open(PODIDX, $podidx)) {
-       my $searchfor = $_;
-       $searchfor =~ s,::,/,g;     # XXX: dirseps
+       my $searchfor = catfile split '::';
        print STDERR "Searching for '$searchfor' in $podidx\n" if $opt_v;
        local $_;
        while (<PODIDX>) {
@@ -742,6 +756,15 @@ The B<-X> option looks for a entry whose basename matches the name given on the
 command line in the file C<$Config{archlib}/pod.idx>.  The pod.idx file should
 contain fully qualified filenames, one per line.
 
+=item B<-U> run insecurely
+
+Because B<perldoc> does not run properly tainted, and is known to
+have security issues, it will not normally execute as the superuser.
+If you use the B<-U> flag, it will do so, but only after setting
+the effective and real IDs to nobody's or nouser's account, or -2
+if unavailable.  If it cannot relinguish its privileges, it will not
+run.  
+
 =item B<PageName|ModuleName|ProgramName>
 
 The item you want to look up.  Nested modules (such as C<File::Basename>)
@@ -769,7 +792,7 @@ One useful value for C<PERLDOC_PAGER> is C<less -+C -E>.
 
 =head1 VERSION
 
-This is perldoc v2.01.
+This is perldoc v2.03.
 
 =head1 AUTHOR
 
@@ -781,6 +804,12 @@ and others.
 =cut
 
 #
+# Version 2.03: Sun Apr 23 16:56:34 BST 2000
+#      Hugo van der Sanden <hv@crypt0.demon.co.uk>
+#      don't die when 'use blib' fails
+# Version 2.02: Mon Mar 13 18:03:04 MST 2000
+#       Tom Christiansen <tchrist@perl.com>
+#      Added -U insecurity option
 # Version 2.01: Sat Mar 11 15:22:33 MST 2000 
 #       Tom Christiansen <tchrist@perl.com>, querulously.
 #       Security and correctness patches.
index d485e0e..b51f2c9 100644 (file)
@@ -637,6 +637,6 @@ it encounters an error.
 =head1 REVISION
 
 This document was last revised on 13-Oct-1998, for Perl 5.004, 5.005, and
-5.006.
+5.6.0.
 
 =cut
index a0e6e3c..5d738d0 100644 (file)
@@ -20,7 +20,7 @@ vmsish - Perl pragma to control VMS-specific language features
 
 If no import list is supplied, all possible VMS-specific features are
 assumed.  Currently, there are four VMS-specific features available:
-'status' (a.k.a '$?'), 'exit', 'time' and 'messages' (a.k.a 'message').
+'status' (a.k.a '$?'), 'exit', 'time' and 'hushed'.
 
 =over 6
 
@@ -44,8 +44,13 @@ default of Universal Time (a.k.a Greenwich Mean Time, or GMT).
 
 =item C<vmsish hushed>
 
-This supresses printing of VMS status messages to SYS$OUTPUT and SYS$ERROR
-if Perl terminates with an error status.
+This suppresses printing of VMS status messages to SYS$OUTPUT and SYS$ERROR
+if Perl terminates with an error status.  This primarily effects error
+exits from things like Perl compiler errors or "standard Perl" runtime errors,
+where text error messages are also generated by Perl.
+
+The error exits from inside the core are generally more serious, and are
+not supressed.
 
 =back
 
index 3883233..e6d13f3 100644 (file)
@@ -569,7 +569,7 @@ invoked using C<MCR> or a text file which should be passed to DCL
 as a command procedure.
 
 If LIST consists of the empty string, C<system> spawns an
-interactive DCL subprocess, in the same fashion as typiing
+interactive DCL subprocess, in the same fashion as typing
 B<SPAWN> at the DCL prompt.
 
 Perl waits for the subprocess to complete before continuing
@@ -597,7 +597,7 @@ not appear separately in the "child time" field, depending on
 whether L<times> keeps track of subprocesses separately.  Note
 especially that the VAXCRTL (at least) keeps track only of
 subprocesses spawned using L<fork> and L<exec>; it will not
-accumulate the times of suprocesses spawned via pipes, L<system>,
+accumulate the times of subprocesses spawned via pipes, L<system>,
 or backticks.
 
 =item unlink LIST
@@ -661,7 +661,7 @@ The FLAGS argument is ignored in all cases.
 
 The following VMS-specific information applies to the indicated
 "special" Perl variables, in addition to the general information
-in L<perlvar>.  Where there is a conflict, this infrmation
+in L<perlvar>.  Where there is a conflict, this information
 takes precedence.
 
 =over 4
@@ -858,9 +858,9 @@ it's equivalent to calling fflush() and fsync() from C.
 
 =head2 SDBM_File
 
-SDBM_File works peroperly on VMS. It has, however, one minor
-difference. The database directory file created has a L<.sdbm_dir>
-extension rather than a L<.dir> extension. L<.dir> files are VMS filesystem
+SDBM_File works properly on VMS. It has, however, one minor
+difference. The database directory file created has a F<.sdbm_dir>
+extension rather than a F<.dir> extension. F<.dir> files are VMS filesystem
 directory files, and using them for other purposes could cause unacceptable
 problems.
 
index b16eb53..4aea63b 100644 (file)
@@ -69,14 +69,18 @@ $ myname = myhostname
 $ IF myname .EQS. "" THEN myname = F$TRNLNM("SYS$NODE")
 $!
 $! ##ADD NEW CONSTANTS HERE##
+$ perl_d_isnan= = "define"
+$ perl_sizesize = "4"
 $ perl_shmattype = ""
 $ perl_mmaptype = ""
 $ perl_gidformat = "lu"
 $ perl_gidsize = "4"
+$ perl_gidsign = "1"
 $ perl_groupstype = "Gid_t"
 $ perl_stdio_stream_array = ""
 $ perl_uidformat = "lu"
 $ perl_uidsize = "4"
+$ perl_uidsign = "1"
 $ perl_d_getcwd = "undef"
 $ perl_d_nv_preserves_uv = "define"
 $ perl_d_fs_data_s = "undef"
@@ -397,6 +401,8 @@ $ perl_lseektype="int"
 $ perl_i_values="undef"
 $ perl_malloctype="void *"
 $ perl_freetype="void"
+$ perl_d_perl_otherlibdirs="undef"
+$ perl_otherlibdirs=""
 $ IF mymalloc
 $ THEN
 $ perl_d_mymalloc="define"
@@ -483,6 +489,9 @@ $   perl_d_quad = "define"
 $   perl_quadtype = "long long"
 $   perl_uquadtype = "unsigned long long"
 $   perl_quadkind  = "QUAD_IS_LONG_LONG"
+$   perl_d_frexpl = "define"
+$   perl_d_isnanl = "define"
+$   perl_d_modfl = "define"
 $ ELSE
 $   perl_d_PRIfldbl = "undef"
 $   perl_d_PRIgldbl = "undef"
@@ -500,6 +509,9 @@ $   perl_d_quad = "undef"
 $   perl_quadtype = "long"
 $   perl_uquadtype = "unsigned long"
 $   perl_quadkind  = "QUAD_IS_LONG"
+$   perl_d_frexpl = "undef"
+$   perl_d_isnanl = "undef"
+$   perl_d_modfl = "undef"
 $ ENDIF
 $!
 $! Now some that we build up
@@ -3205,6 +3217,49 @@ $
 $ perl_ptrsize=line
 $ WRITE_RESULT "ptrsize is ''perl_ptrsize'"
 $!
+$! Check for size_t size
+$!
+$ OS
+$ WS "#ifdef __DECC
+$ WS "#include <stdlib.h>
+$ WS "#endif
+$ WS "#include <stdio.h>
+$ WS "int main()
+$ WS "{"
+$ WS "int foo;
+$ WS "foo = sizeof(size_t);
+$ WS "printf(""%d\n"", foo);
+$ WS "exit(0);
+$ WS "}"
+$ CS
+$   DEFINE SYS$ERROR _NLA0:
+$   DEFINE SYS$OUTPUT _NLA0:
+$   ON ERROR THEN CONTINUE
+$   ON WARNING THEN CONTINUE
+$   'Checkcc' temp.c
+$   If Needs_Opt
+$   THEN
+$     link temp.obj,temp.opt/opt
+$   else
+$     link temp.obj
+$   endif
+$   OPEN/WRITE TEMPOUT [-.uu]tempout.lis
+$   DEASSIGN SYS$OUTPUT
+$   DEASSIGN SYS$ERROR
+$   DEFINE SYS$ERROR TEMPOUT
+$   DEFINE SYS$OUTPUT TEMPOUT
+$   mcr []temp
+$   CLOSE TEMPOUT
+$   DEASSIGN SYS$OUTPUT
+$   DEASSIGN SYS$ERROR
+$   OPEN/READ TEMPOUT [-.uu]tempout.lis
+$   READ TEMPOUT line
+$   CLOSE TEMPOUT
+$ DELETE/NOLOG [-.uu]tempout.lis;
+$ 
+$ perl_sizesize=line
+$ WRITE_RESULT "sizesize is ''perl_sizesize'"
+$!
 $! Check rand48 and its ilk
 $!
 $ OS
@@ -3767,6 +3822,8 @@ $ WC "d_mkdir='" + perl_d_mkdir + "'"
 $ WC "d_msg='" + perl_d_msg + "'"
 $ WC "d_open3='" + perl_d_open3 + "'"
 $ WC "d_poll='" + perl_d_poll + "'"
+$ WC "d_perl_otherlibdirs='" + perl_d_perl_otherlibdirs + "'"
+$ WC "otherlibdirs='" + perl_otherlibdirs + "'"
 $ WC "d_readdir='" + perl_d_readdir + "'"
 $ WC "d_seekdir='" + perl_d_seekdir + "'"
 $ WC "d_telldir='" + perl_d_telldir + "'"
@@ -3963,13 +4020,21 @@ $ WC "libs='" + perl_libs + "'"
 $ WC "libc='" + perl_libc + "'"
 $ WC "xs_apiversion='" + version + "'"
 $ WC "pm_apiversion='" + version + "'"
+$ WC "version='" + version + "'"
+$ WC "revision='" + revision + "'"
+$ WC "patchlevel='" + patchlevel + "'"
+$ WC "subversion='" + subversion + "'"
+$ WC "PERL_VERSION='" + patchlevel + "'"
+$ WC "PERL_SUBVERSION='" + subversion + "'"
 $ WC "pager='" + perl_pager + "'"
 $ WC "uidtype='" + perl_uidtype + "'"
 $ WC "uidformat='" + perl_uidformat + "'"
 $ WC "uidsize='" + perl_uidsize + "'"
+$ WC "uidsign='" + perl_uidsign + "'"
 $ WC "gidtype='" + perl_gidtype + "'"
 $ WC "gidformat='" + perl_gidformat + "'"
 $ WC "gidsize='" + perl_gidsize + "'"
+$ WC "gidsign='" + perl_gidsign + "'"
 $ WC "usethreads='" + perl_usethreads + "'"
 $ WC "d_pthread_yield='" + perl_d_pthread_yield + "'"
 $ WC "d_pthreads_created_joinable='" + perl_d_pthreads_created_joinable + "'"
@@ -4195,6 +4260,11 @@ $ WC "uvuformat='" + perl_uvuformat + "'"
 $ WC "uvoformat='" + perl_uvoformat + "'"
 $ WC "uvxformat='" + perl_uvxformat + "'"
 $ WC "d_vms_case_sensitive_symbols='" + d_vms_be_case_sensitive + "'"
+$ WC "sizesize='" + perl_sizesize + "'"
+$ WC "d_frexpl='" + perl_d_frexpl + "'"
+$ WC "d_isnan='" + perl_d_isnan + "'"
+$ WC "d_isnanl='" + perl_d_isnanl + "'"
+$ WC "d_modfl='" + perl_d_modfl + "'"
 $!
 $! ##WRITE NEW CONSTANTS HERE##
 $!
index c18ca49..c50d828 100644 (file)
--- a/vms/vms.c
+++ b/vms/vms.c
@@ -911,6 +911,30 @@ my_mkdir(char *dir, Mode_t mode)
 }  /* end of my_mkdir */
 /*}}}*/
 
+/*{{{int my_chdir(char *)*/
+int
+my_chdir(char *dir)
+{
+  STRLEN dirlen = strlen(dir);
+  dTHX;
+
+  /* zero length string sometimes gives ACCVIO */
+  if (dirlen == 0) return -1;
+
+  /* some versions of CRTL chdir() doesn't tolerate trailing /, since
+   * that implies
+   * null file name/type.  However, it's commonplace under Unix,
+   * so we'll allow it for a gain in portability.
+   */
+  if (dir[dirlen-1] == '/') {
+    char *newdir = savepvn(dir,dirlen-1);
+    int ret = chdir(newdir);
+    Safefree(newdir);
+    return ret;
+  }
+  else return chdir(dir);
+}  /* end of my_chdir */
+/*}}}*/
 
 static void
 create_mbx(unsigned short int *chan, struct dsc$descriptor_s *namdsc)
index e460241..16d119d 100644 (file)
 #define do_rmdir               Perl_do_rmdir
 #define kill_file              Perl_kill_file
 #define my_mkdir               Perl_my_mkdir
+#define my_chdir               Perl_my_chdir
 #define my_utime               Perl_my_utime
 #define rmsexpand      Perl_rmsexpand
 #define rmsexpand_ts   Perl_rmsexpand_ts
 #define TEST_VMSISH(h) (PL_curcop->op_private & ((h) >> HINT_V_VMSISH))
 #define VMSISH_HUSHED  TEST_VMSISH(HINT_M_VMSISH_HUSHED)
 #define VMSISH_STATUS  TEST_VMSISH(HINT_M_VMSISH_STATUS)
-#define VMSISH_EXIT    TEST_VMSISH(HINT_M_VMSISH_EXIT)
 #define VMSISH_TIME    TEST_VMSISH(HINT_M_VMSISH_TIME)
 
 /* Flags for vmstrnenv() */
@@ -449,8 +449,9 @@ struct utimbuf {
 /* Ditto for sys$hash_passwrod() . . . */
 #define crypt  my_crypt
 
-/* Tweak arg to mkdir first, so we can tolerate trailing /. */
+/* Tweak arg to mkdir & chdir first, so we can tolerate trailing /. */
 #define Mkdir(dir,mode) my_mkdir((dir),(mode))
+#define Chdir(dir) my_chdir((dir))
 
 /* Use our own stat() clones, which handle Unix-style directory names */
 #define Stat(name,bufptr) flex_stat(name,bufptr)
@@ -640,6 +641,7 @@ char *      my_gconvert (double, int, int, char *);
 int    do_rmdir (char *);
 int    kill_file (char *);
 int    my_mkdir (char *, Mode_t);
+int    my_chdir (char *);
 int    my_utime (char *, struct utimbuf *);
 char * rmsexpand (char *, char *, char *, unsigned);
 char * rmsexpand_ts (char *, char *, char *, unsigned);
index 34f5770..092d76a 100644 (file)
@@ -65,6 +65,7 @@ $d_flock='undef'
 $d_fork='undef'
 $d_fpathconf='define'
 $d_fpos64_t='undef'
+$d_frexpl='undef'
 $d_fs_data_s='undef'
 $d_fseeko='undef'
 $d_fsetpos='define'
@@ -114,6 +115,8 @@ $d_index='undef'
 $d_inetaton='undef'
 $d_int64_t='undef'
 $d_isascii='define'
+$d_isnan='define'
+$d_isnanl='undef'
 $d_killpg='undef'
 $d_lchown='undef'
 $d_ldbl_dig='define'
@@ -140,6 +143,7 @@ $d_mkstemps='undef'
 $d_mkfifo='define'
 $d_mktime='define'
 $d_mmap='undef'
+$d_modfl='undef'
 $d_mprotect='undef'
 $d_msg='undef'
 $d_msg_ctrunc='undef'
@@ -157,6 +161,7 @@ $d_old_pthread_create_joinable='undef'
 $d_oldpthreads='undef'
 $d_open3='define'
 $d_pathconf='define'
+$d_perl_otherlibdirs='undef'
 $d_pause='define'
 $d_phostname='undef'
 $d_pipe='define'
@@ -286,6 +291,7 @@ $full_csh=''
 $full_sed='/system/ported/command_library/sed.pm'
 $gidformat='"d"'
 $gidsize='4'
+$gidsign='-1'
 $gidtype='gid_t'
 $groupstype='gid_t'
 $i16size='2'
@@ -387,6 +393,7 @@ $nvtype='double'
 $o_nonblock='O_NONBLOCK'
 $old_pthread_create_joinable=''
 $osname='VOS'
+$otherlibdirs=''
 $package='perl5'
 $pidtype='pid_t'
 $pm_apiversion='5.00563'
@@ -414,6 +421,7 @@ $sitearchexp=''
 $sitelib='/system/ported/perl/lib/site/5.005'
 $sitelibexp='/system/ported/perl/lib/site/5.005'
 $sitelib_stem='/system/ported/perl/lib/site'
+$sizesize='4'
 $sizetype='size_t'
 $socksizetype='int'
 $sPRIfldbl='"Lf"'
@@ -438,6 +446,7 @@ $u8size='1'
 $u8type='unsigned char'
 $uidformat='"d"'
 $uidsize='4'
+$uidsign='-1'
 $uidtype='uid_t'
 $uquadtype='_error_'
 $use5005threads='undef'
index 78e5c69..5e4e665 100644 (file)
  */
 #define HAS_FGETPOS    /**/
 
-/* FLEXFILENAMES:
- *     This symbol, if defined, indicates that the system supports filenames
- *     longer than 14 characters.
- */
-#define        FLEXFILENAMES           /**/
-
 /* HAS_FLOCK:
  *     This symbol, if defined, indicates that the flock routine is
  *     available to do file locking.
 #define BIN_EXP "/system/ported/command_library"       /**/
 
 /* PERL_BINCOMPAT_5005:
- *     This symbol, if defined, indicates that Perl 5.006 should be
+ *     This symbol, if defined, indicates that this version of Perl should be
  *     binary-compatible with Perl 5.005.  This is impossible for builds
  *     that use features like threads and multiplicity it is always $undef
  *     for those versions.
 #  define STRINGIFY(a) PeRl_StGiFy(a)
 #endif
 #if 42 != 1 && 42 != 42
-#include "Bletch: How does this C preprocessor catenate tokens?"
+#   include "Bletch: How does this C preprocessor catenate tokens?"
 #endif
 
 /* CPPSTDIN:
  */
 /*#define HAS_FD_SET   /**/
 
+/* FLEXFILENAMES:
+ *     This symbol, if defined, indicates that the system supports filenames
+ *     longer than 14 characters.
+ */
+#define        FLEXFILENAMES           /**/
+
 /* HAS_FPOS64_T:
  *     This symbol will be defined if the C compiler supports fpos64_t.
  */
 /*#define      HAS_FPOS64_T            /**/
 
+/* HAS_FREXPL:
+ *     This symbol, if defined, indicates that the frexpl routine is
+ *     available to break a long double floating-point number into
+ *     a normalized fraction and an integral power of 2.
+ */
+/*#define HAS_FREXPL           /**/
+
 /* HAS_STRUCT_FS_DATA:
  *     This symbol, if defined, indicates that the struct fs_data
  *     to do statfs() is supported.
  */
 #define HAS_GETCWD             /**/
 
+/* HAS_GETFSSTAT:
+ *     This symbol, if defined, indicates that the getfsstat routine is
+ *     available to stat filesystems in bulk.
+ */
+/*#define HAS_GETFSSTAT                /**/
+
 /* HAS_GETGRENT:
  *     This symbol, if defined, indicates that the getgrent routine is
  *     available for sequential access of the group database.
  */
 #define HAS_ISASCII            /**/
 
+/* HAS_ISNAN:
+ *     This symbol, if defined, indicates that the isnan routine is
+ *     available to check whether a double is a NaN.
+ */
+#define HAS_ISNAN              /**/
+
+/* HAS_ISNANL:
+ *     This symbol, if defined, indicates that the isnanl routine is
+ *     available to check whether a long double is a NaN.
+ */
+/*#define HAS_ISNANL           /**/
+
 /* HAS_LCHOWN:
  *     This symbol, if defined, indicates that the lchown routine is
  *     available to operate on a symbolic link (instead of following the
 #define LONGLONGSIZE _error_           /**/
 #endif
 
+/* HAS_LSEEK_PROTO:
+ *     This symbol, if defined, indicates that the system provides
+ *     a prototype for the lseek() function.  Otherwise, it is up
+ *     to the program to supply one.  A good guess is
+ *             extern off_t lseek(int, off_t, int);
+ */
+#define        HAS_LSEEK_PROTO /**/
+
 /* HAS_MADVISE:
  *     This symbol, if defined, indicates that the madvise system call is
  *     available to map a file into memory.
  */
 #define        Gid_t_f         "d"             /**/
 
+/* Gid_t_sign:
+ *     This symbol holds the signedess of a Gid_t.
+ *     1 for unsigned, -1 for signed.
+ */
+#define Gid_t_sign     -1              /* GID sign */
+
 /* Gid_t_size:
  *     This symbol holds the size of a Gid_t in bytes.
  */
  *     This symbol holds the return type of getgid() and the type of
  *     argument to setrgid() and related functions.  Typically,
  *     it is the type of group ids in the kernel. It can be int, ushort,
- *     uid_t, etc... It may be necessary to include <sys/types.h> to get
+ *     gid_t, etc... It may be necessary to include <sys/types.h> to get
  *     any typedef'ed information.
  */
 #define Gid_t gid_t            /* Type for getgid(), etc... */
 
 /* Groups_t:
  *     This symbol holds the type used for the second argument to
- *     getgroups() and setgropus().  Usually, this is the same as
+ *     getgroups() and setgroups().  Usually, this is the same as
  *     gidtype (gid_t) , but sometimes it isn't.
- *     It can be int, ushort, uid_t, etc... 
+ *     It can be int, ushort, gid_t, etc... 
  *     It may be necessary to include <sys/types.h> to get any 
  *     typedef'ed information.  This is only required if you have
- *     getgroups() or setgropus()..
+ *     getgroups() or setgroups()..
  */
 #if defined(HAS_GETGROUPS) || defined(HAS_SETGROUPS)
 #define Groups_t gid_t /* Type for 2nd arg to [sg]etgroups() */
  */
 /*#define      I_ICONV         /**/
 
+/* I_IEEEFP:
+ *     This symbol, if defined, indicates that <ieeefp.h> exists and
+ *     should be included.
+ */
+/*#define      I_IEEEFP                /**/
+
 /* I_INTTYPES:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <inttypes.h>.
 /* U64SIZE:
  *     This symbol contains the sizeof(U64).
  */
+/* NVSIZE:
+ *     This symbol contains the sizeof(NV).
+ */
 /* NV_PRESERVES_UV:
  *     This symbol, if defined, indicates that a variable of type NVTYPE
  *     can preserve all the bit of a variable of type UVSIZE.
 #define        I64SIZE         _error_ /**/
 #define        U64SIZE         _error_ /**/
 #endif
+#define        NVSIZE          $nvsize         /**/
 #define        NV_PRESERVES_UV
 
 /* IVdf:
  *     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 ""          /**/
-/*#define SITEARCH_EXP ""              /**/
+#define SITEARCH ""            /**/
+#define SITEARCH_EXP ""                /**/
 
 /* SITELIB:
  *     This symbol contains the name of the private library for this package.
 #define SITELIB_EXP "/system/ported/perl/lib/site/5.005"               /**/
 #define SITELIB_STEM "/system/ported/perl/lib/site"            /**/
 
+/* Size_t_size:
+ *     This symbol holds the size of a Size_t in bytes.
+ */
+#define Size_t_size 4          /* */
+
 /* Size_t:
  *     This symbol holds the type used to declare length parameters
  *     for string functions.  It is usually size_t, but may be
  */
 #define Size_t size_t   /* length paramater for string functions */
 
+/* Sock_size_t:
+ *     This symbol holds the type used for the size argument of
+ *     various socket calls (just the base type, not the pointer-to).
+ */
+#define Sock_size_t            int /**/
+
 /* SSize_t:
  *     This symbol holds the type used by functions that return
  *     a count of bytes or an error condition.  It must be a signed type.
  */
 #define        Uid_t_f         "d"             /**/
 
+/* Uid_t_sign:
+ *     This symbol holds the signedess of a Uid_t.
+ *     1 for unsigned, -1 for signed.
+ */
+#define Uid_t_sign     -1              /* UID sign */
+
 /* Uid_t_size:
  *     This symbol holds the size of a Uid_t in bytes.
  */
 #endif
 /*#define      OLD_PTHREADS_API                /**/
 
+/* PERL_VENDORARCH:
+ *     If defined, this symbol contains the name of a private library.
+ *     The library is private in the sense that it needn't be in anyone's
+ *     execution path, but it should be accessible by the world.
+ *     It may have a ~ on the front. 
+ *     The standard distribution will put nothing in this directory.
+ *     Vendors who distribute perl may wish to place their own
+ *     architecture-dependent modules and extensions in this directory with
+ *             MakeMaker Makefile.PL INSTALLDIRS=vendor 
+ *     or equivalent.  See INSTALL for details.
+ */
 /* PERL_VENDORARCH_EXP:
  *     This symbol contains the ~name expanded version of PERL_VENDORARCH, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
+#define PERL_VENDORARCH ""             /**/
 #define PERL_VENDORARCH_EXP ""         /**/
 
 /* PERL_VENDORLIB_EXP:
 #define PERL_XS_APIVERSION "5.00563"
 #define PERL_PM_APIVERSION "5.00563"
 
-/* HAS_GETFSSTAT:
- *     This symbol, if defined, indicates that the getfsstat routine is
- *     available to stat filesystems in bulk.
+/* HAS_MODFL:
+ *     This symbol, if defined, indicates that the modfl routine is
+ *     available to split a long double x into a fractional part f and
+ *     an integer part i such that |f| < 1.0 and (f + i) = x.
  */
-/*#define HAS_GETFSSTAT                /**/
-
-/* I_IEEEFP:
- *     This symbol, if defined, indicates that <ieeefp.h> exists and
- *     should be included.
- */
-/*#define      I_IEEEFP                /**/
-
-/* HAS_LSEEK_PROTO:
- *     This symbol, if defined, indicates that the system provides
- *     a prototype for the lseek() function.  Otherwise, it is up
- *     to the program to supply one.  A good guess is
- *             extern off_t lseek(int, off_t, int);
- */
-#define        HAS_LSEEK_PROTO /**/
-
-/* Sock_size_t:
- *     This symbol holds the type used for the size argument of
- *     various socket calls (just the base type, not the pointer-to).
- */
-#define Sock_size_t            int /**/
+/*#define HAS_MODFL            /**/
 
 #endif
index 299c931..cc35077 100755 (executable)
@@ -189,12 +189,6 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$d_fgetpos HAS_FGETPOS        /**/
 
-/* FLEXFILENAMES:
- *     This symbol, if defined, indicates that the system supports filenames
- *     longer than 14 characters.
- */
-#$d_flexfnam   FLEXFILENAMES           /**/
-
 /* HAS_FLOCK:
  *     This symbol, if defined, indicates that the flock routine is
  *     available to do file locking.
@@ -1147,7 +1141,7 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #define BIN_EXP "$binexp"      /**/
 
 /* PERL_BINCOMPAT_5005:
- *     This symbol, if defined, indicates that Perl 5.006 should be
+ *     This symbol, if defined, indicates that this version of Perl should be
  *     binary-compatible with Perl 5.005.  This is impossible for builds
  *     that use features like threads and multiplicity it is always $undef
  *     for those versions.
@@ -1218,7 +1212,7 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #  define STRINGIFY(a) PeRl_StGiFy(a)
 #endif
 #if $cpp_stuff != 1 && $cpp_stuff != 42
-#include "Bletch: How does this C preprocessor catenate tokens?"
+#   include "Bletch: How does this C preprocessor catenate tokens?"
 #endif
 
 /* CPPSTDIN:
@@ -1360,11 +1354,24 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$d_fd_set HAS_FD_SET  /**/
 
+/* FLEXFILENAMES:
+ *     This symbol, if defined, indicates that the system supports filenames
+ *     longer than 14 characters.
+ */
+#$d_flexfnam   FLEXFILENAMES           /**/
+
 /* HAS_FPOS64_T:
  *     This symbol will be defined if the C compiler supports fpos64_t.
  */
 #$d_fpos64_t   HAS_FPOS64_T            /**/
 
+/* HAS_FREXPL:
+ *     This symbol, if defined, indicates that the frexpl routine is
+ *     available to break a long double floating-point number into
+ *     a normalized fraction and an integral power of 2.
+ */
+#$d_frexpl HAS_FREXPL          /**/
+
 /* HAS_STRUCT_FS_DATA:
  *     This symbol, if defined, indicates that the struct fs_data
  *     to do statfs() is supported.
@@ -1412,6 +1419,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$d_getcwd HAS_GETCWD          /**/
 
+/* HAS_GETFSSTAT:
+ *     This symbol, if defined, indicates that the getfsstat routine is
+ *     available to stat filesystems in bulk.
+ */
+#$d_getfsstat HAS_GETFSSTAT            /**/
+
 /* HAS_GETGRENT:
  *     This symbol, if defined, indicates that the getgrent routine is
  *     available for sequential access of the group database.
@@ -1638,6 +1651,18 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$d_isascii HAS_ISASCII                /**/
 
+/* HAS_ISNAN:
+ *     This symbol, if defined, indicates that the isnan routine is
+ *     available to check whether a double is a NaN.
+ */
+#$d_isnan HAS_ISNAN            /**/
+
+/* HAS_ISNANL:
+ *     This symbol, if defined, indicates that the isnanl routine is
+ *     available to check whether a long double is a NaN.
+ */
+#$d_isnanl HAS_ISNANL          /**/
+
 /* HAS_LCHOWN:
  *     This symbol, if defined, indicates that the lchown routine is
  *     available to operate on a symbolic link (instead of following the
@@ -1680,6 +1705,14 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #define LONGLONGSIZE $longlongsize             /**/
 #endif
 
+/* HAS_LSEEK_PROTO:
+ *     This symbol, if defined, indicates that the system provides
+ *     a prototype for the lseek() function.  Otherwise, it is up
+ *     to the program to supply one.  A good guess is
+ *             extern off_t lseek(int, off_t, int);
+ */
+#$d_lseekproto HAS_LSEEK_PROTO /**/
+
 /* HAS_MADVISE:
  *     This symbol, if defined, indicates that the madvise system call is
  *     available to map a file into memory.
@@ -2217,6 +2250,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #define        Gid_t_f         $gidformat              /**/
 
+/* Gid_t_sign:
+ *     This symbol holds the signedess of a Gid_t.
+ *     1 for unsigned, -1 for signed.
+ */
+#define Gid_t_sign     $gidsign                /* GID sign */
+
 /* Gid_t_size:
  *     This symbol holds the size of a Gid_t in bytes.
  */
@@ -2226,19 +2265,19 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  *     This symbol holds the return type of getgid() and the type of
  *     argument to setrgid() and related functions.  Typically,
  *     it is the type of group ids in the kernel. It can be int, ushort,
- *     uid_t, etc... It may be necessary to include <sys/types.h> to get
+ *     gid_t, etc... It may be necessary to include <sys/types.h> to get
  *     any typedef'ed information.
  */
 #define Gid_t $gidtype         /* Type for getgid(), etc... */
 
 /* Groups_t:
  *     This symbol holds the type used for the second argument to
- *     getgroups() and setgropus().  Usually, this is the same as
+ *     getgroups() and setgroups().  Usually, this is the same as
  *     gidtype (gid_t) , but sometimes it isn't.
- *     It can be int, ushort, uid_t, etc... 
+ *     It can be int, ushort, gid_t, etc... 
  *     It may be necessary to include <sys/types.h> to get any 
  *     typedef'ed information.  This is only required if you have
- *     getgroups() or setgropus()..
+ *     getgroups() or setgroups()..
  */
 #if defined(HAS_GETGROUPS) || defined(HAS_SETGROUPS)
 #define Groups_t $groupstype   /* Type for 2nd arg to [sg]etgroups() */
@@ -2274,6 +2313,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #$i_iconv      I_ICONV         /**/
 
+/* I_IEEEFP:
+ *     This symbol, if defined, indicates that <ieeefp.h> exists and
+ *     should be included.
+ */
+#$i_ieeefp     I_IEEEFP                /**/
+
 /* I_INTTYPES:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <inttypes.h>.
@@ -2624,6 +2669,9 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 /* U64SIZE:
  *     This symbol contains the sizeof(U64).
  */
+/* NVSIZE:
+ *     This symbol contains the sizeof(NV).
+ */
 /* NV_PRESERVES_UV:
  *     This symbol, if defined, indicates that a variable of type NVTYPE
  *     can preserve all the bit of a variable of type UVSIZE.
@@ -2653,6 +2701,7 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #define        I64SIZE         $i64size        /**/
 #define        U64SIZE         $u64size        /**/
 #endif
+#define        NVSIZE          $nvsize         /**/
 #$d_nv_preserves_uv    NV_PRESERVES_UV
 
 /* IVdf:
@@ -2683,6 +2732,16 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #define Pid_t $pidtype         /* PID type */
 
+/* PERL_OTHERLIBDIRS:
+ *     This variable contains a colon-separated set of paths for the perl
+ *     binary to search for additional library files or modules.
+ *     These directories will be tacked to the end of @INC.
+ *     Perl will automatically search below each path for version-
+ *     and architecture-specific directories.  See PERL_INC_VERSION_LIST
+ *     for more details.
+ */
+#$d_perl_otherlibdirs PERL_OTHERLIBDIRS "$otherlibdirs"                /**/
+
 /* PRIVLIB:
  *     This symbol contains the name of the private library for this package.
  *     The library is private in the sense that it needn't be in anyone's
@@ -2792,8 +2851,8 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  *     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.
  */
-#$d_sitearch SITEARCH "$sitearch"              /**/
-#$d_sitearch SITEARCH_EXP "$sitearchexp"               /**/
+#define SITEARCH "$sitearch"           /**/
+#define SITEARCH_EXP "$sitearchexp"            /**/
 
 /* SITELIB:
  *     This symbol contains the name of the private library for this package.
@@ -2819,6 +2878,11 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #define SITELIB_EXP "$sitelibexp"              /**/
 #define SITELIB_STEM "$sitelib_stem"           /**/
 
+/* Size_t_size:
+ *     This symbol holds the size of a Size_t in bytes.
+ */
+#define Size_t_size $sizesize          /* */
+
 /* Size_t:
  *     This symbol holds the type used to declare length parameters
  *     for string functions.  It is usually size_t, but may be
@@ -2827,6 +2891,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #define Size_t $sizetype        /* length paramater for string functions */
 
+/* Sock_size_t:
+ *     This symbol holds the type used for the size argument of
+ *     various socket calls (just the base type, not the pointer-to).
+ */
+#define Sock_size_t            $socksizetype /**/
+
 /* SSize_t:
  *     This symbol holds the type used by functions that return
  *     a count of bytes or an error condition.  It must be a signed type.
@@ -2860,6 +2930,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
  */
 #define        Uid_t_f         $uidformat              /**/
 
+/* Uid_t_sign:
+ *     This symbol holds the signedess of a Uid_t.
+ *     1 for unsigned, -1 for signed.
+ */
+#define Uid_t_sign     $uidsign                /* UID sign */
+
 /* Uid_t_size:
  *     This symbol holds the size of a Uid_t in bytes.
  */
@@ -2966,10 +3042,22 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #endif
 #$d_oldpthreads        OLD_PTHREADS_API                /**/
 
+/* PERL_VENDORARCH:
+ *     If defined, this symbol contains the name of a private library.
+ *     The library is private in the sense that it needn't be in anyone's
+ *     execution path, but it should be accessible by the world.
+ *     It may have a ~ on the front. 
+ *     The standard distribution will put nothing in this directory.
+ *     Vendors who distribute perl may wish to place their own
+ *     architecture-dependent modules and extensions in this directory with
+ *             MakeMaker Makefile.PL INSTALLDIRS=vendor 
+ *     or equivalent.  See INSTALL for details.
+ */
 /* PERL_VENDORARCH_EXP:
  *     This symbol contains the ~name expanded version of PERL_VENDORARCH, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
+#$d_vendorarch PERL_VENDORARCH "$vendorarch"           /**/
 #$d_vendorarch PERL_VENDORARCH_EXP "$vendorarchexp"            /**/
 
 /* PERL_VENDORLIB_EXP:
@@ -3044,31 +3132,12 @@ sed <<!GROK!THIS! >config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un-
 #define PERL_XS_APIVERSION "$xs_apiversion"
 #define PERL_PM_APIVERSION "$pm_apiversion"
 
-/* HAS_GETFSSTAT:
- *     This symbol, if defined, indicates that the getfsstat routine is
- *     available to stat filesystems in bulk.
- */
-#$d_getfsstat HAS_GETFSSTAT            /**/
-
-/* I_IEEEFP:
- *     This symbol, if defined, indicates that <ieeefp.h> exists and
- *     should be included.
- */
-#$i_ieeefp     I_IEEEFP                /**/
-
-/* HAS_LSEEK_PROTO:
- *     This symbol, if defined, indicates that the system provides
- *     a prototype for the lseek() function.  Otherwise, it is up
- *     to the program to supply one.  A good guess is
- *             extern off_t lseek(int, off_t, int);
- */
-#$d_lseekproto HAS_LSEEK_PROTO /**/
-
-/* Sock_size_t:
- *     This symbol holds the type used for the size argument of
- *     various socket calls (just the base type, not the pointer-to).
+/* HAS_MODFL:
+ *     This symbol, if defined, indicates that the modfl routine is
+ *     available to split a long double x into a fractional part f and
+ *     an integer part i such that |f| < 1.0 and (f + i) = x.
  */
-#define Sock_size_t            $socksizetype /**/
+#$d_modfl HAS_MODFL            /**/
 
 #endif
 !GROK!THIS!
index 31942e1..f6814e7 100644 (file)
 #define G_WARN_ONCE            8       /* set if 'once' ever enabled */
 #define G_WARN_ALL_MASK                (G_WARN_ALL_ON|G_WARN_ALL_OFF)
 
-#define WARN_STD               Nullsv
-#define WARN_ALL               (Nullsv+1)      /* use warnings 'all' */
-#define WARN_NONE              (Nullsv+2)      /* no  warnings 'all' */
+#define pWARN_STD              Nullsv
+#define pWARN_ALL              (Nullsv+1)      /* use warnings 'all' */
+#define pWARN_NONE             (Nullsv+2)      /* no  warnings 'all' */
+
+#define specialWARN(x)         ((x) == pWARN_STD || (x) == pWARN_ALL ||        \
+                                (x) == pWARN_NONE)
+#define WARN_ALL               0
+#define WARN_CHMOD             1
+#define WARN_CLOSURE           2
+#define WARN_EXITING           3
+#define WARN_GLOB              4
+#define WARN_IO                        5
+#define WARN_CLOSED            6
+#define WARN_EXEC              7
+#define WARN_NEWLINE           8
+#define WARN_PIPE              9
+#define WARN_UNOPENED          10
+#define WARN_MISC              11
+#define WARN_NUMERIC           12
+#define WARN_ONCE              13
+#define WARN_OVERFLOW          14
+#define WARN_PACK              15
+#define WARN_PORTABLE          16
+#define WARN_RECURSION         17
+#define WARN_REDEFINE          18
+#define WARN_REGEXP            19
+#define WARN_SEVERE            20
+#define WARN_DEBUGGING         21
+#define WARN_INPLACE           22
+#define WARN_INTERNAL          23
+#define WARN_MALLOC            24
+#define WARN_SIGNAL            25
+#define WARN_SUBSTR            26
+#define WARN_SYNTAX            27
+#define WARN_AMBIGUOUS         28
+#define WARN_BAREWORD          29
+#define WARN_DEPRECATED                30
+#define WARN_DIGIT             31
+#define WARN_PARENTHESIS       32
+#define WARN_PRECEDENCE                33
+#define WARN_PRINTF            34
+#define WARN_PROTOTYPE         35
+#define WARN_QW                        36
+#define WARN_RESERVED          37
+#define WARN_SEMICOLON         38
+#define WARN_TAINT             39
+#define WARN_UMASK             40
+#define WARN_UNINITIALIZED     41
+#define WARN_UNPACK            42
+#define WARN_UNTIE             43
+#define WARN_UTF8              44
+#define WARN_VOID              45
+#define WARN_Y2K               46
 
-#define specialWARN(x)         ((x) == WARN_STD || (x) == WARN_ALL ||  \
-                                (x) == WARN_NONE)
+#define WARNsize               12
+#define WARN_ALLstring         "\125\125\125\125\125\125\125\125\125\125\125\125"
+#define WARN_NONEstring                "\0\0\0\0\0\0\0\0\0\0\0\0"
+
+#define isLEXWARN_on   (PL_curcop->cop_warnings != pWARN_STD)
+#define isLEXWARN_off  (PL_curcop->cop_warnings == pWARN_STD)
+#define isWARN_ONCE    (PL_dowarn & (G_WARN_ON|G_WARN_ONCE))
+#define isWARN_on(c,x) (IsSet(SvPVX(c), 2*(x)))
+#define isWARNf_on(c,x)        (IsSet(SvPVX(c), 2*(x)+1))
 
 #define ckDEAD(x)                                                      \
           ( ! specialWARN(PL_curcop->cop_warnings) &&                  \
-           IsSet(SvPVX(PL_curcop->cop_warnings), 2*x+1))
+           ( isWARNf_on(PL_curcop->cop_warnings, WARN_ALL) ||          \
+             isWARNf_on(PL_curcop->cop_warnings, x)))
 
 #define ckWARN(x)                                                      \
-       ( (PL_curcop->cop_warnings != WARN_STD &&                       \
-          PL_curcop->cop_warnings != WARN_NONE &&                      \
-             (PL_curcop->cop_warnings == WARN_ALL ||                   \
-              IsSet(SvPVX(PL_curcop->cop_warnings), 2*x) ) )           \
-         || (PL_curcop->cop_warnings == WARN_STD && PL_dowarn & G_WARN_ON) )
+       ( (isLEXWARN_on && PL_curcop->cop_warnings != pWARN_NONE &&     \
+             (PL_curcop->cop_warnings == pWARN_ALL ||                  \
+              isWARN_on(PL_curcop->cop_warnings, x) ) )                \
+         || (isLEXWARN_off && PL_dowarn & G_WARN_ON) )
 
 #define ckWARN2(x,y)                                                   \
-         ( (PL_curcop->cop_warnings != WARN_STD  &&                    \
-            PL_curcop->cop_warnings != WARN_NONE &&                    \
-             (PL_curcop->cop_warnings == WARN_ALL ||                   \
-               IsSet(SvPVX(PL_curcop->cop_warnings), 2*x)  ||          \
-               IsSet(SvPVX(PL_curcop->cop_warnings), 2*y) ) )          \
-           ||  (PL_curcop->cop_warnings == WARN_STD && PL_dowarn & G_WARN_ON) )
+         ( (isLEXWARN_on && PL_curcop->cop_warnings != pWARN_NONE &&   \
+             (PL_curcop->cop_warnings == pWARN_ALL ||                  \
+               isWARN_on(PL_curcop->cop_warnings, x)  ||               \
+               isWARN_on(PL_curcop->cop_warnings, y) ) )               \
+           ||  (isLEXWARN_off && PL_dowarn & G_WARN_ON) )
 
 #define ckWARN_d(x)                                                    \
-         (PL_curcop->cop_warnings == WARN_STD ||                       \
-          PL_curcop->cop_warnings == WARN_ALL ||                       \
-            (PL_curcop->cop_warnings != WARN_NONE &&                   \
-             IsSet(SvPVX(PL_curcop->cop_warnings), 2*x) ) )
+         (isLEXWARN_off || PL_curcop->cop_warnings == pWARN_ALL ||     \
+            (PL_curcop->cop_warnings != pWARN_NONE &&                  \
+             isWARN_on(PL_curcop->cop_warnings, x) ) )
 
 #define ckWARN2_d(x,y)                                                 \
-         (PL_curcop->cop_warnings == WARN_STD ||                       \
-          PL_curcop->cop_warnings == WARN_ALL ||                       \
-            (PL_curcop->cop_warnings != WARN_NONE &&                   \
-               (IsSet(SvPVX(PL_curcop->cop_warnings), 2*x)  ||         \
-                IsSet(SvPVX(PL_curcop->cop_warnings), 2*y) ) ) )
-
-
-#define isLEXWARN_on   (PL_curcop->cop_warnings != WARN_STD)
-#define isLEXWARN_off  (PL_curcop->cop_warnings == WARN_STD)
-#define isWARN_ONCE    (PL_dowarn & (G_WARN_ON|G_WARN_ONCE))
-#define isWARN_on(c,x) (IsSet(SvPVX(c), 2*(x)))
-
-#define WARN_CHMOD             0
-#define WARN_CLOSURE           1
-#define WARN_EXITING           2
-#define WARN_GLOB              3
-#define WARN_IO                        4
-#define WARN_CLOSED            5
-#define WARN_EXEC              6
-#define WARN_NEWLINE           7
-#define WARN_PIPE              8
-#define WARN_UNOPENED          9
-#define WARN_MISC              10
-#define WARN_NUMERIC           11
-#define WARN_ONCE              12
-#define WARN_OVERFLOW          13
-#define WARN_PACK              14
-#define WARN_PORTABLE          15
-#define WARN_RECURSION         16
-#define WARN_REDEFINE          17
-#define WARN_REGEXP            18
-#define WARN_SEVERE            19
-#define WARN_DEBUGGING         20
-#define WARN_INPLACE           21
-#define WARN_INTERNAL          22
-#define WARN_MALLOC            23
-#define WARN_SIGNAL            24
-#define WARN_SUBSTR            25
-#define WARN_SYNTAX            26
-#define WARN_AMBIGUOUS         27
-#define WARN_BAREWORD          28
-#define WARN_DEPRECATED                29
-#define WARN_DIGIT             30
-#define WARN_PARENTHESIS       31
-#define WARN_PRECEDENCE                32
-#define WARN_PRINTF            33
-#define WARN_PROTOTYPE         34
-#define WARN_QW                        35
-#define WARN_RESERVED          36
-#define WARN_SEMICOLON         37
-#define WARN_TAINT             38
-#define WARN_UMASK             39
-#define WARN_UNINITIALIZED     40
-#define WARN_UNPACK            41
-#define WARN_UNTIE             42
-#define WARN_UTF8              43
-#define WARN_VOID              44
-#define WARN_Y2K               45
-
-#define WARNsize               12
-#define WARN_ALLstring         "\125\125\125\125\125\125\125\125\125\125\125\125"
-#define WARN_NONEstring                "\0\0\0\0\0\0\0\0\0\0\0\0"
+         (isLEXWARN_off || PL_curcop->cop_warnings == pWARN_ALL ||     \
+            (PL_curcop->cop_warnings != pWARN_NONE &&                  \
+               (isWARN_on(PL_curcop->cop_warnings, x)  ||              \
+                isWARN_on(PL_curcop->cop_warnings, y) ) ) )
 
 /* end of file warnings.h */
 
index 0952305..791beed 100644 (file)
@@ -9,6 +9,8 @@ sub DEFAULT_ON  () { 1 }
 sub DEFAULT_OFF () { 2 }
 
 my $tree = {
+
+'all' => {
                'io'            => {    'pipe'          => DEFAULT_OFF,
                                        'unopened'      => DEFAULT_OFF,
                                        'closed'        => DEFAULT_OFF,
@@ -56,7 +58,8 @@ my $tree = {
                'pack'          => DEFAULT_OFF,
                'unpack'        => DEFAULT_OFF,
                 #'default'     => DEFAULT_ON,
-       } ;
+       }
+} ;
 
 
 ###########################################################################
@@ -70,7 +73,7 @@ sub tab {
 
 my %list ;
 my %Value ;
-my $index = 0 ;
+my $index ;
 
 sub walk
 {
@@ -161,7 +164,7 @@ sub mkHex
 
 if (@ARGV && $ARGV[0] eq "tree")
 {
-    print "  all -+\n" ;
+    #print "  all -+\n" ;
     printTree($tree, "   ", 4) ;
     exit ;
 }
@@ -190,56 +193,20 @@ print WARN <<'EOM' ;
 #define G_WARN_ONCE            8       /* set if 'once' ever enabled */
 #define G_WARN_ALL_MASK                (G_WARN_ALL_ON|G_WARN_ALL_OFF)
 
-#define WARN_STD               Nullsv
-#define WARN_ALL               (Nullsv+1)      /* use warnings 'all' */
-#define WARN_NONE              (Nullsv+2)      /* no  warnings 'all' */
-
-#define specialWARN(x)         ((x) == WARN_STD || (x) == WARN_ALL ||  \
-                                (x) == WARN_NONE)
-
-#define ckDEAD(x)                                                      \
-          ( ! specialWARN(PL_curcop->cop_warnings) &&                  \
-           IsSet(SvPVX(PL_curcop->cop_warnings), 2*x+1))
-
-#define ckWARN(x)                                                      \
-       ( (PL_curcop->cop_warnings != WARN_STD &&                       \
-          PL_curcop->cop_warnings != WARN_NONE &&                      \
-             (PL_curcop->cop_warnings == WARN_ALL ||                   \
-              IsSet(SvPVX(PL_curcop->cop_warnings), 2*x) ) )           \
-         || (PL_curcop->cop_warnings == WARN_STD && PL_dowarn & G_WARN_ON) )
-
-#define ckWARN2(x,y)                                                   \
-         ( (PL_curcop->cop_warnings != WARN_STD  &&                    \
-            PL_curcop->cop_warnings != WARN_NONE &&                    \
-             (PL_curcop->cop_warnings == WARN_ALL ||                   \
-               IsSet(SvPVX(PL_curcop->cop_warnings), 2*x)  ||          \
-               IsSet(SvPVX(PL_curcop->cop_warnings), 2*y) ) )          \
-           ||  (PL_curcop->cop_warnings == WARN_STD && PL_dowarn & G_WARN_ON) )
-
-#define ckWARN_d(x)                                                    \
-         (PL_curcop->cop_warnings == WARN_STD ||                       \
-          PL_curcop->cop_warnings == WARN_ALL ||                       \
-            (PL_curcop->cop_warnings != WARN_NONE &&                   \
-             IsSet(SvPVX(PL_curcop->cop_warnings), 2*x) ) )
-
-#define ckWARN2_d(x,y)                                                 \
-         (PL_curcop->cop_warnings == WARN_STD ||                       \
-          PL_curcop->cop_warnings == WARN_ALL ||                       \
-            (PL_curcop->cop_warnings != WARN_NONE &&                   \
-               (IsSet(SvPVX(PL_curcop->cop_warnings), 2*x)  ||         \
-                IsSet(SvPVX(PL_curcop->cop_warnings), 2*y) ) ) )
-
-
-#define isLEXWARN_on   (PL_curcop->cop_warnings != WARN_STD)
-#define isLEXWARN_off  (PL_curcop->cop_warnings == WARN_STD)
-#define isWARN_ONCE    (PL_dowarn & (G_WARN_ON|G_WARN_ONCE))
-#define isWARN_on(c,x) (IsSet(SvPVX(c), 2*(x)))
+#define pWARN_STD              Nullsv
+#define pWARN_ALL              (Nullsv+1)      /* use warnings 'all' */
+#define pWARN_NONE             (Nullsv+2)      /* no  warnings 'all' */
 
+#define specialWARN(x)         ((x) == pWARN_STD || (x) == pWARN_ALL ||        \
+                                (x) == pWARN_NONE)
 EOM
 
+my $offset = 0 ;
+
+$index = $offset ;
+#@{ $list{"all"} } = walk ($tree) ;
+walk ($tree) ;
 
-$index = 0 ;
-@{ $list{"all"} } = walk ($tree) ;
 
 $index *= 2 ;
 my $warn_size = int($index / 8) + ($index % 8 != 0) ;
@@ -257,6 +224,41 @@ print WARN tab(5, '#define WARN_NONEstring'), '"', ('\0' x $warn_size) , "\"\n"
 
 print WARN <<'EOM';
 
+#define isLEXWARN_on   (PL_curcop->cop_warnings != pWARN_STD)
+#define isLEXWARN_off  (PL_curcop->cop_warnings == pWARN_STD)
+#define isWARN_ONCE    (PL_dowarn & (G_WARN_ON|G_WARN_ONCE))
+#define isWARN_on(c,x) (IsSet(SvPVX(c), 2*(x)))
+#define isWARNf_on(c,x)        (IsSet(SvPVX(c), 2*(x)+1))
+
+#define ckDEAD(x)                                                      \
+          ( ! specialWARN(PL_curcop->cop_warnings) &&                  \
+           ( isWARNf_on(PL_curcop->cop_warnings, WARN_ALL) ||          \
+             isWARNf_on(PL_curcop->cop_warnings, x)))
+
+#define ckWARN(x)                                                      \
+       ( (isLEXWARN_on && PL_curcop->cop_warnings != pWARN_NONE &&     \
+             (PL_curcop->cop_warnings == pWARN_ALL ||                  \
+              isWARN_on(PL_curcop->cop_warnings, x) ) )                \
+         || (isLEXWARN_off && PL_dowarn & G_WARN_ON) )
+
+#define ckWARN2(x,y)                                                   \
+         ( (isLEXWARN_on && PL_curcop->cop_warnings != pWARN_NONE &&   \
+             (PL_curcop->cop_warnings == pWARN_ALL ||                  \
+               isWARN_on(PL_curcop->cop_warnings, x)  ||               \
+               isWARN_on(PL_curcop->cop_warnings, y) ) )               \
+           ||  (isLEXWARN_off && PL_dowarn & G_WARN_ON) )
+
+#define ckWARN_d(x)                                                    \
+         (isLEXWARN_off || PL_curcop->cop_warnings == pWARN_ALL ||     \
+            (PL_curcop->cop_warnings != pWARN_NONE &&                  \
+             isWARN_on(PL_curcop->cop_warnings, x) ) )
+
+#define ckWARN2_d(x,y)                                                 \
+         (isLEXWARN_off || PL_curcop->cop_warnings == pWARN_ALL ||     \
+            (PL_curcop->cop_warnings != pWARN_NONE &&                  \
+               (isWARN_on(PL_curcop->cop_warnings, x)  ||              \
+                isWARN_on(PL_curcop->cop_warnings, y) ) ) )
+
 /* end of file warnings.h */
 
 EOM
@@ -268,7 +270,19 @@ while (<DATA>) {
     print PM $_ ;
 }
 
-$list{'all'} = [ 0 .. 8 * ($warn_size/2) - 1 ] ;
+#$list{'all'} = [ $offset .. 8 * ($warn_size/2) - 1 ] ;
+
+#my %Keys = map {lc $Value{$_}, $_} keys %Value ;
+
+print PM "%Offsets = (\n" ;
+foreach my $k (sort { $a <=> $b } keys %Value) {
+    my $v = lc $Value{$k} ;
+    $k *= 2 ;
+    print PM tab(4, "    '$v'"), "=> $k,\n" ;
+}
+
+print PM "  );\n\n" ;
+
 print PM "%Bits = (\n" ;
 foreach $k (sort keys  %list) {
 
@@ -296,7 +310,9 @@ foreach $k (sort keys  %list) {
 }
 
 print PM "  );\n\n" ;
-print PM '$NONE = "', ('\0' x $warn_size) , "\";\n" ;
+print PM '$NONE     = "', ('\0' x $warn_size) , "\";\n" ;
+print PM '$LAST_BIT = ' . "$index ;\n" ;
+print PM '$BYTES    = ' . "$warn_size ;\n" ;
 while (<DATA>) {
     print PM $_ ;
 }
@@ -323,7 +339,12 @@ warnings - Perl pragma to control optional warnings
     use warnings "all";
     no warnings "all";
 
-    if (warnings::enabled("void") {
+    use warnings::register;
+    if (warnings::enabled()) {
+        warnings::warn("some warning");
+    }
+
+    if (warnings::enabled("void")) {
         warnings::warn("void", "some warning");
     }
 
@@ -332,23 +353,33 @@ warnings - Perl pragma to control optional warnings
 If no import list is supplied, all possible warnings are either enabled
 or disabled.
 
-Two functions are provided to assist module authors.
+A number of functions are provided to assist module authors. 
 
 =over 4
 
-=item warnings::enabled($category)
+=item use warnings::register
+
+Creates a new warnings category which has the same name as the module
+where the call to the pragma is used.
+
+=item warnings::enabled([$category])
 
-Returns TRUE if the warnings category in C<$category> is enabled in the
-calling module. Otherwise returns FALSE.
+Returns TRUE if the warnings category C<$category> is enabled in the
+calling module.  Otherwise returns FALSE.
 
+If the parameter, C<$category>, isn't supplied, the current package name
+will be used.
 
-=item warnings::warn($category, $message)
+=item warnings::warn([$category,] $message)
 
 If the calling module has I<not> set C<$category> to "FATAL", print
 C<$message> to STDERR.
 If the calling module has set C<$category> to "FATAL", print C<$message>
 STDERR then die.
 
+If the parameter, C<$category>, isn't supplied, the current package name
+will be used.
+
 =back
 
 See L<perlmod/Pragmatic Modules> and L<perllexwarn>.
@@ -359,6 +390,8 @@ use Carp ;
 
 KEYWORDS
 
+$All = "" ; vec($All, $Offsets{'all'}, 2) = 3 ;
+
 sub bits {
     my $mask ;
     my $catmask ;
@@ -367,12 +400,12 @@ sub bits {
        if  ($word eq 'FATAL') {
            $fatal = 1;
        }
-       else {
-           if ($catmask = $Bits{$word}) {
-               $mask |= $catmask ;
-               $mask |= $DeadBits{$word} if $fatal ;
-           }
+       elsif ($catmask = $Bits{$word}) {
+           $mask |= $catmask ;
+           $mask |= $DeadBits{$word} if $fatal ;
        }
+       else
+          { croak("unknown warnings category '$word'")}  
     }
 
     return $mask ;
@@ -385,38 +418,70 @@ sub import {
 
 sub unimport {
     shift;
-    ${^WARNING_BITS} &= ~ bits(@_ ? @_ : 'all') ;
+    my $mask = ${^WARNING_BITS} ;
+    if (vec($mask, $Offsets{'all'}, 1)) {
+        $mask = $Bits{'all'} ;
+        $mask |= $DeadBits{'all'} if vec($mask, $Offsets{'all'}+1, 1);
+    }
+    ${^WARNING_BITS} = $mask & ~ (bits(@_ ? @_ : 'all') | $All) ;
 }
 
 sub enabled
 {
-    # If no parameters, check for any lexical warnings enabled
-    # in the users scope.
+    croak("Usage: warnings::enabled([category])")
+       unless @_ == 1 || @_ == 0 ;
+    local $Carp::CarpLevel = 1 ;
+    my $category ;
+    my $offset ;
     my $callers_bitmask = (caller(1))[9] ; 
-    return ($callers_bitmask ne $NONE) if @_ == 0 ;
-
-    # otherwise check for the category supplied.
-    my $category = shift ;
-    return 0
-       unless $Bits{$category} ;
     return 0 unless defined $callers_bitmask ;
-    return 1
-       if ($callers_bitmask & $Bits{$category}) ne $NONE ;
-   
-    return 0 ; 
+
+
+    if (@_) {
+        # check the category supplied.
+        $category = shift ;
+        $offset = $Offsets{$category};
+        croak("unknown warnings category '$category'")
+           unless defined $offset;
+    }
+    else {
+        $category = (caller(0))[0] ; 
+        $offset = $Offsets{$category};
+        croak("package '$category' not registered for warnings")
+           unless defined $offset ;
+    }
+
+    return vec($callers_bitmask, $offset, 1) ||
+           vec($callers_bitmask, $Offsets{'all'}, 1) ;
 }
 
+
 sub warn
 {
-    croak "Usage: warnings::warn('category', 'message')"
-       unless @_ == 2 ;
-    my $category = shift ;
-    my $message = shift ;
+    croak("Usage: warnings::warn([category,] 'message')")
+       unless @_ == 2 || @_ == 1 ;
     local $Carp::CarpLevel = 1 ;
+    my $category ;
+    my $offset ;
     my $callers_bitmask = (caller(1))[9] ; 
+
+    if (@_ == 2) {
+        $category = shift ;
+        $offset = $Offsets{$category};
+        croak("unknown warnings category '$category'")
+           unless defined $offset ;
+    }
+    else {
+        $category = (caller(0))[0] ; 
+        $offset = $Offsets{$category};
+        croak("package '$category' not registered for warnings")
+           unless defined $offset ;
+    }
+
+    my $message = shift ;
     croak($message) 
-       if defined $callers_bitmask &&
-           ($callers_bitmask & $DeadBits{$category}) ne $NONE ;
+       if vec($callers_bitmask, $offset+1, 1) ||
+          vec($callers_bitmask, $Offsets{'all'}+1, 1) ;
     carp($message) ;
 }
 
index d96da84..d669516 100644 (file)
@@ -2,7 +2,7 @@
 # Makefile to build perl on Windows NT using Microsoft NMAKE.
 #
 # This is set up to build a perl.exe that runs off a shared library
-# (perl.dll).  Also makes individual DLLs for the XS extensions.
+# (perl56.dll).  Also makes individual DLLs for the XS extensions.
 #
 
 ##
@@ -49,8 +49,6 @@ INST_ARCH     = \$(ARCHNAME)
 #USE_MULTI     = define
 
 #
-# XXX WARNING! This option is still very experimental.  May be broken.
-#
 # Beginnings of interpreter cloning/threads; still very incomplete.
 # This should be enabled to get the fork() emulation.  This needs
 # USE_MULTI as well.
@@ -178,11 +176,6 @@ CCLIBDIR   = $(CCHOME)\lib
 #BUILDOPT      = $(BUILDOPT) -DPERL_TEXTMODE_SCRIPTS
 
 #
-# This should normally be disabled.  Enabling it runs a cloned toplevel
-# interpreter (*EXPERIMENTAL*, fails tests)
-#BUILDOPT      = $(BUILDOPT) -DTOP_CLONE
-
-#
 # specify semicolon-separated list of extra directories that modules will
 # look for libraries (spaces in path names need not be quoted)
 #
@@ -333,7 +326,6 @@ RSC         = rc
 # Options
 #
 
-RUNTIME                = -MD
 INCLUDES       = -I$(COREDIR) -I.\include -I. -I..
 #PCHFLAGS      = -Fpc:\temp\vcmoduls.pch -YX 
 DEFINES                = -DWIN32 -D_CONSOLE -DNO_STRICT $(CRYPT_FLAG)
@@ -342,42 +334,28 @@ SUBSYS            = console
 CXX_FLAG       = -TP -GX
 
 !IF "$(USE_PERLCRT)" != "define"
-!   IF  "$(CFG)" == "Debug"
-PERLCRTLIBC    = msvcrtd.lib
-!   ELSE
-PERLCRTLIBC    = msvcrt.lib
-!   ENDIF
+LIBC   = msvcrt.lib
 !ELSE
-!   IF  "$(CFG)" == "Debug"
-PERLCRTLIBC    = PerlCRTD.lib
-!   ELSE
-PERLCRTLIBC    = PerlCRT.lib
-!   ENDIF
+LIBC   = PerlCRT.lib
 !ENDIF
 
 PERLEXE_RES    =
 PERLDLL_RES    =
 
-!IF "$(RUNTIME)" == "-MD"
-LIBC           = $(PERLCRTLIBC)
-!ELSE
-LIBC           = libcmt.lib
-!ENDIF
-
 !IF  "$(CFG)" == "Debug"
 !  IF "$(CCTYPE)" == "MSVC20"
-OPTIMIZE       = -Od $(RUNTIME) -Z7 -D_DEBUG -DDEBUGGING
+OPTIMIZE       = -Od -MD -Z7 -DDEBUGGING
 !  ELSE
-OPTIMIZE       = -Od $(RUNTIME)d -Zi -D_DEBUG -DDEBUGGING
+OPTIMIZE       = -Od -MD -Zi -DDEBUGGING
 !  ENDIF
 LINK_DBG       = -debug -pdb:none
 !ELSE
 !  IF  "$(CFG)" == "Optimize"
 # -O1 yields smaller code, which turns out to be faster than -O2
-#OPTIMIZE      = -O2 $(RUNTIME) -DNDEBUG
-OPTIMIZE       = -O1 $(RUNTIME) -DNDEBUG
+#OPTIMIZE      = -O2 -MD -DNDEBUG
+OPTIMIZE       = -O1 -MD -DNDEBUG
 !  ELSE
-OPTIMIZE       = -Od $(RUNTIME) -DNDEBUG
+OPTIMIZE       = -Od -MD -DNDEBUG
 !  ENDIF
 LINK_DBG       = -release
 !ENDIF
@@ -391,7 +369,7 @@ BUILDOPT    = $(BUILDOPT) -DPERL_OBJECT
 BUILDOPT       = $(BUILDOPT) -DPERL_MSVCRT_READFIX
 !ENDIF
 
-LIBBASEFILES   = $(DELAYLOAD) $(CRYPT_LIB) \
+LIBBASEFILES   = $(CRYPT_LIB) \
                oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib \
                comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib \
                netapi32.lib uuid.lib wsock32.lib mpr.lib winmm.lib \
@@ -815,8 +793,8 @@ perldll.def : $(MINIPERL) $(CONFIGPM) ..\global.sym ..\pp.sym ..\makedef.pl
            CCTYPE=$(CCTYPE) > perldll.def
 
 $(PERLDLL): perldll.def $(PERLDLL_OBJ) $(PERLDLL_RES)
-       $(LINK32) -dll -def:perldll.def -out:$@ @<<
-               $(LINK_FLAGS) /base:0x28000000 $(LIBFILES) $(PERLDLL_OBJ) $(PERLDLL_RES)
+       $(LINK32) -dll -def:perldll.def -base:0x28000000 -out:$@ @<<
+               $(LINK_FLAGS) $(DELAYLOAD) $(LIBFILES) $(PERLDLL_OBJ) $(PERLDLL_RES)
 <<
        $(XCOPY) $(PERLIMPLIB) $(COREDIR)
 
@@ -852,8 +830,8 @@ perlmain$(o) : perlmain.c
        $(CC) $(CFLAGS_O) -UPERLDLL $(OBJOUT_FLAG)$@ -c perlmain.c
 
 $(PERLEXE): $(PERLDLL) $(CONFIGPM) $(PERLEXE_OBJ) $(PERLEXE_RES)
-       $(LINK32) -subsystem:console -out:$@ $(LINK_FLAGS) $(LIBFILES) \
-           $(PERLEXE_OBJ) $(SETARGV_OBJ) $(PERLIMPLIB) $(PERLEXE_RES)
+       $(LINK32) -subsystem:console -out:$@ -stack:0x1000000 $(LINK_FLAGS) \
+           $(LIBFILES) $(PERLEXE_OBJ) $(SETARGV_OBJ) $(PERLIMPLIB) $(PERLEXE_RES)
        copy $(PERLEXE) $(WPERLEXE)
        $(MINIPERL) -I..\lib bin\exetype.pl $(WPERLEXE) WINDOWS
        copy splittree.pl .. 
@@ -985,6 +963,13 @@ utils: $(PERLEXE) $(X2P)
        cd ..\utils
        $(MAKE) PERL=$(MINIPERL)
        cd ..\pod
+       copy ..\README.amiga .\perlamiga.pod
+       copy ..\README.cygwin .\perlcygwin.pod
+       copy ..\README.dos .\perldos.pod
+       copy ..\README.hpux .\perlhpux.pod
+       copy ..\README.machten .\perlmachten.pod
+       copy ..\README.os2 .\perlos2.pod
+       copy ..\vms\perlvms.pod .\perlvms.pod
        copy ..\README.win32 .\perlwin32.pod
        $(MAKE) -f ..\win32\pod.mak converters
        cd ..\win32
index 32fb9d8..ae854b4 100644 (file)
@@ -140,6 +140,7 @@ d_flock='define'
 d_fork='undef'
 d_fpathconf='undef'
 d_fpos64_t='undef'
+d_frexpl='undef'
 d_fs_data_s='undef'
 d_fseeko='undef'
 d_fsetpos='define'
@@ -189,6 +190,8 @@ d_index='undef'
 d_inetaton='undef'
 d_int64_t='undef'
 d_isascii='define'
+d_isnan='define'
+d_isnanl='undef'
 d_killpg='undef'
 d_lchown='undef'
 d_ldbl_dig='define'
@@ -215,6 +218,7 @@ d_mkstemp='undef'
 d_mkstemps='undef'
 d_mktime='define'
 d_mmap='undef'
+d_modfl='undef'
 d_mprotect='undef'
 d_msg='undef'
 d_msg_ctrunc='undef'
@@ -238,6 +242,7 @@ d_oldsock='undef'
 d_open3='undef'
 d_pathconf='undef'
 d_pause='define'
+d_perl_otherlibdirs='undef'
 d_phostname='undef'
 d_pipe='define'
 d_poll='undef'
@@ -598,6 +603,7 @@ optimize='-O2'
 orderlib='false'
 osname='MSWin32'
 osvers='4.0'
+otherlibdirs=''
 package='perl5'
 pager='more /e'
 passcat=''
@@ -673,6 +679,7 @@ sitelib_stem=''
 sitelibexp='~INST_TOP~\site~INST_VER~\lib'
 siteprefix='~INST_TOP~\site~INST_VER~'
 siteprefixexp='~INST_TOP~\site~INST_VER~'
+sizesize='4'
 sizetype='size_t'
 sleep=''
 smail=''
index 950a3d7..f63813e 100644 (file)
@@ -140,6 +140,7 @@ d_flock='define'
 d_fork='undef'
 d_fpathconf='undef'
 d_fpos64_t='undef'
+d_frexpl='undef'
 d_fs_data_s='undef'
 d_fseeko='undef'
 d_fsetpos='define'
@@ -189,6 +190,8 @@ d_index='undef'
 d_inetaton='undef'
 d_int64_t='undef'
 d_isascii='define'
+d_isnan='define'
+d_isnanl='undef'
 d_killpg='undef'
 d_lchown='undef'
 d_ldbl_dig='define'
@@ -215,6 +218,7 @@ d_mkstemp='undef'
 d_mkstemps='undef'
 d_mktime='define'
 d_mmap='undef'
+d_modfl='undef'
 d_mprotect='undef'
 d_msg='undef'
 d_msg_ctrunc='undef'
@@ -238,6 +242,7 @@ d_oldsock='undef'
 d_open3='undef'
 d_pathconf='undef'
 d_pause='define'
+d_perl_otherlibdirs='undef'
 d_phostname='undef'
 d_pipe='define'
 d_poll='undef'
@@ -598,6 +603,7 @@ optimize='-O2'
 orderlib='false'
 osname='MSWin32'
 osvers='4.0'
+otherlibdirs=''
 package='perl5'
 pager='more /e'
 passcat=''
@@ -673,6 +679,7 @@ sitelib_stem=''
 sitelibexp='~INST_TOP~\site~INST_VER~\lib'
 siteprefix='~INST_TOP~\site~INST_VER~'
 siteprefixexp='~INST_TOP~\site~INST_VER~'
+sizesize='4'
 sizetype='size_t'
 sleep=''
 smail=''
index 007834e..db52680 100644 (file)
@@ -140,6 +140,7 @@ d_flock='define'
 d_fork='undef'
 d_fpathconf='undef'
 d_fpos64_t='undef'
+d_frexpl='undef'
 d_fs_data_s='undef'
 d_fseeko='undef'
 d_fsetpos='define'
@@ -189,6 +190,8 @@ d_index='undef'
 d_inetaton='undef'
 d_int64_t='undef'
 d_isascii='define'
+d_isnan='define'
+d_isnanl='undef'
 d_killpg='undef'
 d_lchown='undef'
 d_ldbl_dig='define'
@@ -215,6 +218,7 @@ d_mkstemp='undef'
 d_mkstemps='undef'
 d_mktime='define'
 d_mmap='undef'
+d_modfl='undef'
 d_mprotect='undef'
 d_msg='undef'
 d_msg_ctrunc='undef'
@@ -238,6 +242,7 @@ d_oldsock='undef'
 d_open3='undef'
 d_pathconf='undef'
 d_pause='define'
+d_perl_otherlibdirs='undef'
 d_phostname='undef'
 d_pipe='define'
 d_poll='undef'
@@ -598,6 +603,7 @@ optimize='-O'
 orderlib='false'
 osname='MSWin32'
 osvers='4.0'
+otherlibdirs=''
 package='perl5'
 pager='more /e'
 passcat=''
@@ -673,6 +679,7 @@ sitelib_stem=''
 sitelibexp='~INST_TOP~\site~INST_VER~\lib'
 siteprefix='~INST_TOP~\site~INST_VER~'
 siteprefixexp='~INST_TOP~\site~INST_VER~'
+sizesize='4'
 sizetype='size_t'
 sleep=''
 smail=''
index 48fa1ba..8ca757c 100644 (file)
@@ -13,7 +13,7 @@
 /*
  * Package name      : perl5
  * Source directory  : 
- * Configuration time: Sun Mar  5 22:28:23 2000
+ * Configuration time: Tue Mar 21 01:26:35 2000
  * Configured by     : gsar
  * Target system     : 
  */
  */
 #define HAS_FGETPOS    /**/
 
-/* FLEXFILENAMES:
- *     This symbol, if defined, indicates that the system supports filenames
- *     longer than 14 characters.
- */
-#define        FLEXFILENAMES           /**/
-
 /* HAS_FLOCK:
  *     This symbol, if defined, indicates that the flock routine is
  *     available to do file locking.
  */
 /*#define HAS_FORK             /**/
 
+/* HAS_FREXPL:
+ *     This symbol, if defined, indicates that the frexpl routine is
+ *     available to break a long double floating-point number into
+ *     a normalized fraction and an integral power of 2.
+ */
+/*#define HAS_FREXPL           /**/
+
 /* HAS_FSETPOS:
  *     This symbol, if defined, indicates that the fsetpos routine is
  *     available to set the file position indicator, similar to fseek().
 #define BIN_EXP "c:\\perl\\5.6.0\\bin\\MSWin32-x86"    /**/
 
 /* PERL_BINCOMPAT_5005:
- *     This symbol, if defined, indicates that Perl 5.006 should be
+ *     This symbol, if defined, indicates that this version of Perl should be
  *     binary-compatible with Perl 5.005.  This is impossible for builds
  *     that use features like threads and multiplicity it is always undef
  *     for those versions.
  */
 /*#define HAS_GETCWD           /**/
 
+/* HAS_GETFSSTAT:
+ *     This symbol, if defined, indicates that the getfsstat routine is
+ *     available to stat filesystems in bulk.
+ */
+/*#define HAS_GETFSSTAT                /**/
+
 /* HAS_GETGRENT:
  *     This symbol, if defined, indicates that the getgrent routine is
  *     available for sequential access of the group database.
  */
 #define HAS_ISASCII            /**/
 
-/* HAS_LCHOWN:
- *     This symbol, if defined, indicates that the lchown routine is
- *     available to operate on a symbolic link (instead of following the
- *     link).
+/* HAS_ISNAN:
+ *     This symbol, if defined, indicates that the isnan routine is
+ *     available to check whether a double is a NaN.
  */
-/*#define HAS_LCHOWN           /**/
+#define HAS_ISNAN              /**/
+
+/* HAS_ISNANL:
+ *     This symbol, if defined, indicates that the isnanl routine is
+ *     available to check whether a long double is a NaN.
+ */
+/*#define HAS_ISNANL           /**/
 
 /* HAS_LDBL_DIG:
  *     This symbol, if defined, indicates that this system's <float.h>
 #define LONGLONGSIZE 8         /**/
 #endif
 
+/* HAS_LSEEK_PROTO:
+ *     This symbol, if defined, indicates that the system provides
+ *     a prototype for the lseek() function.  Otherwise, it is up
+ *     to the program to supply one.  A good guess is
+ *             extern off_t lseek(int, off_t, int);
+ */
+#define        HAS_LSEEK_PROTO /**/
+
 /* HAS_MADVISE:
  *     This symbol, if defined, indicates that the madvise system call is
  *     available to map a file into memory.
  */
 /*#define HAS_MPROTECT         /**/
 
+/* HAS_MODFL:
+ *     This symbol, if defined, indicates that the modfl routine is
+ *     available to split a long double x into a fractional part f and
+ *     an integer part i such that |f| < 1.0 and (f + i) = x.
+ */
+/*#define HAS_MODFL            /**/
+
 /* HAS_MSG:
  *     This symbol, if defined, indicates that the entire msg*(2) library is
  *     supported (IPC mechanism based on message queues).
  */
 #define        Gid_t_f         "d"             /**/
 
+/* Gid_t_sign:
+ *     This symbol holds the signedess of a Gid_t.
+ *     1 for unsigned, -1 for signed.
+ */
+#define Gid_t_sign     -1              /* GID sign */
+
 /* Gid_t_size:
  *     This symbol holds the size of a Gid_t in bytes.
  */
  *     This symbol holds the return type of getgid() and the type of
  *     argument to setrgid() and related functions.  Typically,
  *     it is the type of group ids in the kernel. It can be int, ushort,
- *     uid_t, etc... It may be necessary to include <sys/types.h> to get
+ *     gid_t, etc... It may be necessary to include <sys/types.h> to get
  *     any typedef'ed information.
  */
 #define Gid_t gid_t            /* Type for getgid(), etc... */
 
 /* Groups_t:
  *     This symbol holds the type used for the second argument to
- *     getgroups() and setgropus().  Usually, this is the same as
+ *     getgroups() and setgroups().  Usually, this is the same as
  *     gidtype (gid_t) , but sometimes it isn't.
- *     It can be int, ushort, uid_t, etc... 
+ *     It can be int, ushort, gid_t, etc... 
  *     It may be necessary to include <sys/types.h> to get any 
  *     typedef'ed information.  This is only required if you have
- *     getgroups() or setgropus()..
+ *     getgroups() or setgroups()..
  */
 #if defined(HAS_GETGROUPS) || defined(HAS_SETGROUPS)
 #define Groups_t gid_t /* Type for 2nd arg to [sg]etgroups() */
  */
 /*#define      I_ICONV         /**/
 
+/* I_IEEEFP:
+ *     This symbol, if defined, indicates that <ieeefp.h> exists and
+ *     should be included.
+ */
+/*#define      I_IEEEFP                /**/
+
 /* I_INTTYPES:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <inttypes.h>.
 #define SITELIB_EXP (win32_get_sitelib("5.6.0"))       /**/
 #define SITELIB_STEM ""                /**/
 
+/* Size_t_size:
+ *     This symbol holds the size of a Size_t in bytes.
+ */
+#define Size_t_size 4          /**/
+
 /* Size_t:
  *     This symbol holds the type used to declare length parameters
  *     for string functions.  It is usually size_t, but may be
  */
 #define Size_t size_t   /* length paramater for string functions */
 
+/* Sock_size_t:
+ *     This symbol holds the type used for the size argument of
+ *     various socket calls (just the base type, not the pointer-to).
+ */
+#define Sock_size_t            int /**/
+
 /* SSize_t:
  *     This symbol holds the type used by functions that return
  *     a count of bytes or an error condition.  It must be a signed type.
  */
 #define        Uid_t_f         "d"             /**/
 
+/* Uid_t_sign:
+ *     This symbol holds the signedess of a Uid_t.
+ *     1 for unsigned, -1 for signed.
+ */
+#define Uid_t_sign     -1              /* UID sign */
+
 /* Uid_t_size:
  *     This symbol holds the size of a Uid_t in bytes.
  */
 #endif
 /*#define      OLD_PTHREADS_API                /**/
 
+/* PERL_VENDORARCH:
+ *     If defined, this symbol contains the name of a private library.
+ *     The library is private in the sense that it needn't be in anyone's
+ *     execution path, but it should be accessible by the world.
+ *     It may have a ~ on the front. 
+ *     The standard distribution will put nothing in this directory.
+ *     Vendors who distribute perl may wish to place their own
+ *     architecture-dependent modules and extensions in this directory with
+ *             MakeMaker Makefile.PL INSTALLDIRS=vendor 
+ *     or equivalent.  See INSTALL for details.
+ */
 /* PERL_VENDORARCH_EXP:
  *     This symbol contains the ~name expanded version of PERL_VENDORARCH, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
+/*#define PERL_VENDORARCH ""           /**/
 /*#define PERL_VENDORARCH_EXP ""               /**/
 
 /* PERL_VENDORLIB_EXP:
 #define PERL_XS_APIVERSION "5.6.0"
 #define PERL_PM_APIVERSION "5.005"
 
-/* HAS_GETFSSTAT:
- *     This symbol, if defined, indicates that the getfsstat routine is
- *     available to stat filesystems in bulk.
- */
-/*#define HAS_GETFSSTAT                /**/
-
-/* I_IEEEFP:
- *     This symbol, if defined, indicates that <ieeefp.h> exists and
- *     should be included.
- */
-/*#define      I_IEEEFP                /**/
-
-/* HAS_LSEEK_PROTO:
- *     This symbol, if defined, indicates that the system provides
- *     a prototype for the lseek() function.  Otherwise, it is up
- *     to the program to supply one.  A good guess is
- *             extern off_t lseek(int, off_t, int);
+/* HAS_LCHOWN:
+ *     This symbol, if defined, indicates that the lchown routine is
+ *     available to operate on a symbolic link (instead of following the
+ *     link).
  */
-#define        HAS_LSEEK_PROTO /**/
+/*#define HAS_LCHOWN           /**/
 
-/* Sock_size_t:
- *     This symbol holds the type used for the size argument of
- *     various socket calls (just the base type, not the pointer-to).
+/* FLEXFILENAMES:
+ *     This symbol, if defined, indicates that the system supports filenames
+ *     longer than 14 characters.
  */
-#define Sock_size_t            int /**/
+#define        FLEXFILENAMES           /**/
 
 #endif
index cb2984d..289eadd 100644 (file)
@@ -13,7 +13,7 @@
 /*
  * Package name      : perl5
  * Source directory  : 
- * Configuration time: Sun Mar  5 22:28:31 2000
+ * Configuration time: Tue Mar 21 01:26:44 2000
  * Configured by     : gsar
  * Target system     : 
  */
  */
 #define HAS_FGETPOS    /**/
 
-/* FLEXFILENAMES:
- *     This symbol, if defined, indicates that the system supports filenames
- *     longer than 14 characters.
- */
-#define        FLEXFILENAMES           /**/
-
 /* HAS_FLOCK:
  *     This symbol, if defined, indicates that the flock routine is
  *     available to do file locking.
  */
 /*#define HAS_FORK             /**/
 
+/* HAS_FREXPL:
+ *     This symbol, if defined, indicates that the frexpl routine is
+ *     available to break a long double floating-point number into
+ *     a normalized fraction and an integral power of 2.
+ */
+/*#define HAS_FREXPL           /**/
+
 /* HAS_FSETPOS:
  *     This symbol, if defined, indicates that the fsetpos routine is
  *     available to set the file position indicator, similar to fseek().
 #define BIN_EXP "c:\\perl\\5.6.0\\bin\\MSWin32-x86"    /**/
 
 /* PERL_BINCOMPAT_5005:
- *     This symbol, if defined, indicates that Perl 5.006 should be
+ *     This symbol, if defined, indicates that this version of Perl should be
  *     binary-compatible with Perl 5.005.  This is impossible for builds
  *     that use features like threads and multiplicity it is always undef
  *     for those versions.
  */
 /*#define HAS_GETCWD           /**/
 
+/* HAS_GETFSSTAT:
+ *     This symbol, if defined, indicates that the getfsstat routine is
+ *     available to stat filesystems in bulk.
+ */
+/*#define HAS_GETFSSTAT                /**/
+
 /* HAS_GETGRENT:
  *     This symbol, if defined, indicates that the getgrent routine is
  *     available for sequential access of the group database.
  */
 #define HAS_ISASCII            /**/
 
-/* HAS_LCHOWN:
- *     This symbol, if defined, indicates that the lchown routine is
- *     available to operate on a symbolic link (instead of following the
- *     link).
+/* HAS_ISNAN:
+ *     This symbol, if defined, indicates that the isnan routine is
+ *     available to check whether a double is a NaN.
  */
-/*#define HAS_LCHOWN           /**/
+#define HAS_ISNAN              /**/
+
+/* HAS_ISNANL:
+ *     This symbol, if defined, indicates that the isnanl routine is
+ *     available to check whether a long double is a NaN.
+ */
+/*#define HAS_ISNANL           /**/
 
 /* HAS_LDBL_DIG:
  *     This symbol, if defined, indicates that this system's <float.h>
 #define LONGLONGSIZE 8         /**/
 #endif
 
+/* HAS_LSEEK_PROTO:
+ *     This symbol, if defined, indicates that the system provides
+ *     a prototype for the lseek() function.  Otherwise, it is up
+ *     to the program to supply one.  A good guess is
+ *             extern off_t lseek(int, off_t, int);
+ */
+#define        HAS_LSEEK_PROTO /**/
+
 /* HAS_MADVISE:
  *     This symbol, if defined, indicates that the madvise system call is
  *     available to map a file into memory.
  */
 /*#define HAS_MPROTECT         /**/
 
+/* HAS_MODFL:
+ *     This symbol, if defined, indicates that the modfl routine is
+ *     available to split a long double x into a fractional part f and
+ *     an integer part i such that |f| < 1.0 and (f + i) = x.
+ */
+/*#define HAS_MODFL            /**/
+
 /* HAS_MSG:
  *     This symbol, if defined, indicates that the entire msg*(2) library is
  *     supported (IPC mechanism based on message queues).
  */
 #define        Gid_t_f         "ld"            /**/
 
+/* Gid_t_sign:
+ *     This symbol holds the signedess of a Gid_t.
+ *     1 for unsigned, -1 for signed.
+ */
+#define Gid_t_sign     -1              /* GID sign */
+
 /* Gid_t_size:
  *     This symbol holds the size of a Gid_t in bytes.
  */
  *     This symbol holds the return type of getgid() and the type of
  *     argument to setrgid() and related functions.  Typically,
  *     it is the type of group ids in the kernel. It can be int, ushort,
- *     uid_t, etc... It may be necessary to include <sys/types.h> to get
+ *     gid_t, etc... It may be necessary to include <sys/types.h> to get
  *     any typedef'ed information.
  */
 #define Gid_t gid_t            /* Type for getgid(), etc... */
 
 /* Groups_t:
  *     This symbol holds the type used for the second argument to
- *     getgroups() and setgropus().  Usually, this is the same as
+ *     getgroups() and setgroups().  Usually, this is the same as
  *     gidtype (gid_t) , but sometimes it isn't.
- *     It can be int, ushort, uid_t, etc... 
+ *     It can be int, ushort, gid_t, etc... 
  *     It may be necessary to include <sys/types.h> to get any 
  *     typedef'ed information.  This is only required if you have
- *     getgroups() or setgropus()..
+ *     getgroups() or setgroups()..
  */
 #if defined(HAS_GETGROUPS) || defined(HAS_SETGROUPS)
 #define Groups_t gid_t /* Type for 2nd arg to [sg]etgroups() */
  */
 /*#define      I_ICONV         /**/
 
+/* I_IEEEFP:
+ *     This symbol, if defined, indicates that <ieeefp.h> exists and
+ *     should be included.
+ */
+/*#define      I_IEEEFP                /**/
+
 /* I_INTTYPES:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <inttypes.h>.
 #define SITELIB_EXP (win32_get_sitelib("5.6.0"))       /**/
 #define SITELIB_STEM ""                /**/
 
+/* Size_t_size:
+ *     This symbol holds the size of a Size_t in bytes.
+ */
+#define Size_t_size 4          /**/
+
 /* Size_t:
  *     This symbol holds the type used to declare length parameters
  *     for string functions.  It is usually size_t, but may be
  */
 #define Size_t size_t   /* length paramater for string functions */
 
+/* Sock_size_t:
+ *     This symbol holds the type used for the size argument of
+ *     various socket calls (just the base type, not the pointer-to).
+ */
+#define Sock_size_t            int /**/
+
 /* SSize_t:
  *     This symbol holds the type used by functions that return
  *     a count of bytes or an error condition.  It must be a signed type.
  */
 #define        Uid_t_f         "ld"            /**/
 
+/* Uid_t_sign:
+ *     This symbol holds the signedess of a Uid_t.
+ *     1 for unsigned, -1 for signed.
+ */
+#define Uid_t_sign     -1              /* UID sign */
+
 /* Uid_t_size:
  *     This symbol holds the size of a Uid_t in bytes.
  */
 #endif
 /*#define      OLD_PTHREADS_API                /**/
 
+/* PERL_VENDORARCH:
+ *     If defined, this symbol contains the name of a private library.
+ *     The library is private in the sense that it needn't be in anyone's
+ *     execution path, but it should be accessible by the world.
+ *     It may have a ~ on the front. 
+ *     The standard distribution will put nothing in this directory.
+ *     Vendors who distribute perl may wish to place their own
+ *     architecture-dependent modules and extensions in this directory with
+ *             MakeMaker Makefile.PL INSTALLDIRS=vendor 
+ *     or equivalent.  See INSTALL for details.
+ */
 /* PERL_VENDORARCH_EXP:
  *     This symbol contains the ~name expanded version of PERL_VENDORARCH, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
+/*#define PERL_VENDORARCH ""           /**/
 /*#define PERL_VENDORARCH_EXP ""               /**/
 
 /* PERL_VENDORLIB_EXP:
 #define PERL_XS_APIVERSION "5.6.0"
 #define PERL_PM_APIVERSION "5.005"
 
-/* HAS_GETFSSTAT:
- *     This symbol, if defined, indicates that the getfsstat routine is
- *     available to stat filesystems in bulk.
- */
-/*#define HAS_GETFSSTAT                /**/
-
-/* I_IEEEFP:
- *     This symbol, if defined, indicates that <ieeefp.h> exists and
- *     should be included.
- */
-/*#define      I_IEEEFP                /**/
-
-/* HAS_LSEEK_PROTO:
- *     This symbol, if defined, indicates that the system provides
- *     a prototype for the lseek() function.  Otherwise, it is up
- *     to the program to supply one.  A good guess is
- *             extern off_t lseek(int, off_t, int);
+/* HAS_LCHOWN:
+ *     This symbol, if defined, indicates that the lchown routine is
+ *     available to operate on a symbolic link (instead of following the
+ *     link).
  */
-#define        HAS_LSEEK_PROTO /**/
+/*#define HAS_LCHOWN           /**/
 
-/* Sock_size_t:
- *     This symbol holds the type used for the size argument of
- *     various socket calls (just the base type, not the pointer-to).
+/* FLEXFILENAMES:
+ *     This symbol, if defined, indicates that the system supports filenames
+ *     longer than 14 characters.
  */
-#define Sock_size_t            int /**/
+#define        FLEXFILENAMES           /**/
 
 #endif
index 0bb27e9..b0702f0 100644 (file)
@@ -13,7 +13,7 @@
 /*
  * Package name      : perl5
  * Source directory  : 
- * Configuration time: Sun Mar  5 22:28:36 2000
+ * Configuration time: Tue Mar 21 01:26:24 2000
  * Configured by     : gsar
  * Target system     : 
  */
  */
 #define HAS_FGETPOS    /**/
 
-/* FLEXFILENAMES:
- *     This symbol, if defined, indicates that the system supports filenames
- *     longer than 14 characters.
- */
-#define        FLEXFILENAMES           /**/
-
 /* HAS_FLOCK:
  *     This symbol, if defined, indicates that the flock routine is
  *     available to do file locking.
  */
 /*#define HAS_FORK             /**/
 
+/* HAS_FREXPL:
+ *     This symbol, if defined, indicates that the frexpl routine is
+ *     available to break a long double floating-point number into
+ *     a normalized fraction and an integral power of 2.
+ */
+/*#define HAS_FREXPL           /**/
+
 /* HAS_FSETPOS:
  *     This symbol, if defined, indicates that the fsetpos routine is
  *     available to set the file position indicator, similar to fseek().
 #define BIN_EXP "c:\\perl\\5.6.0\\bin\\MSWin32-x86"    /**/
 
 /* PERL_BINCOMPAT_5005:
- *     This symbol, if defined, indicates that Perl 5.006 should be
+ *     This symbol, if defined, indicates that this version of Perl should be
  *     binary-compatible with Perl 5.005.  This is impossible for builds
  *     that use features like threads and multiplicity it is always undef
  *     for those versions.
  */
 /*#define HAS_GETCWD           /**/
 
+/* HAS_GETFSSTAT:
+ *     This symbol, if defined, indicates that the getfsstat routine is
+ *     available to stat filesystems in bulk.
+ */
+/*#define HAS_GETFSSTAT                /**/
+
 /* HAS_GETGRENT:
  *     This symbol, if defined, indicates that the getgrent routine is
  *     available for sequential access of the group database.
  */
 #define HAS_ISASCII            /**/
 
-/* HAS_LCHOWN:
- *     This symbol, if defined, indicates that the lchown routine is
- *     available to operate on a symbolic link (instead of following the
- *     link).
+/* HAS_ISNAN:
+ *     This symbol, if defined, indicates that the isnan routine is
+ *     available to check whether a double is a NaN.
  */
-/*#define HAS_LCHOWN           /**/
+#define HAS_ISNAN              /**/
+
+/* HAS_ISNANL:
+ *     This symbol, if defined, indicates that the isnanl routine is
+ *     available to check whether a long double is a NaN.
+ */
+/*#define HAS_ISNANL           /**/
 
 /* HAS_LDBL_DIG:
  *     This symbol, if defined, indicates that this system's <float.h>
 #define LONGLONGSIZE 8         /**/
 #endif
 
+/* HAS_LSEEK_PROTO:
+ *     This symbol, if defined, indicates that the system provides
+ *     a prototype for the lseek() function.  Otherwise, it is up
+ *     to the program to supply one.  A good guess is
+ *             extern off_t lseek(int, off_t, int);
+ */
+#define        HAS_LSEEK_PROTO /**/
+
 /* HAS_MADVISE:
  *     This symbol, if defined, indicates that the madvise system call is
  *     available to map a file into memory.
  */
 /*#define HAS_MPROTECT         /**/
 
+/* HAS_MODFL:
+ *     This symbol, if defined, indicates that the modfl routine is
+ *     available to split a long double x into a fractional part f and
+ *     an integer part i such that |f| < 1.0 and (f + i) = x.
+ */
+/*#define HAS_MODFL            /**/
+
 /* HAS_MSG:
  *     This symbol, if defined, indicates that the entire msg*(2) library is
  *     supported (IPC mechanism based on message queues).
  */
 #define        Gid_t_f         "ld"            /**/
 
+/* Gid_t_sign:
+ *     This symbol holds the signedess of a Gid_t.
+ *     1 for unsigned, -1 for signed.
+ */
+#define Gid_t_sign     -1              /* GID sign */
+
 /* Gid_t_size:
  *     This symbol holds the size of a Gid_t in bytes.
  */
  *     This symbol holds the return type of getgid() and the type of
  *     argument to setrgid() and related functions.  Typically,
  *     it is the type of group ids in the kernel. It can be int, ushort,
- *     uid_t, etc... It may be necessary to include <sys/types.h> to get
+ *     gid_t, etc... It may be necessary to include <sys/types.h> to get
  *     any typedef'ed information.
  */
 #define Gid_t gid_t            /* Type for getgid(), etc... */
 
 /* Groups_t:
  *     This symbol holds the type used for the second argument to
- *     getgroups() and setgropus().  Usually, this is the same as
+ *     getgroups() and setgroups().  Usually, this is the same as
  *     gidtype (gid_t) , but sometimes it isn't.
- *     It can be int, ushort, uid_t, etc... 
+ *     It can be int, ushort, gid_t, etc... 
  *     It may be necessary to include <sys/types.h> to get any 
  *     typedef'ed information.  This is only required if you have
- *     getgroups() or setgropus()..
+ *     getgroups() or setgroups()..
  */
 #if defined(HAS_GETGROUPS) || defined(HAS_SETGROUPS)
 #define Groups_t gid_t /* Type for 2nd arg to [sg]etgroups() */
  */
 /*#define      I_ICONV         /**/
 
+/* I_IEEEFP:
+ *     This symbol, if defined, indicates that <ieeefp.h> exists and
+ *     should be included.
+ */
+/*#define      I_IEEEFP                /**/
+
 /* I_INTTYPES:
  *     This symbol, if defined, indicates to the C program that it should
  *     include <inttypes.h>.
 #define SITELIB_EXP (win32_get_sitelib("5.6.0"))       /**/
 #define SITELIB_STEM ""                /**/
 
+/* Size_t_size:
+ *     This symbol holds the size of a Size_t in bytes.
+ */
+#define Size_t_size 4          /**/
+
 /* Size_t:
  *     This symbol holds the type used to declare length parameters
  *     for string functions.  It is usually size_t, but may be
  */
 #define Size_t size_t   /* length paramater for string functions */
 
+/* Sock_size_t:
+ *     This symbol holds the type used for the size argument of
+ *     various socket calls (just the base type, not the pointer-to).
+ */
+#define Sock_size_t            int /**/
+
 /* SSize_t:
  *     This symbol holds the type used by functions that return
  *     a count of bytes or an error condition.  It must be a signed type.
  */
 #define        Uid_t_f         "ld"            /**/
 
+/* Uid_t_sign:
+ *     This symbol holds the signedess of a Uid_t.
+ *     1 for unsigned, -1 for signed.
+ */
+#define Uid_t_sign     -1              /* UID sign */
+
 /* Uid_t_size:
  *     This symbol holds the size of a Uid_t in bytes.
  */
 #endif
 /*#define      OLD_PTHREADS_API                /**/
 
+/* PERL_VENDORARCH:
+ *     If defined, this symbol contains the name of a private library.
+ *     The library is private in the sense that it needn't be in anyone's
+ *     execution path, but it should be accessible by the world.
+ *     It may have a ~ on the front. 
+ *     The standard distribution will put nothing in this directory.
+ *     Vendors who distribute perl may wish to place their own
+ *     architecture-dependent modules and extensions in this directory with
+ *             MakeMaker Makefile.PL INSTALLDIRS=vendor 
+ *     or equivalent.  See INSTALL for details.
+ */
 /* PERL_VENDORARCH_EXP:
  *     This symbol contains the ~name expanded version of PERL_VENDORARCH, to be used
  *     in programs that are not prepared to deal with ~ expansion at run-time.
  */
+/*#define PERL_VENDORARCH ""           /**/
 /*#define PERL_VENDORARCH_EXP ""               /**/
 
 /* PERL_VENDORLIB_EXP:
 #define PERL_XS_APIVERSION "5.6.0"
 #define PERL_PM_APIVERSION "5.005"
 
-/* HAS_GETFSSTAT:
- *     This symbol, if defined, indicates that the getfsstat routine is
- *     available to stat filesystems in bulk.
- */
-/*#define HAS_GETFSSTAT                /**/
-
-/* I_IEEEFP:
- *     This symbol, if defined, indicates that <ieeefp.h> exists and
- *     should be included.
- */
-/*#define      I_IEEEFP                /**/
-
-/* HAS_LSEEK_PROTO:
- *     This symbol, if defined, indicates that the system provides
- *     a prototype for the lseek() function.  Otherwise, it is up
- *     to the program to supply one.  A good guess is
- *             extern off_t lseek(int, off_t, int);
+/* HAS_LCHOWN:
+ *     This symbol, if defined, indicates that the lchown routine is
+ *     available to operate on a symbolic link (instead of following the
+ *     link).
  */
-#define        HAS_LSEEK_PROTO /**/
+/*#define HAS_LCHOWN           /**/
 
-/* Sock_size_t:
- *     This symbol holds the type used for the size argument of
- *     various socket calls (just the base type, not the pointer-to).
+/* FLEXFILENAMES:
+ *     This symbol, if defined, indicates that the system supports filenames
+ *     longer than 14 characters.
  */
-#define Sock_size_t            int /**/
+#define        FLEXFILENAMES           /**/
 
 #endif
index 3d4f57e..21836b2 100644 (file)
@@ -6,7 +6,7 @@
 #      Mingw32 with gcc-2.95.2 or better  **experimental**
 #
 # This is set up to build a perl.exe that runs off a shared library
-# (perl.dll).  Also makes individual DLLs for the XS extensions.
+# (perl56.dll).  Also makes individual DLLs for the XS extensions.
 #
 
 ##
@@ -53,8 +53,6 @@ INST_ARCH     *= \$(ARCHNAME)
 #USE_MULTI     *= define
 
 #
-# XXX WARNING! This option is still very experimental.  May be broken.
-#
 # Beginnings of interpreter cloning/threads; still very incomplete.
 # This should be enabled to get the fork() emulation.  This needs
 # USE_MULTI as well.
@@ -197,11 +195,6 @@ CCLIBDIR   *= $(CCHOME)\lib
 #BUILDOPT      += -DPERL_TEXTMODE_SCRIPTS
 
 #
-# This should normally be disabled.  Enabling it runs a cloned toplevel
-# interpreter (*EXPERIMENTAL*, fails tests)
-#BUILDOPT      += -DTOP_CLONE
-
-#
 # specify semicolon-separated list of extra directories that modules will
 # look for libraries (spaces in path names need not be quoted)
 #
@@ -338,7 +331,6 @@ RSC         = rc
 #
 # Options
 #
-RUNTIME                = -D_RTLDLL
 INCLUDES       = -I$(COREDIR) -I.\include -I. -I.. -I"$(CCINCDIR)"
 #PCHFLAGS      = -H -Hc -H=c:\temp\bcmoduls.pch 
 DEFINES                = -DWIN32 $(CRYPT_FLAG)
@@ -350,10 +342,10 @@ LIBC              = cw32mti.lib
 LIBFILES       = $(CRYPT_LIB) import32.lib $(LIBC) odbc32.lib odbccp32.lib
 
 .IF  "$(CFG)" == "Debug"
-OPTIMIZE       = -v $(RUNTIME) -DDEBUGGING
+OPTIMIZE       = -v -D_RTLDLL -DDEBUGGING
 LINK_DBG       = -v
 .ELSE
-OPTIMIZE       = -O2 $(RUNTIME)
+OPTIMIZE       = -O2 -D_RTLDLL
 LINK_DBG       = 
 .ENDIF
 
@@ -379,7 +371,6 @@ a = .a
 # Options
 #
 
-RUNTIME                =
 INCLUDES       = -I$(COREDIR) -I.\include -I. -I..
 DEFINES                = -DWIN32 $(CRYPT_FLAG)
 LOCDEFS                = -DPERLDLL -DPERL_CORE
@@ -396,10 +387,10 @@ LIBFILES  = $(CRYPT_LIB) $(LIBC) \
                  -lwinmm -lversion -lodbc32
 
 .IF  "$(CFG)" == "Debug"
-OPTIMIZE       = -g $(RUNTIME) -DDEBUGGING
+OPTIMIZE       = -g -DDEBUGGING
 LINK_DBG       = -g
 .ELSE
-OPTIMIZE       = -g -O2 $(RUNTIME)
+OPTIMIZE       = -g -O2
 LINK_DBG       = 
 .ENDIF
 
@@ -423,7 +414,6 @@ RSC         = rc
 # Options
 #
 
-RUNTIME                = -MD
 INCLUDES       = -I$(COREDIR) -I.\include -I. -I..
 #PCHFLAGS      = -Fpc:\temp\vcmoduls.pch -YX 
 DEFINES                = -DWIN32 -D_CONSOLE -DNO_STRICT $(CRYPT_FLAG)
@@ -432,47 +422,33 @@ SUBSYS            = console
 CXX_FLAG       = -TP -GX
 
 .IF "$(USE_PERLCRT)" != "define"
-.IF  "$(CFG)" == "Debug"
-PERLCRTLIBC    = msvcrtd.lib
-.ELSE
-PERLCRTLIBC    = msvcrt.lib
-.ENDIF
+LIBC   = msvcrt.lib
 .ELSE
-.IF  "$(CFG)" == "Debug"
-PERLCRTLIBC    = PerlCRTD.lib
-.ELSE
-PERLCRTLIBC    = PerlCRT.lib
-.ENDIF
+LIBC   = PerlCRT.lib
 .ENDIF
 
 PERLEXE_RES    =
 PERLDLL_RES    =
 
-.IF "$(RUNTIME)" == "-MD"
-LIBC           = $(PERLCRTLIBC)
-.ELSE
-LIBC           = libcmt.lib
-.ENDIF
-
 .IF  "$(CFG)" == "Debug"
 .IF "$(CCTYPE)" == "MSVC20"
-OPTIMIZE       = -Od $(RUNTIME) -Z7 -D_DEBUG -DDEBUGGING
+OPTIMIZE       = -Od -MD -Z7 -DDEBUGGING
 .ELSE
-OPTIMIZE       = -Od $(RUNTIME)d -Zi -D_DEBUG -DDEBUGGING
+OPTIMIZE       = -Od -MD -Zi -DDEBUGGING
 .ENDIF
 LINK_DBG       = -debug -pdb:none
 .ELSE
 .IF "$(CFG)" == "Optimize"
 # -O1 yields smaller code, which turns out to be faster than -O2
-#OPTIMIZE      = -O2 $(RUNTIME) -DNDEBUG
-OPTIMIZE       = -O1 $(RUNTIME) -DNDEBUG
+#OPTIMIZE      = -O2 -MD -DNDEBUG
+OPTIMIZE       = -O1 -MD -DNDEBUG
 .ELSE
-OPTIMIZE       = -Od $(RUNTIME) -DNDEBUG
+OPTIMIZE       = -Od -MD -DNDEBUG
 .ENDIF
 LINK_DBG       = -release
 .ENDIF
 
-LIBBASEFILES   = $(DELAYLOAD) $(CRYPT_LIB) \
+LIBBASEFILES   = $(CRYPT_LIB) \
                oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib \
                comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib \
                netapi32.lib uuid.lib wsock32.lib mpr.lib winmm.lib \
@@ -828,7 +804,7 @@ POD2TEXT    = $(PODDIR)\pod2text
 #      -- BKS 10-17-1999
 CFG_VARS       =                                       \
                INST_DRV=$(INST_DRV)            ~       \
-               INST_TOP=$(INST_TOP)            ~       \
+               INST_TOP=$(INST_TOP:s/\/\\/)    ~       \
                INST_VER=$(INST_VER:s/\/\\/)    ~       \
                INST_ARCH=$(INST_ARCH)          ~       \
                archname=$(ARCHNAME)            ~       \
@@ -838,9 +814,9 @@ CFG_VARS    =                                       \
                d_crypt=$(D_CRYPT)              ~       \
                d_mymalloc=$(PERL_MALLOC)       ~       \
                libs=$(LIBFILES:f)              ~       \
-               incpath=$(CCINCDIR)             ~       \
+               incpath=$(CCINCDIR:s/\/\\/)     ~       \
                libperl=$(PERLIMPLIB:f)         ~       \
-               libpth=$(CCLIBDIR);$(EXTRALIBDIRS)              ~       \
+               libpth=$(CCLIBDIR:s/\/\\/);$(EXTRALIBDIRS:s/\/\\/)      ~       \
                libc=$(LIBC)                    ~       \
                make=dmake                      ~       \
                _o=$(o) obj_ext=$(o)            ~       \
@@ -1041,7 +1017,8 @@ $(PERLDLL): perldll.def $(PERLDLL_OBJ) $(PERLDLL_RES)
                perl.exp $(LKPOST))
 .ELSE
        $(LINK32) -dll -def:perldll.def -out:$@ \
-           @$(mktmp $(BLINK_FLAGS) $(LIBFILES) /base:0x28000000 $(PERLDLL_RES) $(PERLDLL_OBJ:s,\,\\))
+           @$(mktmp -base:0x28000000 $(BLINK_FLAGS) $(DELAYLOAD) $(LIBFILES) \
+               $(PERLDLL_RES) $(PERLDLL_OBJ:s,\,\\))
 .ENDIF
        $(XCOPY) $(PERLIMPLIB) $(COREDIR)
 
@@ -1093,8 +1070,8 @@ $(PERLEXE): $(PERLDLL) $(CONFIGPM) $(PERLEXE_OBJ) $(PERLEXE_RES)
        $(LINK32) -mconsole -o $@ $(BLINK_FLAGS)  \
            $(PERLEXE_OBJ) $(PERLIMPLIB) $(LIBFILES)
 .ELSE
-       $(LINK32) -subsystem:console -out:$@ $(BLINK_FLAGS) $(LIBFILES) \
-           $(PERLEXE_OBJ) $(SETARGV_OBJ) $(PERLIMPLIB) $(PERLEXE_RES)
+       $(LINK32) -subsystem:console -out:$@ -stack:0x1000000 $(BLINK_FLAGS) \
+           $(LIBFILES) $(PERLEXE_OBJ) $(SETARGV_OBJ) $(PERLIMPLIB) $(PERLEXE_RES)
 .ENDIF
        copy $(PERLEXE) $(WPERLEXE)
        $(MINIPERL) -I..\lib bin\exetype.pl $(WPERLEXE) WINDOWS
@@ -1205,7 +1182,14 @@ doc: $(PERLEXE)
 
 utils: $(PERLEXE) $(X2P)
        cd ..\utils && $(MAKE) PERL=$(MINIPERL)
-       copy ..\README.win32 ..\pod\perlwin32.pod
+       copy ..\README.amiga ..\pod\perlamiga.pod
+       copy ..\README.cygwin ..\pod\perlcygwin.pod
+       copy ..\README.dos ..\pod\perldos.pod
+       copy ..\README.hpux ..\pod\perlhpux.pod
+       copy ..\README.machten ..\pod\perlmachten.pod
+       copy ..\README.os2 ..\pod\perlos2.pod
+       copy ..\README.os2 ..\pod\perlos2.pod
+       copy ..\vms\perlvms.pod ..\pod\perlvms.pod
        cd ..\pod && $(MAKE) -f ..\win32\pod.mak converters
        $(PERLEXE) $(PL2BAT) $(UTILS)
 
index 02b9cb4..ea0d31d 100644 (file)
@@ -10,6 +10,7 @@
 #ifndef ___PerlHost_H___
 #define ___PerlHost_H___
 
+#include <signal.h>
 #include "iperlsys.h"
 #include "vmem.h"
 #include "vdir.h"
@@ -1639,7 +1640,7 @@ PerlProcWaitpid(struct IPerlProc* piPerl, int pid, int *status, int flags)
 Sighandler_t
 PerlProcSignal(struct IPerlProc* piPerl, int sig, Sighandler_t subcode)
 {
-    return 0;
+    return signal(sig, subcode);
 }
 
 #ifdef USE_ITHREADS
@@ -1719,6 +1720,13 @@ restart:
        PL_main_root = Nullop;
     }
 
+    /* close the std handles to avoid fd leaks */
+    {
+       do_close(gv_fetchpv("STDIN", TRUE, SVt_PVIO), FALSE);
+       do_close(gv_fetchpv("STDOUT", TRUE, SVt_PVIO), FALSE);
+       do_close(gv_fetchpv("STDERR", TRUE, SVt_PVIO), FALSE);
+    }
+
     /* destroy everything (waits for any pseudo-forked children) */
     perl_destruct(my_perl);
     perl_free(my_perl);
@@ -1763,8 +1771,10 @@ PerlProcFork(struct IPerlProc* piPerl)
                          (LPVOID)new_perl, 0, &id);
 #    endif
     PERL_SET_THX(aTHXo);       /* XXX perl_clone*() set TLS */
-    if (!handle)
-       Perl_croak(aTHX_ "panic: pseudo fork() failed");
+    if (!handle) {
+       errno = EAGAIN;
+       return -1;
+    }
     w32_pseudo_child_handles[w32_num_pseudo_children] = handle;
     w32_pseudo_child_pids[w32_num_pseudo_children] = id;
     ++w32_num_pseudo_children;
index 6211ba7..857aada 100644 (file)
@@ -143,6 +143,13 @@ perl_alloc(void)
     return my_perl;
 }
 
+EXTERN_C void
+win32_delete_internal_host(void *h)
+{
+    CPerlHost *host = (CPerlHost*)h;
+    delete host;
+}
+
 #ifdef PERL_OBJECT
 
 EXTERN_C void
@@ -157,10 +164,7 @@ perl_construct(PerlInterpreter* my_perl)
     {
        win32_fprintf(stderr, "%s\n",
                      "Error: Unable to construct data structures");
-       CPerlHost* pHost = (CPerlHost*)w32_internal_host;
-       Perl_free();
-       delete pHost;
-       PERL_SET_THX(NULL);
+       perl_free(my_perl);
     }
 }
 
@@ -185,21 +189,19 @@ EXTERN_C void
 perl_free(PerlInterpreter* my_perl)
 {
     CPerlObj* pPerl = (CPerlObj*)my_perl;
+    void *host = w32_internal_host;
 #ifdef DEBUGGING
-    CPerlHost* pHost = (CPerlHost*)w32_internal_host;
     Perl_free();
-    delete pHost;
 #else
     try
     {
-       CPerlHost* pHost = (CPerlHost*)w32_internal_host;
        Perl_free();
-       delete pHost;
     }
     catch(...)
     {
     }
 #endif
+    win32_delete_internal_host(host);
     PERL_SET_THX(NULL);
 }
 
@@ -207,10 +209,10 @@ EXTERN_C int
 perl_run(PerlInterpreter* my_perl)
 {
     CPerlObj* pPerl = (CPerlObj*)my_perl;
+    int retVal;
 #ifdef DEBUGGING
-    return Perl_run();
+    retVal = Perl_run();
 #else
-    int retVal;
     try
     {
        retVal = Perl_run();
@@ -220,8 +222,8 @@ perl_run(PerlInterpreter* my_perl)
        win32_fprintf(stderr, "Error: Runtime exception\n");
        retVal = -1;
     }
-    return retVal;
 #endif
+    return retVal;
 }
 
 EXTERN_C int
index cf3f502..0fcae27 100644 (file)
@@ -421,11 +421,19 @@ void VMem::FreeLock(void)
 
 int VMem::IsLocked(void)
 {
+#if 0
+    /* XXX TryEnterCriticalSection() is not available in some versions
+     * of Windows 95.  Since this code is not used anywhere yet, we 
+     * skirt the issue for now. */
     BOOL bAccessed = TryEnterCriticalSection(&m_cs);
     if(bAccessed) {
        LeaveCriticalSection(&m_cs);
     }
     return !bAccessed;
+#else
+    ASSERT(0); /* alarm bells for when somebody calls this */
+    return 0;
+#endif
 }
 
 
index 840274b..c589ff5 100644 (file)
@@ -177,7 +177,9 @@ get_regstr_from(HKEY hkey, const char *valuename, SV **svp)
     if (retval == ERROR_SUCCESS) {
        DWORD datalen;
        retval = RegQueryValueEx(handle, valuename, 0, &type, NULL, &datalen);
-       if (retval == ERROR_SUCCESS && type == REG_SZ) {
+       if (retval == ERROR_SUCCESS
+           && (type == REG_SZ || type == REG_EXPAND_SZ))
+       {
            dTHXo;
            if (!*svp)
                *svp = sv_2mortal(newSVpvn("",0));
@@ -1755,7 +1757,7 @@ static VOID CALLBACK TimerProc(HWND win, UINT msg, UINT id, DWORD time)
     dTHXo;
     KillTimer(NULL,timerid);
     timerid=0;  
-    sighandler(14);
+    CALL_FPTR(PL_sighandlerp)(14);
 }
 #endif /* !PERL_OBJECT */
 
@@ -3966,18 +3968,6 @@ Perl_init_os_extras(void)
     char *file = __FILE__;
     dXSUB_SYS;
 
-    w32_perlshell_tokens = Nullch;
-    w32_perlshell_items = -1;
-    w32_fdpid = newAV();               /* XXX needs to be in Perl_win32_init()? */
-    New(1313, w32_children, 1, child_tab);
-    w32_num_children = 0;
-    w32_init_socktype = 0;
-#ifdef USE_ITHREADS
-    w32_pseudo_id = 0;
-    New(1313, w32_pseudo_children, 1, child_tab);
-    w32_num_pseudo_children = 0;
-#endif
-
     /* these names are Activeware compatible */
     newXS("Win32::GetCwd", w32_GetCwd, file);
     newXS("Win32::SetCwd", w32_SetCwd, file);
@@ -4035,16 +4025,36 @@ win32_get_child_IO(child_IO_table* ptbl)
     ptbl->childStdErr  = GetStdHandle(STD_ERROR_HANDLE);
 }
 
-
-#ifdef USE_ITHREADS
+#ifdef HAVE_INTERP_INTERN
 
 #  ifdef PERL_OBJECT
+#    undef Perl_sys_intern_init
+#    define Perl_sys_intern_init CPerlObj::Perl_sys_intern_init
 #    undef Perl_sys_intern_dup
 #    define Perl_sys_intern_dup CPerlObj::Perl_sys_intern_dup
 #    define pPerl this
 #  endif
 
 void
+Perl_sys_intern_init(pTHX)
+{
+    w32_perlshell_tokens       = Nullch;
+    w32_perlshell_vec          = (char**)NULL;
+    w32_perlshell_items                = 0;
+    w32_fdpid                  = newAV();
+    New(1313, w32_children, 1, child_tab);
+    w32_num_children           = 0;
+#  ifdef USE_ITHREADS
+    w32_pseudo_id              = 0;
+    New(1313, w32_pseudo_children, 1, child_tab);
+    w32_num_pseudo_children    = 0;
+#  endif
+    w32_init_socktype          = 0;
+}
+
+#  ifdef USE_ITHREADS
+
+void
 Perl_sys_intern_dup(pTHX_ struct interp_intern *src, struct interp_intern *dst)
 {
     dst->perlshell_tokens      = Nullch;
@@ -4052,12 +4062,12 @@ Perl_sys_intern_dup(pTHX_ struct interp_intern *src, struct interp_intern *dst)
     dst->perlshell_items       = 0;
     dst->fdpid                 = newAV();
     Newz(1313, dst->children, 1, child_tab);
-    Newz(1313, dst->pseudo_children, 1, child_tab);
     dst->pseudo_id             = 0;
-    dst->children->num         = 0;
+    Newz(1313, dst->pseudo_children, 1, child_tab);
     dst->thr_intern.Winit_socktype = src->thr_intern.Winit_socktype;
 }
-#endif
+#  endif /* USE_ITHREADS */
+#endif /* HAVE_INTERP_INTERN */
 
 #ifdef PERL_OBJECT
 #  undef this
index 81bf574..3929bcc 100644 (file)
@@ -200,6 +200,8 @@ typedef unsigned short      mode_t;
 /* Visual C thinks that a pointer to a member variable is 16 bytes in size. */
 #define PERL_MEMBER_PTR_SIZE   16
 
+#define isnan          _isnan
+
 #endif /* _MSC_VER */
 
 #ifdef __MINGW32__             /* Minimal Gnu-Win32 */
@@ -337,6 +339,10 @@ extern int         IsWin95(void);
 extern int             IsWinNT(void);
 extern void            win32_argv2utf8(int argc, char** argv);
 
+#ifdef PERL_IMPLICIT_SYS
+extern void            win32_delete_internal_host(void *h);
+#endif
+
 extern char *          staticlinkmodules[];
 
 END_EXTERN_C
index 02fab51..b4161b0 100644 (file)
--- a/xsutils.c
+++ b/xsutils.c
@@ -253,11 +253,9 @@ usage:
 
     rv = ST(0);
     ST(0) = TARG;
-    if (!SvOK(rv)) {
-       ST(0) = &PL_sv_no;
-       XSRETURN(1);
-    }
-    if (!SvROK(rv))
+    if (SvGMAGICAL(rv))
+       mg_get(rv);
+    if (!(SvOK(rv) && SvROK(rv)))
        goto usage;
     sv = SvRV(rv);
     sv_setpv(TARG, sv_reftype(sv, 0));