From: Charles Bailey Date: Tue, 23 May 2000 23:35:13 +0000 (+0000) Subject: Resync with mainline prior to post-5.6.0 updates X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=ee8c7f5465f003860e2347a2946abacac39bd9b9;p=p5sagit%2Fp5-mst-13.2.git Resync with mainline prior to post-5.6.0 updates p4raw-id: //depot/vmsperl@6111 --- diff --git a/AUTHORS b/AUTHORS index f978b51..bf53871 100644 --- 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 index 0000000..6949821 --- /dev/null +++ b/Changes5.6 @@ -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 + Abigail + Kenneth Albanowski + Russ Allbery + Brad Appleton + Greg Bacon + Robin Barker + Vishal Bhatia + Spider Boardman + Tom Christiansen + Mark-Jason Dominus + Jan Dubois + Dominic Dunlop + Eric Fifer + Hallvard B Furuseth + M. J. T. Guy + Jarkko Hietaniemi + Tom Hughes + Nick Ing-Simmons + Andreas Koenig + Douglas Lankshear + Doug MacEachern + Raphael Manfredi + Paul Marquess + Stephen McCamant + Laszlo Molnar + Hans Mulder + Chris Nandor + Matthias Neeracher + Jeff Okamoto + Ulrich Pfeifer + Tom Phoenix + Joshua Pritikin + Peter Prymmer + Norbert Pueschel + Dean Roehrich + Hugo van der Sanden + Michael G Schwern + Roderick Schertler + Kurt D. Starsinic + Benjamin Stuhl + Dan Sugalski + Nathan Torkington + Larry W. Virden + Johan Vromans + Ilya Zakharevich + +And the Keepers of the Patch Pumpkin: + + Charles Bailey + Graham Barr + Malcolm Beattie + Tim Bunce + Andy Dougherty + Gurusamy Sarathy + Chip Salzenberg + +And, of course, the Author of Perl: + + Larry Wall + + +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 + ) + 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 + ) + 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 ) + 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 ) + 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 + ); 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 ) + 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 ) + 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 ) + Branch: perl + ! pod/perlop.pod +____________________________________________________________________________ +[ 5816] By: gsar on 2000/03/19 05:55:52 + Log: support for C; move VMSISH_EXIT out of + op_private (from Charles Lane ) + 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 ) + 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 + 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 + ) + 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 ) + 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 + ) + 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 + ) + 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 ) + 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 ) + 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 ) + 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 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 ) + 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 ) + 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 ) + 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 + ) + 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 ) + 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 + ) + 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 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 . + 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 ) + 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 + 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 ) + Branch: perl + ! lib/Pod/Text.pm +____________________________________________________________________________ +[ 5594] By: gsar on 2000/03/07 10:24:55 + Log: Fatal.pm pod tweak (from Matt Sergeant ) + 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" + To: vmsperl@perl.org, perl5-porters@perl.org + Cc: jhi@iki.fi, Charles Bailey , 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 + 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: + 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 ) + 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 + and C + 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 ) + 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 + ) + 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" + 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 + ) + 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 + ) + 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 + ) + 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 + ) + 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 + ) + 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 ) + 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 ) + 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 ) + 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 ) + 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 + 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 + ) + 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 + ); 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 + Branch: perl + ! mg.c +____________________________________________________________________________ +[ 5393] By: jhi on 2000/03/01 06:02:12 + Log: Fcntl de-cut-and-pasto. + From: Doug MacEachern + To: perl5-porters@perl.org + Subject: [PATCH v5.5.660] Fcntl.pm + Date: Tue, 29 Feb 2000 21:24:00 -0800 (PST) + Message-ID: + 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 + ) + 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 + ) + 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 + ) + 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 + 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 ) + 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 ) + 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: Cuntaint;> + 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 + ) + 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 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" + To: "'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 + To: "M.J.T. Guy" + 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: + Branch: cfgperl + ! unixish.h +____________________________________________________________________________ +[ 5247] By: jhi on 2000/02/24 23:46:27 + Log: From: Gisle Aas + To: perl5-porters@perl.org + Subject: [PATCH v5.5.660] More UTF8_MAXLEN fixes + Date: 25 Feb 2000 00:24:53 +0100 + Message-ID: + 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" + To: "'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 + 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 + 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 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 + To: perl5-porters@perl.org + Cc: Gurusamy Sarathy + Subject: [ID 20000223.008] [PATCH 5.5.660] squash malloc.c compile warnings + Date: Wed, 23 Feb 2000 21:23:44 +0100 + Message-Id: + Branch: cfgperl + ! malloc.c +____________________________________________________________________________ +[ 5224] By: jhi on 2000/02/23 20:22:43 + Log: From: Dan Sugalski + 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 + To: perl5-porters@perl.org + Cc: Andy Dougherty , + Gurusamy Sarathy + Subject: [ID 20000223.007] [PATCH 5.5.660] $@ unsafe in Configure sed arguments + Date: Wed, 23 Feb 2000 20:41:54 +0100 + Message-Id: + 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 and + C 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 ) + 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 ) + 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, $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 + 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 ) + 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 (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 + ) + 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 ) + 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 + 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 + ) + 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 + 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 + ) + 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 ) + 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 . + 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 + ) + 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 ) + Branch: perl + ! universal.c +____________________________________________________________________________ +[ 5108] By: gsar on 2000/02/15 18:25:05 + Log: avoid accidental #line directives (from Rick Delaney + ) + Branch: perl + ! pod/perlsyn.pod toke.c +____________________________________________________________________________ +[ 5107] By: gsar on 2000/02/15 18:04:31 + Log: locale guards needed (from Simon Cozens ) + Branch: perl + ! perl.c +____________________________________________________________________________ +[ 5106] By: gsar on 2000/02/15 18:02:17 + Log: incorrect docs about delete() (spotted by Martyn Pearce + ) + 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 ) + 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 (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 ) + 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 ) + 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 ) + 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 ) + 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 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 + ) + 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 ) + 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 + 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 , not . + 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 ) + Branch: perl + ! sv.c +____________________________________________________________________________ +[ 4985] By: gsar on 2000/02/04 16:43:49 + Log: avoid 'na' (spotted by Yitzchak Scott-Thoennes ) + 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 ) + Branch: perl + ! hints/openbsd.sh +____________________________________________________________________________ +[ 4982] By: gsar on 2000/02/04 07:54:04 + Log: pod typos (from Gregor N. Purdy ) + 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 ) + 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 ) + 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 + 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 ) + 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 + ) + 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 ) + 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 ) + 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 + ) + 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 ) + 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 ) + 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 + ) + 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 + ) + 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 ) + Branch: perl + ! pod/perlfunc.pod +____________________________________________________________________________ +[ 4924] By: gsar on 2000/01/28 17:49:34 + Log: README.cygwin update (from Eric Fifer ) + 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 ); 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, C + and 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 ) + 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 ) + 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 ); 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 + 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 + To: Gurusamy Sarathy + Cc: perl5-porters@perl.org + Subject: 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 + 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 ) + 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 ) + 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 + ) + Branch: perl + ! utils/h2xs.PL +____________________________________________________________________________ +[ 4853] By: gsar on 2000/01/23 09:08:30 + Log: cygwin update (from Eric Fifer ) + 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 ) + 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 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, + C 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 ) + 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 + ) + 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 + ) + 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 + ) + 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 + ); 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 + Date: Thu, 16 Dec 1999 20:20:38 -0500 + Message-Id: + 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 + (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 (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 + 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 + 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 ) + 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 ) + 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 ) + 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 ) + 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 ) + 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 + ) + 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 ) + 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 + 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 ) + 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: + 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 + ) + 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 ) + 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 ) + 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 + + 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 ; 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 + 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 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 + 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 + ); 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 ) + 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 + 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 + ) + 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 + ) + 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 + ) + Branch: perl + ! regcomp.c +____________________________________________________________________________ +[ 4682] By: gsar on 1999/12/16 08:33:28 + Log: mingw32 doesn't have anonymous union (from Benjamin Stuhl + ) + 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 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 + 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 + 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 + ) + Branch: perl + ! perl.h +____________________________________________________________________________ +[ 4658] By: gsar on 1999/12/06 15:18:30 + Log: fix for -Dp via $^D (suggested by Stephane Payrard + ) + 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" + 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) + 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 ) + 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 ) + 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 + Branch: perl + ! makedepend.SH win32/Makefile win32/makefile.mk +____________________________________________________________________________ +[ 4626] By: gsar on 1999/12/03 05:36:38 + Log: From: Peter Prymmer + 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 + 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 + 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" + 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 ) + 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 + 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 + ) + 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 + 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, . + 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 + 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 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" + 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 , + Gurusamy Sarathy + 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 + 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 + 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" + To: + Subject: DynaLoader_pm.PL patch (backslashes in strings) + Date: Wed, 10 Nov 1999 22:52:02 -0000 + Message-ID: + Branch: cfgperl + ! ext/DynaLoader/DynaLoader_pm.PL +____________________________________________________________________________ +[ 4567] By: jhi on 1999/11/13 18:03:52 + Log: From: JD Laub + 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 + To: perl5-porters@perl.org + Subject: small patch for perldoc + Date: Fri, 12 Nov 1999 23:11:43 GMT + Message-Id: + Branch: cfgperl + ! utils/perldoc.PL +____________________________________________________________________________ +[ 4565] By: jhi on 1999/11/13 17:58:54 + Log: From: Scott Gifford + 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: + 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" + 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 + 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 , + Mark Borgerding + 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 + 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 + 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 + 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" + 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: + 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 + 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 + 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: + 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 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 + To: Perl 5 Porters + 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 + 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 + 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 + 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 ) + 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 ) + 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 ) + 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 + ) + Branch: perl + ! lib/Time/Local.pm +____________________________________________________________________________ +[ 4433] By: gsar on 1999/10/24 11:25:51 + Log: README nits pointed out by Chris Nandor + Branch: perl + ! README lib/File/Path.pm +____________________________________________________________________________ +[ 4432] By: gsar on 1999/10/24 11:11:02 + Log: From: Ilya Zakharevich + 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 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 + To: Perl Porters + Subject: [PATCH 5.005_62] Policy_sh.SH update + Date: Fri, 22 Oct 1999 16:47:34 -0400 (EDT) + Message-ID: + Branch: cfgperl + ! Policy_sh.SH +____________________________________________________________________________ +[ 4422] By: jhi on 1999/10/22 22:44:44 + Log: so back to 'so', from Stephanie Beals + 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 + Branch: perl + ! op.c +____________________________________________________________________________ +[ 4416] By: gsar on 1999/10/20 01:00:50 + Log: fix prototype mismatch (from Hans Mulder ) + 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 + ) + 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 ) + 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 + ) + 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 + ) + 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 ) + 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 + 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: + 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 + + 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 ) + Branch: perl + ! lib/perl5db.pl +____________________________________________________________________________ +[ 4363] By: jhi on 1999/10/13 07:03:43 + Log: From: Mike Hopkirk (hops) + 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 ) + 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 + + 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 + Branch: perl + ! pod/perlfunc.pod +____________________________________________________________________________ +[ 4347] By: jhi on 1999/10/11 21:25:03 + Log: Sparc Linux -Duseshrplib fix. + + From: Brian Jepson + To: Nick Ing-Simmons + 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: + 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 + ) + 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 + 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 + 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 + ) + 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 ) + 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 ) + 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 + ); 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 ) + Branch: perl + ! lib/lib.pm +____________________________________________________________________________ +[ 4326] By: gsar on 1999/10/10 00:51:48 + Log: better documentation for recv() (from Anton Berezin + ) + 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é + To: + Cc: + 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 + 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 (fixes scoping problems in + C) + 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 + 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 ) + 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 + To: François Désarménien + Cc: "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 + To: Jarkko Hietaniemi + cc: Perl Porters , 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: + 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 + 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 + 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 + 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 + 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 + 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 + 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 ) + Branch: perl + ! av.c t/op/avhv.t +____________________________________________________________________________ +[ 4278] By: gsar on 1999/10/02 02:36:55 + Log: deprecate C + 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 + ) + 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 + 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 + 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 + 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 + To: Perl Porters + Subject: [PATCH 5.005_61] rand() advisory for perldelta.pod + Date: Thu, 30 Sep 1999 12:24:00 -0400 (EDT) + Message-ID: + Branch: cfgperl + ! pod/perldelta.pod +____________________________________________________________________________ +[ 4260] By: jhi on 1999/09/30 15:48:56 + Log: From: Andy Dougherty + To: Jarkko Hietaniemi , Gurusamy Sarathy + Subject: Re: Possible skeletal structure for searching multiple versions + Date: Thu, 30 Sep 1999 11:52:00 -0400 (EDT) + Message-ID: + 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" + To: Gurusamy Sarathy + Cc: tchrist@perl.com, Larry Wall , + The Perl Porters Mailing List + 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 + To: Gurusamy Sarathy + Cc: Barrie Slaymaker , 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 + Date: Wed, 29 Sep 1999 23:27:28 +0900 (JST) + Message-ID: + 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 + ); whitespace adjustments + Branch: perl + ! util.c +____________________________________________________________________________ +[ 4251] By: jhi on 1999/09/30 08:09:13 + Log: From: Ilya Zakharevich + 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 + To: Perl Porters + Subject: [PATCH 5.005_xx] Re: [Config 5.005_03] -DDEBUGGING + Date: Tue, 28 Sep 1999 12:20:50 -0400 (EDT) + Message-ID: + + From: Andy Dougherty + To: Perl Porters + Subject: [ANOTHER PATCH 5.005_61] Re: [Config 5.005_03] -DDEBUGGING + Date: Tue, 28 Sep 1999 13:39:49 -0400 (EDT) + Message-ID: + 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 + To: Jarkko Hietaniemi + Cc: gsar@activestate.com, Mailing list Perl5 + 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 + 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 + ) + 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 + To: Mailing list Perl5 + 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 + To: Mailing list Perl5 + 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" + 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 on Windows (reworked a patch suggested + by Jenda Krynicky ) + 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 + 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 ) + 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 + 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 + Date: Thu, 23 Sep 1999 12:45:19 +0900 (JST) + Message-ID: + 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 + To: Mailing list Perl5 + 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 + To: Mailing list Perl5 + 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) + 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 + 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 ) + 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" + 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 + Date: 19 Aug 1999 04:35:44 -0700 + Message-Id: + 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 ) + 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 + Date: Wed, 25 Aug 1999 00:31:33 +0900 (JST) + Message-ID: + 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; 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 + 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 + To: Hans GINZEL , 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 + To: Ilya Zakharevich + 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 + 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 + 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 ) + 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 ) + 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 ) + 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 + 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 ) + 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 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 + 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 + 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 + 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: + 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 + To: Perl Porters Mailing List + Subject: [DOCPATCH] Server errors and perldiag + Date: Fri, 10 Sep 1999 16:45:02 -0700 (PDT) + Message-ID: + 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 ) + 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 + Date: Sun, 25 Jul 1999 15:49:00 -0700 (PDT) + Message-ID: + 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 + 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 (from Martin Lichtin + ) + Branch: perl + ! lib/Pod/Html.pm +____________________________________________________________________________ +[ 4121] By: gsar on 1999/09/10 17:49:35 + Log: dos-djgpp update (from Laszlo Molnar ) + 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 + 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 + ) + 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" + 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" + 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 + 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 + 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: + 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 + To: Mailing list Perl5 + 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 + Branch: perl + ! pp.c +____________________________________________________________________________ +[ 4102] By: gsar on 1999/09/08 00:52:50 + Log: fix memory leak in C + 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 + 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" + 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" + Date: Wed, 11 Aug 1999 01:43:28 -0700 + Message-ID: + 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 ); 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 ) + 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 + 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 ) + 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 ) + 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 ) + 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 + 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 . + 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 + 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 + 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: + Branch: cfgperl + ! t/lib/dprof.t +____________________________________________________________________________ +[ 4066] By: jhi on 1999/09/01 23:14:50 + Log: From: "Fifer, Eric" + 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 + 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: + + 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 + 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 + To: Ronald J Kimball + cc: "M.J.T. Guy" , + The Perl Porters Mailing List + Subject: [REPATCH 5.005_61] Re: perldiag.pod omissions + Date: Tue, 31 Aug 1999 11:24:31 -0700 (PDT) + Message-ID: + Branch: cfgperl + ! pod/perldiag.pod +____________________________________________________________________________ +[ 4061] By: jhi on 1999/09/01 12:03:03 + Log: From: Ilya Zakharevich + 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 + 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 + 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 + To: Mailing list Perl5 + 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 + 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 + 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 + 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 + 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 + 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 + 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: + To: The Perl5 Porters Mailing List + 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: + 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" + 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" + 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: + 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: + 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: + 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 + To: Graham Barr + cc: Vicki Brown , 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 + 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" + 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: + 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: + 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: + 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: + 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 + 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, + . 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 + Subject: [PATCH 5.005_60] fix for some obscure bugs (compiler) + Message-ID: + 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 + To: Brian Keefer + 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 + 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 + 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 + To: Mailing list Perl5 + 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?= + 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 + 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 + 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: + 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 + To: Gurusamy Sarathy + Cc: Perl Porters + Subject: Re: 5.005_58 Not OK SunOS 4.1.3 + Date: Mon, 2 Aug 1999 14:01:58 -0400 (EDT) + Message-Id: + 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 + 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 + 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 ); + 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 + ) + Branch: perl + ! pp.c +____________________________________________________________________________ +[ 3902] By: gsar on 1999/08/02 20:24:41 + Log: fix broken -DDEBUGGING_OPS (from Spider Boardman + ) + 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" + To: Jarkko Hietaniemi + cc: perl5-porters@perl.org + Subject: Re: Perl Installation Problem + Date: Thu, 29 Jul 1999 14:55:05 -0400 (EDT) + Message-ID: + + 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 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" + Date: Sat, 31 Jul 1999 19:08:33 -0700 + Message-ID: + 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 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 + 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 + 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 + 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" + 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 + 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 ) + 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 + ) + 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 + ) + 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 + 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 + 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 + 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 + To: Graham Barr + Cc: Lincoln Stein , 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 + 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 + 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 + 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 + 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 + To: Perl 5 Porters + 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 + To: Jarkko Hietaniemi + Cc: "John L. Allen" , 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 + 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 + To: Perl5 Porters + 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 + 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 + 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 ) + 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 ); 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 + Date: Wed, 16 Jun 1999 14:40:09 -0400 (EDT) + Message-Id: + 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 + 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 + ) + 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 ) + 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 + 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 + Branch: perl + ! pod/perlport.pod +____________________________________________________________________________ +[ 3756] By: gsar on 1999/07/26 04:20:37 + Log: dprofpp pod additions from Nathan Torkington + 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 ; + 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 ) + 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 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 + To: Perl Porters + Subject: [PATCH 5.005_57] INSTALL-1.58 + Date: Fri, 23 Jul 1999 10:50:13 -0400 (EDT) + Message-Id: + + plus + + From: "Kurt D. Starsinic" + To: Andy Dougherty + Cc: Perl Porters + 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 + 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 + 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" + To: perl5-porters@perl.org + Cc: Chip Salzenberg , Gurusamy Sarathy + 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 + 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: + 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 + 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 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 ) + 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 + 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 ); + 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 ) + 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 ) + 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 ) + Branch: perl + ! thrdvar.h +____________________________________________________________________________ +[ 3683] By: gsar on 1999/07/17 20:21:01 + Log: From: Ilya Zakharevich + 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 + 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 + 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 + 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 ; + 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 + + 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 + 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 + 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 + 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" + Date: Wed, 30 Jun 1999 14:02:42 -0700 + Message-ID: + 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 syntax + (from François Désarménien ) + Branch: perl + ! pod/perlsyn.pod +____________________________________________________________________________ +[ 3642] By: gsar on 1999/07/07 10:03:24 + Log: From: Doug MacEachern + Date: Sun, 27 Jun 1999 22:43:25 -0700 (PDT) + Message-ID: + 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 + 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 + Date: Sat, 26 Jun 1999 10:47:45 -0500 (EST) + Message-ID: + 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 + 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 + Branch: perl + ! hints/powerux.sh +____________________________________________________________________________ +[ 3634] By: gsar on 1999/07/07 07:20:02 + Log: From: Hugo van der Sanden + 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 ) + Branch: perl + ! lib/Sys/Hostname.pm +____________________________________________________________________________ +[ 3630] By: gsar on 1999/07/07 01:57:16 + Log: From: "Vishal Bhatia" + Date: Sun, 20 Jun 1999 17:17:17 -0700 + Message-ID: + 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 etc., more readable + Branch: perl + ! op.c +____________________________________________________________________________ +[ 3626] By: gsar on 1999/07/06 23:47:27 + Log: From: Andy Dougherty + Date: Thu, 17 Jun 1999 12:07:11 -0400 (EDT) + Message-Id: + 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 + 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" + Date: Sat, 12 Jun 1999 08:23:59 -0700 + Message-ID: + 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 + 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" + 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 + 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 + 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" + Date: Wed, 09 Jun 1999 18:27:51 +0100 + Message-Id: + Subject: Re: [ID 19990608.002] Possible bug with binmode and 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 + 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 + 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 + 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 + 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 + 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" + Date: Sat, 05 Jun 1999 08:42:17 -0700 + Message-ID: + 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 (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 + 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 ) + Branch: perl + ! lib/Test/Harness.pm +____________________________________________________________________________ +[ 3582] By: gsar on 1999/07/05 05:17:12 + Log: cygwin32 update + From: "Fifer, Eric" + 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" + 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 + To: Ron Seguin + Cc: Perl Porters + Subject: [PATCH] Re: [ID 19990625.011] WHOA There + Date: Mon, 28 Jun 1999 12:36:38 -0400 (EDT) + Message-Id: + 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 + 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 + 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 + 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 + To: Jarkko Hietaniemi + Cc: perl5-porters@perl.org + Subject: Re: Psion5 + Date: Sun, 27 Jun 1999 20:50:30 +0200 (METDST) + Message-ID: + 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 + 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 + 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 + To: Mailing list Perl5 + 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 + 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 + 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 to define fd_set. + + From: Norton Allen + 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 , 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 + To: perl5-porters@perl.org + Subject: [PATCH 5.005_57] ByteLoader mark 2 + Date: Wed, 26 May 1999 23:59:49 +0100 + Message-ID: + + 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 + 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 + 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 + 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 + To: perl5-porters + 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 + To: perl5-porters + 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" + 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: + Branch: cfgperl + ! cc_runtime.h scope.h +____________________________________________________________________________ +[ 3490] By: jhi on 1999/05/28 07:47:06 + Log: From: Andy Dougherty + To: perlbug@perl.com + Cc: Jarkko Hietaniemi + Subject: [PATCH] Configure updates for ISC 4.1 + Date: Thu, 27 May 1999 15:19:21 -0400 (EDT) + Message-Id: + 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 + To: Perl Porters + 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: + 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 + 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: + 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" + 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 + 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 + 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 + 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 ) + 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 + 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 + Date: Thu, 20 May 1999 13:27:02 -1000 + Message-Id: + 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 ) + 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 + 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 + 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 + 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" + 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" + 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 + Date: Wed, 12 May 1999 11:44:11 -0400 (EDT) + Message-Id: + 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 + 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 + 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 + To: perlbug@perl.com + Subject: [PATCH] (Was Re: SunOS4.1 compilation error) + Date: Wed, 12 May 1999 11:44:11 -0400 (EDT) + Message-Id: + 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 + 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 + 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 + Date: 11 May 1999 13:32:04 -0400 + Message-ID: + 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 + Date: Tue, 11 May 1999 11:10:13 -0400 (EDT) + Message-ID: + 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 + 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 + 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 + ) + 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 + 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 + Date: Fri, 7 May 1999 11:31:00 -0400 (EDT) + Message-ID: + 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 + 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 + 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 + 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 + Date: 03 May 1999 12:20:57 -0400 + Message-ID: + 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" + 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 + 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 + 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
 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" 
+             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 
+             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: 
+             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: 
+             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 
+             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 
+             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 
+             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 )
+     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
+             )
+     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
+             
+     Branch: perl
+           ! ext/Thread/Thread.pm
+____________________________________________________________________________
+[  3346] By: gsar                                  on 1999/05/09  18:38:00
+        Log: From: Stephen McCamant 
+             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
+             )
+     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 )
+     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 
+             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 )
+     Branch: perl
+           ! pod/perlfunc.pod
+____________________________________________________________________________
+[  3332] By: gsar                                  on 1999/05/08  16:46:44
+        Log: applied suggested patch, added tests
+             From: William Mann 
+             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 
+             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 
+             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 
+             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 
+             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 
+             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 
+             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: 
+             Subject: [PATCH 5.005_56] function prototypes(B.pm)
+             --
+             Date: Thu, 22 Apr 1999 23:40:52 -0700
+             Message-ID: 
+             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 )
+     Branch: perl
+           ! lib/unicode/UnicodeData-Latest.txt
+____________________________________________________________________________
+[  3311] By: gsar                                  on 1999/05/06  05:37:55
+        Log: From: Damon Atkins 
+             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 
+             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 (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 
+             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 
+             Date: Fri, 19 Mar 1999 12:31:35 -0500 (EST)
+             Message-Id: 
+             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: 
+             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 
+             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 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 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" 
+             To: perl5-porters@perl.org, Jarkko Hietaniemi ,
+             Graham Barr , Gurusamy Sarathy 
+             Cc: Lionel Cons ,
+             Ilya Zakharevich ,
+             David Hayes 
+             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 )
+             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 
+             To: The Perl Porters Mailing List 
+             Subject: [PATCH 5.005_56] Re: 5.006 Todo
+             Date: Mon, 19 Apr 1999 16:27:07 -0400 (EDT)
+             Message-Id: 
+     Branch: cfgperl
+           ! Porting/pumpkin.pod
+____________________________________________________________________________
+[  3263] By: jhi                                   on 1999/04/20  08:05:01
+        Log: From: Chip Salzenberg 
+             To: Perl 5 Porters 
+             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 
+             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 
+             To: Hugo van der Sanden 
+             Cc: Perl Porters 
+             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: 
+     Branch: cfgperl
+           ! hints/solaris_2.sh
+____________________________________________________________________________
+[  3260] By: jhi                                   on 1999/04/15  13:56:53
+        Log: From: Tom Christiansen 
+             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 
+             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" 
+             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 
+             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: 
+     Branch: cfgperl
+           ! ext/POSIX/POSIX.xs
+____________________________________________________________________________
+[  3224] By: jhi                                   on 1999/04/09  18:50:32
+        Log: From: Andy Dougherty 
+             To: Perl Porters 
+             Subject: [PATCH 5.005_56] Re: prefix= in hints
+             Date: Fri, 9 Apr 1999 14:54:18 -0400 (EDT)
+             Message-Id: 
+             
+             (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 
+             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 
+             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: 
+     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  
+             To: Henrik Tougaard  
+             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 
+             To: jhi@iki.fi
+             Cc: perlbug@perl.com, kstar@isinet.com,
+             Philippe Defert 
+             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" 
+             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 
+             To: Perl Porters 
+             Subject: Displaying glibc version on Linux
+             Date: Mon, 29 Mar 1999 15:04:26 -0500 (EST)
+             Message-Id: 
+     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 
+             To: Jarkko Hietaniemi 
+             Cc: Nick Ing-Simmons , Perl Porters 
+             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: 
+     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
+             (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 Cnew($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 
+             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" 
+             Date: Tue, 23 Mar 1999 16:21:43 -0800
+             Message-ID: 
+             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
+             )
+     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 )
+     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
+             )
+     Branch: perl
+           ! ext/B/B/C.pm
+____________________________________________________________________________
+[  3164] By: gsar                                  on 1999/03/25  06:17:27
+        Log: From: Stephen McCamant 
+             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 
+             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 
+             Date: 22 Mar 1999 04:26:26 -0800
+             Message-ID: 
+             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 
+             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 
+             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 
+     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" 
+             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
+             )
+     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
+     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 
+             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 
+             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" 
+             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 
+             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 
+             To: Gurusamy Sarathy ,
+             Graham Barr 
+             Cc: Perl5 Porters ,
+             "Paul.Marquess" 
+             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  
+             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 
+             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, not C
+     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 
+             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 
+             To: p5p , Gurusamy Sarathy ,
+             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
+     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 
+             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 
+             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 
+             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 
+             To: Jarkko Hietaniemi 
+             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 
+             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 
+             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" 
+             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 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 
+             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 
+             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 
+             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 
+             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 
+     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 )
+     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 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 & et al multiple times (variant of fix suggested by
+             James Cromie 
+     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 
+             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 
+             Date: 23 Feb 1999 17:53:22 -0700
+             Message-ID: 
+             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 
+             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 
+     Branch: perl
+           ! pod/perltodo.pod
+____________________________________________________________________________
+[  3018] By: gsar                                  on 1999/02/24  04:15:18
+        Log: From: Joshua Pritikin 
+             Date: Mon, 22 Feb 1999 11:29:09 -0500 (EST)
+             Message-ID: 
+             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 
+             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" 
+             Date: Sat, 20 Feb 1999 15:24:57 +0000
+             Message-Id: 
+             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 
+             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: 
+             
+             From: Tom Horsley 
+             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 
+             Date:    Sat, 20 Feb 1999 16:02:34 EST
+             Message-Id: 
+             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 
+             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 and C 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" 
+             To: Chaim Frenkel ,
+             Russ Allbery ,
+             Jarkko Hietaniemi ,
+             Gurusamy Sarathy ,
+             Graham Barr 
+             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
+     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 
+             Date:    Wed, 17 Feb 1999 17:22:50 EST
+             Message-Id: 
+             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 
+             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 
+             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: 
+             
+             AIX syscalls.exp scan: the syscall might be marked 32, 3264, or 64
+             
+             From: Joe Buehler 
+             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: 
+             
+             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 
+             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 
+             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 
+             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 )
+             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" 
+             Date: Mon, 08 Feb 1999 01:14:41 -0000
+             Message-ID: 
+             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 
+             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 
+             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 
+             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" 
+             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 
+             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 
+             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  (with minor edits)
+             Date: Wed, 3 Feb 1999 05:24:55 -0500 (EST)
+             Message-ID: 
+             Subject: [PATCH]5.005_54 (DOC) fix many typos
+             --
+             Date: Wed, 3 Feb 1999 08:53:53 -0500 (EST)
+             Message-ID: 
+             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 )
+     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 
+             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 
+             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 
+             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 
+             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 
+             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 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 
+             Date: Sat, 23 Jan 1999 21:52:15 -0500 (EST)
+             Message-ID: 
+             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
+     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 
+             Date: Wed, 20 Jan 1999 16:29:35 -0800 (PST)
+             Message-ID: 
+             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 
+             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 
+             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 
+             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 
+             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 
+     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 )
+     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 
+             To: perl5-porters@perl.org
+             Subject: [PATCH] perlport.pod 1.39
+             Date: Thu, 11 Feb 1999 12:28:35 -0500
+             Message-Id: 
+     Branch: cfgperl
+           ! pod/perlport.pod
+____________________________________________________________________________
+[  2870] By: gsar                                  on 1999/02/11  11:17:08
+        Log: remove double typeglob deref (suggested by RonaldWS )
+     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 
+             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 
+             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
+             )
+     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 
+             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" 
+             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 
+             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 
+             To: Mailing list Perl5 
+             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 
+             To: Mailing list Perl5 
+             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 )
+     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 
+             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 
+             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 
+             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 
+             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
+             )
+     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 
+             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" 
+             To: perl5-porters@perl.org
+             Subject: Re: [PATCH 5.00*]: perlbug checklist
+             Date: Wed, 3 Feb 1999 19:02:27 +0000
+             Message-Id: 
+     Branch: cfgperl
+           ! utils/perlbug.PL
+____________________________________________________________________________
+[  2811] By: jhi                                   on 1999/02/03  21:53:23
+        Log: From: Barrie Slaymaker 
+             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 
+             To: Mailing list Perl5 
+             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" 
+             To: Graham Barr , Jarkko Hietaniemi ,
+             Gurusamy Sarathy 
+             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 
+             To: "Kurt D. Starsinic" , Ben Gertzfield 
+             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: 
+     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 
+             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: 
+     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" 
+             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 
+             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 
+             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 
+             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 
+             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 
+             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 
+             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 
+     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" 
+             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: 
+     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" 
+             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 
+             To: Mailing list Perl5 
+             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 
+             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 
+     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 
+             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  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 
+             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 
+             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" 
+             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" 
+             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 
+             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  (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 
+             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 
+             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" 
+             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" 
+             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 
+             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 
+             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 
+             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 
+             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 
+             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 .
+     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 
+             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 
+             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 
+             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 
+             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 .
+     Branch: cfgperl
+           ! AUTHORS MAINTAIN
+____________________________________________________________________________
+[  2667] By: jhi                                   on 1999/01/21  15:32:28
+        Log: From: Ilya Zakharevich 
+             To: Mailing list Perl5 
+             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" 
+             To: Graham Barr , 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 
+             To: Mailing list Perl5 
+             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 
+             To: Mailing list Perl5 
+             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 
+             To: Francois Desarmenien 
+             Cc: Gurusamy Sarathy ,
+             Mailing list Perl5 , 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: 
+     Branch: cfgperl
+           ! Porting/patching.pod
+____________________________________________________________________________
+[  2661] By: jhi                                   on 1999/01/21  14:41:13
+        Log: From: Ilya Zakharevich 
+             To: Mailing list Perl5 
+             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 
+             To: Mailing list Perl5 
+             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" 
+             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 
+             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 
+             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 
+             To: Mailing list Perl5 
+             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" 
+             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 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 
+             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 
+             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 
+             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 
+             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 
+             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 
+             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)" 
+             To: "'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 
+             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: 
+     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: 
+     Branch: cfgperl
+           ! ext/re/re.pm regcomp.c
+____________________________________________________________________________
+[  2602] By: jhi                                   on 1999/01/13  18:05:43
+        Log: From: "Vishal Bhatia" 
+             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: 
+     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 
+             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: 
+     Branch: cfgperl
+           ! Makefile.SH
+____________________________________________________________________________
+[  2600] By: jhi                                   on 1999/01/13  17:59:45
+        Log: From: "Vishal Bhatia" 
+             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: 
+     Branch: cfgperl
+           ! ext/B/B/CC.pm
+____________________________________________________________________________
+[  2599] By: jhi                                   on 1999/01/13  17:50:11
+        Log: From: Robin Barker 
+             Subject: PATCH to installperl
+             To: perl5-porters@perl.org
+             Date: 4 Jan 1999 16:15:18 +0200
+             Message-ID: 
+     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 
+             To: Perl Porters ,
+             Gurusamy Sarathy 
+             Subject: PATCH to perl5.005_54/pod/perldsc.pod (fix typo)
+             Date: Tue, 12 Jan 1999 11:14:19 -0800 (PST)
+             Message-ID: 
+     Branch: cfgperl
+           ! pod/perldsc.pod
+____________________________________________________________________________
+[  2596] By: jhi                                   on 1999/01/13  17:26:44
+        Log: From: Joshua Pritikin 
+             To: perl5-porters@perl.org
+             Subject: [PATCH] modglobal w/ spelling fixes
+             Date: Tue, 12 Jan 1999 18:06:01 -0500 (EST)
+             Message-ID: 
+     Branch: cfgperl
+           ! pod/perlguts.pod
+____________________________________________________________________________
+[  2595] By: jhi                                   on 1999/01/13  17:24:59
+        Log: From: Hans Mulder 
+             Optimize common sort routines.  Thread started by the message
+             
+             From: Hans Mulder 
+             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 
+             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 
+             (the diffs were based on 5.004_02).  Tested by Guido
+             and Frank Naumann .
+     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: 
+             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 
+             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 
+             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 
+             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 
+             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 
+             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 
+             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 
+             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 
+             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 
+             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 
+             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 
+             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 
+             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 
+             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 
+             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" 
+             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 
+             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 
+             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" 
+             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 
+             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 
+             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" 
+             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 
+             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 
+             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 
+             To: Stephen McCamant 
+             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 
+             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: 
+     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" 
+             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  
+             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 
+             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 
+             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" 
+             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: 
+     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" 
+             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: 
+             
+             (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" 
+             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: 
+     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: 
+     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 
+             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: 
+     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: 
+     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 
+             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: 
+     Branch: cfgperl
+           ! pod/perldiag.pod regcomp.c toke.c
+____________________________________________________________________________
+[  2515] By: jhi                                   on 1998/12/29  11:27:11
+        Log: From: Ilya Zakharevich 
+             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: 
+             
+             \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 
+             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: 
+     Branch: cfgperl
+           ! regcomp.c
+____________________________________________________________________________
+[  2513] By: jhi                                   on 1998/12/29  11:18:34
+        Log: From: Ilya Zakharevich 
+             Subject: [PATCH 5.005_*] Dumpvar.pm
+             To: perl5-porters@perl.org (Mailing list Perl5)
+             Date: 7 Dec 1998 10:17:35 +0200
+             Message-ID: 
+     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 
+	 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 
+	 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 
+	 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 
+	 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 
+	 To: Mark Martinec 
+	 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: 
+	 
+	 and discussed further in the thread
+	 
+	 From: Jarkko Hietaniemi 
+	 To: Gisle Aas 
+	 Cc: Mark Martinec , 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 
+	 To: perl5-porters@perl.org
+	 Subject: [PATCH] perlport.pod v1.37
+	 Date: Sat, 19 Dec 1998 12:54:34 -0500
+	 Message-Id: 
+ Branch: cfgperl
+       ! pod/perlport.pod
+____________________________________________________________________________
+[  2493] By: jhi                                   on 1998/12/21  12:22:44
+    Log: From: Mark-Jason Dominus 
+	 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 
+	 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" 
+	 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 
+	 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 
+	 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 
+	 To: The Perl Porters Mailing List 
+	 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 
+	 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 
+	 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" 
+	 To: Gurusamy Sarathy , Jarkko Hietaniemi 
+	 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" 
+	 To: Gurusamy Sarathy 
+	 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 
+	 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: 
+ Branch: cfgperl
+       ! t/pragma/warn/doio
+____________________________________________________________________________
+[  2475] By: jhi                                   on 1998/12/13  12:35:55
+    Log: From: Ilya Zakharevich 
+	 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 
+	 To: Perl 5 Porters 
+	 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  
+	 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 
+	 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 
+	 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 
+	 1. Fixes the bug  reported by  Robin Barker  
+	 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 
+	 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: 
+	 
+	 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  
+	 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  
+	 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 
+	 To: Perl Porters 
+	 Subject: [PATCH 5.005_xx] Missing redirection of simple test program
+	 Date: Tue, 1 Dec 1998 13:40:12 -0500 (EST)
+	 Message-Id: 
+ Branch: cfgperl
+       ! Configure
+____________________________________________________________________________
+[  2432] By: jhi                                   on 1998/12/02  08:49:47
+    Log: From: Andy Dougherty 
+	 To: Perl Porters 
+	 Subject: [PATCH 5.005_xx] erroneous 'none' in lddlflags
+	 Date: Tue, 1 Dec 1998 12:50:27 -0500 (EST)
+	 Message-Id: 
+ 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: 
+	 
+	 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 
+	 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 
+	 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: 
+ 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: 
+ 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
+	 
+ 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 
+	 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 , they need .
+ 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 
+	 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 
+	 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 
+	 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 
+	 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 
+	 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 ;
+	 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 
+	 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 
+	 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 
+	 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 
+	 Date: Thu, 19 Nov 1998 14:14:15 -0500 (EST)
+	 Message-Id: 
+	 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 
+	 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: 
+ 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 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 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
+	 )
+ 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 
+	 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" 
+	 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 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 
+	 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
+	 
+	 allow C
+ 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 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 .
+ Branch: cfgperl
+       ! Configure
+____________________________________________________________________________
+[  2293] By: jhi                                   on 1998/11/23  10:33:42
+    Log: From: Gerben Wierda 
+	 To: Jarkko Hietaniemi 
+	 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 
+	 Msg-ID:  
+	 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 
+	 Subject: [PATCH] perlfaq typos
+	 To: perl5-porters@perl.com
+	 Date: 22 Nov 1998 04:25:15 +0200
+	 Message-ID: 
+ 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 
+	 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: 
+ 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 
+	 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: 
+ 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" 
+	 Subject: Re: [PATCH] Re: pod2man bug in date generated line
+	 To: Albert Dvornik , "Larry W. Virden" 
+	 Cc: perlbug@perl.com
+	 Date: 20 Nov 1998 21:30:17 +0200
+	 Message-ID: 
+ Branch: cfgperl
+       ! pod/pod2man.PL
+____________________________________________________________________________
+[  2256] By: jhi                                   on 1998/11/21  10:44:01
+    Log: From: Thomas Bowditch 
+	 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 
+	 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  
+	 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
+ 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(), close() 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" 
+	 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" 
+	 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 
+	 To: Ilya Zakharevich 
+	 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 )
+ 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
+	 )
+ Branch: perl
+       ! x2p/s2p.PL
+____________________________________________________________________________
+[  2222] By: gsar                                  on 1998/11/09  01:56:24
+    Log: patches from Hugo van der Sanden 
+	 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 
+	 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 
+	 Date: Sat,  7 Nov 98 22:06:20 +0100
+	 To: Gurusamy Sarathy 
+	 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 
+	 To: Jarkko Hietaniemi 
+	 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 
+	 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 .
+ Branch: cfgperl
+       ! perl.h
+____________________________________________________________________________
+[  2206] By: jhi                                   on 1998/11/05  14:54:52
+    Log: PERL_BADLANG wrongly documented.
+	 
+	 From: ts 
+	 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 
+	 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 
+	 To: Martin Bligh 
+	 Cc: Jarkko Hietaniemi 
+	 Subject: Re: Perl 5's configure on DYNIX/ptx
+	 Message-Id: 
+	 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 ,
+	 
+	 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 
+	 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: 
+ 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  
+	 To: "p5p"  
+	 Date: 01 Nov 1998 15:09:11 +0100 
+	 Message-ID: <86hfwjtshk.fsf@lion.plab.ku.dk>
+	 
+	 and
+	 
+	 From: Andy Dougherty  
+	 Date: Mon, 2 Nov 1998 10:17:34 -0500 (EST) 
+	 Message-Id: 
+ 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  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 
+	 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 
+	 Date: 30 Oct 1998 17:50:04 -0500
+	 Message-Id: 
+	 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 
+	 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 
+	 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 
+	 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 
+	 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 
+	 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 
+	 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 
+	 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" 
+	 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 
+	 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 
+	 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 
+	 Date: Tue, 27 Oct 1998 10:40:41 -0500 (EST)
+	 Message-Id: 
+	 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 
+	 Subject: [PATCH 5.005_02]  Re: perl5.004_04 testing problem
+	 Date: 27 Oct 1998 20:47:25 +0200
+	 Message-ID: 
+ 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 
+	 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: 
+	 
+	 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 
+	 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 
+	 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 etc.
+ Branch: perl
+       ! toke.c
+____________________________________________________________________________
+[  2074] By: gsar                                  on 1998/10/25  08:12:28
+    Log: list builtins with portability caveats
+	 From: Jarkko Hietaniemi 
+	 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 and other fixes (via private mail)
+	 From:    "vishal bhatia" 
+	 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 
+	 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 
+	 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 
+	 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 
+	 Date: 20 Oct 1998 14:24:44 +0200
+	 Message-ID: 
+	 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 
+	 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 
+	 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 
+	 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 
+	 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 
+	 Date: 16 Oct 1998 15:24:45 +0300
+	 Message-ID: 
+	 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 
+	 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 
+	 Date: 16 Oct 1998 16:33:12 +0200
+	 Message-ID: 
+	 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 
+	 To: perl-64bit@perl.org
+	 Message-ID: 
+	 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 
+	 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  
+	 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 
+	 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 
+	 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 
+	 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 
+	 Date: 14 Oct 1998 15:53:14 +0200
+	 Message-ID: 
+	 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 
+	 Date: 14 Oct 1998 15:17:44 +0200
+	 Message-ID: 
+	 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 
+	 Date: 14 Oct 1998 00:38:06 +0200
+	 Message-ID: 
+	 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 
+	 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 
+	 Date: 13 Oct 1998 21:35:39 +0200
+	 Message-ID: 
+	 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 
+	 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" 
+	 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 
+	 Date: 11 Oct 1998 12:53:13 +0200
+	 Message-ID: 
+	 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 
+ 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 
+	 Date: 06 Oct 1998 23:56:51 -0600
+	 Message-ID: 
+	 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 
+	 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 ).
+ 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 
+	 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 
+	 Date: Fri, 2 Oct 1998 14:52:25 -0400 (EDT)
+	 Message-Id: 
+	 Subject: AIX select (fwd)
+	 From: Lars Hecking 
+	 To: Andy Dougherty 
+	 Date: Fri, 2 Oct 1998 10:40:01 +0100
+	 Subject: AIX select
+	 
+	 Linux-avoid-so.X.Y, based on
+	 From: "Kurt D. Starsinic" 
+	 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 
+	 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 
+	 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 
+	 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 
+	 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 
+	 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 recognize C overrides; allow C 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 
+	 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 
+	 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 
+	 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 
+	 Date: 29 Sep 1998 17:38:46 -0700
+	 Message-ID: 
+	 Subject: Re: [PATCH] 5.005_02: Configure "Massive Attack"
+	 --
+	 Date: 28 Sep 1998 18:55:37 -0700
+	 Message-ID: 
+	 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 
+	 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 
+	 Date: Tue, 29 Sep 1998 21:06:30 +0000
+	 Message-Id: 
+	 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: 
+	 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 
+	 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 
+	 Date: Mon, 28 Sep 1998 16:50:38 -0400 (EDT)
+	 Message-Id: 
+	 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: 
+	 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 
+	 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 
+	 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 
+	 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 
+	 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 
+	 Date: 12 Sep 1998 09:44:25 +0300
+	 Message-ID: 
+	 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 
+	 Date: Thu, 10 Sep 1998 11:02:46 +0000
+	 Message-Id: 
+	 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 
+	 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 
+	 Date: Wed, 26 Aug 1998 14:53:01 -0700 (PDT)
+	 Message-ID: 
+	 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 
+	 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 
+	 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 
+	 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 
+	 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 
+	 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 
+	 Date:    13 Aug 1998 09:52:15 PDT
+	 Message-Id: 
+	 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 
+	 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 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 "$$" 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 
+	 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 
+	 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 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 
+	 Date: 17 Sep 1998 19:23:07 -0400
+	 Message-Id: 
+	 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 
+	 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: 
+	 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 
+	 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 
+	 Date: 11 Sep 1998 16:19:21 -0400
+	 Message-ID: 
+	 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 
+	 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 
+	 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 
+	 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 
+	 Date: Tue, 8 Sep 1998 21:40:46 +0000
+	 Message-Id: 
+	 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 
+	 Date: Tue, 8 Sep 1998 15:34:53 +0000
+	 Message-Id: 
+	 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 
+ Branch: perl
+       ! win32/bin/pl2bat.pl
+____________________________________________________________________________
+[  1839] By: gsar                                  on 1998/09/23  09:38:18
+    Log: From: Drago Goricanec 
+	 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" 
+	 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 
+	 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 
+	 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
+ 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 
+	 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 
+	 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 
+	 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 
+	 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 
+	 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 
+ Branch: perl
+       ! t/op/grent.t t/op/groups.t
+____________________________________________________________________________
+[  1826] By: gsar                                  on 1998/09/23  07:03:16
+    Log: From: Jarkko Hietaniemi 
+	 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 
+	 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 
+             Date: 29 Aug 1998 17:13:28 -0400
+             Message-ID: 
+             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 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 
+             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 
+             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 
+             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 
+             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 
+             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" 
+             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 
+             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 )
+     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" 
+             Date: Tue, 18 Aug 1998 12:28:36 +0100
+             Message-Id: 
+             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 
+             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 
+             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 
+             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 
+             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 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
+     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 
+             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 
+             Date: 06 Aug 1998 23:28:57 +0200
+             Message-ID: 
+             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 
+             Date: 05 Aug 1998 00:41:04 +0200
+             Message-ID: 
+             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 
+             Date: 04 Aug 1998 22:56:11 +0200
+             Message-ID: 
+             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 
+             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 
+             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 
+             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 
+             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: 
+             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 
+             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 
+             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 
+             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 
+             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" 
+             Message-Id: 
+             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
+
diff --git a/Configure b/Configure
index 053f227..83a685d 100755
--- 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$$ <&4
 $rm -f malloc.[co]
 $cat <&4
@@ -5441,90 +5592,18 @@ case "$perl5" in
 *)	echo "Using $perl5." ;;
 esac
 
-$cat < getverlist <> 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 <&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 <&4 
+cat > try.c <
+#include 
+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
--- 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
-.
+.
 
 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 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 .  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), 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 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 and C), 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.
+
+=item lib/locale.pm: No such file or directory
+
+See L.
+
 =item Miscellaneous
 
 Some additional things that have been reported for either perl4 or perl5:
diff --git a/MAINTAIN b/MAINTAIN
index be9eaff..bc74f1e 100644
--- 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	
diff --git a/MANIFEST b/MANIFEST
index f8ea07a..2500943 100644
--- 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
 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
diff --git a/Porting/Glossary b/Porting/Glossary
index e00110c..f5ac6da 100644
--- a/Porting/Glossary
+++ b/Porting/Glossary
@@ -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 
diff --git a/Porting/config.sh b/Porting/config.sh
index 18e3506..ec7b131 100644
--- a/Porting/config.sh
+++ b/Porting/config.sh
@@ -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'
diff --git a/Porting/config_H b/Porting/config_H
index 7a63d00..46184ef 100644
--- a/Porting/config_H
+++ b/Porting/config_H
@@ -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 
  */
@@ -175,12 +175,6 @@
  */
 #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.
@@ -1133,7 +1127,7 @@
 #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.
@@ -1204,7 +1198,7 @@
 #  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:
@@ -1346,11 +1340,24 @@
  */
 #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.
@@ -1398,6 +1405,12 @@
  */
 #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.
@@ -1624,6 +1637,18 @@
  */
 #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
@@ -1666,6 +1691,14 @@
 #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.
@@ -2203,6 +2236,12 @@
  */
 #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.
  */
@@ -2212,19 +2251,19 @@
  *	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  to get
+ *	gid_t, etc... It may be necessary to include  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  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() */
@@ -2260,6 +2299,12 @@
  */
 #define	I_ICONV		/**/
 
+/* I_IEEEFP:
+ *	This symbol, if defined, indicates that  exists and
+ *	should be included.
+ */
+/*#define	I_IEEEFP		/ **/
+
 /* I_INTTYPES:
  *     This symbol, if defined, indicates to the C program that it should
  *     include .
@@ -2547,6 +2592,16 @@
 #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.
  */
@@ -2610,6 +2665,9 @@
 /* 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.
@@ -2639,6 +2697,7 @@
 #define	I64SIZE		8	/**/
 #define	U64SIZE		8	/**/
 #endif
+#define	NVSIZE		8		/**/
 #undef	NV_PRESERVES_UV
 
 /* IVdf:
@@ -2805,6 +2864,11 @@
 #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
@@ -2813,6 +2877,12 @@
  */
 #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.
@@ -2846,6 +2916,12 @@
  */
 #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.
  */
@@ -2952,10 +3028,22 @@
 #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:
@@ -3030,30 +3118,11 @@
 #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  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
diff --git a/Porting/makerel b/Porting/makerel
index 4b8c277..8341690 100644
--- a/Porting/makerel
+++ b/Porting/makerel
@@ -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
diff --git a/README.amiga b/README.amiga
index c4bc6c5..8951f35 100644
--- a/README.amiga
+++ b/README.amiga
@@ -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
diff --git a/README.cygwin b/README.cygwin
index 514e013..eb6c289 100644
--- a/README.cygwin
+++ b/README.cygwin
@@ -13,7 +13,7 @@ on Cygwin.  This document also describes features of Cygwin that will
 affect how Perl behaves at runtime.
 
 B 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 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 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 is required.
-
-At the time this document was written, I 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 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 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, I, binary/text mounts).  The only
-dependencies come from hardcoded pathnames like C.  However,
+dependencies come from hard-coded pathnames like C.  However,
 your host system and Cygwin configuration will affect Perl's runtime
-behavior (see L).  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).
 
 =over 4
 
@@ -78,23 +63,10 @@ Set the C 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.
 
-=item * F
-
-There should be an instance of I in F (or F).
-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
-
-If you do not have a F directory, Configure will B prompt
-you to install I into F.
-
 =item * I
 
 If you do not have I (which is part of the I package),
-Configure will B prompt you to install man pages.
+Configure will B prompt you to install I 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)
 
@@ -186,8 +154,11 @@ F.
 A port of SysV IPC is available for Cygwin.
 
 NOTE: This has B been extensively tested.  In particular,
-C is undefined because it fails a configure test and on
-Win9x the shm*() functions seem to hang.
+C is undefined because it fails a Configure test
+and on Win9x the I functions seem to hang.  It also creates
+a compile time dependency because F includes F<>
+and F<> (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.  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.  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
 
 I is needed to build dynamic libraries, but it does not exist
 when dlsym() checking occurs (it is not created until `C' 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
 
 Win9x does not correctly report C 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 and wait:
 
   make 2>&1 | tee log.make
 
@@ -332,9 +303,9 @@ wait until the `C' process to install the I script,
 this is because the remainder of the `C' refers to I without
 fully specifying its path and does this from multiple subdirectories.
 The assumption is that $installbin is in your current C.  If this
-is not the case or if you do not have an I program, `C'
-will fail at some point.  If this happens, just manually copy I
-from the source directory to someplace in your C.
+is not the case `C' will fail at some point.  If this happens,
+just manually copy I from the source directory to somewhere in
+your C.
 
 =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 C setting,
-the remaining mode bits are stored as extended attributes.  On WinNT
-with the I C 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 C
+setting, the additional mode bits are stored as extended file attributes.
+On WinNT with the I C 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 into one of the Windows system
-directories (although, this is B recommended).
+Alternatively, you can copy F into the directory where the
+tests run:
+
+  cp `type -p cygwin1.dll` t
+
+or one of the Windows system directories (although, this is B
+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) or Universal
 Naming Codes (F).  DOS device names (F, F, F,
-F, F) are invalid as base filenames.  However, they can be
-used in extensions (e.g., F).  Names may not contain these
-characters:
+F, F, F) are invalid as base filenames.  However, they
+can be used in extensions (e.g., F).  Names may contain all
+printable characters except these:
 
   : * ? " < > |
 
-File names are case insensitive, but case preserving.  With the I
-C setting, file names are mixed-case (although, directory names
-remain case insensitive).
-
-The I setting is only available with the "coolview" version of
-F 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 when you ask for F (unless a F also exists).
-Cygwin does not require a F<.exe> extension, but I adds it
-automatically when building a program.  However, when accessing an
-executable as a normal file (e.g., I or I in a makefile)
-the F<.exe> is not transparent.
-
-NOTE: There is a version of I 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 when you ask for F (unless a F also exists).  Cygwin
+does not require a F<.exe> extension, but I adds it automatically
+when building a program.  However, when accessing an executable as a
+normal file (e.g., I in a makefile) the F<.exe> is not transparent.
+The I included with Cygwin automatically appends a F<.exe>
+when necessary.
 
 =item * chown()
 
-On WinNT with the I C 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 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 warns that a rule for F is overridden
-(but there seems to be no better solution than adding an explicit define).
+When I starts, it warns about overriding commands for F.
 
 `C' does not remove library F<.def> and F<.exe.stackdump>
 files.
 
 The I script contains references to the source directory.  You should
-change these to C (or whatever) after install.
+change these to $installbin after `C'.
 
 =head1 AUTHORS
 
-Charles Wilson Ecwilson@ece.gatech.eduE,
-Eric Fifer Eefifer@sanwaint.comE,
-alexander smishlajev Eals@turnhere.comE,
-Steven Morlock Enewspost@morlock.netE,
-Sebastien Barre ESebastien.Barre@utc.frE,
-Teun Burgers Eburgers@ecn.nlE.
+Charles Wilson ,
+Eric Fifer ,
+alexander smishlajev ,
+Steven Morlock ,
+Sebastien Barre ,
+Teun Burgers .
 
 =head1 HISTORY
 
-Last updated: 1 March 2000
+Last updated: 5 May 2000
diff --git a/README.hpux b/README.hpux
index 4cdcf58..06b39b9 100644
--- a/README.hpux
+++ b/README.hpux
@@ -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
index 0000000..8e14fc7
--- /dev/null
+++ b/README.machten
@@ -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 for more
+information.)
+
+You should have at least 32 megabytes of free memory on your
+system before running the C command.
+
+For much more information on building perl -- for example, on how to
+change the default installation directory -- see F.
+
+=head2 Failures during C
+
+=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), 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, or which can be driven
+automatically by the CPAN module (see L), 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. When
+installing a I -- 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 
+
+=head1 DATE
+
+Version 1.0.1 2000-03-27
diff --git a/README.mint b/README.mint
index 9cd4808..1915129 100644
--- a/README.mint
+++ b/README.mint
@@ -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///cc1
-
-where  is probably something like "m68k-atari-mint"
-and  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 
diff --git a/README.os2 b/README.os2
index a69ea0d..1e7464b 100644
--- a/README.os2
+++ b/README.os2
@@ -1481,7 +1481,7 @@ this works as well under DOS if you use DOS-enabled port of pdksh
 
 B currently F of pdksh calls external programs
 via fork()/exec(), and there is I 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 did not change). This
 means that 1 I copy of F 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
diff --git a/README.os390 b/README.os390
index 5fcdfc0..1821846 100644
--- a/README.os390
+++ b/README.os390
@@ -142,7 +142,7 @@ L, L, L.
 
 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
 
diff --git a/README.posix-bc b/README.posix-bc
index 34bcad7..1105f67 100644
--- a/README.posix-bc
+++ b/README.posix-bc
@@ -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:
 ===========
diff --git a/README.win32 b/README.win32
index b39961b..f7bf25c 100644
--- a/README.win32
+++ b/README.win32
@@ -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 perl.  Once built, you should be able to
-B 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 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 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 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 compatible with binaries built without.
-Perl installs PERL_OBJECT binaries under a distinct architecture name,
-so they B 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 compatible
-with binaries built without.  Perl installs threads enabled binaries under
-a distinct architecture name, so they B 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 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 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 above on how to get it.
+You may also use dmake.  See L 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 and C 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,
-C, C, C, C, C,
-C and related security functions, C,
-C, C, C, C,
-C, C, C, C, C,
-C<*netent()>, C<*protoent()>, C<*servent()>, C<*hostent()>,
-C.
-This list is possibly incomplete.
-
-=item *
-
-Various C related calls are supported, but they may not
-behave as on Unix platforms.
-
-=item *
-
-The four-argument C call is only supported on sockets.
-
-=item *
-
-The C 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, 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
+for a reasonably definitive list of these differences.
 
-C, C 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.
 
-=item *
+Most C related calls are supported, but they may not
+behave as on Unix platforms.  See L for the full list.
 
 Signal handling may not behave as on Unix platforms (where it
 doesn't exactly "behave", either :).  For instance, calling C
@@ -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 is implemented, but doesn't have the semantics of
-C, i.e. it doesn't send a signal to the identified process
-like it does on Unix platforms.  Instead it immediately calls
-C.  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 >, along with the output produced
 by C.
@@ -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
--- 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
diff --git a/Todo-5.6 b/Todo-5.6
index b9f05fd..fac325c 100644
--- 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(),
+	,  (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)
diff --git a/config_h.SH b/config_h.SH
index 108b673..5bb7ddd 100644
--- a/config_h.SH
+++ b/config_h.SH
@@ -189,12 +189,6 @@ sed <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 <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 <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 <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 <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 
  *	or  defines the symbol LDBL_DIG, which is the number
@@ -2224,6 +2250,12 @@ sed <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 <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  to get
+ *	gid_t, etc... It may be necessary to include  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  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 <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 <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 <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 <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 <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 <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!
diff --git a/configpm b/configpm
index 19d0d71..c64af8a 100755
--- 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) . ")";
diff --git a/configure.com b/configure.com
index f21ce8c..003a047 100644
--- a/configure.com
+++ b/configure.com
@@ -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
--- 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
diff --git a/cygwin/Makefile.SHs b/cygwin/Makefile.SHs
index df15826..ca083d4 100644
--- a/cygwin/Makefile.SHs
+++ b/cygwin/Makefile.SHs
@@ -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)
 
diff --git a/cygwin/cygwin.c b/cygwin/cygwin.c
index bece81b..db1c426 100644
--- a/cygwin/cygwin.c
+++ b/cygwin/cygwin.c
@@ -8,7 +8,134 @@
 #include "XSUB.h"
 
 #include 
+#include 
 
+/*
+ * 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
--- 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
--- 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
diff --git a/emacs/cperl-mode.el b/emacs/cperl-mode.el
index 371d420..f7d7a53 100644
--- a/emacs/cperl-mode.el
+++ b/emacs/cperl-mode.el
@@ -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)))
 	    '("\\
 =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!
 
@@ -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
-p	|SV*	|cv_const_sv	|CV* cv
+Ap	|SV*	|cv_const_sv	|CV* cv
 p	|SV*	|op_const_sv	|OP* o|CV* cv
-p	|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
-p	|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
-p	|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
-p	|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
-p	|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:
diff --git a/embedvar.h b/embedvar.h
index f8387c5..889b4d4 100644
--- a/embedvar.h
+++ b/embedvar.h
@@ -322,6 +322,7 @@
 #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)
@@ -586,6 +587,7 @@
 #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)
@@ -987,6 +989,7 @@
 #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)
@@ -1252,6 +1255,7 @@
 #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
@@ -1666,7 +1670,7 @@
 
 #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
diff --git a/epoc/config.sh b/epoc/config.sh
index a3051d4..714185a 100644
--- a/epoc/config.sh
+++ b/epoc/config.sh
@@ -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"'
diff --git a/ext/B/B/Bblock.pm b/ext/B/B/Bblock.pm
index b914bc6..fe7fc52 100644
--- a/ext/B/B/Bblock.pm
+++ b/ext/B/B/Bblock.pm
@@ -169,7 +169,9 @@ B::Bblock - Walk basic blocks
 
 =head1 DESCRIPTION
 
-See F.
+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
 
diff --git a/ext/B/B/Bytecode.pm b/ext/B/B/Bytecode.pm
index 27003b6..941a818 100644
--- a/ext/B/B/Bytecode.pm
+++ b/ext/B/B/Bytecode.pm
@@ -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;
     }
diff --git a/ext/B/B/Deparse.pm b/ext/B/B/Deparse.pm
index cd53c11..b6e1097 100644
--- a/ext/B/B/Deparse.pm
+++ b/ext/B/B/Deparse.pm
@@ -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,
diff --git a/ext/B/B/Disassembler.pm b/ext/B/B/Disassembler.pm
index d054a2d..212532b 100644
--- a/ext/B/B/Disassembler.pm
+++ b/ext/B/B/Disassembler.pm
@@ -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);
diff --git a/ext/B/B/Stash.pm b/ext/B/B/Stash.pm
index 0a3543e..b9b828f 100644
--- a/ext/B/B/Stash.pm
+++ b/ext/B/B/Stash.pm
@@ -6,7 +6,7 @@ BEGIN { %Seen = %INC }
 
 CHECK {
 	my @arr=scan($main::{"main::"});
-	@arr=map{s/\:\:$//;$_;}  @arr;
+       @arr=map{s/\:\:$//;$_ eq ""?():$_;}  @arr;
 	print "-umain,-u", join (",-u",@arr) ,"\n";
 }
 sub scan{
diff --git a/ext/DB_File/Changes b/ext/DB_File/Changes
index 95eb487..ad54382 100644
--- a/ext/DB_File/Changes
+++ b/ext/DB_File/Changes
@@ -291,3 +291,8 @@
      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.
+
diff --git a/ext/DB_File/DB_File.pm b/ext/DB_File/DB_File.pm
index 00b24b9..a1ec0e6 100644
--- a/ext/DB_File/DB_File.pm
+++ b/ext/DB_File/DB_File.pm
@@ -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 ;
diff --git a/ext/DB_File/DB_File.xs b/ext/DB_File/DB_File.xs
index 2b76bab..cb8fd80 100644
--- a/ext/DB_File/DB_File.xs
+++ b/ext/DB_File/DB_File.xs
@@ -3,8 +3,8 @@
  DB_File.xs -- Perl 5 interface to Berkeley DB 
 
  written by Paul Marquess 
- 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
 
 */
 
diff --git a/ext/DB_File/version.c b/ext/DB_File/version.c
index f8c6cac..f3e2c94 100644
--- a/ext/DB_File/version.c
+++ b/ext/DB_File/version.c
@@ -4,7 +4,7 @@
 
  written by Paul Marquess 
  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) ;
diff --git a/ext/Data/Dumper/Dumper.xs b/ext/Data/Dumper/Dumper.xs
index 990ea74..bb606f4 100644
--- a/ext/Data/Dumper/Dumper.xs
+++ b/ext/Data/Dumper/Dumper.xs
@@ -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);
 	}
diff --git a/ext/Devel/Peek/Peek.xs b/ext/Devel/Peek/Peek.xs
index e7f5746..9837e9c 100644
--- a/ext/Devel/Peek/Peek.xs
+++ b/ext/Devel/Peek/Peek.xs
@@ -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
 
diff --git a/ext/DynaLoader/DynaLoader_pm.PL b/ext/DynaLoader/DynaLoader_pm.PL
index e0eb604..55b8eca 100644
--- a/ext/DynaLoader/DynaLoader_pm.PL
+++ b/ext/DynaLoader/DynaLoader_pm.PL
@@ -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";
diff --git a/ext/DynaLoader/XSLoader_pm.PL b/ext/DynaLoader/XSLoader_pm.PL
index 8cdfd63..7657410 100644
--- a/ext/DynaLoader/XSLoader_pm.PL
+++ b/ext/DynaLoader/XSLoader_pm.PL
@@ -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
diff --git a/ext/DynaLoader/dl_aix.xs b/ext/DynaLoader/dl_aix.xs
index 35242ed..d6acc68 100644
--- a/ext/DynaLoader/dl_aix.xs
+++ b/ext/DynaLoader/dl_aix.xs
@@ -36,6 +36,8 @@
 #include 
 #include 
 #include 
+#undef FREAD
+#undef FWRITE
 #include 
 
 #ifdef USE_64_BIT_ALL
@@ -87,6 +89,8 @@
 
 /* If using PerlIO, redefine these macros from  */
 #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)
diff --git a/ext/DynaLoader/dlutils.c b/ext/DynaLoader/dlutils.c
index 5c6bbea..9d88f5f 100644
--- a/ext/DynaLoader/dlutils.c
+++ b/ext/DynaLoader/dlutils.c
@@ -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
 }
 
 
diff --git a/ext/Fcntl/Fcntl.pm b/ext/Fcntl/Fcntl.pm
index 171538e..92103a1 100644
--- a/ext/Fcntl/Fcntl.pm
+++ b/ext/Fcntl/Fcntl.pm
@@ -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
diff --git a/ext/Fcntl/Fcntl.xs b/ext/Fcntl/Fcntl.xs
index 8d4a073..b597e03 100644
--- a/ext/Fcntl/Fcntl.xs
+++ b/ext/Fcntl/Fcntl.xs
@@ -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;
diff --git a/ext/File/Glob/Glob.pm b/ext/File/Glob/Glob.pm
index 4b7e54b..98ee34d 100644
--- a/ext/File/Glob/Glob.pm
+++ b/ext/File/Glob/Glob.pm
@@ -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 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 argument, and an optional
 C argument, and returns a list of filenames matching the
 pattern, with interpretation of the pattern modified by the C
-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
 
-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
 
@@ -220,18 +239,18 @@ appended.
 =item C
 
 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
 
-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 is set, its effect
 is present in the pattern returned.
 
 =item C
 
 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
+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
 set &File::Glob::ERROR.
 
-Note that glob() deviates from POSIX and FreeBSD glob(3) behaviour by
-not considering C and C as errors - glob() will
+Note that bsd_glob() deviates from POSIX and FreeBSD glob(3) behaviour
+by not considering C and C as errors - bsd_glob() will
 continue processing despite those errors, unless the C 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, you should
-probably throw them in a set as in C.  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, you should
+probably throw them in a set as in C.  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 *
 
diff --git a/ext/IO/lib/IO/File.pm b/ext/IO/lib/IO/File.pm
index 819b4b1..569c280 100644
--- a/ext/IO/lib/IO/File.pm
+++ b/ext/IO/lib/IO/File.pm
@@ -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";
 
diff --git a/ext/IO/lib/IO/Poll.pm b/ext/IO/lib/IO/Poll.pm
index 687664b..70a3469 100644
--- a/ext/IO/lib/IO/Poll.pm
+++ b/ext/IO/lib/IO/Poll.pm
@@ -1,3 +1,4 @@
+
 # IO::Poll.pm
 #
 # Copyright (c) 1997-8 Graham Barr . 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);
 
diff --git a/ext/IO/lib/IO/Seekable.pm b/ext/IO/lib/IO/Seekable.pm
index bfcfc13..e09d48b 100644
--- a/ext/IO/lib/IO/Seekable.pm
+++ b/ext/IO/lib/IO/Seekable.pm
@@ -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 Fcntl qw(SEEK_SET SEEK_CUR SEEK_END);
 require Exporter;
 
 @EXPORT = qw(SEEK_SET SEEK_CUR SEEK_END);
diff --git a/ext/IO/lib/IO/Select.pm b/ext/IO/lib/IO/Select.pm
index 1d8cda6..df92b04 100644
--- a/ext/IO/lib/IO/Select.pm
+++ b/ext/IO/lib/IO/Select.pm
@@ -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;
 }
 
diff --git a/ext/IO/lib/IO/Socket/INET.pm b/ext/IO/lib/IO/Socket/INET.pm
index 27a3d4d..c922bf3 100644
--- a/ext/IO/lib/IO/Socket/INET.pm
+++ b/ext/IO/lib/IO/Socket/INET.pm
@@ -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;
diff --git a/ext/IO/poll.c b/ext/IO/poll.c
index 0f8c843..024c52f 100644
--- a/ext/IO/poll.c
+++ b/ext/IO/poll.c
@@ -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()
  *
  */
 
diff --git a/ext/IPC/SysV/Msg.pm b/ext/IPC/SysV/Msg.pm
index 0993298..120a5b2 100644
--- a/ext/IPC/SysV/Msg.pm
+++ b/ext/IPC/SysV/Msg.pm
@@ -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
+Read a message from the queue. Returns the type of the message read.
+See L.  The  BUF becomes tainted.
 
 =item remove
 
diff --git a/ext/POSIX/Makefile.PL b/ext/POSIX/Makefile.PL
index 15256cf..55c5c1f 100644
--- a/ext/POSIX/Makefile.PL
+++ b/ext/POSIX/Makefile.PL
@@ -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', 
diff --git a/ext/POSIX/POSIX.xs b/ext/POSIX/POSIX.xs
index 3a523d1..b33e961 100644
--- a/ext/POSIX/POSIX.xs
+++ b/ext/POSIX/POSIX.xs
@@ -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
diff --git a/ext/Socket/Socket.pm b/ext/Socket/Socket.pm
index f83cb18..02f098d 100644
--- a/ext/Socket/Socket.pm
+++ b/ext/Socket/Socket.pm
@@ -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;
diff --git a/ext/Socket/Socket.xs b/ext/Socket/Socket.xs
index 752c3dd..0584e78 100644
--- a/ext/Socket/Socket.xs
+++ b/ext/Socket/Socket.xs
@@ -19,6 +19,10 @@
 # ifdef I_SYS_UN
 #  include 
 # endif
+/* XXX Configure test for 
+# endif
 # ifdef I_NETINET_IN
 #  include 
 # endif
diff --git a/ext/Sys/Syslog/Syslog.pm b/ext/Sys/Syslog/Syslog.pm
index 17ebb37..c7ce3de 100644
--- a/ext/Sys/Syslog/Syslog.pm
+++ b/ext/Sys/Syslog/Syslog.pm
@@ -70,9 +70,11 @@ Sets the socket type to be used for the next call to
 C or C 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.  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.  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
 
 =head1 AUTHOR
 
-Tom Christiansen EFE and Larry Wall EFE.
-UNIX domain sockets added by Sean Robinson EFE
-with support from Tim Bunce  and the perl5-porters mailing list.
-Dependency on F replaced with XS code bu Tom Hughes EFE.
+Tom Christiansen EFE and Larry Wall
+EFE.
+
+UNIX domain sockets added by Sean Robinson
+EFE with support from Tim Bunce
+EFE and the perl5-porters mailing list.
+
+Dependency on F replaced with XS code by Tom Hughes
+EFE.
 
 =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)) {
diff --git a/ext/Sys/Syslog/Syslog.xs b/ext/Sys/Syslog/Syslog.xs
index 511df9f..31c0e84 100644
--- a/ext/Sys/Syslog/Syslog.xs
+++ b/ext/Sys/Syslog/Syslog.xs
@@ -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
 
diff --git a/ext/Thread/Thread.pm b/ext/Thread/Thread.pm
index 3e50a99..c752e3d 100644
--- a/ext/Thread/Thread.pm
+++ b/ext/Thread/Thread.pm
@@ -36,16 +36,15 @@ Thread - manipulate threads in Perl (EXPERIMENTAL, subject to change)
 
 =head1 DESCRIPTION
 
-The C 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 module provides multithreading support for perl.
 
 =head1 FUNCTIONS
 
@@ -131,7 +130,7 @@ signal is discarded.
 
 =item cond_broadcast VARIABLE
 
-The C function works similarly to C.
+The C function works similarly to C.
 C, though, will unblock B the threads that are blocked
 in a C on the locked variable, rather than only one.
 
diff --git a/ext/Thread/Thread/Queue.pm b/ext/Thread/Thread/Queue.pm
index 6e2fba8..831573c 100644
--- a/ext/Thread/Thread/Queue.pm
+++ b/ext/Thread/Thread/Queue.pm
@@ -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);
 }
diff --git a/ext/Thread/Thread/Semaphore.pm b/ext/Thread/Thread/Semaphore.pm
index f50f96c..3cd6338 100644
--- a/ext/Thread/Thread/Semaphore.pm
+++ b/ext/Thread/Thread/Semaphore.pm
@@ -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;
diff --git a/ext/Thread/Thread/Specific.pm b/ext/Thread/Thread/Specific.pm
index da3f937..a6271a4 100644
--- a/ext/Thread/Thread/Specific.pm
+++ b/ext/Thread/Thread/Specific.pm
@@ -15,12 +15,13 @@ C 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__};
 }
 
diff --git a/global.sym b/global.sym
index 10b5303..796f851 100644
--- a/global.sym
+++ b/global.sym
@@ -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
--- 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 is
-set then the package will be created if it does not already exist.  If
-C is not set and the package does not exist then NULL is
-returned.
+Returns a pointer to the stash for a specified package.  C should
+be a valid UTF-8 string.  If C is set then the package will be
+created if it does not already exist.  If C 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.
+Returns a pointer to the stash for a specified package, which must be a
+valid UTF-8 string.  See C.
 
 =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
--- a/handy.h
+++ b/handy.h
@@ -260,18 +260,18 @@ C).
 
 /*
 =for apidoc Am|bool|isALNUM|char ch
-Returns a boolean indicating whether the C C is an ascii alphanumeric
+Returns a boolean indicating whether the C C is an ASCII alphanumeric
 character or digit.
 
 =for apidoc Am|bool|isALPHA|char ch
-Returns a boolean indicating whether the C C is an ascii alphabetic
+Returns a boolean indicating whether the C C is an ASCII alphabetic
 character.
 
 =for apidoc Am|bool|isSPACE|char ch
 Returns a boolean indicating whether the C C is whitespace.
 
 =for apidoc Am|bool|isDIGIT|char ch
-Returns a boolean indicating whether the C C is an ascii
+Returns a boolean indicating whether the C C is an ASCII
 digit.
 
 =for apidoc Am|bool|isUPPER|char ch
@@ -524,7 +524,7 @@ The XSUB-writer's interface to the C C function.  The C is the
 destination, C is the number of items, and C 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
 */
diff --git a/hints/cygwin.sh b/hints/cygwin.sh
index 42114c2..47c2092 100644
--- a/hints/cygwin.sh
+++ b/hints/cygwin.sh
@@ -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'
diff --git a/hints/dec_osf.sh b/hints/dec_osf.sh
index c149ae07..db7b869 100644
--- a/hints/dec_osf.sh
+++ b/hints/dec_osf.sh
@@ -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 <&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
 
diff --git a/hints/dos_djgpp.sh b/hints/dos_djgpp.sh
index 478c076..d50bca4 100644
--- a/hints/dos_djgpp.sh
+++ b/hints/dos_djgpp.sh
@@ -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'
diff --git a/hints/esix4.sh b/hints/esix4.sh
index 9967207..b1d697c 100644
--- a/hints/esix4.sh
+++ b/hints/esix4.sh
@@ -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 <&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
 
diff --git a/hints/freebsd.sh b/hints/freebsd.sh
index 2609261..fd60ba3 100644
--- a/hints/freebsd.sh
+++ b/hints/freebsd.sh
@@ -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 <&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 <&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 <&4
 POSIX threads are not supported well by FreeBSD $osvers.
 
@@ -199,13 +197,21 @@ or preferably to 3.something.
 EOM
 	      exit 1
 	      ;;
-	 *)   cat <&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 <&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 /'`
diff --git a/hints/hpux.sh b/hints/hpux.sh
index 91ba868..ce15f55 100644
--- a/hints/hpux.sh
+++ b/hints/hpux.sh
@@ -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
diff --git a/hints/irix_6.sh b/hints/irix_6.sh
index 9d9852d..8be23ac 100644
--- a/hints/irix_6.sh
+++ b/hints/irix_6.sh
@@ -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 
+	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
diff --git a/hints/linux.sh b/hints/linux.sh
index 80fda07..4fb2f89 100644
--- a/hints/linux.sh
+++ b/hints/linux.sh
@@ -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  
 #
diff --git a/hints/machten.sh b/hints/machten.sh
index 5ad4dba..b4409c1 100644
--- a/hints/machten.sh
+++ b/hints/machten.sh
@@ -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 / /' \
diff --git a/hints/newsos4.sh b/hints/newsos4.sh
index a33cb31..3e447a5 100644
--- a/hints/newsos4.sh
+++ b/hints/newsos4.sh
@@ -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
 
diff --git a/hints/openbsd.sh b/hints/openbsd.sh
index 7e68402..a7d8bf2 100644
--- a/hints/openbsd.sh
+++ b/hints/openbsd.sh
@@ -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
 
diff --git a/hints/posix-bc.sh b/hints/posix-bc.sh
index ec21bc3..2e46b8c 100644
--- a/hints/posix-bc.sh
+++ b/hints/posix-bc.sh
@@ -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'
 
diff --git a/hints/powerux.sh b/hints/powerux.sh
index 547a6e1..4070c01 100644
--- a/hints/powerux.sh
+++ b/hints/powerux.sh
@@ -63,6 +63,12 @@ lddlflags='-Zlink=so'
 #
 i_ndbm='undef'
 
+# I have no clude what perl thinks it wants  for, but if
+# you include it in a program in PowerMAX without first including
+#  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'
diff --git a/hints/solaris_2.sh b/hints/solaris_2.sh
index 5a8cbfa..8aee6d4 100644
--- a/hints/solaris_2.sh
+++ b/hints/solaris_2.sh
@@ -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 
-# 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 <
 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 
+# 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 <&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 <&4 <;
+    map { s|^$coredir/||i; } @corefiles = <$coredir/*.*>;
 }
 else {
     # [als] hard-coded 'libperl' name... not good!
diff --git a/intrpvar.h b/intrpvar.h
index 39d14c9..8ed93f8 100644
--- a/intrpvar.h
+++ b/intrpvar.h
@@ -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 */
diff --git a/iperlsys.h b/iperlsys.h
index f36dcd5..59da474 100644
--- a/iperlsys.h
+++ b/iperlsys.h
@@ -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
diff --git a/lib/CGI.pm b/lib/CGI.pm
index 3e03257..6380554 100644
--- a/lib/CGI.pm
+++ b/lib/CGI.pm
@@ -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\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 '
    ' 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()) 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([0]"\n\t"$dtd->[1]">)); + } else { + push(@result,qq()); + } push(@result,"$title"); push(@result,"") 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 = "" - if $code && $language=~/javascript/i; + if $code && $type=~/javascript/i; + $code = "" + if $code && $type=~/perl/i; $code = "" - if $code && $language=~/perl/i; + if $code && $type=~/tcl/i; + $code = "" + 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 ""; @@ -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 ? ("") : "\n"; + } else { return wantarray ? ($self->get_fields,"") : $self->get_fields ."\n"; + } } 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/&/&/g; - $toencode=~s/\"/"/g; - $toencode=~s/>/>/g; - $toencode=~s/{'.charset'} eq 'ISO-8859-1') { + # fix non-compliant bug in IE and Netscape + $toencode =~ s{(.)}{ + if ($1 eq '<') { '<' } + elsif ($1 eq '>') { '>' } + elsif ($1 eq '&') { '&' } + elsif ($1 eq '"') { '"' } + elsif ($1 eq "\x8b") { '‹' } + elsif ($1 eq "\x9b") { '›' } + else { $1 } + }gsex; + } else { + $toencode =~ s/(.)/'&#'.ord($1).';'/gsex; + } return $toencode; } END_OF_FUNC @@ -1911,7 +1865,7 @@ sub _tableize { $result = ""; my($row,$column); unshift(@$colheaders,'') if @$colheaders && @$rowheaders; - $result .= "" if @$colheaders; + $result .= "" if @{$colheaders}; foreach (@{$colheaders}) { $result .= ""; } @@ -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 .= "\n"; } $result .= "\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 = ); # 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 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 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 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 +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 tags that look something like this: -There is no support for the HTTP-EQUIV type of tag. This is -because you can modify the HTTP header directly with the B -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 tag. +This is because you can modify the HTTP header directly with the +B 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 tags. =head2 CREATING A SELF-REFERENCING URL THAT PRESERVES STATE INFORMATION: $myself = $query->self_url; - print "I'm talking to myself."; + print q(I'm talking to myself.); 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 "<", ">" becomes ">", "&" becomes "&", and +the quote character becomes """. 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 ("‹" and "›"). If you manually change +the charset, either by calling the charset() method explicitly or by +passing a -charset argument to header(), then B 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
    tag with the optional method, +start_form() will return a 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 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 This method was previously named startform(), and startform() +is still recognized as an alias. + =over 4 =item B @@ -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 instead of -B. +B. 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 for the form. You can do this either -by calling B with an encoding type of B<$CGI::MULTIPART>, +by calling B with an encoding type of B<$CGI::MULTIPART>, or by calling the new method B instead of -vanilla B. +vanilla B. =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 "What's your name?
    "; print $query->textfield('name'); print $query->checkbox('Not my real name'); diff --git a/lib/CGI/Carp.pm b/lib/CGI/Carp.pm index 90e9552..0a5c121 100644 --- a/lib/CGI/Carp.pm +++ b/lib/CGI/Carp.pm @@ -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 diff --git a/lib/CGI/Cookie.pm b/lib/CGI/Cookie.pm index bd3c3d8..9e5a14b 100644 --- a/lib/CGI/Cookie.pm +++ b/lib/CGI/Cookie.pm @@ -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> diff --git a/lib/CGI/Pretty.pm b/lib/CGI/Pretty.pm index 4f2eed4..20173f9 100644 --- a/lib/CGI/Pretty.pm +++ b/lib/CGI/Pretty.pm @@ -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; } diff --git a/lib/CGI/Push.pm b/lib/CGI/Push.pm index 80683a2..6b8e012 100644 --- a/lib/CGI/Push.pm +++ b/lib/CGI/Push.pm @@ -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 index 0000000..0a5c48b --- /dev/null +++ b/lib/CGI/Util.pm @@ -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 '<') { '<' } + elsif ($1 eq '>') { '>' } + elsif ($1 eq '&') { '&' } + elsif ($1 eq '"') { '"' } + elsif ($1 eq "\x8b") { '‹' } + elsif ($1 eq "\x9b") { '›' } + 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; diff --git a/lib/Carp/Heavy.pm b/lib/Carp/Heavy.pm index 5e3de49..8cfdcb4 100644 --- a/lib/Carp/Heavy.pm +++ b/lib/Carp/Heavy.pm @@ -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; } } diff --git a/lib/Class/Struct.pm b/lib/Class/Struct.pm index b4f2117..63eddac 100644 --- a/lib/Class/Struct.pm +++ b/lib/Class/Struct.pm @@ -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 = ''; diff --git a/lib/Dumpvalue.pm b/lib/Dumpvalue.pm index 94b6aa6..475f4ff 100644 --- a/lib/Dumpvalue.pm +++ b/lib/Dumpvalue.pm @@ -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); } diff --git a/lib/English.pm b/lib/English.pm index f6e3ec0..f38c313 100644 --- a/lib/English.pm +++ b/lib/English.pm @@ -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. diff --git a/lib/ExtUtils/Liblist.pm b/lib/ExtUtils/Liblist.pm index 47ce3dc..640978a 100644 --- a/lib/ExtUtils/Liblist.pm +++ b/lib/ExtUtils/Liblist.pm @@ -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 = $_; diff --git a/lib/ExtUtils/MM_Unix.pm b/lib/ExtUtils/MM_Unix.pm index 4c8da33..da22552 100644 --- a/lib/ExtUtils/MM_Unix.pm +++ b/lib/ExtUtils/MM_Unix.pm @@ -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";' diff --git a/lib/ExtUtils/MM_Win32.pm b/lib/ExtUtils/MM_Win32.pm index e08c679..7f40ff7 100644 --- a/lib/ExtUtils/MM_Win32.pm +++ b/lib/ExtUtils/MM_Win32.pm @@ -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';" diff --git a/lib/ExtUtils/MakeMaker.pm b/lib/ExtUtils/MakeMaker.pm index 38cb216..9906fd5 100644 --- a/lib/ExtUtils/MakeMaker.pm +++ b/lib/ExtUtils/MakeMaker.pm @@ -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 diff --git a/lib/ExtUtils/xsubpp b/lib/ExtUtils/xsubpp index 96e1bb4..5a71e89 100755 --- a/lib/ExtUtils/xsubpp +++ b/lib/ExtUtils/xsubpp @@ -70,6 +70,14 @@ affected is the use of Is by the output C code (see L). This may significantly slow down the generated code, but this is the way B of 5.005 and earlier operated. +=item B<-noinout> + +Disable recognition of C, C and C 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 ; diff --git a/lib/File/Compare.pm b/lib/File/Compare.pm index 8a8afac..667e7cb 100644 --- a/lib/File/Compare.pm +++ b/lib/File/Compare.pm @@ -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; } diff --git a/lib/File/Find.pm b/lib/File/Find.pm index 22a8ab3..ac73f1b 100644 --- a/lib/File/Find.pm +++ b/lib/File/Find.pm @@ -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; } diff --git a/lib/File/Spec.pm b/lib/File/Spec.pm index 40f5345..ed26d76 100644 --- a/lib/File/Spec.pm +++ b/lib/File/Spec.pm @@ -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', diff --git a/lib/File/Spec/Functions.pm b/lib/File/Spec/Functions.pm index 140738f..0036ac1 100644 --- a/lib/File/Spec/Functions.pm +++ b/lib/File/Spec/Functions.pm @@ -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; diff --git a/lib/File/Spec/Mac.pm b/lib/File/Spec/Mac.pm index 959e33d..5315d92 100644 --- a/lib/File/Spec/Mac.pm +++ b/lib/File/Spec/Mac.pm @@ -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" ; } diff --git a/lib/File/Spec/OS2.pm b/lib/File/Spec/OS2.pm index 33370f0..20bf8c9 100644 --- a/lib/File/Spec/OS2.pm +++ b/lib/File/Spec/OS2.pm @@ -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 { diff --git a/lib/File/Spec/Unix.pm b/lib/File/Spec/Unix.pm index 0cbc8c7..6ca26d7 100644 --- a/lib/File/Spec/Unix.pm +++ b/lib/File/Spec/Unix.pm @@ -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 { diff --git a/lib/File/Spec/VMS.pm b/lib/File/Spec/VMS.pm index a2ac8ca..d2be87c 100644 --- a/lib/File/Spec/VMS.pm +++ b/lib/File/Spec/VMS.pm @@ -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"; diff --git a/lib/File/Spec/Win32.pm b/lib/File/Spec/Win32.pm index aa95fbd..b8fe37b 100644 --- a/lib/File/Spec/Win32.pm +++ b/lib/File/Spec/Win32.pm @@ -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 index 0000000..736ef3f --- /dev/null +++ b/lib/File/Temp.pm @@ -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 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 +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 + +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. + + ($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) 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 + +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). + + $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 option is ignored if C is set +explicitly. Additionally, C 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 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 + +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. 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 + +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 and suffix of C<.dat> +would generate a file similar to F. + +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 + +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 + +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 +using the mkstemp() from this module. + +Unlike the L implementations, the directory used +for the temporary file is not specified in a system include +file (C) but simply depends on the choice of tmpdir() +returned by L. On some implementations this +location can be set using the C environment variable, which +may not be secure. +If this is a problem, simply use mkstemp() and specify a template. + +=over 4 + +=item B + +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 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 + +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 + +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 +with C 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 + +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 and C 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 being more accurate than +C, 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 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 + +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 +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 +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 +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 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, C, C etc) rather than +simply by root. + +This is required since on many unix systems C 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 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, L, L, L + +See L for a different implementation of temporary +file handling. + +=head1 AUTHOR + +Tim Jenness Et.jenness@jach.hawaii.eduE + +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; diff --git a/lib/Getopt/Long.pm b/lib/Getopt/Long.pm index 097e14a..f474c7c 100644 --- a/lib/Getopt/Long.pm +++ b/lib/Getopt/Long.pm @@ -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 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 + diff --git a/lib/I18N/Collate.pm b/lib/I18N/Collate.pm index 580ca39..64a03a2 100644 --- a/lib/I18N/Collate.pm +++ b/lib/I18N/Collate.pm @@ -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 diff --git a/lib/IPC/Open2.pm b/lib/IPC/Open2.pm index 161620b..a5a3561 100644 --- a/lib/IPC/Open2.pm +++ b/lib/IPC/Open2.pm @@ -55,6 +55,13 @@ failure: it just raises an exception matching C. However, C 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 when you're done with the process. +Failing to do this can result in an accumulation of defunct or "zombie" +processes. See L 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, both writing to it and reading from it. This is presumably safe because you diff --git a/lib/IPC/Open3.pm b/lib/IPC/Open3.pm index d43f1bd..46ebd68 100644 --- a/lib/IPC/Open3.pm +++ b/lib/IPC/Open3.pm @@ -49,6 +49,13 @@ failure: it just raises an exception matching C. However, C 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 when you're done with the process. +Failing to do this can result in an accumulation of defunct or "zombie" +processes. See L 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 diff --git a/lib/Math/Complex.pm b/lib/Math/Complex.pm index 1a47f4a..e5434f4 100644 --- a/lib/Math/Complex.pm +++ b/lib/Math/Complex.pm @@ -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, '/' => \÷, '**' => \&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 -(where I is a positive integer and I an integer within [-9,+9]), +(where I is a positive integer and I an integer within [-9, +9]), this is called I. =head2 CHANGED IN PERL 5.6 @@ -1705,29 +1749,33 @@ C 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, which corresponds usually (this is somewhat -system-dependent) to C<"%.15g">. You can revert to the default by -setting the format string to C. +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 to C. # 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 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 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 will die of -division by zero. +listed above. =head1 ERRORS DUE TO INDIGESTIBLE ARGUMENTS diff --git a/lib/Pod/Checker.pm b/lib/Pod/Checker.pm index 0fd36a9..ae32677 100644 --- a/lib/Pod/Checker.pm +++ b/lib/Pod/Checker.pm @@ -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 diff --git a/lib/Pod/Find.pm b/lib/Pod/Find.pm index e29c908..8de197b 100644 --- a/lib/Pod/Find.pm +++ b/lib/Pod/Find.pm @@ -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 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 is equivalent to B, 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 nor B are exported by -default so be sure to specify them in the B statement if you need them: +default so be sure to specify them in the B statement if you need +them: use Pod::Find qw(pod_find simplify_name); @@ -86,7 +88,8 @@ B. This is taken from the local L 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 environment. =back @@ -104,6 +107,7 @@ L, L 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 = ; @@ -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; diff --git a/lib/Pod/InputObjects.pm b/lib/Pod/InputObjects.pm index 646c008..849182b 100644 --- a/lib/Pod/InputObjects.pm +++ b/lib/Pod/InputObjects.pm @@ -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, L, and L. +See L, L =head1 AUTHOR diff --git a/lib/Pod/Man.pm b/lib/Pod/Man.pm index 898b544..8673ba4 100644 --- a/lib/Pod/Man.pm +++ b/lib/Pod/Man.pm @@ -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 # @@ -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); diff --git a/lib/Pod/ParseUtils.pm b/lib/Pod/ParseUtils.pm index 00f516e..2cb8cdc 100644 --- a/lib/Pod/ParseUtils.pm +++ b/lib/Pod/ParseUtils.pm @@ -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 diff --git a/lib/Pod/Parser.pm b/lib/Pod/Parser.pm index 88d9aa7..48fc198 100644 --- a/lib/Pod/Parser.pm +++ b/lib/Pod/Parser.pm @@ -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; diff --git a/lib/Pod/Select.pm b/lib/Pod/Select.pm index 53e27e5..5dd1595 100644 --- a/lib/Pod/Select.pm +++ b/lib/Pod/Select.pm @@ -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 diff --git a/lib/Pod/Text.pm b/lib/Pod/Text.pm index d93e5a4..f5c1e3d 100644 --- a/lib/Pod/Text.pm +++ b/lib/Pod/Text.pm @@ -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 +# Copyright 1999, 2000 by Russ Allbery # # 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 ); diff --git a/lib/Pod/Usage.pm b/lib/Pod/Usage.pm index b8abe7d..aa8f712 100644 --- a/lib/Pod/Usage.pm +++ b/lib/Pod/Usage.pm @@ -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 diff --git a/lib/Text/Abbrev.pm b/lib/Text/Abbrev.pm index ae6797c..d4f12d0 100644 --- a/lib/Text/Abbrev.pm +++ b/lib/Text/Abbrev.pm @@ -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; - diff --git a/lib/Tie/Handle.pm b/lib/Tie/Handle.pm index cbac735..588ecea 100644 --- a/lib/Tie/Handle.pm +++ b/lib/Tie/Handle.pm @@ -108,6 +108,7 @@ The L 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 { diff --git a/lib/Tie/Hash.pm b/lib/Tie/Hash.pm index 928b798..c6ec3d4 100644 --- a/lib/Tie/Hash.pm +++ b/lib/Tie/Hash.pm @@ -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 { diff --git a/lib/Tie/Scalar.pm b/lib/Tie/Scalar.pm index 1e2caee..0c67590 100644 --- a/lib/Tie/Scalar.pm +++ b/lib/Tie/Scalar.pm @@ -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 { diff --git a/lib/User/pwent.pm b/lib/User/pwent.pm index 39bfea4..8c05926 100644 --- a/lib/User/pwent.pm +++ b/lib/User/pwent.pm @@ -1,51 +1,179 @@ 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; -namely name, passwd, uid, gid, quota, comment, gecos, dir, and shell. +C objects. This object has methods that return the +similarly named structure field name from the C's passwd structure +from F, stripped of their leading "pw_" parts, namely C, +C, C, C, C, C, C, C, +C, C, C, C, and C. The C, +C, and C 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 in front their method names. -Thus, C<$passwd_obj-Eshell()> 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 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 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 pseudo-package. +To access this functionality without the core overrides, pass the +C an empty import list, and then access function functions +with their full qualified names. The built-ins are always still +available via the C pseudo-package. + +=head2 System Specifics + +Perl believes that no machine ever has more than one of C, +C, or C implemented, nor more than one of either +C or C. Some machines do not support C, +C, or allegedly, C. You may call these methods +no matter what machine you're on, but they return C if +unimplemented. + +You may ask whether one of these was implemented on the system Perl +was built on by asking the importable C 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 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 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. The C field, if blank, must be +assumed to be F. Perl does not do this for you. The +C 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 diff --git a/lib/charnames.pm b/lib/charnames.pm index 21b4dd6..7c2209b 100644 --- a/lib/charnames.pm +++ b/lib/charnames.pm @@ -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 diff --git a/lib/constant.pm b/lib/constant.pm index b4fcd42..72ad793 100644 --- a/lib/constant.pm +++ b/lib/constant.pm @@ -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 . Thanks! - Carp::carp("Constant name '$name' has unknown problems"); + warnings::warn("Constant name '$name' has unknown problems"); } } diff --git a/lib/diagnostics.pm b/lib/diagnostics.pm index a2c927b..884ea3c 100755 --- a/lib/diagnostics.pm +++ b/lib/diagnostics.pm @@ -44,7 +44,7 @@ These still go out B. 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 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 introduction before @@ -167,19 +167,23 @@ Tom Christiansen >, 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 () { - 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 = <) { - #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 diff --git a/lib/dumpvar.pl b/lib/dumpvar.pl index c727818..51e9c88 100644 --- a/lib/dumpvar.pl +++ b/lib/dumpvar.pl @@ -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); } diff --git a/lib/fields.pm b/lib/fields.pm index 5a84e28..ac45810 100644 --- a/lib/fields.pm +++ b/lib/fields.pm @@ -130,6 +130,7 @@ L 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"); } diff --git a/lib/open.pm b/lib/open.pm index a845459..cdd20ac 100644 --- a/lib/open.pm +++ b/lib/open.pm @@ -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. diff --git a/lib/perl5db.pl b/lib/perl5db.pl index 7c5b0a9..41430ac 100644 --- a/lib/perl5db.pl +++ b/lib/perl5db.pl @@ -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 <' 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 for example + $cmd =~ /^h\s+(\S.*)$/ && do { + my $asked = $1; # for proper errmsg + my $qasked = quotemeta($asked); # for searching + # XXX: finds CR but not + if ($help =~ /^\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}) =~ ss\a$k\a(.*)\a$1) { + 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($.); - #; &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." 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 Stack trace. B [I] Single step [in I]. @@ -1884,39 +2164,16 @@ B I Evals expression in array context, dumps the result. B I Evals expression in array context, prints methods callable on the first element of the result. B I Prints methods callable via the given class. -B [I[B<=>I]] [IB<\">IB<\">] [IB]... - Set or query values of options. I defaults to 1. I can - be abbreviated. Several options can be listed. - I, I: chars used to recall command or spawn shell; - I: program for output of \"|cmd\"; - I: run Tk while prompting (with ReadLine); - I I I: level of verbosity; - I Allows stepping off the end of the script. - I Debugger should stop as early as possible. - I: Remote hostname:port for remote debugging - The following options affect what happens with B, B, and B commands: - I, I: print only first N elements ('' for all); - I, I: change style of array and hash dump; - I: whether to print contents of globs; - I: dump arrays holding debugged files; - I: dump symbol tables of packages; - I: dump contents of \"reused\" addresses; - I, I, I: change style of string dump; - I: Do not print the overload-stringified value; - Option I affects printing of return value after B command, - I affects printing messages on entry and exit from subroutines. - I affects printing messages on every possible breaking point. - I gives maximal length of evals/args listed in stack trace. - I affects screen appearance of the command line. - During startup options are initialized from \$ENV{PERLDB_OPTS}. - You can put additional initialization options I, I, - I, I, and I there (or use - `B' after you set them). + +B<<> ? List Perl commands to run before each prompt. B<<> I Define Perl command to run before each prompt. B<<<> I Add to the list of Perl commands to run before each prompt. +B<>> ? List Perl commands to run after each prompt. B<>> I Define Perl command to run after each prompt. B<>>B<>> I Add to the list of Perl commands to run after each prompt. B<{> I Define debugger command to run before each prompt. +B<{> ? List debugger commands to run before each prompt. +B<<> I Define Perl command to run before each prompt. B<{{> I Add to the list of debugger commands to run before each prompt. B<$prc> I Redo a previous command (default previous command). B<$prc> I<-number> Redo number'th-to-last command. @@ -1938,13 +2195,49 @@ B Pure-man-restart of debugger, some of debugger state Currently the following setting are preserved: history, breakpoints and actions, debugger Bptions and the following command-line options: I<-w>, I<-I>, I<-e>. + +B [I] ... Set boolean option to true +B [IB] Query options +B [IB<=>I] [I=B<\">IB<\">] ... + Set options. Use quotes in spaces in value. + I, I chars used to recall command or spawn shell; + I program for output of \"|cmd\"; + I run Tk while prompting (with ReadLine); + I I I level of verbosity; + I Allows stepping off the end of the script. + I Debugger should stop as early as possible. + I Remote hostname:port for remote debugging + The following options affect what happens with B, B, and B commands: + I, I print only first N elements ('' for all); + I, I change style of array and hash dump; + I whether to print contents of globs; + I dump arrays holding debugged files; + I dump symbol tables of packages; + I dump contents of \"reused\" addresses; + I, I, I change style of string dump; + I Do not print the overload-stringified value; + Other options include: + I affects printing of return value after B command, + I affects printing messages on entry and exit from subroutines. + I affects printing messages on every possible breaking point. + I gives maximal length of evals/args listed in stack trace. + I affects screen appearance of the command line. + During startup options are initialized from \$ENV{PERLDB_OPTS}. + You can put additional initialization options I, I, + I, I, and I there (or use + `B' after you set them). + +B or B<^D> Quit. Set B<\$DB::finished = 0> to debug global destruction. B [I] Get help [on a specific debugger command], enter B<|h> to page. - Complete description of debugger is available in B - section of Perl documention B Summary of debugger commands. -B or B<^D> Quit. Set B<\$DB::finished = 0> to debug global destruction. +B<$doccmd> I Runs the external doc viewer B<$doccmd> command on the + named Perl I, 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 I B [I|I] List source code B Stack trace @@ -1968,18 +2261,71 @@ I B Execute perl code, also see: B,B,B< B [[B]I] List subroutine names [not] matching pattern B [I [I]] List Variables in Package. Vars can be ~pattern or !pattern. B [I] Same as \"B I [I]\". -I BI<:> Type B I Run B for more help. +For more help, type B I, 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 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) diff --git a/lib/strict.pm b/lib/strict.pm index f9d60af..042227f 100644 --- a/lib/strict.pm +++ b/lib/strict.pm @@ -34,6 +34,8 @@ use symbolic references (see L). print $$ref; # ok $ref = "foo"; print $$ref; # runtime error; normally ok + $file = "STDOUT"; + print $file "Hi!"; # error; note: no comma after $file =item C diff --git a/lib/syslog.pl b/lib/syslog.pl index 9e03399..70c439b 100644 --- a/lib/syslog.pl +++ b/lib/syslog.pl @@ -29,10 +29,12 @@ 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'; diff --git a/lib/unicode/Is/Alnum.pl b/lib/unicode/Is/Alnum.pl index d44f744..203860b 100644 --- a/lib/unicode/Is/Alnum.pl +++ b/lib/unicode/Is/Alnum.pl @@ -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 diff --git a/lib/unicode/Is/Alpha.pl b/lib/unicode/Is/Alpha.pl index 0e94688..90020b8 100644 --- a/lib/unicode/Is/Alpha.pl +++ b/lib/unicode/Is/Alpha.pl @@ -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 index 0000000..a15f760 --- /dev/null +++ b/lib/unicode/Is/LbrkAI.pl @@ -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 index 0000000..c705dc8 --- /dev/null +++ b/lib/unicode/Is/LbrkAL.pl @@ -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 index 0000000..527e4c8 --- /dev/null +++ b/lib/unicode/Is/LbrkB2.pl @@ -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 index 0000000..053369b --- /dev/null +++ b/lib/unicode/Is/LbrkBA.pl @@ -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 index 0000000..5d3952a --- /dev/null +++ b/lib/unicode/Is/LbrkBB.pl @@ -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 index 0000000..2c314fb --- /dev/null +++ b/lib/unicode/Is/LbrkBK.pl @@ -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 index 0000000..95f8b80 --- /dev/null +++ b/lib/unicode/Is/LbrkCB.pl @@ -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 index 0000000..a73130a --- /dev/null +++ b/lib/unicode/Is/LbrkCL.pl @@ -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 index 0000000..3d0f347 --- /dev/null +++ b/lib/unicode/Is/LbrkCM.pl @@ -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 index 0000000..c61a527 --- /dev/null +++ b/lib/unicode/Is/LbrkCR.pl @@ -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 index 0000000..d847092 --- /dev/null +++ b/lib/unicode/Is/LbrkEX.pl @@ -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 index 0000000..b03a627 --- /dev/null +++ b/lib/unicode/Is/LbrkGL.pl @@ -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 index 0000000..6989bc8 --- /dev/null +++ b/lib/unicode/Is/LbrkHY.pl @@ -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 index 0000000..0b1cc84 --- /dev/null +++ b/lib/unicode/Is/LbrkID.pl @@ -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 index 0000000..825198d --- /dev/null +++ b/lib/unicode/Is/LbrkIN.pl @@ -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 index 0000000..afa01a8 --- /dev/null +++ b/lib/unicode/Is/LbrkIS.pl @@ -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 index 0000000..dcb5490 --- /dev/null +++ b/lib/unicode/Is/LbrkLF.pl @@ -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 index 0000000..af9f337 --- /dev/null +++ b/lib/unicode/Is/LbrkNS.pl @@ -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 index 0000000..5c55d22 --- /dev/null +++ b/lib/unicode/Is/LbrkNU.pl @@ -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 index 0000000..a7dee37 --- /dev/null +++ b/lib/unicode/Is/LbrkOP.pl @@ -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 index 0000000..cdfb56e --- /dev/null +++ b/lib/unicode/Is/LbrkPO.pl @@ -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 index 0000000..c2d20da --- /dev/null +++ b/lib/unicode/Is/LbrkPR.pl @@ -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 index 0000000..46a6ee3 --- /dev/null +++ b/lib/unicode/Is/LbrkQU.pl @@ -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 index 0000000..bae4ced --- /dev/null +++ b/lib/unicode/Is/LbrkSA.pl @@ -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 index 0000000..8888fb5 --- /dev/null +++ b/lib/unicode/Is/LbrkSG.pl @@ -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 index 0000000..e786a0c --- /dev/null +++ b/lib/unicode/Is/LbrkSP.pl @@ -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 index 0000000..d2a33ae --- /dev/null +++ b/lib/unicode/Is/LbrkSY.pl @@ -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 index 0000000..ec287c4 --- /dev/null +++ b/lib/unicode/Is/LbrkXX.pl @@ -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 index 0000000..96d8e99 --- /dev/null +++ b/lib/unicode/Is/LbrkZW.pl @@ -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 diff --git a/lib/unicode/Is/Word.pl b/lib/unicode/Is/Word.pl index 23186bd..2f13b38 100644 --- a/lib/unicode/Is/Word.pl +++ b/lib/unicode/Is/Word.pl @@ -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 diff --git a/lib/unicode/mktables.PL b/lib/unicode/mktables.PL index cef6936..4f705a4 100755 --- a/lib/unicode/mktables.PL +++ b/lib/unicode/mktables.PL @@ -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: $!"; diff --git a/lib/vars.pm b/lib/vars.pm index 6ae5373..0ace551 100644 --- a/lib/vars.pm +++ b/lib/vars.pm @@ -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"} = diff --git a/lib/warnings.pm b/lib/warnings.pm index 11fd5b0..11558d5 100644 --- a/lib/warnings.pm +++ b/lib/warnings.pm @@ -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 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 and L. @@ -51,107 +66,161 @@ See L and L. 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 index 0000000..da6be97 --- /dev/null +++ b/lib/warnings/register.pm @@ -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 ; diff --git a/makedef.pl b/makedef.pl index 2e74878..6fae88b 100644 --- a/makedef.pl +++ b/makedef.pl @@ -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 diff --git a/makedepend.SH b/makedepend.SH index 7129e08..9a6f4c1 100755 --- a/makedepend.SH +++ b/makedepend.SH @@ -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 /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 /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 /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 --- 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; diff --git a/objXSUB.h b/objXSUB.h index 569065c..97e9ba4 100644 --- a/objXSUB.h +++ b/objXSUB.h @@ -229,6 +229,14 @@ #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 @@ -297,10 +305,18 @@ #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 @@ -687,6 +703,10 @@ #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 @@ -1057,6 +1077,10 @@ #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 @@ -1259,6 +1283,10 @@ #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 @@ -1841,6 +1869,10 @@ #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 @@ -2152,6 +2184,12 @@ #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 --- 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 --- a/op.h +++ b/op.h @@ -203,6 +203,9 @@ Deprecated. Use C 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 }; diff --git a/opcode.h b/opcode.h index 7ff516b..f0fcba9 100644 --- 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 */ diff --git a/opcode.pl b/opcode.pl index fc661ca..eb64e8d 100755 --- 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 diff --git a/patchlevel.h b/patchlevel.h index 7da61f0..f95db63 100644 --- a/patchlevel.h +++ b/patchlevel.h @@ -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 --- 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("::", 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 --- 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); \ diff --git a/perlapi.c b/perlapi.c index cfb4dc8..125c6e1 100755 --- 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 diff --git a/perlapi.h b/perlapi.h index 5e5ac28..634634c 100755 --- 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 diff --git a/pod/Makefile b/pod/Makefile index 50fb270..bd2e148 100644 --- a/pod/Makefile +++ b/pod/Makefile @@ -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 \ diff --git a/pod/Win32.pod b/pod/Win32.pod index 37c5cbd..bd1d065 100644 --- a/pod/Win32.pod +++ b/pod/Win32.pod @@ -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 for information on -dynamically loading a library. +no longer valid after this call. See L +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 diff --git a/pod/buildtoc b/pod/buildtoc index d947ddc..58bfc54 100644 --- a/pod/buildtoc +++ b/pod/buildtoc @@ -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:/; diff --git a/pod/perl.pod b/pod/perl.pod index 120dc44..59ca0e0 100644 --- a/pod/perl.pod +++ b/pod/perl.pod @@ -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 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 +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 pragma (and the B<-w> switch) produces some +lovely diagnostics. See L for explanations of all Perl's diagnostics. The C 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) to perlbug@perl.com . If you've succeeded -in compiling perl, the perlbug script in the utils/ subdirectory +in compiling perl, the B script in the F 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 index 0000000..27cdc22 --- /dev/null +++ b/pod/perl56delta.pod @@ -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 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 interpreters +concurrently in different threads. -Dusethreads only provides the +additional functionality of the perl_clone() API call and other +support for running B 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 pragma. L and L +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 and C pragmas are used to control this support +in the current lexical scope. See L, L and L 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 pragma, but also provides +the opportunity to introduce typing and other attributes for such +variables. See L. + +=head2 Support for strings represented as a vector of ordinals + +Literals of the form C 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 may be omitted if there are more than two ordinals, so C<1.2.3> is +parsed the same as C. + +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, C, +C, C, 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 and C 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 may be omitted if there is more than one dot: + + require 5.6.0; + use 5.6.0; + +Also, C and C 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 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 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 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 and F have been updated to keep the attributes +with the stubs they provide. See L. + +=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 and C +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("; + # $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. + +=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 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 Cs (it might, +but it doesn't have to): the C means that you will be +able to have 64 bits wide scalar values. + +The C 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. + +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 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, C, C, C and C, +subroutines named C 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 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 operator + +The C operator is now evaluated at compile time into a true list +instead of being replaced with a run time call to C. This +removes the confusing misbehaviour of C 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. + +=head2 pack() format modifier '!' supported + +The new format type modifier '!' is useful for packing and unpacking +native shorts, ints, and longs. See L. + +=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. + +=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: + + $answer = 0b101010; + printf "The answer is: %b\n", oct("0b101010"); + +=head2 Lvalue subroutines + +Subroutines can now return modifiable lvalues. +See L. + + 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 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 and L 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. + +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 pragma now provides ways to create pseudo-hashes, via +fields::new() and fields::phash(). See L. + + 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() >> and C<< close() >> +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 before duping the handle. +On platforms where doing this is allowed, the next read operation +on C will return the same data as the corresponding operation +on C. 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 would return true if no attempt to read from C<< <> >> had +yet been made. C 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 and L. + +=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. + +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 handle +is pointing at, instead of always going to the underlying C runtime +library's C. + +=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, +L, L, L, +and L. + +=head2 syswrite() ease-of-use + +The length argument of C 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. + +=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 and C 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 or C. + +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. + +=head2 C and C may be overridden + +C and C 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 will also affect C, provided the override +is visible at compile-time. +See L. + +=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 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. + +=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 for an +example. + +=head2 Optional Y2K warnings + +If Perl is built with the cpp macro C defined, +it emits optional warnings when concatenating the number 19 +with another number. + +This behavior must be specifically enabled when running Configure. +See F and F. + +=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. + +=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 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. + +=item ByteLoader + +The ByteLoader is a dedicated extension to generate and run +Perl bytecode. See L. + +=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. + +=item charnames + +This pragma implements the C<\N> string escape. See L. + +=item Data::Dumper + +A C setting can be specified to avoid venturing +too deeply into deep data structures. See L. + +The XSUB implementation of Dump() is now automatically called if the +C setting is not in use. + +Dumping C objects works correctly. + +=item DB + +C 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. + +=item Devel::DProf + +Devel::DProf, a Perl source code profiler has been added. See +L and L. + +=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. + +=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 option is +specified. Enabling the C option will make File::Find skip +changing the current directory when walking directories. The C +flag can be useful when running with taint checks enabled. + +See L. + +=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. + +=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 will read the given input file(s) and do something + useful with the contents thereof. + + =cut + +See L 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 now weeds out any trailing duplicate entries. +C 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 and the corresponding object method +C, 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) 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, 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 and L. + +=item Pod::Checker, podchecker + +This utility checks pod files for correct syntax, according to +L. 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. + +=item Pod::ParseUtils, Pod::Find + +These modules provide a set of gizmos that are useful mainly for pod +translators. L traverses directory structures and +returns found pod files, along with their canonical names (like +C). L contains +B (useful for storing pod list information), B +(for parsing the contents of CE> sequences) and B +(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. + +=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. + +=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 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 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 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. + +=item XSLoader + +The XSLoader extension is a simpler alternative to DynaLoader. +See L. + +=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 for further information. + +=back + +=head2 Pragmata + +C is now obsolete, and is only provided for +backward-compatibility. It's been replaced by the C +syntax. See L and L. + +Lexical warnings pragma, C, to control optional warnings. +See L. + +C 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 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. + +=head1 Utility Changes + +=head2 dprofpp + +C is used to display profile data generated using C. +See L. + +=head2 find2perl + +The C 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 tool can now work in conjunction with C (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 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 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, the +Perl debugger. The help documentation was rearranged. New commands +include C<< < ? >>, C<< > ? >>, and C<< { ? >> to list out current +actions, C> 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 +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 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 will not work with +interpreter threads). C 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 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 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&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 for detailed information. + +When given a pathname that consists only of a drivename, such as C, +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. + +$^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. + +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 can now be used to +test whether a process exists. + +The C 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 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. + +=head1 Significant bug fixes + +=head2 on empty files + +With C<$/> set to C, "slurping" an empty file returns a string of +zero length (instead of C, as it used to) the first time the +HANDLE is read after C<$/> is set to C. Further reads yield +C. + +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 improvements + +Line numbers (as reflected by caller() and most diagnostics) within +C were often incorrect where here documents were involved. +This has been corrected. + +Lexical lookups for variables appearing in C within +functions that were themselves called within an C were +searching the wrong place for lexicals. The lexical search now +correctly ends at the subroutine's block boundary. + +The use of C within C 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. 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, and +also allows such errors to be reliably trapped using C. + +=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. + +=head2 C<(\$)> prototype and C<$foo{a}> + +A scalar reference prototype now correctly allows a hash or +array element in that slot. + +=head2 C and AUTOLOAD + +The C construct works correctly when C<&sub> happens +to be autoloaded. + +=head2 C<-bareword> allowed under C + +The autoquoting of barewords preceded by C<-> did not work +in prior versions when the C 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 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 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 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. + +=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. + +=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. + +=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. + +=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. + +=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. + +=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. 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. + +=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 must be a subroutine +name, and not a subroutine call. C 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. + +=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 flag +could also result in this warning. See L. + +=item <> should be quotes + +(F) You wrote C<< require >> when you should have written +C. + +=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 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 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 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. + +=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 (see L) 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. + +=item Character class syntax [%s] belongs inside character classes + +(W unsafe) The character class constructs [: :], [= =], and [. .] go +I 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 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 and L. + +=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 or C pragma? See L and L. + +=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 value. If you want to see if the array is empty, +just use C for example. + +=item defined(%hash) is deprecated + +(D) defined() is not usually useful on hashes because it checks for an +undefined I value. If you want to see if the hash is empty, +just use C 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 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. + +=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. + +=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 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. + +=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. + +=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. + +=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 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. + +=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 or C +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 +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 for more +on portability concerns. + +See also L 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 pragma is now obsolete, and is only provided for +backward-compatibility. See L. + + +=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. + +=item Repeat count in unpack overflows + +(F) You can't specify a repeat count so large that it overflows +your signed integers. See L. + +=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, not C. + +=item switching effective %s is not implemented + +(F) While under the C 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 (see +L) 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 or C when you should be using +C instead. Or perhaps you should put the C or C +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. + +=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. + +=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 statement into +its equivalent C block found an internal inconsistency with +the version number. + +=back + +=head1 New tests + +=over 4 + +=item lib/attrs + +Compatibility tests for C vs the older C. + +=item lib/env + +Tests for new environment scalar capability (e.g., C). + +=item lib/env-array + +Tests for new environment array capability (e.g., C). + +=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 and . + +=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 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 considered incompatible changes. + +Since all new warnings must be explicitly requested via the C<-w> +switch or the C 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 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. + +=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 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 used to output C<97.9899> in earlier +versions, but now prints C. + +See L. + +=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 to obtain +the old behavior. + +See L. + +=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 from +that of previous versions, especially when iterating on hashes. + +See L for additional +information. + +=item C fails on read only values + +Using the C operator on a readonly value (such as $1) has +the same effect as assigning C 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. + +=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. + +=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 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 and C. +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 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 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. + +=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. + +=head2 More builtins taint their results + +As described in L, 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 + +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 + +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 +amounts to a macro invocation that actually translates to something like +C. 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 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 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 + +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 constitute Perl's memory allocation API. +See L for further information about that. + +=back + +=head2 Compatible C Source API Changes + +=over + +=item C is now C + +The cpp macros C, C, and C +are now available by default from perl.h, and reflect the base revision, +patchlevel, and subversion respectively. C had no +prior equivalent, while C and C were +previously available as C and C. + +The new names cause less pollution of the B namespace and reflect what +the numbers have come to stand for in common practice. For compatibility, +the old names are still supported when F 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 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. + +=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 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. + +=item Use of "$$" to mean "${$}" 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 "$$" 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 +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, will be sent off to perlbug@perl.com to be +analysed by the Perl porting team. + +=head1 SEE ALSO + +The F file for exhaustive details on what changed. + +The F file for how to build Perl. + +The F file for general stuff. + +The F and F files for copyright information. + +=head1 HISTORY + +Written by Gurusamy Sarathy >, with many +contributions from The Perl Porters. + +Send omissions or corrections to >. + +=cut diff --git a/pod/perlapi.pod b/pod/perlapi.pod index e4dedbe..58e2951 100644 --- a/pod/perlapi.pod +++ b/pod/perlapi.pod @@ -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 to be pushed +used, guarantees that there is room for at least C to be pushed onto the stack. void EXTEND(SP, int nitems) @@ -381,17 +381,17 @@ C apply equally to these functions. =item gv_stashpv -Returns a pointer to the stash for a specified package. If C is -set then the package will be created if it does not already exist. If -C is not set and the package does not exist then NULL is -returned. +Returns a pointer to the stash for a specified package. C should +be a valid UTF-8 string. If C is set then the package will be +created if it does not already exist. If C 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. +Returns a pointer to the stash for a specified package, which must be a +valid UTF-8 string. See C. HV* gv_stashsv(SV* sv, I32 create) @@ -662,21 +662,21 @@ Undefines the hash. =item isALNUM -Returns a boolean indicating whether the C C is an ascii alphanumeric +Returns a boolean indicating whether the C C is an ASCII alphanumeric character or digit. bool isALNUM(char ch) =item isALPHA -Returns a boolean indicating whether the C C is an ascii alphabetic +Returns a boolean indicating whether the C C is an ASCII alphabetic character. bool isALPHA(char ch) =item isDIGIT -Returns a boolean indicating whether the C C is an ascii +Returns a boolean indicating whether the C C 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 to hook up XSUBs as Perl subs. @@ -1256,7 +1263,7 @@ wrapper for C). =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 +in the C enum. Test these flags with the C macro. + =item SvTYPE Returns the type of the SV. See C. svtype SvTYPE(SV* sv) -=item svtype - -An enum of flags for Perl types. These are found in the file B -in the C enum. Test these flags with the C macro. - =item SVt_IV Integer type flag for scalars. See C. diff --git a/pod/perlbook.pod b/pod/perlbook.pod index 3a693dd..1b322fb 100644 --- a/pod/perlbook.pod +++ b/pod/perlbook.pod @@ -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 diff --git a/pod/perlboot.pod b/pod/perlboot.pod index bab3656..b549f45 100644 --- a/pod/perlboot.pod +++ b/pod/perlboot.pod @@ -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, a basic reference in using objects, and L, 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 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 speaking subroutine -as: +first parameter (the only parameter, if no arguments are given). So +we can rewrite the C speaking subroutine as: sub Sheep::speak { my $class = shift; @@ -245,14 +245,15 @@ inheritance. When we turn on C, 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 are C and C. The C 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 here, so that it quickly denotes +the constructor's argument as the name for this particular C. +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, with various ways of interpreting the arguments to +C. Either style is fine, as long as you document your particular +way of giving birth to an object. (And you I going to do that, +right?) + =head2 Inheriting the constructor But was there anything specific to C in that method? No. Therefore, diff --git a/pod/perlcall.pod b/pod/perlcall.pod index 34f442a..148b24b 100644 --- a/pod/perlcall.pod +++ b/pod/perlcall.pod @@ -1939,7 +1939,7 @@ done inside our C code: C is used to compile the anonymous subroutine, which will be the return value as well (read more about C in -L). Once this code reference is in hand, it +L). Once this code reference is in hand, it can be mixed in with all the previous examples we've shown. =head1 SEE ALSO diff --git a/pod/perlcompile.pod b/pod/perlcompile.pod index 04dc019..e5544ec 100644 --- a/pod/perlcompile.pod +++ b/pod/perlcompile.pod @@ -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 program that comes with Perl: @@ -203,11 +203,11 @@ The B<-p> option adds parentheses where normally they are omitted: See L 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 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 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 outside the running subroutine (C is ok). +C outside the running subroutine (C is okay). C 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 diff --git a/pod/perldata.pod b/pod/perldata.pod index e3361e4..ac444fa 100644 --- a/pod/perldata.pod +++ b/pod/perldata.pod @@ -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 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. 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 for a list. +forms. See L 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, C, C etc. If there are two or more dots in the literal, the leading C may be -omitted. Such literals are accepted by both C and C 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 and C for doing a version check. The C<$^V> special variable also contains the running Perl interpreter's version in this form. See L. @@ -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 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 and C 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("; + # $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 diff --git a/pod/perldbmfilter.pod b/pod/perldbmfilter.pod index faed2d2..3350596 100644 --- a/pod/perldbmfilter.pod +++ b/pod/perldbmfilter.pod @@ -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 index 0000000..45c33c7 --- /dev/null +++ b/pod/perldebguts.pod @@ -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 command described in L, which is +usable only if a special Perl is built per the instructions in the +F podpage in the Perl source tree. + +For example, whenever you call Perl's built-in C 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): + +=over + +=item * + +Perl inserts the contents of C<$ENV{PERL5DB}> (or C 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 Ced strings that contain +subroutines, or which are currently being executed. The $filename +for Ced 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 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 Ced 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 Ced +strings looks like C<(eval 34)> or C<(re_eval 19)>. + +=item * + +After each Cd file is compiled, but before it is executed, +C is called if the subroutine +C exists. Here, the $filename is the expanded name of +the Cd file, as found in the values of %INC. + +=item * + +After each subroutine C is compiled, the existence of +C<$DB::postponed{subname}> is checked. If this key exists, +C is called if the C subroutine +also exists. + +=item * + +A hash C<%DB::sub> is maintained, whose keys are subroutine names +and whose values have the form C. +C has the form C<(eval 34)> for subroutines defined inside +Cs, 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 subroutine is called any of the variables +$DB::trace, $DB::single, or $DB::signal is true. These variables +are not Cizable. This feature is disabled when executing +inside C, 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) 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 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 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 } + +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. + +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 +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<@{"::_ C<%{"::_. Here C +is the currently selected file, either explicitly chosen with the +debugger's C command, or implicitly by flow of execution. + +Some functions are provided to simplify customization. See +L for description of options parsed by +C. The function C skips the specified number of frames and returns a list +containing information about the calling frames (all of them, if +C is missing). Each entry is reference to a hash with +keys C (either C<.>, C<$>, or C<@>), C (subroutine +name, or info about C), C (C or a reference to +an array), C, and C. + +The function C 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) are considered for internal +use only, and as such are subject to change without notice. + +=head1 Frame Listing Output Examples + +The C 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 Cption C 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 environment variable to +the value C, and running I from the command line. +Examples use various values of C 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 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, 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 (13) + 13: CURLYX {1,32767}(27) + 15: OPEN1(17) + 17: EXACT (19) + 19: STAR(22) + 20: EXACT (0) + 22: EXACT (24) + 24: CLOSE1(26) + 26: WHILEM(0) + 27: NOTHING(28) + 28: EXACT (30) + 30: ANYOF(40) + 40: EXACT (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 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 at offset 1, plus substring C +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 before checking for the substring C. The +optimizer may also use the knowledge that the match starts (at the +C I) 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 I C I + +=item C I C I + +See above. + +=item C + +Which substring to check first. + +=item C + +The minimal length of the match. + +=item C I + +Type of first matching node. + +=item C + +Don't scan for the found substrings. + +=item C + +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 + +Set if the pattern contains C<\G>. + +=item C + +Set if the pattern starts with a repeated char (as in C). + +=item C + +Set if the pattern starts with C<.*>. + +=item C + +Set if the pattern contain eval-groups, such as C<(?{ code })> and +C<(??{ code })>. + +=item C + +If the pattern may match only at a handful of places, (with C +being C, C, or C. 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. + +The optimizer-specific info is used to avoid entering (a slow) regex +engine on strings that will not definitely match. If C 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 of the compiled +form of the regex. Each line has format + +C< >I: I I (I) + +=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 | 1: ANYOF + 3 | 11: EXACT + 4 | 13: CURLYX {1,32767} + 4 | 26: WHILEM + 0 out of 1..32767 cc=effff31c + 4 | 15: OPEN1 + 4 | 17: EXACT + 5 | 19: STAR + EXACT can match 1 times out of 32767... + Setting an EVAL scope, savestack=3 + 6 | 22: EXACT + 7 <__gh__> | 24: CLOSE1 + 7 <__gh__> | 26: WHILEM + 1 out of 1..32767 cc=effff31c + Setting an EVAL scope, savestack=12 + 7 <__gh__> | 15: OPEN1 + 7 <__gh__> | 17: EXACT + restoring \1 to 4(4)..7 + failed, try continuation... + 7 <__gh__> | 27: NOTHING + 7 <__gh__> | 28: EXACT + failed... + failed... + +The most significant information in the output is about the particular I +of the compiled regex that is currently being tested against the target string. +The format of these lines is + +C< >I > > |I: I + +The I 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 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 + +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 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 and C. 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 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 + +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 + +The amount of sbrk(2)ed memory needed to keep buckets aligned. + +=item C + +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 + +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 + +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: 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 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 Is 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 the perl source for C<903>. You'll find it in +F, function savepvn(). (I know, you wonder why we told you +to B 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: 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 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). Note also that C 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 Is above: + +=over + +=item C<717> + +Creates bigger C structures. In the case above, it +creates 3 Cs per subroutine, one for a list of lexical variable +names, one for a scratchpad (which contains lexical variables and +C), and one for the array of scratchpads needed for +recursion. + +It also creates a C and a C per subroutine, all called from +start_subparse(). + +=item C<002> + +Creates a C array corresponding to the C 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 allocations. + +=item C<054> + +Creates a C for the name of the glob for the subroutine. This +name is a key in a I. + +Big allocations with this I correspond to allocations of new +arenas to keep C. + +=item C<602> + +Creates a C for the glob for the subroutine. + +=item C<702> + +Creates the C for the glob for the subroutine. + +=item C<704> + +Creates I 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 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, +L, +L +L, +and +L. diff --git a/pod/perldebug.pod b/pod/perldebug.pod index fe24184..c8ef60f 100644 --- a/pod/perldebug.pod +++ b/pod/perldebug.pod @@ -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 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 to execute, rather than the one it has just executed. Any command not recognized by the debugger is directly executed -(C'd) as Perl code in the current package. (The debugger uses the -DB package for its own state information.) +(C'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 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 produces a more compact help listing, designed to fit together on one screen. If the output of the C 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 command. =item p expr Same as C in the current package. In particular, -because this is just Perl's own B function, this means that nested +because this is just Perl's own C function, this means that nested data structures and objects are not dumped, unlike with the C command. The C filehandle is opened to F, 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 function. +recursively, unlike the real C function in Perl. +See L if you'd like to do this yourself. -The details of printout are governed by multiple Cptions. +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
    -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
    ) +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 for positive and negative regexps. - -Nested data structures are printed out in a legible fashion, unlike -the C function. +Use C<~pattern> and C for positive and negative regexes. -The details of printout are governed by multiple Cptions. +This is similar to calling the C 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 option is set (default). =item @@ -159,7 +152,7 @@ List a single line. =item l subname List first window of lines from subroutine. I 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 -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 statement. If I +is not a full pathname found in the values of %INC, it is considered +a regex. Ced strings (when accessible) are considered to be filenames: C and C access the body of the 7th Ced string -(in the order of execution). The bodies of currently executed C -and of Ced strings which define subroutines are saved, thus are -accessible by this mechanism. +(in the order of execution). The bodies of the currently executed C +and of Ced 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 Cption). +Toggle trace mode (see also the C 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 Cption C 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. +See L 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: +Set a breakpoint before the given line. If I 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: b 237 $x > 30 b 237 ++$count237 < 11 @@ -257,28 +219,28 @@ that begin an executable statement. Conditions don't use B: =item b subname [condition] -Set a breakpoint at the first line of the named subroutine. I may -be a variable which contains a code reference (in this case I +Set a breakpoint before the first line of the named subroutine. I may +be a variable containing a code reference (in this case I is not supported). =item b postpone subname [condition] -Set breakpoint at first line of subroutine after it is compiled. +Set a 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, +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. If I 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 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 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: It is far +too easy to destroy your watch expressions by accidentally omitting +the I. =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 to call B 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 or C. + +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
    does B do regular expression character classes +such as C<\d> or C<[:lower:]>. The operator is not equivalent to +the tr(1) utility. If you want to map strings between lower/upper +cases, see L and L, and in general consider +using the C 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 of the writer of C<"\Q\t\E">. Interpolated scalars and arrays are converted internally to the C 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 to correct the incorrigible I 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 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/C in the C> pragma, as well as Perl's B<-Dr> command-line -switch documented in L. +switch documented in L. =item Optimization of regular expressions @@ -1591,7 +1608,8 @@ to terminate the loop, they should be tested for explicitly: while () { last unless $_; ... } In other boolean contexts, C<< > >> without an -explicit C test or comparison elicit a warning if the B<-w> +explicit C test or comparison elicit a warning if the +C 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 when the list has run out. As with filehandle reads, an automatic C is generated when the glob occurs in the test part of a C, because legal glob returns (e.g. a file called F<0>) would otherwise diff --git a/pod/perlopentut.pod b/pod/perlopentut.pod index 9cb9f67..5d2d48e 100644 --- a/pod/perlopentut.pod +++ b/pod/perlopentut.pod @@ -309,7 +309,7 @@ C, C, C, C, C, C, C and C. 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 to emulate the simple C calls we had before. We'll omit the C<|| die $!> checks for clarity, but make sure diff --git a/pod/perlpod.pod b/pod/perlpod.pod index fd0a1de..6c0c534 100644 --- a/pod/perlpod.pod +++ b/pod/perlpod.pod @@ -154,10 +154,11 @@ It will be filled, and maybe even justified. Certain interior sequences are recognized both here and in commands: - I italicize text, used for emphasis or variables - B embolden text, used for switches and programs - S text contains non-breaking spaces - C literal code + I Italicize text, used for emphasis or variables + B Embolden text, used for switches and programs + S Text contains non-breaking spaces + C Render code in a typewriter font, or give some other + indication that this represents program text L A link (cross reference) to name L manual page L item in manual page diff --git a/pod/perlport.pod b/pod/perlport.pod index 10723ee..7f779c9 100644 --- a/pod/perlport.pod +++ b/pod/perlport.pod @@ -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, OS/2, VMS, VOS, S, 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 +=item Testing results: http://testers.cpan.org/ =back @@ -654,21 +654,41 @@ Also see: =over 4 -=item The djgpp environment for DOS, C +=item * -=item The EMX environment for DOS, OS/2, etc. C, -C or -C +The djgpp environment for DOS, http://www.delorie.com/djgpp/ +and L. -=item Build instructions for Win32, L. +=item * -=item The ActiveState Pages, C +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. -=item The Cygwin environment for Win32; F (installed -as L), C +=item * -=item The U/WIN environment for Win32, -C +Build instructions for Win32 in L, or under the Cygnus environment +in L. + +=item * + +The C modules in L. + +=item * + +The ActiveState Pages, http://www.activestate.com/ + +=item * + +The Cygwin environment for Win32; F (installed +as L), http://sourceware.cygnus.com/cygwin/ + +=item * + +The U/WIN environment for Win32, + =back @@ -742,17 +762,23 @@ Also see: =over 4 -=item The MacPerl Pages, C. +=item * + +The MacPerl Pages, http://www.macperl.com/ . + +=item * -=item The MacPerl mailing lists, C. +The MacPerl mailing lists, http://www.macperl.org/ . -=item MacPerl Module Porters, C. +=item * + +MacPerl Module Porters, http://pudge.net/mmp/ . =back =head2 VMS -Perl on VMS is discussed in F in the perl distribution. +Perl on VMS is discussed in L 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 (installed as L), L +=item * + +F (installed as L), L + +=item * -=item vmsperl list, C +vmsperl list, majordomo@perl.org -Put the words C in message body. +(Put the words C in message body.) -=item vmsperl on the web, C +=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 +=item * + +F -=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 +=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 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, F, F +=item * + +* -=item perl-mvs list +L, F, F, F + +=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 +=item * + +AS/400 Perl information at +ttp://as400.rochester.ibm.com/ as well as on CPAN in the F directory. =back @@ -1138,23 +1184,33 @@ See also: =over 4 -=item Amiga, F (installed as L). +=item * -=item Atari, F and Guido Flohr's web page -C +Amiga, F (installed as L). -=item Be OS, F +=item * -=item HP 300 MPE/iX, F and Mark Bixby's web page -C +Atari, F and Guido Flohr's web page +http://stud.uni-sb.de/~gufl0000/ -=item Novell Netware +=item * + +Be OS, F + +=item * + +HP 300 MPE/iX, F 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 +precompiled binary and source code form from http://www.novell.com/ as well as from CPAN. -=item Plan 9, F +=item + +Plan 9, F =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) +=item alarm SECONDS + +=item alarm + +Not implemented. (Win32) + =item binmode FILEHANDLE Meaningless. (S, S) @@ -1287,6 +1349,9 @@ Not implemented. (S) 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, Win32, AmigaOS, S, VOS, VM/ESA) +Not implemented. (S, AmigaOS, S, VOS, VM/ESA) + +Emulated using multiple interpreters. See L. (Win32) + +Does not automatically flush output handles on some platforms. +(SunOS, Solaris, HP-UX) =item getlogin @@ -1436,14 +1506,8 @@ Not implemented. (S, Plan9) Globbing built-in, but only C<*> and C metacharacters are supported. (S) -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) +This operator is implemented via the File::Glob extension on most +platforms. See L for portability information. =item ioctl FILEHANDLE,FUNCTION,SCALAR @@ -1459,9 +1523,12 @@ Available only for socket handles. (S) Not implemented, hence not useful for taint checking. (S, S) -C 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 doesn't have the semantics of C, i.e. it doesn't send +a signal to the identified process like it does on Unix platforms. +Instead C 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) -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, Win32, S) +Opening a process does not automatically flush output handles on some +platforms. (SunOS, Solaris, HP-UX) + =item pipe READHANDLE,WRITEHANDLE Not implemented. (S) @@ -1520,6 +1590,8 @@ Only implemented on sockets. (Win32) Only reliable on sockets. (S) +Note that the C 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 spawns an external process and immediately returns its process designator, without waiting for it to terminate. Return value may be used subsequently -in C or C. (Win32) +in C or C. 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) -"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) @@ -1677,6 +1756,11 @@ Not useful. (S) =over 4 +=item v1.47, 22 March 2000 + +Various cleanups from Tom Christiansen, including migration of +long platform listings from L. + =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, L, L, L, L, +L, L, L, and L. + =head1 AUTHORS / CONTRIBUTORS Abigail , @@ -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 diff --git a/pod/perlre.pod b/pod/perlre.pod index 09bee37..2db4139 100644 --- a/pod/perlre.pod +++ b/pod/perlre.pod @@ -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 Cs. 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 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 the correct subexpression to match +its appearance, C<#[ \t]*> I 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: diff --git a/pod/perlref.pod b/pod/perlref.pod index 274f43d..2727e95 100644 --- a/pod/perlref.pod +++ b/pod/perlref.pod @@ -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 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 index 0000000..d151e26 --- /dev/null +++ b/pod/perlrequick.pod @@ -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 is a regexp and the C enclosing +C 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 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 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, 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. +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 it should +match, we would use the B 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 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, 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, 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 > 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 +metacharacter C<'|'>. To match C or C, we form the regexp +C. 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. If +C doesn't match, perl will then try the next alternative, C. +If C 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 is the first alternative in the second regexp, +C 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 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 means match +C followed by either C or C. 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. 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 C<\1>, C<\2>, ... Backreferences are +matching variables that can be used I 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 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 = match 'a' 1 or 0 times + +=item * C = match 'a' 0 or more times, i.e., any number of times + +=item * C = match 'a' 1 or more times, i.e., at least once + +=item * C = match at least C times, but not more than C +times. + +=item * C = match at least C or more times + +=item * C = match exactly C 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 modifier, to only +perform variable substitutions once. If you don't want any +substitutions at all, use the special delimiter C: + + $pattern = 'Seuss'; + m'$pattern'; # matches '$pattern', not 'Seuss' + +The global modifier C 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 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 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, as in C. + +In list context, C 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. +The C is a Perl double quoted string that replaces in the +string whatever is matched with the C. The operator C<=~> is +also used here to associate a string with C. If matching +against C<$_>, the S > can be dropped. If there is a match, +C 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 operator, the matched variables C<$1>, C<$2>, etc. +are immediately available for use in the replacement expression. With +the global modifier, C 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 wraps an C 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 can use other delimiters, such as C and C, and +even C. If single quotes are used C, then the regexp and +replacement are treated as single quoted strings. + +=head2 The split operator + +C splits C into a list of substrings +and returns that list. The regexp determines the character sequence +that C 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 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 and for the reference page, see L. + +=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 index 0000000..5ff4298 --- /dev/null +++ b/pod/perlretut.pod @@ -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. Regular expressions +are an integral part of the C, C, C and C +operators and so this tutorial also overlaps with +L and L. + +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 +or C. 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 conditionals and C +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 is the regular expression and the +C enclosing C 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 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, C, and C 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 doesn't match because regexps are +case-sensitive. The second regexp matches because the substring +S > occurs in the string S >. 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 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, 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. 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 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 > 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) >> > loops over all the lines in +all the files. For each line, S > prints the +line if the regexp matches the line. In this line, both C and +C 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 in the string the regexp should try to match. To do +this, we would use the B 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 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 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. 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 > 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 of them. + +One such concept is that of a B. 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 +can be rewritten as C. The C<'i'> stands for +case-insensitive and is an example of a B 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. +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, 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 > +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 and C modifiers. C and C 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 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 line within the string. + +=back + +Here are examples of C and C 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 and +C are occasionally very useful. If C 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 metacharacter C<|>. To match C or C, we +form the regexp C. 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. If C doesn't match, perl will then try the +next alternative, C. If C 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 is the first alternative in the second regexp, +C 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 fits the bill, but is +inefficient because we had to type C twice. It would be nice to +have parts of the regexp be constant, like C, and and some +parts have alternatives, like C. + +The B 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 by forming the regexp as +C. The regexp C means match +C followed by either C or C. 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. 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 > 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 > 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 C<\1>, C<\2>, ... . Backreferences are simply +matching variables that can be used I 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 > 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 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 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 = match 'a' 1 or 0 times + +=item * C = match 'a' 0 or more times, i.e., any number of times + +=item * C = match 'a' 1 or more times, i.e., at least once + +=item * C = match at least C times, but not more than C +times. + +=item * C = match at least C or more times + +=item * C = match exactly C 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, perl will first try to match the regexp with the C +present; if that fails, perl will try to match the regexp without the +C 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 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 in C 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 sequence with the final C +in the string. The other important principle illustrated here is that +when there are two or more elements in a regexp, the I +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 or +B 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, 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, being leftmost in the alternation, would be +matched, but C 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. C is the first quantifier, so it gets to match +a maximal C. + + $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. + + $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, leaving C +the opportunity to match both C'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, not C. + +Sometimes greed is not good. At times, we would like quantifiers to +match a I piece of string, rather than a maximal piece. For +this purpose, Larry Wall created the S > or +B 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 = match 'a' 0 or 1 times. Try 0 first, then 1. + +=item * C = match 'a' 0 or more times, i.e., any number of times, +but as few times as possible + +=item * C = match 'a' 1 or more times, i.e., at least once, but +as few times as possible + +=item * C = match at least C times, not more than C +times, as few times as possible + +=item * C = match at least C times, but as few times as +possible + +=item * C = match exactly C times. Because we match exactly +C times, C is equivalent to C 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
    $_
    , with the alternation C +matching C. 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. At this position, the minimal C +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 match at the start of the string. Thus +the first quantifier has to match everything up to the first C. The +second minimal quantifier matches just one C 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, 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 of length n, two repetitions with +the first C 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 possibility before giving up. So be +careful with nested C<*>'s, C<{n,m}>'s, and C<+>'s. The book +I 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 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 or C, 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 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 > or put it in a character class S >. 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 and arbitrary delimiter C 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, multi-line C, case-insensitive C and +extended C 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. 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 +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: + + $pattern = 'Seuss'; + while (<>) { + print if m'$pattern'; # matches '$pattern', not 'Seuss' + } + +C acts like single quotes on a regexp; all other C delimiters +act like double quotes. If the regexp evaluates to the empty string, +the regexp in the I is used instead. So we have + + "dog" =~ /d/; # 'd' matches + "dogbert =~ //; # this matches the 'd' regexp used before + +The final two modifiers C and C concern multiple matches. +The modifier C 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 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 function. + +The use of C 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 was made for. To extract all words, form the simple +regexp C<(\w+)> and loop over all matches with C: + + 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, as in C. 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 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 modifier is the C<\G> anchor. The +C<\G> anchor matches at the point where the previous C match left +off. C<\G> allows us to easily do context-sensitive matching: + + $metric = 1; # use metric units + ... + $x = ; # 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 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 and we want to find all the stop +codons C. 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, but there is no guarantee that +the match is aligned with codon boundaries, e.g., the substring +S > 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 +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 + +Regular expressions also play a big role in B +operations in Perl. Search and replace is accomplished with the +C operator. The general form is +C, with everything we know about +regexps and modifiers applying in this case as well. The +C is a Perl double quoted string that replaces in the +string whatever is matched with the C. The operator C<=~> is +also used here to associate a string with C. If matching +against C<$_>, the S > can be dropped. If there is a match, +C 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 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 +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 we used the C modifier to replace all +occurrences of the regexp on each line and the C modifier to +compile the regexp only once. As with C, both the +C and the C use C<$_> implicitly. + +A modifier available specifically to search and replace is the +C evaluation modifier. C wraps an C around +the replacement string and the evaluated result is substituted for the +matched substring. C 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 operator, C can use other delimiters, +such as C and C, and even C. If single quotes are +used C, then the regexp and replacement are treated as single +quoted strings and there are no substitutions. C in list context +returns the same thing as in scalar context, i.e., the number of +matches. + +B + +The B > function can also optionally use a matching operator +C to split a string. C splits +C into a list of substrings and returns that list. The regexp +is used to match the character sequence that the C is split +with respect to. The C, if present, constrains splitting into +no more than C 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 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 +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, 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 +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 may be represented using the C<\x{hex}> notation, +with C 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 > escape +sequence C<\N{name}>. C 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 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 position is no longer synchronized to the string I +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 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 > is a combining +character sequence with base character C and combining character +S >, 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 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 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. 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, 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 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 does exactly that: C compiles the C 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, C and C. The single quote +delimiters C 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 program can be expanded into a +program that matches multiple patterns: + + % cat > multi_grep + #!/usr/bin/perl + # multi_grep - match any of regexps + # usage: multi_grep 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. 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 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 modifier. + +The modifiers C, C, C, and C 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 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 +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<< (?> respectively. +They evaluate true if the regexps do I match: + + $x = "foobar"; + $x =~ /foo(?!bar)/; # doesn't match, 'bar' follows 'foo' + $x =~ /foo(?!baz)/; # matches, 'baz' doesn't follow 'foo' + $x =~ /(? > 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 first grabbed the C. Doing so, however, +wouldn't allow the whole regexp to match, so after backtracking, C +eventually gave back the C and matched the empty string. Here, what +C matched was I 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 and grabs it. Then the rest of the +regexp C cannot match. Because C<< (?>a*) >> is independent, there +is no backtracking and and the independent subexpression does not give +up its C. 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 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 > 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 > statement in Perl. If the C is true, +the C will be matched. If the C is false, the +C will be skipped and perl will move onto the next regexp +element. The second form is like an S > statement +in Perl. If the C is true, the C will be +matched, otherwise the C will be matched. + +The C 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 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 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, or some +other base pair combination and 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 > 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 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, 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 > with +S >, the variable changes are I 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 > to erase your files. In this +sense, the combination of interpolation and code expressions B +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 >: + + 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 >. +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 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 >, 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 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 when you are not extracting safe bits, but are +performing some other processing. Both C and C 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 and C pragmas allow one to get +detailed debugging info about regexp compilation and +execution. C 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 (0) + 4: PLUS(7) + 5: EXACT (0) + 7: EXACT (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 <> | 1: STAR + EXACT can match 1 times out of 32767... + Setting an EVAL scope, savestack=3 + 1 | 4: PLUS + EXACT can match 1 times out of 32767... + Setting an EVAL scope, savestack=3 + 2 | 7: EXACT + 3 <> | 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 (0) + 4: PLUS(7) + 5: EXACT (0) + 7: EXACT (9) + 9: END(0) + +describes the compilation stage. C means that there is a +starred object, in this case C<'a'>, and if it matches, goto line 4, +i.e., C. 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 <> | 1: STAR + EXACT can match 1 times out of 32767... + Setting an EVAL scope, savestack=3 + 1 | 4: PLUS + EXACT can match 1 times out of 32767... + Setting an EVAL scope, savestack=3 + 2 | 7: EXACT + 3 <> | 9: END + Match successful! + Freeing REx: `a*b+c' + +Each step is of the form S >> >, with C<< >> the +part of the string matched and C<< >> the part not yet +matched. The S> > says that perl is at line number 1 +n the compilation list above. See +L for much more detail. + +An alternative method of debugging regexps is to embed C +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. 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 regular expressions reference page. + +For more information on the matching C and substitution C +operators, see L. For +information on the C operation, see L. + +For an excellent all-around resource on the care and feeding of +regular expressions, see the book I 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. + +The author would like to thank Jeff Pinyan, Andrew Johnson, Peter +Haworth, Ronald J Kimball, and Joe Smith for all their helpful +comments. + +=cut + diff --git a/pod/perlrun.pod b/pod/perlrun.pod index 5cc1969..e105b00 100644 --- a/pod/perlrun.pod +++ b/pod/perlrun.pod @@ -701,8 +701,7 @@ can disable or promote into fatal errors specific warnings using C<__WARN__> hooks, as described in L and L. See also L and L. A new, fine-grained warning facility is also available if you want to manipulate entire classes -of warnings; see L (or better yet, its source code) about -that. +of warnings; see L or L. =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 and in F 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 diff --git a/pod/perlsec.pod b/pod/perlsec.pod index 4037487..4185e84 100644 --- a/pod/perlsec.pod +++ b/pod/perlsec.pod @@ -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), 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: If you pass -a list of arguments to either C or C, the elements of -that list are B 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), 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: If you pass a list +of arguments to either C or C, the elements of that list +are B 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: diff --git a/pod/perlstyle.pod b/pod/perlstyle.pod index 04aab98..bfe5b76 100644 --- a/pod/perlstyle.pod +++ b/pod/perlstyle.pod @@ -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 pragma or the C<$^W> variable +if you must. You should also always run under C or know the reason why not. The C and even C 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 and B<-w> in effect. Consider giving away +code run cleanly with C and C (or B<-w>) in effect +Consider giving away your code. Consider changing your whole world view. Consider... oh, never mind. diff --git a/pod/perlsub.pod b/pod/perlsub.pod index 46d1a2a..f1b8792 100644 --- a/pod/perlsub.pod +++ b/pod/perlsub.pod @@ -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 function would work perfectly well without changing the C @@ -1270,7 +1270,7 @@ see L. See L for more about references and closures. See L if you'd like to learn about calling C subroutines from Perl. -See L if you'd like to learn about calling PErl subroutines from C. +See L if you'd like to learn about calling Perl subroutines from C. See L to learn about bundling up your functions in separate files. See L to learn what library modules come standard on your system. See L to learn how to make object method calls. diff --git a/pod/perlsyn.pod b/pod/perlsyn.pod index 7b9590e..dfded2e 100644 --- a/pod/perlsyn.pod +++ b/pod/perlsyn.pod @@ -171,7 +171,8 @@ statements C, C, and C. 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 +pragma or the B<-w> flag. Unlike a C statement, a C 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 envariable. +C environment variable. #!/usr/bin/perl # pick out jargon file page based on browser @@ -524,7 +525,7 @@ The C-EXPR form expects a label name, whose scope will be resolved dynamically. This allows for computed Cs 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-&NAME form is highly magical, and substitutes a call to the named subroutine for the currently running subroutine. This is used by diff --git a/pod/perlthrtut.pod b/pod/perlthrtut.pod index 88849dd..3a1cf86 100644 --- a/pod/perlthrtut.pod +++ b/pod/perlthrtut.pod @@ -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 variables even more important. Remember--if your variables aren't -lexically scoped (declared with C) you're probably sharing it between -threads. +lexically scoped (declared with C) 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 diff --git a/pod/perltie.pod b/pod/perltie.pod index 9204052..95de3bb 100644 --- a/pod/perltie.pod +++ b/pod/perltie.pod @@ -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 +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 or L for some interesting tie() implementations. +A good starting point for many tie() implementations is with one of the +modules L, L, L, or L. =head1 BUGS -Tied arrays are I. 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 diff --git a/pod/perltoc.pod b/pod/perltoc.pod index 0a67fdc..6397388 100644 --- a/pod/perltoc.pod +++ b/pod/perltoc.pod @@ -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: 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 EEHERE 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 <*E?, Is -there a leak/bug in glob()?, How can I open a file with a leading "E" -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 +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 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) = EFILEE;" 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) = ;" 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 EEHERE documents work? +=item Why don't my <*E? +=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" 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) = EFILEE;" work right? +=item Why doesn't "my($foo) = ;" 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 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, C, C +=item Lexically scoped warning categories -=item Compatible C Source API Changes +=item Unicode and UTF-8 support -C is now C, 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 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 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 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 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 and C 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 EHANDLEE on empty files +=item Modules -=item C 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 and AUTOLOAD +=item The Perl Debugger -=item C<-bareword> allowed under C +=back -=item Boolean assignment operators are legal lvalues +=item Improved Documentation -=item C 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 is now C, 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 is now C, Support for C++ exceptions =back -=item New tests - -=item Modules and Pragmata +=item Significant bug fixes =over -=item Modules +=item 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 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 and AUTOLOAD -=item perlcc +=item C<-bareword> allowed under C -=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 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, C, C + +=item Compatible C Source API Changes + +C is now C + +=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 "$$" to mean "${$}" 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=pattern)>, C<(?, C<(?{ -code })>, C<(??{ code })>, C<(?Epattern)>, +C<(?=pattern)>, C<(?!pattern)>, C<(?<=pattern)>, C<(?, 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, C, C, C, C, C, -C, C, C, C, C, C<(?ES)>, C<(?=S)>, C<(?<=S)>, +C, C, C, C, C, C<< (?>S) >>, C<(?=S)>, C<(?<=S)>, C<(?!S)>, C<(?, 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, $_, $EIE, $MATCH, $&, $PREMATCH, $`, $POSTMATCH, $', +$ARG, $_, $>, $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 =item Debugger Commands h [command], p expr, x expr, V [pkg [vars]], X [vars], T, s [expr], n -[expr], ECRE, 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, , 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, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, -C, C, C, C, C, E [ command ], -EE command, E command, EE command, { [ command ], {{ -command, ! number, ! -number, ! pattern, !! cmd, H -number, q or ^D, R, -|dbcmd, ||dbcmd, command, m expr, m package +C, C, C, C, C =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, Free/Used, C, C, C, C, C +=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, Arithmetic operators except, +C, Bitwise operators, C, Bitwise operators, C, 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 =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, Free/Used, C, C, C, C, C -=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, Arithmetic operators except, -C, Bitwise operators, C, Bitwise operators, C, 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/ =item PLATFORMS @@ -3119,49 +3187,20 @@ C =item DOS and Derivatives -The djgpp environment for DOS, C, The EMX -environment for DOS, OS/2, etc. -C,C or -C, Build instructions for Win32, -L, The ActiveState Pages, C, The -Cygwin environment for Win32; F (installed as -L), C, The U/WIN -environment for Win32,C +Build instructions for OS/2, L =item S -The MacPerl Pages, C, The MacPerl mailing lists, -C, MacPerl Module Porters, -C - =item VMS -F (installed as L), L, vmsperl list, -C, vmsperl on the web, -C - =item VOS -F, VOS mailing list, VOS Perl on the web at -C - =item EBCDIC Platforms -F, F, F, perl-mvs list, AS/400 -Perl information at Cas well as on CPAN in -the F directory - =item Acorn RISC OS =item Other perls -Amiga, F (installed as L), Atari, F -and Guido Flohr's web pageC, Be OS, -F, HP 300 MPE/iX, F and Mark Bixby's web -pageC, Novell Netware, Plan 9, -F - =back =item FUNCTION IMPLEMENTATIONS @@ -3170,22 +3209,22 @@ F =item Alphabetical Listing of Perl Functions --I FILEHANDLE, -I EXPR, -I, 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 FILEHANDLE, -I EXPR, -I, 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, C, C =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 and B 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, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, -C, C, C, C, C, -C, C, C, C, C, -C, C, C, C, C, -C, C, C, C, C, -C, C, C, C, -C, C, C, C, C, -C, C, C, C, C, -C, C, C, -C, C, C, C, C, -C, C, C, C, C, -C, C, C, C, C, -C, C, C, C, C, -C, C, C, C, C, -C, C, C, C, C, -C, C, C, C, C, -C, C, C, C, -C, C, C, C, C, -C, C, C, C, C, -C, C, C, C, C, -C, C, C, C, C, -C, C, C, C, -C, C, C, C, C, -C, C, C, C, C, C, -C, C, C, C, C, -C, C, C, C, C, -C, C, C, C, -C, C, C, -C, C, C, C, C, -C, C, C, C, C, -C, C, C, C, C, -C, C, C, C, C, -C, C, C, C, C, +C, C, C, C, C, +C, C, C, C, C, +C, C, C, C, C, +C, C, C, C, C, +C, C, C, C, +C, C, C, C, C, +C, C, C, C, C, +C, C, C, +C, C, C, C, C, +C, C, C, C, C, +C, C, C, C, C, +C, C, C, C, C, +C, C, C, C, +C, C, C, C, C, +C, C, C, C, C, +C, C, C, C, C, +C, C, C, C, C, +C, C, C, C, +C, C, C, C, C, +C, C, C, C, C, +C, C, C, C, C, +C, C, C, C, C, +C, C, C, C, C, +C, C, C, C, C, +C, C, C, C, C, +C, C, C, C, +C, C, C, C, +C, C, C, +C, C, C, C, C, +C, C, C, C, C, +C, C, C, C, C, +C, C, C, C, C, +C, C, C, C, C, C, C, C, C, -C, C, C, C, C, -C, C, C, C, C, -C, C, C, C, C, -C, C, C, C, C, -C, C, C, C, C, -C, C +C, C, C, C, C, +C, C, C, C, +C, C, C, C, C, +C, C, C, C, C, +C, C, C, C, +C, C, C, C, C =item e @@ -5628,24 +5681,25 @@ C, C, C, C, C C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, -C, C, C, C, C, +C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, -C, C, C, C, C, -C, C, C, C, C, -C, C, C, C, C, -C, C, C, C, -C, C, C, C, C, -C, C, C, C, C, -C, C, C, C, C, C, -C, C, C, C, -C, C, C, C, -C, C, C, C, -C, C, C, C, -C, C, C, C, -C, C, C, C, +C, C, C, C, C, +C, C, C, C, C, +C, C, C, C, C, +C, C, C, C, +C, C, C, C, C, +C, C, C, C, C, +C, C, C, C, C, C, +C, C, C, C, +C, C, C, +C, C, C, C, C, +C, C, C, +C, C, C, C, +C, C, C, +C, C, C, C, C, C, C =item k @@ -5712,15 +5766,15 @@ C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, C, -C, C, C, C, C, -C, C, C, C, C, C, -C, C, C, C, C, C, -C, C, C, C, C, -C, C, C, C, C, C, -C, C, C, C, C, -C, C, C, C, -C, C, C, C, C, -C +C, C, C, C, +C, C, C, C, C, C, +C, C, C, C, C, +C, C, C, C, C, +C, C, C, C, C, +C, C, C, C, C, C, +C, C, C, C, C, +C, C, C, C, +C, C, C, C, C =item t @@ -5741,8 +5795,9 @@ C =item v -C, C, C, C, -C, C, C, C, C +C, C, C, C, +C, C, C, C, +C, C, C, C =item x @@ -5954,14 +6009,13 @@ printing and C =item Methods I->new(I, I), I<$OBJ>->Dump I -I->Dump(I, I), I<$OBJ>->Dumpxs I -I->Dumpxs(I, I), -I<$OBJ>->Seen(I<[HASHREF]>), I<$OBJ>->Values(I<[ARRAYREF]>), -I<$OBJ>->Names(I<[ARRAYREF]>), I<$OBJ>->Reset +I->Dump(I, I), I<$OBJ>->Seen(I<[HASHREF]>), +I<$OBJ>->Values(I<[ARRAYREF]>), I<$OBJ>->Names(I<[ARRAYREF]>), +I<$OBJ>->Reset =item Functions -Dumper(I), DumperX(I) +Dumper(I) =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 [ I ] =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%sE, 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|I =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 diff --git a/pod/perltodo.pod b/pod/perltodo.pod index f22d473..f12b10f 100644 --- a/pod/perltodo.pod +++ b/pod/perltodo.pod @@ -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. diff --git a/pod/perltootc.pod b/pod/perltootc.pod index 64f8233..0bcb638 100644 --- a/pod/perltootc.pod +++ b/pod/perltootc.pod @@ -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. diff --git a/pod/perltrap.pod b/pod/perltrap.pod index e528254..c477272 100644 --- a/pod/perltrap.pod +++ b/pod/perltrap.pod @@ -172,12 +172,6 @@ Variables begin with "$", "@" or "%" in Perl. =item * -C 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 > for inclusion. -Also note that at least some of these can be caught with B<-w>. +please submit it to > for inclusion. +Also note that at least some of these can be caught with the +C pragma or the B<-w> switch. =head2 Discontinuance, Deprecation, and BugFix traps diff --git a/pod/perlunicode.pod b/pod/perlunicode.pod index c8e31bf..c686661 100644 --- a/pod/perlunicode.pod +++ b/pod/perlunicode.pod @@ -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 * diff --git a/pod/perlvar.pod b/pod/perlvar.pod index 04fb3fe..15308e4 100644 --- a/pod/perlvar.pod +++ b/pod/perlvar.pod @@ -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) +=item C<$`> is the same as C -=item C<$&> is the same as C) +=item C<$&> is the same as C -=item C<$'> is the same as C) +=item C<$'> is the same as C =item C<$1> is the same as C =item C<$2> is the same as C -=item C<$3> is the same as C) +=item C<$3> is the same as C =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 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 long name for this variable. diff --git a/pod/perlxs.pod b/pod/perlxs.pod index 3c0927e..c696e19 100644 --- a/pod/perlxs.pod +++ b/pod/perlxs.pod @@ -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 diff --git a/pod/perlxstut.pod b/pod/perlxstut.pod index 88c04ad..4756a9e 100644 --- a/pod/perlxstut.pod +++ b/pod/perlxstut.pod @@ -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 for an alternate +definition is placed. You can also consult L for an alternate way to store and load your extra subroutines. =head2 Documenting your Extension diff --git a/pod/pod2man.PL b/pod/pod2man.PL index 4312e9f..bf35cff 100644 --- a/pod/pod2man.PL +++ b/pod/pod2man.PL @@ -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 +# Copyright 1999, 2000 by Russ Allbery # # 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] [B<--release>=I] +pod2man [B<--section>=I] [B<--release>=I] [B<--center>=I] [B<--date>=I] [B<--fixed>=I] [B<--fixedbold>=I] [B<--fixeditalic>=I] [B<--fixedbolditalic>=I] [B<--official>] [B<--lax>] [I [I]] -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 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"; diff --git a/pod/pod2text.PL b/pod/pod2text.PL index 79cf8b2..c5460ae 100644 --- a/pod/pod2text.PL +++ b/pod/pod2text.PL @@ -37,7 +37,7 @@ print OUT <<'!NO!SUBS!'; # pod2text -- Convert POD data to formatted ASCII text. # -# Copyright 1999 by Russ Allbery +# Copyright 1999, 2000 by Russ Allbery # # 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 # -. We turn that into -w 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 isn't given, it defaults to STDIN. I, if given, is the file to which to write the formatted output. If I isn't given, the formatted output is written to STDOUT. -B 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 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 +will contain terminal control sequences for your current terminal type. =item B<-w>, B<--width=>I, B<->I diff --git a/pod/roffitall b/pod/roffitall index ebfcc7e..018c0b3 100644 --- a/pod/roffitall +++ b/pod/roffitall @@ -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 --- 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 --- 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 to be pushed +used, guarantees that there is room for at least C 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 --- 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 diff --git a/pp_ctl.c b/pp_ctl.c index 991af23..2308d35 100644 --- 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); diff --git a/pp_hot.c b/pp_hot.c index beb2cf2..2a8aa9b 100644 --- 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 diff --git a/pp_proto.h b/pp_proto.h index 7f2d80b..4ce9d74 100644 --- a/pp_proto.h +++ b/pp_proto.h @@ -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) diff --git a/pp_sys.c b/pp_sys.c index 976f5a1..9ea67e1 100644 --- 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 # 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 --- 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: diff --git a/regcomp.c b/regcomp.c index 13fa36c..89b3e53 100644 --- 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; diff --git a/regexec.c b/regexec.c index 3b6d857..cd3df47 100644 --- 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 --- 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 --- a/sv.h +++ b/sv.h @@ -709,6 +709,19 @@ Set the length of the string which is in the SV. See C. #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. diff --git a/t/comp/cpp.aux b/t/comp/cpp.aux index bb93d21..536268a 100755 --- a/t/comp/cpp.aux +++ b/t/comp/cpp.aux @@ -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 diff --git a/t/comp/proto.t b/t/comp/proto.t index ee17088..a77db9b 100755 --- a/t/comp/proto.t +++ b/t/comp/proto.t @@ -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 (&\@) { diff --git a/t/comp/use.t b/t/comp/use.t index 89cb31a..1f5fae3 100755 --- a/t/comp/use.t +++ b/t/comp/use.t @@ -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"; diff --git a/t/io/fs.t b/t/io/fs.t index cd7e7cf..970e2f3 100755 --- 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, diff --git a/t/io/open.t b/t/io/open.t index 531fc85..30db598 100755 --- a/t/io/open.t +++ b/t/io/open.t @@ -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"; diff --git a/t/io/pipe.t b/t/io/pipe.t index 997c6bf..4559624 100755 --- a/t/io/pipe.t +++ b/t/io/pipe.t @@ -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"; diff --git a/t/lib/anydbm.t b/t/lib/anydbm.t index e38c7e7..a7fca17 100755 --- a/t/lib/anydbm.t +++ b/t/lib/anydbm.t @@ -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"; diff --git a/t/lib/attrs.t b/t/lib/attrs.t index d8afbf6..eb8c8c4 100644 --- a/t/lib/attrs.t +++ b/t/lib/attrs.t @@ -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 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($_ = )) { + 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=<&1`; +print "# [$a]\nnot " unless $a =~ /sv_undef.*PVNV.*%one.*sv_undef.*HV/s; +ok; diff --git a/t/lib/cgi-function.t b/t/lib/cgi-function.t index b4cd568..934e27c 100755 --- a/t/lib/cgi-function.t +++ b/t/lib/cgi-function.t @@ -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"); diff --git a/t/lib/cgi-html.t b/t/lib/cgi-html.t index 43d41ec..1e20a31 100755 --- a/t/lib/cgi-html.t +++ b/t/lib/cgi-html.t @@ -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 '

    fred-agnes-maura

    ',"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 < + Untitled Document END @@ -58,7 +59,8 @@ test(14,start_html(-dtd=>"-//IETF//DTD HTML 3.2//FR") ."\n" eq <'The world of foo') ."\n" eq < + The world of foo END @@ -70,6 +72,9 @@ test(17,header(-Cookie=>$cookie) =~ m!^Set-Cookie: fred=chocolate&chip\; path=/$ test(18,start_h3 eq '

    '); test(19,end_h3 eq '

    '); test(20,start_table({-border=>undef}) eq ''); - - - +test(21,h1(escapeHTML("this is \x8bright\x9b")) eq '

    this is <not> ‹right›

    '); +charset('utf-8'); +test(22,h1(escapeHTML("this is \x8bright\x9b")) eq '

    this is <not> ‹right›

    '); +test(23,i(p('hello there')) eq '

    hello there

    '); +my $q = new CGI; +test(24,$q->h1('hi') eq '

    hi

    '); diff --git a/t/lib/cgi-pretty.t b/t/lib/cgi-pretty.t new file mode 100755 index 0000000..e217a7d --- /dev/null +++ b/t/lib/cgi-pretty.t @@ -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 '

    ',"single tag"); +test(3,ol(li('fred'),li('ethel')) eq "
      \n\t
    1. \n\t\tfred\n\t
    2. \n\t
    3. \n\t\tethel\n\t
    4. \n
    \n","basic indentation"); +test(4,p('hi',pre('there'),'frog') eq +'

    + hi

    there
    + frog +

    +',"
     tags");
    +test(5,p('hi',a({-href=>'frog'},'there'),'frog') eq 
    +'

    + hi there + frog +

    +',"as-is"); diff --git a/t/lib/cgi-request.t b/t/lib/cgi-request.t index 9e8cdc2..390c08c 100755 --- a/t/lib/cgi-request.t +++ b/t/lib/cgi-request.t @@ -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"; } diff --git a/t/lib/charnames.t b/t/lib/charnames.t index f4d9577..566baf3 100644 --- a/t/lib/charnames.t +++ b/t/lib/charnames.t @@ -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"; +} diff --git a/t/lib/complex.t b/t/lib/complex.t index 1b4e189..d4beb8b 100755 --- a/t/lib/complex.t +++ b/t/lib/complex.t @@ -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, <display_format('style' => 'polar', 'polar_pretty_print' => 0); @@ -273,9 +270,8 @@ EOS $test++; push @script, <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 diff --git a/t/lib/dumper.t b/t/lib/dumper.t index 3167535..b9680bd 100755 --- a/t/lib/dumper.t +++ b/t/lib/dumper.t @@ -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, diff --git a/t/lib/fields.t b/t/lib/fields.t index 310967f..7709ee5 100755 --- a/t/lib/fields.t +++ b/t/lib/fields.t @@ -15,6 +15,7 @@ BEGIN { } use strict; +use warnings; use vars qw($DEBUG); package B1; diff --git a/t/lib/filepath.t b/t/lib/filepath.t index 40e6e21..5628d0c 100755 --- a/t/lib/filepath.t +++ b/t/lib/filepath.t @@ -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 index 0000000..c660475 --- /dev/null +++ b/t/lib/ftmp-mktemp.t @@ -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 index 0000000..f28785e --- /dev/null +++ b/t/lib/ftmp-posix.t @@ -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 index 0000000..50e1779 --- /dev/null +++ b/t/lib/ftmp-security.t @@ -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 index 0000000..9c0de8b --- /dev/null +++ b/t/lib/ftmp-tempfile.t @@ -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 diff --git a/t/lib/glob-basic.t b/t/lib/glob-basic.t index 4728083..cbb1263 100755 --- a/t/lib/glob-basic.t +++ b/t/lib/glob-basic.t @@ -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 "; } diff --git a/t/lib/glob-case.t b/t/lib/glob-case.t index 32719b2..3d5c816 100755 --- a/t/lib/glob-case.t +++ b/t/lib/glob-case.t @@ -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"; } diff --git a/t/lib/glob-taint.t b/t/lib/glob-taint.t index a8dc213..586357f 100755 --- a/t/lib/glob-taint.t +++ b/t/lib/glob-taint.t @@ -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 "; diff --git a/t/lib/io_poll.t b/t/lib/io_poll.t index 68ad7b7..925830e 100755 --- a/t/lib/io_poll.t +++ b/t/lib/io_poll.t @@ -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"; diff --git a/t/lib/io_sel.t b/t/lib/io_sel.t index e0d7a45..85e14ab 100755 --- a/t/lib/io_sel.t +++ b/t/lib/io_sel.t @@ -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" ; diff --git a/t/lib/io_sock.t b/t/lib/io_sock.t index e03e223..056d131 100755 --- a/t/lib/io_sock.t +++ b/t/lib/io_sock.t @@ -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"); diff --git a/t/lib/io_unix.t b/t/lib/io_unix.t index 62569a5..247647a 100644 --- a/t/lib/io_unix.t +++ b/t/lib/io_unix.t @@ -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 diff --git a/t/lib/ipc_sysv.t b/t/lib/ipc_sysv.t index e2ffd76..a4f3e3f 100755 --- a/t/lib/ipc_sysv.t +++ b/t/lib/ipc_sysv.t @@ -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' && diff --git a/t/lib/open3.t b/t/lib/open3.t index 7cd0ca3..bf042bf 100755 --- a/t/lib/open3.t +++ b/t/lib/open3.t @@ -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) = @_; diff --git a/t/lib/parsewords.t b/t/lib/parsewords.t index 86323b6..2c936f1 100755 --- a/t/lib/parsewords.t +++ b/t/lib/parsewords.t @@ -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 index 0000000..255512f --- /dev/null +++ b/t/lib/peek.t @@ -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 = ; + 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$$"); +} diff --git a/t/lib/socket.t b/t/lib/socket.t index 8f945ac..d5e1848 100755 --- a/t/lib/socket.t +++ b/t/lib/socket.t @@ -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 index 0000000..e1927bc --- /dev/null +++ b/t/lib/syslog.t @@ -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"; diff --git a/t/lib/thread.t b/t/lib/thr5005.t similarity index 100% rename from t/lib/thread.t rename to t/lib/thr5005.t diff --git a/t/lib/tie-stdhandle.t b/t/lib/tie-stdhandle.t index cb8303d..cf3a183 100755 --- a/t/lib/tie-stdhandle.t +++ b/t/lib/tie-stdhandle.t @@ -45,5 +45,3 @@ print "ok 12\n"; print "not " unless close($f); print "ok 13\n"; unlink("afile"); - - diff --git a/t/op/64bit.t b/t/op/64bitint.t similarity index 91% rename from t/op/64bit.t rename to t/op/64bitint.t index 60f72c3..f59c953 100644 --- a/t/op/64bit.t +++ b/t/op/64bitint.t @@ -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 diff --git a/t/op/array.t b/t/op/array.t index 1108f49..97a4a40 100755 --- a/t/op/array.t +++ b/t/op/array.t @@ -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"); diff --git a/t/op/assignwarn.t b/t/op/assignwarn.t index 00f7abb..b95cec5 100755 --- a/t/op/assignwarn.t +++ b/t/op/assignwarn.t @@ -12,8 +12,8 @@ BEGIN { } use strict; +use warnings; -$^W = 1; my $warn = ""; $SIG{q(__WARN__)} = sub { print $warn; $warn .= join("",@_) }; diff --git a/t/op/bop.t b/t/op/bop.t index 7bcabdf..22a5bc9 100755 --- a/t/op/bop.t +++ b/t/op/bop.t @@ -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")); diff --git a/t/op/grent.t b/t/op/grent.t index 761d8b9..d4b0e87 100755 --- a/t/op/grent.t +++ b/t/op/grent.t @@ -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 () { chomp; my @s = split /:/; @@ -111,6 +112,8 @@ while () { $n++; } +endgrent(); + if (keys %perfect == 0) { $max++; print <> 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. diff --git a/t/op/nothread.t b/t/op/nothr5005.t similarity index 100% rename from t/op/nothread.t rename to t/op/nothr5005.t diff --git a/t/op/oct.t b/t/op/oct.t index 27ac5aa..3a487d8 100755 --- a/t/op/oct.t +++ b/t/op/oct.t @@ -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"; diff --git a/t/op/pack.t b/t/op/pack.t index 09c566e..dda1cc7 100755 --- a/t/op/pack.t +++ b/t/op/pack.t @@ -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"; diff --git a/t/op/pat.t b/t/op/pat.t index 1434af1..e00328c 100755 --- a/t/op/pat.t +++ b/t/op/pat.t @@ -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++; diff --git a/t/op/pwent.t b/t/op/pwent.t index ca14a99..0f67eb4 100755 --- a/t/op/pwent.t +++ b/t/op/pwent.t @@ -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 () { chomp; my @s = split /:/; @@ -108,6 +109,7 @@ while () { } $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); diff --git a/t/op/quotemeta.t b/t/op/quotemeta.t index 60e5b7b..ec247f8 100755 --- a/t/op/quotemeta.t +++ b/t/op/quotemeta.t @@ -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"; diff --git a/t/op/re_tests b/t/op/re_tests index d506e6e..189077c 100644 --- a/t/op/re_tests +++ b/t/op/re_tests @@ -750,3 +750,4 @@ tt+$ xxxtt y - - ^([a-z]:) C:/ n - - '^\S\s+aa$'m \nx aa y - - (^|a)b ab y - - +(?i) y - - diff --git a/t/op/recurse.t b/t/op/recurse.t index 6594940..dc823ed 100755 --- a/t/op/recurse.t +++ b/t/op/recurse.t @@ -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; diff --git a/t/op/sort.t b/t/op/sort.t index 6e3d2ca..8161701 100755 --- a/t/op/sort.t +++ b/t/op/sort.t @@ -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"; +} diff --git a/t/op/sprintf.t b/t/op/sprintf.t index 70e55cb..4d54d2c 100755 --- a/t/op/sprintf.t +++ b/t/op/sprintf.t @@ -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++; diff --git a/t/op/substr.t b/t/op/substr.t index 5764e67..f2a0c6c 100755 --- a/t/op/substr.t +++ b/t/op/substr.t @@ -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"; +} diff --git a/t/op/sysio.t b/t/op/sysio.t index 22e60e3..e43f850 100755 --- a/t/op/sysio.t +++ b/t/op/sysio.t @@ -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: $!"; diff --git a/t/op/taint.t b/t/op/taint.t index 9db2d0c..6548b46 100755 --- a/t/op/taint.t +++ b/t/op/taint.t @@ -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"; + } +} + diff --git a/t/op/tie.t b/t/op/tie.t index 105b1d6..9543420 100755 --- a/t/op/tie.t +++ b/t/op/tie.t @@ -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; diff --git a/t/op/universal.t b/t/op/universal.t index 7de8199..a0a74ec 100755 --- a/t/op/universal.t +++ b/t/op/universal.t @@ -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'); diff --git a/t/op/ver.t b/t/op/ver.t index b08849f..5346f39 100755 --- a/t/op/ver.t +++ b/t/op/ver.t @@ -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'; diff --git a/t/pod/testp2pt.pl b/t/pod/testp2pt.pl index 22bbaf8..2ff8aa4 100644 --- a/t/pod/testp2pt.pl +++ b/t/pod/testp2pt.pl @@ -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 $_; diff --git a/t/pod/testpchk.pl b/t/pod/testpchk.pl index 640226b..8aa10b9 100644 --- a/t/pod/testpchk.pl +++ b/t/pod/testpchk.pl @@ -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"; diff --git a/t/pragma/constant.t b/t/pragma/constant.t index 5904a4f..6438332 100755 --- a/t/pragma/constant.t +++ b/t/pragma/constant.t @@ -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 = (); diff --git a/t/pragma/diagnostics.t b/t/pragma/diagnostics.t index 8c9a152..15cd6b5 100755 --- a/t/pragma/diagnostics.t +++ b/t/pragma/diagnostics.t @@ -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. diff --git a/t/pragma/locale.t b/t/pragma/locale.t index 6265cce..414ceff 100755 --- a/t/pragma/locale.t +++ b/t/pragma/locale.t @@ -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 diff --git a/t/pragma/strict-vars b/t/pragma/strict-vars index 954d1e5..2ccfef7 100644 --- a/t/pragma/strict-vars +++ b/t/pragma/strict-vars @@ -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. diff --git a/t/pragma/utf8.t b/t/pragma/utf8.t index 2ae8d9c..8db3d1a 100755 --- a/t/pragma/utf8.t +++ b/t/pragma/utf8.t @@ -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 $_, '>☺<'; - $test++; + $test++; # 1 $_ = ">\x{263A}<"; my $rx = "\x{80}-\x{10ffff}"; s/([$rx])/"&#".ord($1).";"/eg; ok $_, '>☺<'; - $test++; + $test++; # 2 $_ = ">\x{263A}<"; my $rx = "\\x{80}-\\x{10ffff}"; s/([$rx])/"&#".ord($1).";"/eg; ok $_, '>☺<'; - $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 } diff --git a/t/pragma/warn/2use b/t/pragma/warn/2use index 396f201..b489d62 100644 --- a/t/pragma/warn/2use +++ b/t/pragma/warn/2use @@ -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 diff --git a/t/pragma/warn/3both b/t/pragma/warn/3both index 132b99b..335e1b2 100644 --- a/t/pragma/warn/3both +++ b/t/pragma/warn/3both @@ -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 + diff --git a/t/pragma/warn/4lint b/t/pragma/warn/4lint index db54f31..56e3fab 100644 --- a/t/pragma/warn/4lint +++ b/t/pragma/warn/4lint @@ -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. diff --git a/t/pragma/warn/5nolint b/t/pragma/warn/5nolint index 994190a..2459968 100644 --- a/t/pragma/warn/5nolint +++ b/t/pragma/warn/5nolint @@ -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 + diff --git a/t/pragma/warn/6default b/t/pragma/warn/6default index dd3d182..a8aafee 100644 --- a/t/pragma/warn/6default +++ b/t/pragma/warn/6default @@ -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 + diff --git a/t/pragma/warn/7fatal b/t/pragma/warn/7fatal index 943bb06..2d29ddb 100644 --- a/t/pragma/warn/7fatal +++ b/t/pragma/warn/7fatal @@ -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; diff --git a/t/pragma/warn/9enabled b/t/pragma/warn/9enabled index 1ecf24a..55642ff 100755 --- a/t/pragma/warn/9enabled +++ b/t/pragma/warn/9enabled @@ -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 diff --git a/t/pragma/warn/op b/t/pragma/warn/op index d70a333..2c9e0fd 100644 --- a/t/pragma/warn/op +++ b/t/pragma/warn/op @@ -84,16 +84,16 @@ 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 diff --git a/t/pragma/warn/pp_ctl b/t/pragma/warn/pp_ctl index ea94e9d..e81f28c 100644 --- a/t/pragma/warn/pp_ctl +++ b/t/pragma/warn/pp_ctl @@ -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 diff --git a/t/pragma/warn/pp_hot b/t/pragma/warn/pp_hot index baa9f1f..2759057 100644 --- a/t/pragma/warn/pp_hot +++ b/t/pragma/warn/pp_hot @@ -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 = ; 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' ; diff --git a/t/pragma/warn/pp_sys b/t/pragma/warn/pp_sys index d428344..7c38727 100644 --- a/t/pragma/warn/pp_sys +++ b/t/pragma/warn/pp_sys @@ -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' ; diff --git a/t/pragma/warn/toke b/t/pragma/warn/toke index cfdea78..8db8027 100644 --- a/t/pragma/warn/toke +++ b/t/pragma/warn/toke @@ -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 --- 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; diff --git a/universal.c b/universal.c index 28e0896..6c555a1 100644 --- a/universal.c +++ b/universal.c @@ -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 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 */ - 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 --- 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 --- 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); } diff --git a/utils/h2xs.PL b/utils/h2xs.PL index 333e891..ca0e7cb 100644 --- a/utils/h2xs.PL +++ b/utils/h2xs.PL @@ -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 +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, omit the const attribute in the +generated XS code. + +=item B<-m> + +B: 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 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 <$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(?[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 <[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; diff --git a/utils/perlbug.PL b/utils/perlbug.PL index f6280d2..9e7936d 100644 --- a/utils/perlbug.PL +++ b/utils/perlbug.PL @@ -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 < 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 <gsar@activestate.comE), Tom Christiansen Charles F. Randall (Ecfr@pobox.comE), Mike Guy (Emjtg@cam.a.ukE), Dominic Dunlop (Edomo@computer.orgE), Hugo van der Sanden (Ehv@crypt0.demon.co.ukE), -Jarkko Hietaniemi (Ejhi@iki.fiE), hris Nandor -(Epudge@pobox.comE), and Jon Orwant (Eorwant@media.mit.eduE). +Jarkko Hietaniemi (Ejhi@iki.fiE), Chris Nandor +(Epudge@pobox.comE), Jon Orwant (Eorwant@media.mit.eduE, +and Richard Foley (Erichard@rfi.netE). =head1 SEE ALSO diff --git a/utils/perlcc.PL b/utils/perlcc.PL index 971923b..f0636f6 100644 --- a/utils/perlcc.PL +++ b/utils/perlcc.PL @@ -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 ); diff --git a/utils/perldoc.PL b/utils/perldoc.PL index 6430589..5d136b3 100644 --- a/utils/perldoc.PL +++ b/utils/perldoc.PL @@ -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 () { @@ -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 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 The item you want to look up. Nested modules (such as C) @@ -769,7 +792,7 @@ One useful value for C is C. =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 +# don't die when 'use blib' fails +# Version 2.02: Mon Mar 13 18:03:04 MST 2000 +# Tom Christiansen +# Added -U insecurity option # Version 2.01: Sat Mar 11 15:22:33 MST 2000 # Tom Christiansen , querulously. # Security and correctness patches. diff --git a/vms/ext/Stdio/Stdio.pm b/vms/ext/Stdio/Stdio.pm index d485e0e..b51f2c9 100644 --- a/vms/ext/Stdio/Stdio.pm +++ b/vms/ext/Stdio/Stdio.pm @@ -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 diff --git a/vms/ext/vmsish.pm b/vms/ext/vmsish.pm index a0e6e3c..5d738d0 100644 --- a/vms/ext/vmsish.pm +++ b/vms/ext/vmsish.pm @@ -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 -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 diff --git a/vms/perlvms.pod b/vms/perlvms.pod index 3883233..e6d13f3 100644 --- a/vms/perlvms.pod +++ b/vms/perlvms.pod @@ -569,7 +569,7 @@ invoked using C or a text file which should be passed to DCL as a command procedure. If LIST consists of the empty string, C spawns an -interactive DCL subprocess, in the same fashion as typiing +interactive DCL subprocess, in the same fashion as typing B 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 keeps track of subprocesses separately. Note especially that the VAXCRTL (at least) keeps track only of subprocesses spawned using L and L; it will not -accumulate the times of suprocesses spawned via pipes, L, +accumulate the times of subprocesses spawned via pipes, L, 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. Where there is a conflict, this infrmation +in L. 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. diff --git a/vms/subconfigure.com b/vms/subconfigure.com index b16eb53..4aea63b 100644 --- a/vms/subconfigure.com +++ b/vms/subconfigure.com @@ -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 +$ WS "#endif +$ WS "#include +$ 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## $! diff --git a/vms/vms.c b/vms/vms.c index c18ca49..c50d828 100644 --- 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) diff --git a/vms/vmsish.h b/vms/vmsish.h index e460241..16d119d 100644 --- a/vms/vmsish.h +++ b/vms/vmsish.h @@ -109,6 +109,7 @@ #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 @@ -232,7 +233,6 @@ #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); diff --git a/vos/config.def b/vos/config.def index 34f5770..092d76a 100644 --- a/vos/config.def +++ b/vos/config.def @@ -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' diff --git a/vos/config.h b/vos/config.h index 78e5c69..5e4e665 100644 --- a/vos/config.h +++ b/vos/config.h @@ -171,12 +171,6 @@ */ #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. @@ -1129,7 +1123,7 @@ #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. @@ -1200,7 +1194,7 @@ # 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: @@ -1342,11 +1336,24 @@ */ /*#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. @@ -1394,6 +1401,12 @@ */ #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. @@ -1620,6 +1633,18 @@ */ #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 @@ -1662,6 +1687,14 @@ #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. @@ -2199,6 +2232,12 @@ */ #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. */ @@ -2208,19 +2247,19 @@ * 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 to get + * gid_t, etc... It may be necessary to include 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 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() */ @@ -2256,6 +2295,12 @@ */ /*#define I_ICONV /**/ +/* I_IEEEFP: + * This symbol, if defined, indicates that exists and + * should be included. + */ +/*#define I_IEEEFP /**/ + /* I_INTTYPES: * This symbol, if defined, indicates to the C program that it should * include . @@ -2606,6 +2651,9 @@ /* 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. @@ -2635,6 +2683,7 @@ #define I64SIZE _error_ /**/ #define U64SIZE _error_ /**/ #endif +#define NVSIZE $nvsize /**/ #define NV_PRESERVES_UV /* IVdf: @@ -2774,8 +2823,8 @@ * 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. @@ -2801,6 +2850,11 @@ #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 @@ -2809,6 +2863,12 @@ */ #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. @@ -2842,6 +2902,12 @@ */ #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. */ @@ -2948,10 +3014,22 @@ #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: @@ -3026,30 +3104,11 @@ #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 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 diff --git a/vos/config_h.SH_orig b/vos/config_h.SH_orig index 299c931..cc35077 100755 --- a/vos/config_h.SH_orig +++ b/vos/config_h.SH_orig @@ -189,12 +189,6 @@ sed <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 <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 <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 <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 <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 <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 <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 <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 <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 to get + * gid_t, etc... It may be necessary to include 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 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 <config.h -e 's!^#undef\(.*/\)\*!/\*#define\1 \*!' -e 's!^#un- */ #$i_iconv I_ICONV /**/ +/* I_IEEEFP: + * This symbol, if defined, indicates that exists and + * should be included. + */ +#$i_ieeefp I_IEEEFP /**/ + /* I_INTTYPES: * This symbol, if defined, indicates to the C program that it should * include . @@ -2624,6 +2669,9 @@ sed <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 <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 <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 <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 <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 <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 <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 <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 <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 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! diff --git a/warnings.h b/warnings.h index 31942e1..f6814e7 100644 --- a/warnings.h +++ b/warnings.h @@ -16,101 +16,98 @@ #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 */ diff --git a/warnings.pl b/warnings.pl index 0952305..791beed 100644 --- a/warnings.pl +++ b/warnings.pl @@ -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 () { 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 () { 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 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 and L. @@ -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) ; } diff --git a/win32/Makefile b/win32/Makefile index d96da84..d669516 100644 --- a/win32/Makefile +++ b/win32/Makefile @@ -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 diff --git a/win32/config.bc b/win32/config.bc index 32fb9d8..ae854b4 100644 --- a/win32/config.bc +++ b/win32/config.bc @@ -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='' diff --git a/win32/config.gc b/win32/config.gc index 950a3d7..f63813e 100644 --- a/win32/config.gc +++ b/win32/config.gc @@ -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='' diff --git a/win32/config.vc b/win32/config.vc index 007834e..db52680 100644 --- a/win32/config.vc +++ b/win32/config.vc @@ -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='' diff --git a/win32/config_H.bc b/win32/config_H.bc index 48fa1ba..8ca757c 100644 --- a/win32/config_H.bc +++ b/win32/config_H.bc @@ -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 : */ @@ -171,12 +171,6 @@ */ #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. @@ -189,6 +183,13 @@ */ /*#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(). @@ -1129,7 +1130,7 @@ #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. @@ -1394,6 +1395,12 @@ */ /*#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. @@ -1620,12 +1627,17 @@ */ #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 @@ -1662,6 +1674,14 @@ #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. @@ -1712,6 +1732,13 @@ */ /*#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). @@ -2199,6 +2226,12 @@ */ #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. */ @@ -2208,19 +2241,19 @@ * 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 to get + * gid_t, etc... It may be necessary to include 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 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() */ @@ -2256,6 +2289,12 @@ */ /*#define I_ICONV /**/ +/* I_IEEEFP: + * This symbol, if defined, indicates that exists and + * should be included. + */ +/*#define I_IEEEFP /**/ + /* I_INTTYPES: * This symbol, if defined, indicates to the C program that it should * include . @@ -2801,6 +2840,11 @@ #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 @@ -2809,6 +2853,12 @@ */ #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. @@ -2842,6 +2892,12 @@ */ #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. */ @@ -2948,10 +3004,22 @@ #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: @@ -3026,30 +3094,17 @@ #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 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 diff --git a/win32/config_H.gc b/win32/config_H.gc index cb2984d..289eadd 100644 --- a/win32/config_H.gc +++ b/win32/config_H.gc @@ -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 : */ @@ -171,12 +171,6 @@ */ #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. @@ -189,6 +183,13 @@ */ /*#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(). @@ -1129,7 +1130,7 @@ #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. @@ -1394,6 +1395,12 @@ */ /*#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. @@ -1620,12 +1627,17 @@ */ #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 @@ -1662,6 +1674,14 @@ #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. @@ -1712,6 +1732,13 @@ */ /*#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). @@ -2199,6 +2226,12 @@ */ #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. */ @@ -2208,19 +2241,19 @@ * 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 to get + * gid_t, etc... It may be necessary to include 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 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() */ @@ -2256,6 +2289,12 @@ */ /*#define I_ICONV /**/ +/* I_IEEEFP: + * This symbol, if defined, indicates that exists and + * should be included. + */ +/*#define I_IEEEFP /**/ + /* I_INTTYPES: * This symbol, if defined, indicates to the C program that it should * include . @@ -2801,6 +2840,11 @@ #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 @@ -2809,6 +2853,12 @@ */ #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. @@ -2842,6 +2892,12 @@ */ #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. */ @@ -2948,10 +3004,22 @@ #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: @@ -3026,30 +3094,17 @@ #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 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 diff --git a/win32/config_H.vc b/win32/config_H.vc index 0bb27e9..b0702f0 100644 --- a/win32/config_H.vc +++ b/win32/config_H.vc @@ -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 : */ @@ -171,12 +171,6 @@ */ #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. @@ -189,6 +183,13 @@ */ /*#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(). @@ -1129,7 +1130,7 @@ #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. @@ -1394,6 +1395,12 @@ */ /*#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. @@ -1620,12 +1627,17 @@ */ #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 @@ -1662,6 +1674,14 @@ #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. @@ -1712,6 +1732,13 @@ */ /*#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). @@ -2199,6 +2226,12 @@ */ #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. */ @@ -2208,19 +2241,19 @@ * 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 to get + * gid_t, etc... It may be necessary to include 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 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() */ @@ -2256,6 +2289,12 @@ */ /*#define I_ICONV /**/ +/* I_IEEEFP: + * This symbol, if defined, indicates that exists and + * should be included. + */ +/*#define I_IEEEFP /**/ + /* I_INTTYPES: * This symbol, if defined, indicates to the C program that it should * include . @@ -2801,6 +2840,11 @@ #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 @@ -2809,6 +2853,12 @@ */ #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. @@ -2842,6 +2892,12 @@ */ #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. */ @@ -2948,10 +3004,22 @@ #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: @@ -3026,30 +3094,17 @@ #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 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 diff --git a/win32/makefile.mk b/win32/makefile.mk index 3d4f57e..21836b2 100644 --- a/win32/makefile.mk +++ b/win32/makefile.mk @@ -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) diff --git a/win32/perlhost.h b/win32/perlhost.h index 02b9cb4..ea0d31d 100644 --- a/win32/perlhost.h +++ b/win32/perlhost.h @@ -10,6 +10,7 @@ #ifndef ___PerlHost_H___ #define ___PerlHost_H___ +#include #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; diff --git a/win32/perllib.c b/win32/perllib.c index 6211ba7..857aada 100644 --- a/win32/perllib.c +++ b/win32/perllib.c @@ -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 diff --git a/win32/vmem.h b/win32/vmem.h index cf3f502..0fcae27 100644 --- a/win32/vmem.h +++ b/win32/vmem.h @@ -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 } diff --git a/win32/win32.c b/win32/win32.c index 840274b..c589ff5 100644 --- a/win32/win32.c +++ b/win32/win32.c @@ -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 diff --git a/win32/win32.h b/win32/win32.h index 81bf574..3929bcc 100644 --- a/win32/win32.h +++ b/win32/win32.h @@ -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 diff --git a/xsutils.c b/xsutils.c index 02fab51..b4161b0 100644 --- 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));